Licznik (SDM120D) WemosD1 MQTT Domoticz - Homeassistant

Cześć, aktualnie “przesiadam” się z domoticza na HA mam wiele czujników na Wemos D1 z ESPEASY i kilka gniazd na tasmocie.
Wszystko już ładnie poprzenosiłem ale został ostatni temat:
Licznik SDM120D jak do zintegrować z HA? żeby pokazywał chwilowe zużycie prądu w kWh.
Wartości Czas, Impuls, Licznik są wysyłane i odbierane prawidłowo ale brakuje przeliczenia na wartości chwilowe.
Domoticz robi to automatycznie.

w chwili obecnej utworzyłem czujnik:

#Wemos licznik energii
 - platform: mqtt
   name: "Licznik kWh"
   state_topic: "Korytarz/SDM120D/Licznik"
   unit_of_measurement: "kWh"
   icon: mdi:counter

który pokazuje jedynie wartość licznika.
Czy w takim czujniku należy dodać jeszcze jakąś formułę? aby to się jakoś przeliczało?

znalazłem coś takiego ale chyba z tasmoty:

value_template: "{{value_json['Licznik'].Impuls |float / 1000 }}"

ale to nie działa.

Czy da się to zrobić po MQTT?

ESPEASY


Czujnik w Domoticzu
Screenshot_6
Licznik w HA
Screenshot_5
Dane do czujnika MQTT z ESP

Dla tego licznika to 1000imp= 1kWh, czyli 1imp=1Wh
Z wzoru E=P*dt => P=E/dt
Teraz aby obliczyć moc średnią pomiędzy dwoma impulsami, co dużym przybliżeniu będzie mocą chwilową
potrzeba znać czas dt pomiędzy impulsami

P= 1/dt wyrażone w watach [W], czas w [h]

W tym celu należ pamiętać czas poprzedniego impulsu i porównać z czasem obecnym
P=1/(t2-t1) + właściwe przeliczanie jednostek czasu.
Źródłem czasu może być licznik (w czym Easy podaje ten czas h,min,sek?).

Tyle teoria… praktycznie jak tego dokonać w samym HA nie wiem.

@angler - modbus, SDM120 verD na tylko wyjście impulsowe.

Easy esp podaje 3 wartości - czas, ilość impulsów, stan licznika i wysyła do domoticza wartość co 300sek (Ciekawe jak domoticz to przelicza - tam jest klucz do sukcesu , ale nie wiem jak to odszukać)
nie ma modbusa, a dane wysyłam na zewnętrzny serwer :wink:

Miałem domoticza i te 300sek to jest raczej jego właściwość. EPS wysyła każdą zmianę danych.

Normalnie… pamięta stan poprzedni energii( z przed 5 min) i oblicza różnicę z obecnym stanem
P=dE/5min.
W HA to nie przejdzie, ponieważ każda zmiana jest aktualizowana. Jedyną stałą jest impuls równy 1Wh. Musisz znać czas pomiędzy impulsami, W Node-Red byłoby to dziecinnie proste ale w czystym HA to nie potrafię.

mam node-red może tędy droga :), czy możesz mnie naprowadzić jak to zrobić?


flows (12).json (2,4 KB)
Ta stała służy do kalibracji wynika ze zmiany sek na godz. Wpisana z powietrza bo nie chciało mi się myśleć.
Klikasz w inject symulując impulsy z licznika - szybciej klikasz moc większa.
Tak jak w liczniku.

Wh= 3600Wsek nie wiem jaki interwał daje timestamp. Przelicz to sobie i skalibruj.

1 Like