Integracja sterbox PLC restcommand

Witam,

Jakiś czas temu pytałem jak, a teraz mogę już coś więcej napisać o integracji z polskim PLC sterbox.
Generalnie połączenie tych 2 urządzeń daje ogromne możliwości.
HA do sterowania, zbierania danych i automatyzacje mniej krytyczne, a sterbox do automatyzacji, które wymagają szybkiej reakcji i wysokiej dostępności.

W załączniku podstawowe informacje, ale poproszę osoby, które wykonywały podobne integracje o ich komentarze.
Sterbox integracja z home assistant.docx (248,6 KB)

Od czasu kiedy pisałem instrukcję minęło trochę czasu i jest to tylko jumpstart.
Sterbox daje możliwośc sterowania za pomocą włączników dotykowych połączonych kablowo z PLC. Ale HA widzi wszystkie stany i może je także zmieniać.

HA zbiera dane z czujników - ze sterboxa, a także z ESP home z bme280. Filtruje i wysyła do sterboxa, na którym są wykonywane porównania i automatyzacje - do sterowania temperaturą, wilgotnością itd.
Nawet jeśli HA będzie niedostępne, to sterbox będzie działał w oparciu o dane, które otrzymał.

3 polubienia

Pewnie Iron`a temat zainteresuje i paru innych okablowanych.
@Iron masz konkurencję :wink:

Odnośnie czujników temperatury i wilgotności - polecam BME280 zamias DHT22. Miałem kilka sztuk, ale ich stabilność oraz dokładność w przypadku wilgotności skłoniła mnie do przesiadki na BME280.

DHT powyżej 60% pokazywał wartości totalnie od czapy. BME280 jest bardzo blisko wskazań pobliskiej stacji z meteo.waw.pl.

Jeśli cena za jeden moduł 1 107,00 zł nie odstrasza to pewnie tak :wink: Moje rozwiązanie miało być ekonomiczne :slight_smile:

W nawiązaniu do dyskusji o aktualizacji do wersji 0117:

W ostatniej wersji pojawił się u innego użytkownika problem z rest command.
Przy okazji wywiązała się ciekawa dyskusja o samym sposobie integracji przez niezliczone requesty http.

Rozmawiałem z producentem i niestety innych API nie przewidują. Według nich testy nie wykazały żandego wpływu na działanie ich aplikacji działającej na tej same zasadzie, a także na działanie sterboxa.

araczkowski ma jednak rację, że warto byłoby się przyjrzeć temu i trochę to zoptymalizować.

Przykładowo jeśli mamy 50 czujników na danym urządzeniu i sprawdzamy je co sekundę, to robi nam 3000 zapytań na minutę.

Pomyślałem żeby z resta przejść na command line. Jest możliwość jednym zapytaniem pobrać stany wszystkich czujników.
Tak sobie myślę, żeby pobierać taki stan co sekundę do pliku, a resztę czujników czytać command line z pliku shellowymi poleceniami. Zmniejszy to nam znacznie ruch sieciowy i obciążenie sterboxa, ale zostanie sporo pracy po stronie bramki.

curl “http://192.168.1.182/@gca?wind&@gca?wind&@gca?dstempz&@gca?djtempp&@gca?indsens&@gca?dktempw&@gca?temp_out&@gcd?sek1&@gcd?sek2&@gcd?sek3&@gcd?sek4&@gcd?sek5&@gcd?sek6&@gcd?sek7&@gcd?zas24&@gcd?stan_pom&@gcd?pomp_wod&@gcd?dposwpol&@gcd?dposwpwg&@gcd?dposwza&@gcd?dposwpwd&@gcd?halwsch&@gcd?halpol&@gcd?halzach&@gca?wilg_out&@gca?wilg_t&@gcd?drzwi&@gcd?sek1&@gcd?sek2&@gcd?sek3&@gcd?sek4&@gcd?sek5&@gcd?sek6&@gcd?sek7&@gcd?zas24&@gcd?stan_pom&@gcd?pomp_wod&@gcd?halwsch&@gcd?halpol&@gcd?halzach&@gcd?nawilz&@gcd?pompadz1&@gcd?roletyz&@gcd?roletyp&@gcd?roletyw&@gcd?pompadz1” > ./stat % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 115 0 115 0 0 3194 0 --:–:-- --:–:-- --:–:-- 3382 $ cat stat 2,22,2-0,75-122,6875-0,18750000000001101110000470000000001100010000`0

