====== System ======
Na chwile obecną są dwie opcje:
* Instalacja gotowego obrazu
* Instalacja manualna
====== Instalacja gotowego obrazu ======
Jest to chyba najprostsza opcja nie wymagająca zbytniej znajomości systemu Linux.
Najprostszą metodą jest skorzystanie z dedykowanego narzędzia jakim jest [[pl:download|Haier Pi Imager]]. Jest to fork dobrze znanego Raspberry Pi Imager z tym że standardowo dodane są tylko repozytoria z obrazami Haier Pi. Dodana też jest możliwość edycji ustawień wifi z poziomu tego narzędzia. Nie musimy więc martwić się o edycję żadnych plików.
{{:pl:zrzut_ekranu_z_2023-12-12_22-45-07.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-45-35.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-46-03.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-46-50.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-47-31.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-47-59.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-40-01.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-43-23.png?400|}}
{{:pl:zrzut_ekranu_z_2023-12-12_22-44-09.png?400|}}
Możemy też ściągnąć jeden z [[pl:download|gotowych obrazów]], wrzucamy go na kartę SD i odpalamy system. Po uruchomieniu powinniśmy w sieci lokalnej odszukać adresu IP jaki dostał sterownik i wejść przeglądarką na stronę http://adres-ip-sterownika/ od wersji obrazu 1.2 dla Raspberry Pi i 1.5 dla Nano Pi. System po uruchomieniu powinien przedstawiać się w sieci jako haierpi.local. Więc wystarczy wtedy wejść na stronę http://haierpi.local nie trzeba już szukać jaki adres IP dostało urządzenie.
== Domyślne dane do logowania: admin/admin ==
== UWAGA ==
Wstępna konfiguracja zamieszczona na obrazach wymaga podłączonych fizycznych czujników temperatury. W przeciwnym wypadku może dość do zatrzymania części procesów które odpowiedzialne są za komunikację z pompą. Konieczny może wtedy być restart usługi który możemy wykonać z poziomu strony, lub przyciskając przycisk na płytce przez ok 3 sekundy, sterownik poinformuje o restarcie usługi migając czerwoną diodą 3 razy (** Przycisk reset działa tylko na sterowniku z NanoPi Neo, niestety na RaspberryPi przycisk nie działa**)
===== NanoPi Neo =====
Jeśli zdecydujemy się na NanoPi Neo, do połączenia z siecią mamy do dyspozycji wbudowany port ethernet, a system skonfigurowany tak aby pobierał adres IP z DHCP. Jeśli jednak z jakiegoś powodu chcieli byśmy użyć Wi-Fi, to możemy podłączyć do portu USB kartę Wi-Fi, wymaga to jednak [[pl:software#konfiguracja_wi-fi|dodatkowej konfiguracji.]]
Standardowo obraz ma włączoną obsługę ethernet, obsługa wi-fi standardowo jest wyłączona.
===== RaspberryPi zero W =====
Jeśli zdecydujemy się na płytkę RaspberryPi zero W, to do połączenia z siecią możemy wykorzystać tylko Wi-Fi gdyż raspberryPi nie ma wbudowanego portu ethernet ani zwykłego portu USB do którego w łatwy sposób można by podłączyć kartę ethernet na USB. Być może podłączenie przez przejściówkę OTG microusb-USB będzie działać, ale takiej konfiguracji nie będę tutaj opisywać. i jeśli chcesz skorzystać z sieci podłączając kabel, skorzystaj z NanoPi Neo. [[pl:software#konfiguracja_wi-fi|Konfiguracja Wi-Fi]] wygląda identycznie jak w przypadku NanoPi. Standardowo obraz ma włączoną obsługę Wi-Fi i wyłączoną obsługę ethernetu
===== Konfiguracja Wi-Fi =====
Opis konfiguracji sieci Wi-Fi jest identyczny zarówno dla NanoPi Neo jak i RaspberryPi zero W.
Jeśli obraz nagrywasz imagerem to od razu w nim możesz skonfigurować sieć.
Gotowe obrazy systemów zostały tak przygotowane aby można było taką konfigurację wykonać zarówno w systemie Linux jak i Windows.
Aby skonfigurować system do korzystania z sieci wifi należy:
- Podłączyć kartę SD do komputera
- W systemie powinien pojawić się nowy dysk wymienny o wielkości 128MiB
- Na dysku powinny znajdować się między innymi dwa pliki: **dietpi-wifi.txt** oraz **dietpi.txt**
- Otwieramy do edycji plik **dietpi.txt** i znajdujemy linię AUTO_SETUP_NET_WIFI_ENABLED=0
i ustawiamy na **1** (jeśli wartość tej zmiennej jest już ustawiona na 1 to nic nie zmieniamy i zamykamy plik)
- Otwieramy plik **dietpi-wifi.txt**,
#---------------------------------------------------------------
# Entry 0
# - WiFi SSID: required, case sensitive
aWIFI_SSID[0]=''
# - WiFi key: If no key/open, leave this blank
# - In case of WPA-PSK, alternatively enter the 64-digit hexadecimal key returned by wpa_passphrase
# - Please replace single quote characters ' in your key with '\''. No other escaping is required.
aWIFI_KEY[0]=''
# - Key type: NONE (no key/open) | WPA-PSK | WEP | WPA-EAP (then use settings below)
aWIFI_KEYMGR[0]='WPA-PSK'
# - WPA-EAP options: Only fill if WPA-EAP is set above
aWIFI_PROTO[0]=''
aWIFI_PAIRWISE[0]=''
aWIFI_AUTH_ALG[0]=''
aWIFI_EAP[0]=''
aWIFI_IDENTITY[0]=''
aWIFI_PASSWORD[0]=''
aWIFI_PHASE1[0]=''
aWIFI_PHASE2[0]=''
# - Path to the certificate file, e.g.: /boot/mycert.cer
aWIFI_CERT[0]=''
Plik co prawda zawiera więcej linii ale interesują nas tylko te związane z **Entry 0**, edytujemy więc linie:
* aWIFI_SSID[0]= - w cudzysłowie wpisujemy nazwę naszej sieci. Wielkość liter ma znaczenie.
* aWIFI_KEY[0]= - w cudzysłowie wpisujemy hasło do naszej sieci.
* aWIFI_KEYMGR[0]='WPA-PSK' - tutaj ustawiamy rodzaj szyfrowania, jeśli używamy standardowo WPA2, pozostawiamy tą linię bez zmien
Jeśli masz jakąś niestandardową konfiguracje, np z certyfikatem to musisz wypełnić resztę pól zgodnie ze swoją konfiguracją.
Po zapisaniu zmian w pliku możemy bezpiecznie usunąć kartę SD z systemu i włożyć ją do naszego komputerka. (Pamiętaj żeby w przypadku NanoPi Neo, przed uruchomieniem systemu podłączyć kartę wifi)
====== Instalacja manualna ======
Ta opcja przeznaczona jest dla bardziej zaawansowanych użytkowników, nie będę zagłębiał się tutaj w szczegóły dotyczące instalacji i konfiguracji systemu, poruszę tylko kwestie które są bezpośrednio związane z działaniem skryptu.
===== Zmiany w systemie =====
==== Raspberry Pi ====
Jeśli zdecydujesz się na korzystanie z Raspberry Pi koniecznym jest wyłączenie wbudowanego bluetooth gdyż wykorzystuje on uart sprzętowy który my musimy wykorzystać do komunikacji z pompą.
RaspberryPi posiada co prawda drugi uart, ale nie obsługuje on zmian innych parametrów niż prędkość połączenia, a my musimy użyć niestandardowych parametrów połączenia.
dlatego w **/boot/config.txt** powinniśmy dokonać następujących zmian:
dtoverlay=w1-gpio,gpiopin=4
dtoverlay=pi3-disable-bt
enable_uart=1
==== Nano Pi neo 1.4 ====
W przypadku NanoPi Neo musimy na wstępie określić czy będziemy chcieli korzystać z fizycznego czujnika temperatury DS18b20 czy też tylko z czujników z Home Assistant.
Jeśli chcemy wykorzystać fizyczny czujnik podłączony do płytki musimy przemapować porty GPIO procesora, gdyż domyślna konfiguracja nie wyprowadza na fizyczne piny portu odpowiedzialnego za komunikację 1-Wire. W tym celu pobieramy przygotowany przeze mnie plik **sun8i-h3-w1-gpio.dtbo** z sekcji [[pl:download|Download]]. Umieszczamy go w **/boot/dtb/overlay/** nadpisując plik który się tam znajduje.
Następnie edytujemy parametry startowe. Przykładowo dla Armbiana jest to: ** /boot/armbianEnv.txt **, dla DietPi będzie to ** /boot/dietpiEnv.txt ** a dla innych dystrybucji może być ten plik nazwany inaczej.
W każdym bądź razie edytujemy ten plik i zmieniamy aby wyglądał mniej więcej tak:
consoleargs=console=ttyS0,115200
usbstoragequirks=
extraargs=net.ifnames=0
docker_optimizations=off
overlay_prefix=sun8i-h3
overlays=usbhost1 usbhost2 uart1 w1-gpio
user_overlays=
===== Instalacja skryptu =====
==== Download ====
Ściągamy z git najnowsze repo master
$ git clone https://github.com/ktostam/HaierPi /opt/haier
==== Virtual Env ====
Tworzymy virtual enva dla Pythona3
$ python3 -m venv /opt/haier/env
jeśli w tym momencie napotkamy na błąd że nie mamy zainstalowanego pythona czy też venv, to musimy je zainstalować w systemie. Jesli uda się stworzyć env, przechodzimy do następnego kroku
==== zależności ====
Teraz musimy zainstalować wszystkie zależności dla Pythona, aby to zrobić „wchodzimy” najpierw do naszego enva:
# source /opt/haier/env/bin/activate
A następnie instalujemy zależności:
# pip install —upgrade -r /opt/haier/requirements.txt
==== config.txt ====
Edytujemy plik /opt/haier/config.txt i ustawiamy odpowiadające nam parametry.
W pliku konfiugrujemy między innymi jakich czujników temperatury używamy (podpiętych fizycznie czy z HA) oraz na których portach GPIO podpięte są poszczególne przekaźniki.
==== systemd ====
jeśli chcemy odpalać nasz skrypt jako daemona systemd to zawartość katalogu /opt/haier/etc/systemd/system/ kopiujemy do /etc/systemd/system
i robimy:
# systemctl deamon-reload
a jeśli chcemy aby daemon startował automatycznie przy starcie systemu to:
# systemctl enable haier.service
==== Po instalacji ====
Domyślnie po uruchomieniu, skrypt słucha na porcie 4000, ale można to zmienić w **/opt/haier/config.ini**
domyślne dane logowania do panelu to: **admin/admin**