NR zawieszenie odczytu temperatury z DS18b20 przez esp8266

Cześć
Już drugi rok posiadam ogrzewanie podłogowe w łazience. Sterowanie zaworem od tej podłogówki mam zrobione w NR gdzie czytana jest temperatura samej podłogi jak i temperatura w łazience przy pomocy czujników ds18b20 podłączonych ESP8266 na którym mam wgrane espeasy. Dwa lata chodzi to pięknie, ale dziś jak chciałem wziąć prysznic poczułem, że podłoga jest bardzo ciepła i kapnąłem się, że cos jest nie tak. Okazała się, że podwiesiło się esp8266 i nie wysyłało aktualnej temp podłogi dlatego i NR czekał aby podłoga osiągnęła zadaną temperaturę. Nie wnikając co było przyczyną z wiechy espeasy potrzebuje zabezpieczyć się aby taka sytuacja się nie powtórzyła, bo trochę strach aby podłoga np. nie spękała od wysokiej temp.
Czy istnieje możliwość najlepiej w nd odczytania jakimś nodem tej informacji, że ostatnia zmiana temp wystąpiła 17 godzin temu. Wtedy ustawił bym funkcje, że jeśli ostatnia zmiana czujnika temp czujnika wystąpiła np. ponad 3 godziny temu to ma wyłączyć głowice podłogówki dla bezpieczeństwa.
Poniżej dwa screny

  1. Odczyt z czujnika temp gdzie widać, że od 17godz nie było zmiany temp czujnika
  2. Opcje czujnika temp w node current state
    PS z pewnych powodów nie chce przechodzić z espeasy na esphome

W ESPEasy w konfiguracji MQTT można ustawić tzw, testament LWT.
Wtedy w brokerze publikowany jest stan “życia” klienta


Wystarczy zasubskrybować ten temat i otrzymasz wiadomość o śmierci urządzenia.
Jeśli chcesz wiedzieć więcej wyszukaj frazę “mqtt lwt”.
Oczywiście to zabezpiecza tylko przed brakiem połączenia.
Dodatkowo gdy w konfiguracji dodasz opcje available to sensor w HA pokaże, że niedostępny

    - unique_id: sprinkler_1
      name: "Strefa 1"
      state_topic: "/Sprinkler_1/zone1/State"
      command_topic: "/Sprinkler_1/cmd/gpio/12"
      payload_on: "1"
      payload_off: "0"
      state_on: "1"
      state_off: "0"
      availability_topic: "/Sprinkler_1/status"
      payload_available: "Online"                      <-------------------------------
      payload_not_available: "Offline"               <------------------------------
      icon: mdi:sprinkler-variant
      optimistic: false
      qos: 0
      retain: false

Ja “lata” temu zrobiłem sobie w NR weryfikację spadku poboru mocy z powiadomieniem na telefon i sprawuje się do dzisiaj całkiem dobrze:

Dla jasności to w funkcjach zapisuje lub odczytuje sobie interesujące mnie informacje w zmiennych globalnych.
Przykład
global.set("StartTimePrania",StartTime);

Sprawdzanie zmienności temperatury w takim układzie jest stosunkowo proste. Można pewnie jeszcze inaczej, ale o gustach nie będę dyskutował :wink:

RobinI30 dziękuje za szybka odpowiedz

To co proponujesz jest bardzo ciekawe i będę wprowadzał to dla każdego esp zainstalowanego w domu, ale w tym przypadku espeasy się tak dziwnie powiesiło, że przesyła status online bo jest online, ale nie odczytuje poprawnie tych czterech temperatur 17,3 , 17,5 , 0 i 0 (przedstawione na scrren 1).
Te 4 temperatury są w rzeczywistości inne powyżej 20sC, póki co nie restartuje tego esp bo chce w NR odczytać że esp tym samym HA ma błędne odczyty i jak pisałem wcześniej jedyne miejsce w którym to widzę (w HA), jest scrren 2 gdzie widzę, że nie było zmiany temperatury przez ostatnie 10 godzin co oczywiście w przypadku poprawnego działania układu było by nie możliwe, bo czujnik odczytuje temp z dokładnością 0,1sC i ciągle są niewielkie wahania temperatury. Co prawda mogę ustawić , że jeśli czujnik który pokazuje teraz temp 0sC wskaże taka temperaturę to coś jest nie tak, ale następnym razem jak się powiesi i pokaże błędną temperaturę np 10sC to znów tego nie zauważę. Tak naprawde to jesli znajdę rozwiązanie tego problemu to wprowadze je do wszystkich moich esp nie tylko dla tego

Screen 1 pokazuje błedne odczyty tych czterech czujników temperatury

Screen 2 pokazuje gdzie znajduje informacje, że czujnik od 10 godzin pokazuje taką samą temperaturę pomimo, że zawsze są jakieś wahania temeratury

Efekt braku komunikacji esp<>ds. Może pora wymienić kondensatory w zasilaczu. Zakłócenia lub uszkoddzony czujnik temp.

Masz racje, że wymiana zasilania powinna pomóc ale i tak chce się zabezpieczyć przed powtórką na poziome HA/NR.

Musisz zminieć sposób uruchamiania procesu w NR. Nie uruchaniać go okresowo inject tylko nodem event_state. Wtedy będzie uruchamiany tylko od zmian temperatury.
Dokładając noda trigger będziesz mógł wykryć, że w ustawionnym czasie nie było odczytu.
Pisząc z telefonu więcej nie pomogę.
Poczytaj, popróbuj… dwa lata na forum do czegoś cię zobowiązuje :slight_smile: