Wirtualny czujnik temperatury

Witam
Posiadam czujnik ds18b20 który steruje mi ogrzewaniem w domu za pomocą termostatu wbudowanego w ha. Kilka razy dziennie czujnik odczytuje temp 24.8sC zamiast ok 21sC które jest w salonie co powoduje wyłączenie ogrzewania i ponowne załączenie przy kolejnym odczycie kiedy prześle poprawną temperaturę. Po trzech dniach walki z wymianą czujnika, wymianą rezystora itp stwierdziłem, że szkoda czasu i wykombinowałem sobie, że stworze wirtualny czujnik temperatury w ha i za pomocą node red będę przesyłał tylko poprawne odczyty temperatur na ten czujnik w ha (tą wirtualną encje).

  1. Jak stworzyć taką wirtualną encje w ha ? ktoś podpowie
  2. Poniżej mam proste nody które na wyjście poniżej bedą przesyłać poprawną temperature i teraz zamiast debug 36 potrzebuje podstawić noda który prześle tą temperaturę do tej wirtualnej encji. Tylko nie wiem jakiego noda użyć ? ktoś podpowie

flows (8).json (1,9 KB)

podłącz noda funkcji z np. takim kodem a potem nod mqtt i wyslij do HA

msg.Wirtualnyczujnik = msg.payload;
msg.topic = "Salon/Wirtualna/Temperatura"
return msg;

a w HA utwórz sensor w sekcji mqtt

  - name: "Wirtualny czujnik"
    state_topic: "Salon/Wirtualna/Temperatura" 
    unique_id: "salon_wirtualna_temperatura"   
    state_class: measurement
    device_class: temperature
    unit_of_measurement: "°C"

123

Poruszyłeś ten problem w innym wątku i z niego wiadomo, że używasz ESPEasy, a skoro tak, to utworzenie wirtualnego czujnika nie powinno być problemem, bo tworzyłeś ich pewnie sporo. Ten DS Salon taki właśnie jest. MQTT Sensor.
Mając ten czujnik z ustawionym własnym tematem - topic zamiast debug 36 wstawiasz noda mqtt out, a w nim ustawiasz topic utworzonego wcześniej czujnika.
@MariuszAK był szybszy i wstawił praktycznie gotowca

  1. Utworzyłem encje Czujnik wirtualny ok
  2. Zmordowałem noda funkcja ok
  3. Node mqtt out nie bardzo wiem jak skonfigurować. problem
    adres mqtt jest lokalny 192.168.0.13 port standardowy 1883 hasła do mqtt też poprawne pewnie zle wypełniłem pozostałe pola
    P.S. Wszystkie pomiary z czujek ds18b20 są przesyłane do ha po mqtt




    - name: "Wirtualny czujnik"
      unique_id: salon_wirtualna_temperatura
      state_topic: Salon/Wirtualna/Temperatura
      state_class: measurement
      #device_class: temperature
      unit_of_measurement: "°C"

hm… bezmyślnie to na pewno…

Generalnie to możesz wypełnić tylko w zakładce connection i security wpisując/zostawiając tak jak masz server, zaznaczyć “ptaszka” przy automatycznym połączeniu, reszta bez zmian (konfiguracja jest taka sama jak nod mqtt-broker). Bez wpisanego topic.


i pokaż co pokazuje debug za nodem funkcji
m3

Zasadniczo ta funkcja nic nie wnosi:
przepisywanie msd.payload do nowego pola jest niepotrzebne - bo i tak mqtt_out pobierze dane z payload,
msg.topic albo ustawiasz w funkcji albo na sztywno w nodzie topic.

Nie to żebym się czepiał, ale kiedyś bezmyślnie to skopiuje i będzie się zastanawiał czemu “tam” działa, a “tu” nie :slight_smile:
Bez zrozumienia mechanizmów działania takie kopiowanie zawsze będzie źródłem problemów.

Krew w piach :wink:

Jak zwykle masz rację :slight_smile: czyli cały proces można ustawić “prosto” tak …

Nie o to w tym chodzi… :wink:

Dla mnie istotne, bo mogę dzięki takim uwagom weryfikować swoje podejście i spojrzenie na “moje” procesy i czerpać z Twojego doświadczenia i wiedzy.

Na takie przypadki dobrze sprawdza się:

Ustawiasz np. liczenie średniej z ostatnich 10 pomiarów i odczyty się stabilizują po pewnym czasie

Bardzo dziękuje za pomoc. Testowałem ustawienia które mi podesłaliście i system działa tak jak chciałem. Jeszcze raz dziękuje za pomoc, bo sam bym tego nie ogarnął pozdrawiam