I np 5 wartość dla danego czujnika odczytwać za pomocą command line:
awk -F’`’ ‘{print $5}’ stat
22,6875

Ale może jest inne, bardziej eleganckie rozwiązanie, które wyciśnie z tego co mamy do dyspozycji jak najmniejszym nakładem zasobów?

1 polubienie

Witam .Jestem użytkownikiem sterboxa w wersji wptd przymierzam się do kupna ais .
Czy mogę liczyć na jakąś pomoc gdybym nie ogarnął tematu z integracją. Czy mógł byś kolego Owczar przybliżyć temat odczytu stanów sterboxa po http .
Z góry dziękuję

Witam , czy można podać jedne przykład od A do Z jak zintegrować HA ze Sterbox, polecenia po stronie Sterbox-a ma ale HA cały czas sypie błędami

Cześć,

Nie dostałem notyfikacji, że ktoś tutaj pisał.
Sprawdzaliście instrukcje ze strony sterbox?

Pora na małą aktualizację. Z racji, że HA używa już u mnie 4ech sterboxów trzeba było trochę zoptymalizować cały układ.

Przede wszystkim wyrzuciłem zbieranie danych ze sterboxa do osobnego skryptu - zbieranie co sekundę z 4 źródeł zaśmiecało dość mocno logi. Dodatkowo w przypdku timeoutu mogło niekorzystanie wpływać na HA.

Dodatkowo dane są wypluwane do ram dysku - to zdecydowanie szybsze działanie przy odczycie sensorów z pliku.

Na początek skrypt, który tworzy katalog /mnt/sterbox (ostatnia linia to keep alive dla pm2):

#!/data/data/pl.sviete.dom/files/usr/bin/bash


/data/data/pl.sviete.dom/files/usr/bin/sudo /data/data/pl.sviete.dom/files/usr/bin/chmod 666 /dev/fuse
/data/data/pl.sviete.dom/files/usr/bin/sudo /data/data/pl.sviete.dom/files/usr/bin/chmod 755 /mnt/
/data/data/pl.sviete.dom/files/usr/bin/sudo /data/data/pl.sviete.dom/files/usr/bin/mkdir /mnt/sterbox
touch /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1
touch /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox2
touch /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox3
touch /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox4
/data/data/pl.sviete.dom/files/usr/bin/sudo /data/data/pl.sviete.dom/files/usr/bin/chown -R u0_a57:u0_a57 /mnt/sterbox

while true; do echo working; sleep 60; done

Dodanie do pm2 (user w zależności od wersji bramki):

pm2 start /data/data/pl.sviete.dom/files/home/AIS/sterbox_mkdir_mnt.sh --name sterbox_mnt --output NULL --error NULL --interpreter=sh --restart-delay=10000 -u u0_a57

Teraz drugi skrypt do zdefiniowania co ile odczytywać config. Opóźnienie 30 sekund żeby mieć pewność, że wszystko się zamontowało. Można też połączyć te 2 skrypty w jeden.

#!/data/data/pl.sviete.dom/files/usr/bin/bash
/data/data/pl.sviete.dom/files/usr/bin/sleep 30
while true; do sudo /data/data/pl.sviete.dom/files/home/AIS/sterbox_test.sh;sleep 1; done

Dodanie do PM2:

 pm2 start /data/data/pl.sviete.dom/files/home/AIS/sterbox_loop_reading.sh --name sterbox_read --output NULL --error NULL --interpreter=sh --restart-delay=10000 -u u0_a57

A teraz content do zbierania stanów:

########################### STERBOX1 ###########################
        if [ `cat /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1 |wc -l` -gt 1 ]
                then echo "" > /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1
                else echo "Plik ma jedna linie"
        fi
        curl "http://192.160.40.1/@gca?fspeed&@gcd?dsssli1&@gcd?dssslig1&@gcd?dstvlig1&@gcd?dglig
        if [ `cat /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1 |wc -l` -gt 1 ]
                then sed -i "1d" /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1
                else echo  "Plik ma jedna linie po odczycie stanu"
        fi
########################### STERBOX1 ###########################

Czemu taka kombinacja? Żeby zminimalizować ilość błędów z pustym plikiem. Podczas przekierowywania plik przez chwile ma rozmiar 0. Próbowałem tee, przekierowanie bezpośrednie. Ale jak HA czyta z niego 30 czy 40 sensorów co 1 sek to zdarzało się, że wywalał błąd. Teraz jest tak, że na wstępie profilaktycznie sprawdzana jest ilość linii - jeśli wieksza niż 1 to plik jest zerowany. Potem odczyt stanów i przekierowanie na koniec pliku. Po przekierowaniu usuwana jest 1 linia - jeśli przekierowanie się udało.

Teraz każdy czujnik czytany jest z pliku w ramdisku:

 - platform: file
   name: Predkosc wentylatora okapu
   unit_of_measurement: B
   file_path: /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1
   value_template: "{{ value.split('`')[0] | replace(',', '.') }}"   

 - platform: file
   name: Oswietlenie sufitu salon jadalnia
   file_path: /data/data/pl.sviete.dom/files/home/AIS/sterbox/sterbox1
   value_template: "{{ value.split('`')[1] }}"   
   scan_interval: 1

A każdy sterbox gwałcony jest raz na sekundę i odczytuje wszystkie stany jednocześnie.

