Podlogowka na esp

Cześć przychodzę z problemem komunikacji między HA a esp.
Mam sterowanie podłogówki oparte na esp8266.
8 termometrów (ds18b20) wchodzi na dwa piny GPIO2 GPIO16 + 10 przekaźników z czego 8 sterowanych z PCF8574 a dwa bezpośrednio GPIO12 i GPIO13. Te dwa dodatkowe to bojler z ciepłą wodą oraz bezpiecznik (o tym dalej).

Schemat jest taki że każde pomieszczenie (jest ich 8) to osobny obwód czyli jeśli w kuchni spadnie temp to odpala się tylko kuchnia. Ale żeby się załączyło grzanie czy to w salonie czy w kuchni musi być załączony również przekaźnik “safety” - bez niego zasilanie na stycznik nie jest podawane. Dodatkowo jeśli którykolwiek termometr pokaże 28 lub więcej to safety ma się rozłączyć.

A Softowo steruje node red - prosty kod - w zależności od wybranego trybu pracy (sterowanie ręczne, auto lub eko-grzanie tylko w nadwyżce prądu) ustawiałem zmienną + histereze i tyle, bezpiecznik nie brał udziału w node red, wyłączyć go może albo samo esp (rule /kod) albo z ręki w HA.
Miałem to na esp home ale działy się dziwne rzeczy, gubił komunikację z home assistantem kilka razy dziennie, rozłączał safety pomimo że czujniki wskazywały kilka °C mniej niż zadane 28. A nawet doszło do tego że na działającym od roku trybie pracy szalał z przekaźnikami to znaczy załączył, po dwóch min wyłączył, po minucie załączył itd.

Przeszedłem na tasmote ale nie podoba mi się to że temperatura może się zatrzymać (nie aktualizować) a node red uzna że trzeba dalej grzać pomimo że ostatni odczyt z termometru jest sprzed 30min. Dodatkowo sporo naszukałem się z nazwami termometrów i nie udało mi się przypisać konkretnego adresu ds’a do nazwy pomieszczenia (co w esp home da się bardzo ładnie zrobić). Co prawda po rozłączeniu zasilania esp nie zdarzyło się aby zamieniły się numeracją ale kto wie czy nie zdarzy się że termometr z adresem x będzie przypisany do 1 a po resecie esp do 2, tym samym node red załączy grzanie nie tam gdzie trzeba i będzie odczytywał temp nie z tego pomieszczenia co grzeje.
Na dodatek tasmota pokazuje dziwne temperatury po - 200stopni albo - 500, nawet potrafi dojść do - 2000°C i za kilka min już normalnie pokaże.

Próbowałem coś z my sensors ale nie miałem za dużo czasu aby dojść jak to prawidłowo wysyłać aby dodatek poprawnie odczytał.

Ciekaw jestem sytuacji z esphome ponieważ dwóch znajomych również mówiło o tym że gubią połączenie.

Czy ktoś jest w stanie coś doradzić?

Moduł się rozłącza i automatyka pracuje w oparciu o ostatnią znaną wartość wartość, czy jest połączony a nie odczytuje czujnika?

Jeśli z którymś odczytem wartość się tabilizuje, to można odrzucać pomiary z poza zakresu np. 0-30st. Gdy mieści się w zakresie jest duże prawdopodobieństwo, że odczy jest prawidłowy. Natury tych błędów nie znam.

Potrafi się zatrzymać tylko z jednego czujnika. Czyli w salonie ostatnia aktualizacja jest minutę temu a dla pokoju 10 minut temu.

Czyli używasz długich przewodów - jaki masz rezystor podciągający?
Który sposób podłączenia?

Jedyne to do głowy przychodzi.

Cztery pierwsze termometry przez goldpiny wchodzą na PCB, tam sygnały zmostkowane i połączone jednym rezystorem 4,7kohm do zasilania idą na GPIO16
Kolejne cztery wszystko tak samo tyle se na GPIO2.
Kable, a właściwie to skrętka trochę długości ma

Zmień rezystory na 2k2 i zobacz jak to wpłynie na odczyty.

Długość przewodów dla pierwszych czterech termometrów to około 34m a dla drugiego zestawu około 24m.
Dzisiaj spróbuję z rezystorem.

Zmiana rezystora niewiele pomoże, przy takiej długości i połączeniu magistrali w gwiazdę , może oryginalne DS18B20 , ale przy zasilaniu 3.3V , raczej czarno to widzę . Zastanawiam się tylko po co takie kombinacje ? Moduł ESP8266 nie musi być przywiązany do routera i w takich sytuacjach lepiej dać dwa , i krótsze przewody od czujników. Poczytaj o spadkach napięcia i budowie magistrali 1 wire.

Mogę również rozdzielić na trzy lub cztery piny, kilka wolnych w esp jeszcze mam.

Chciałem mieć wszystko poprowadzone do rozdzielni.

Od rana robię w node red weryfikację po adresach dsów i działa to dobrze ale męczy mnie czemu tasmota nie podaje danych tak często jak powinna wtedy gdy ich wartość się nie zmieni.
W konsoli odświeża co minutę ale jeśli temperatura się nie zmieniła to nie przesyła tej samej wartości do HA i w node red odczytuje last_update i last_change z przed kilku minut, a chciałbym aby update był co minutę.

Absolutnie tak nie jest, uruchom MQTT Explorer, a się przekonasz, że publikuje dokładnie co ustawiony interwał w TelePeriod. Mam zarówno tasmotą , jak i ESPHome z czujnikami i w obu przypadkach jest identycznie. Ustawione odświeżanie na 1 min , a w HA jak na foto
1
To akurat czujnik z ESPHome.