HA + Siemens S7-1200 PLC + Modbus TCP/IP - climate + fan

Cześć,
mam dużą zagwozdkę dotyczącą integracji systemu automatyki.
Ogólnie rozpoczynając opis problemu, postanowiłem stworzyć automatykę domu na sterowniku Siemens S7-1200 - uznałem, że jest to pewne rozwiązanie + mam okazję trochę poćwiczyć programowanie PLC.
PLC obsługuje u mnie oświetlenie, ogrzewanie (mieszkam w bloku), systemy bezpieczeństwa (czujniki dymu i zalania), realizacja funkcji zegara astronomicznego.
Cały czas staram się realizować sterowanie w taki sposób, aby było niezależne między systemami - jeżeli HA się wysypie, zawsze zostaje mi sterowanie lokalne z HMI oraz przycisków do oświetlenia.
Oświetlenie myślę, że udało mi się opanować. Teraz zaczynam walczyć z ogrzewaniem.
Z funkcji ogrzewania staram się oprogramować w PLC tryby pracy - AUTO, poza domem, ochrona frost, off/tryb ręczny, max grzanie - to w miarę, mam ogarnięte.
Zacząłem próbować integrować sterowanie równolegle z HA i poległem/skończył mi się pomysły.
Sterowanie Generic Thermostat z HA jest dla mnie nie zadowalające, integracja modbus climate jest krótko mówiąc biedna (tylko jeden tryb pracy AUTO). Szukam sposobu, aby móc zaimplementować chociaż funkcje OFF / POZA DOMEM / AUTO z HA.
Czy będziecie mieli jakieś podpowiedzi?
Może macie jakieś pomysły/podpowiedzi dotyczące innych części systemu.
Próbowałem jakoś problem rozwiązać za pomocą Dark Thermostat oraz Simple Thermostat z HACS, jednak chyba brak mi doświadczenia z jakąś bardziej skomplikowaną konfiguracją.

Druga sprawa, w salonie mam zamontowany grzejnik kanałowy, do sterowania jest zawór wody (on/off) i wentylator wspomagający (0-10V/0-100%). Z sterowaniem zaworu nie widzę problemu, jednak jeżeli chodzi o płynne sterowanie wentylatorem - jeszcze nie znalazłem odpowiedniego rozwiązania w helpie HA.

Również, jeżeli ktoś ma jakieś pytania na temat połączenia PLC z HA czy samego programowania sprzętu SIEMENS, chętnie coś pomogę w miarę możliwości.

Jeszcze jedna sprawa, w razie potrzeby posiadam dużą integrację z PAC1200 SIEMENS, mogę również udzielić jakiś informacji.

Nie wrzucam, żadnych screenów konfiguracji, bo nawet nie wiem, która część na tą chwilę będzie potrzebna.
Podrzucę tylko na zajawkę, zdjęcie mojej własnoręcznie wykonanej od A-Z rozdzielnicy (jeszcze jest do dopieszczenia).

Część elektryczna:

Część PLC:

Część IT:

HMI:

A jak masz zrealizowane to ogrzewanie? Zawory ZIGBEE, WIFI ?

Czujniki temperatury 4-20mA. Sterowanie zaworami on/off 24V. Dokładny model zaworów SIEMENS STA73: https://hit.sbt.siemens.com/RWD/app.aspx?rc=PL&lang=pl&module=Catalog&action=ShowProduct&key=S55174-A100
Algorytm zaszyty w PLC - sterowanie PID.
Pomimo młodego wieku, pod względem technologii jestem “starej daty” nie ufam do końca rozwiązaniom bezprzewodowym ;).

Z HA to będzie chyba ciężko to zrobić. Raczej stawiałbym na NODE RED + MODBUS
Jest sporo dostępnej dokumentacji a i pewnie kilka osób tutaj ci pomoże .
@kielich89

PWM https://www.google.com/search?q=home+assistant+pwm+(0-10V%2F0-100%25)&rlz=1C1JZAP_plDE884DE884

Kurcze, kiedyś już próbowałem, ale nie mogłem Node-Red ogarnąć. Połączenie zestawiłem, odczyt danych też, ale jakieś bardziej zaawansowane funkcje - zginąłem na przekazywaniu payload.

@artpc W nawiązaniu do Twojego linku - szukałem już na wiele sposobów - praktycznie wszystko jest na ESP. A ja potrzebuję bezpośrednio.
A w najlepszych snach moduł/integrację, który zintegruje zawór i wentylator, chociażby na poziomie sprzętu, który wg producenta jest dedykowany pod to rozwiązanie (3 biegi) - SIEMENS RDG160T https://hit.sbt.siemens.com/RWD/app.aspx?RC=PL&lang=pl&MODULE=Product&ACTION=ShowGroup&KEY=HIT_Prod_Grp_2100429

Powitać… ciekawy temat :+1:

Czyli jak dobrze zrozumiałem chciąłbyś na HA stworzyć kolejny, bardziej przyjazny “HMI”?
Więc wszystkie “manipulatory” powinny być typ generic, bez powiązania z konkretnym urządzeniem.
Rozumiem że wszystkie urządzenia potrafisz zintegrować i sterować tylko z PLC?