To powoduje, że max opóźnienie zmiany stanu to 2 sekundy, co jest akceptowalne. Szczególnie, że HA jest tylko triggerem automatyzacji, scen itd. Sterbox działa niskopziomowo -zapalanie światła z czujnika ruchu, włącznika itd.

Sterbox ma tylko 4-wyjścia przekaźnikowe ( NO, COM, NC), czy korzystasz z tych wyjść? Pozostałe wyjścia to OC do których aby sterować swiatłem trzeba podłaczyć przekaźniki, jakie dokładnie przekaźniki stosujesz u siebie?

Tak, tylko 4, w dodatku raczej do małych prądów. Korzystam głównie z zewnętrznych:
RM85-2021-35-1012 12V 16A/250V RELPOL

Swego czasu na piekarz.pl mieli bardzo dobre ceny na przekaźnik plus podstawki.
Gniazdo przekaźnika; GZT80; szary; na szynę DIN35;śrubowy na panel; bez obejmy
Obejma wyrzutnikowa; GZT80-0040; szary; Relpol

Spisują się dobrze. Niektóre uruchamiają dość prądożerne urządzenia jak np pompa wody.

Po 2 latach od przeprowadzki podpiąłem w końcu wszystkie czujniki ruchu z domu (15sztuk) i sterbox z HA zaczęły tym zarządzać jak należy - automatyczne zapalanie, gaszenie, ściemnianie, światło nastrojowe itd. Ale wciąż dużo do ogarnięcia. Najgorsza zabawa w rozdzielni pod napięciem, prez co estetyka mocno cierpi :frowning:

2 polubienia

To juz raczej szafa sterowniczą, niestety nie każdy może sobie takie coś wstawić, nawet podczas generalnego remontu.

Jakie czujniki ruchu stosujesz?

Jakie moduły używasz?

Jakie złączki stosujesz w rozdzielnicy? Nie wyglądają na Wago :wink:

Sorry za tyle pytań ale bardzo interesuje mnie automatyka budynkowa zrealizowana po kablu.

Podczas budowy zdecydowanie większe możliwości :slight_smile:

Czujniki zublin/swiss garde presence różne modele, ale głównie Swiss Garde Presence sensor EB- ich wada, że są na 230V więc muszę na przekaźnikach robić translację. Generalnie w sterbox na wejściu stan wysoki to masa więc nawet w czujnikach 12V muszę robić translację na przekaźniku :frowning:
Mam też 12V z allegro po 30zł i dają radę - np pod prysznicem, czy w korytarzach, schodach. W garażu dualny Swiss Garde 360 Presence Master Duo. Kupowałem na allegro pojedyńcze sztuki czasami. Np Zublin presence master RA 16 (teraz swiss garde). Sprawdza się zdecydowanie lepiej od EB. Powiedziałbym, że idealny do domu. W sypialniach na górze mam swiss garde 360 DALI z wyjściem analogowym. One są bardzo dokładne, ale ogromne. W tej chwili nie wiem czy nie poszedłbym w małe czujniki 12v ale w większej ilości spięte równolegle na dane pomieszczenie - taniej i chyba lepiej.

Ściemnianie DMX z Chin - sterbox bardzo fajnie z nimi współpracuje. Widać na foto w 1 rzędzie. Każdy moduł RAT16 obsługuje 8 kanałów DMX. Swego czasu wychodziły niewiele drożej niż 2 przekaźniki (2 kanałowe na 230V).

Złączki firmy pokój zug 2.5. Dają radę - można mocno skręcić. Jakość spoko do ceny.

1 polubienie

Przegląd przekaźników na szynę TH:

Relpol:

https://www.relpol.pl/Produkty/Przekazniki-interfejsowe

Weidmüller np seria TERMSERIES:

Wago ale chyba tylko na 24VDC, za to dość dobra cena przy samozaciskach, seria 788.

https://www.wago.com/pl/c/moduły-przekaźnikowe-i-do-optoseparatorów?sort=relevance&f=%3ASerie%3A788

PHOENIX CONTACT

Finder:

https://www.findernet.com/pl/polska/przemyslowy-listing/przekazniki-interfejsowe-listing/

Witam, wszystkich.
już od dłuższego czasu próbuję odczytać stan przycisku ze swojego sterboxa. Jestem początkującym w tematach HA i niestety spędziłem już kilka ładnych godzin na ustawieniach bez rezultatu. Byłbym wdzięczny jeżeli ktoś mógłby napisać w kilku krokach co po kolei należy zrobić, jaki kod i gdzie wpisać aby ustawić przełącznik np. światła z odczytem jego stanu.
Z góry dziękuję za pomoc.

Masz hasło w sterbox?

Tylko standardowe 1234/abcd ktore bylo ustawione jako default w zakupionym zestawie.

Sterowanie z linii komend.txt (1,8 KB)
Polecenia AJAX.xlsx (17,5 KB)
Zrób według tych instrukcji