Wentylator sterujesz sterujesz z wyjścia analogowego PLC i potrafisz zadać jego wartość poprzez modbus?

Myślę, że od tego nie uciekniesz.
Potrzebujesz łącznika pomiędzy HA , który zadaje wartości “dummy” a modbus PLC.
Jeśli w HA nie ma “urządzeń”,które są gotowe i spełniają oczekiwania to zbuduj je sobie sam.
Np. Termostat można zbudować z dwóch suwaków, kliku buttonów (lub select list) i sensor template na osobnej karcie.
W tym temacie akurat dobry nie jestem i robię wszystko na “macanego” , ale wiem że to możliwe.
Zadawane wartości nic nie robią- tylko “są”.
To Node Red odczytuje ich stan i przesyła do PLC po modbus.
Podobnie w drugą stronę można przesłać odczyty ze sterownika do HA.
Nawet znalazłem coś takiego

W temacie nie jest więc trudno ocenić mi tego wartość.

Osobiście to poszedłbym w kierunku MQTT , PLC<>NR<>MQTT<>HA.
i w HA używał tylko platformy MQTT.
Zawsze możesz się rozmyśleć i zechcieć używać innego frontendu niż HA, przejście jest wtedy bezbolesne.
Przeczytaj jeszcze to i sam oceń, czy jest tomożliwe u Ciebie, bo o ile wiem to Siemens za wszystko każe sobie płacić i takiej opcji możesz nie mieć:

Popieram kolegów, najrozsądniej będzie zintegrować przez NR.

Cieszę się, że zaciekawił temat. Szczerze wcześniej rozglądając się za tego typu integracjami, jest stosunkowo niewiele informacji w sieci.

No w sumie bardzo dobrze to opisałeś, jednak bardziej kieruję się w tym wymiarze na obsługę przez kilku użytkowników z smartphone i ogólnie zdalny dostęp. Jednak nie do końca rozumiem stwierdzenia:

Nie do końca rozumiem tego stwierdzenia. Ogólnie całą funkcjonalność chcę mieć zaszytą w PLC, aby nie musieć polegać na HA w razie awarii. Jeżeli chodzi o umiejętności, to wciąż je rozwijam i póki co nie widzę jakiejś ściany. Natomiast wszystkie peryferia na tą chwilę są podłączone do sterownika PLC i są tam monitorowane oraz sterowane.

Tak jak pisałem wcześniej, tak wentylator jest sterowany z PLC sygnałem 0-10V. Node-Red + contrib-s7 było moim pierwszym strzałem do integracji. Jednak nie podobają mi się trzy rzeczy:

  1. Mnóstwo zmiennych do kilkukrotnego przepisywania i ustawiania w configu
  2. Kolejny element pośredniczący, który może zawieźć.
  3. Tak jak pisałem wcześniej, wiem, że Node-Red jest mega popularny i ma ogrom możliwości, jednak osobiście poległem na bardziej zaawansowanych funkcjach.

MQTT było zaraz po Node-Red próbowane. Ogólnie działało tylko jest jedna znaczna bolączka - wszystkie dane trzeba konwertować string, co przy PLC nie jest łatwe i fajne.

Jeszcze dla Waszej wiedzy, po MODBUS, mogę przekazać praktycznie wszystko. Sam tworzę tabelę zmiennych i ją odpowiednio konfiguruję.
Zależy mi na stosunkowo łatwym (z jak najmniejszym nakładem pracy) przygotować odpowiednie kontrolki, które będą działać równolegle z tym co mam na HMI.

Dodatkowo planuję część funkcji, których nie idzie zrealizować na PLC, a są w HA przekazywać właśnie w drugą stronę. Oczywiście będą to funkcje, które nie są krytyczne do pracy głównego systemu (np. uruchamianie XBOX, sprawdzanie w domu/poza domem, może programowy czujnik obecności, jakieś harmonogramy).

Aktualna lista zmiennych MODBUS

Przekazywanie sygnałów binarnych.
image

Sterowanie oświetleniem

Z poziomu HA:

Czyli tworzysz sobie encje typu pomocnik, np. zadana temperatura do termostatu, potem te encje wysyłasz przez Modbusa do PLC poprzez service: modbus.write_register. Będzie to działało tak samo jak HMI.

Od tej strony jest to dla mnie jasne, bardziej chodzi mi w tym temacie o odpowiednie zwizualizowanie tych danych.

Kolega Robin, jest chyba najbliżej tego o co mi chodzi. Przy czym właśnie chciałbym jak najbardziej uniknąć tego “macanego”.

Prościej już chyba się nie da się odpowiedzieć

OK, rozumiem to. Wydaje mi się, że nie do końca jasno określiłem problem.
Czy jest możliwość (istnieje integracja/komponent) w HA, który pozwoli mi samemu określić tryby pracy w encji Climate lub Generic Thermostat? Czy trzeba szukać czegoś w kierunku Template? Jeżeli tak, to w jaki sposób można to uzyskać?

miałem podobny problem… wykorzystałem PLC (co prawda konkurencji Siemensa:)) i próbowałem encje climate ożenić z plc - nie udało się…
skończyło się właśnie na pomocnikach które zmieniają stany i wartości później NR wysyła automatycznie do PLC zadane wartości ponieważ to on steruje elektrozaworami podłogówki.