znowu coś takiego
YAML file /data/data/pl.sviete.dom/files/home/AIS/sensor.yaml contains duplicate key “platform”. Check lines 6 and 12
Nie dodaje sensorów pompa-ciepła i ups-in, choć z tego drugiego są jakieś śmieci które nie znikają nawet po wyłączeniu bramki
Cześć,
Właśnie jestem na etapie implementacji danych zużycia i produkcji ciepła przez pompę ciepła. Zauważyłem, że wemos po restarcie traci część danych. Czy jest jakaś opcja żeby częściej zapisywał dane w pamięci trwałej?
Co masz wgrane do tego wemos’a - Tasmota?
Tak, tasmota od AIS.
Swoją drogą robię translację na current power, a potem z current power integration, a następnie do utility meter. Zobaczę jak bardzo rozjadą się wskazania. Zalezy mi na monitorowowaniu COP w czasie, więc muszę mieć chwilowe zużycie i produkcję plus podział na COP CWU, CO, total usage, usage CO i CWU.
Zliczasz tym Wemos impulsy?
Jakich danych?
Pytam, bo sporo możliwości jest w samym Tasmota i myślę, że zawsze lepiej rozwiązywać problemy u źródła.
EDIT:
Może chodzi o SensorRetain
Dzięki.
Tak, dokładnie. Zliczam impulsy. Po restarcie liczba spada i potem nalicza od tego niższego pułapu.
Sprawdzę ten parametr. Właśnie próbuję jakoś ogarnąć pobór live przez sterownik pompy - bierze około 15W. Więc odstępy między impulsami są trochę za duże żeby change rate działało dobrze.
Jaki model, pod jakim protokołem chodzi i na jakiej magistrali?
Niestety pobór biorę z licznika z impulsami. Pompa ma modbus ale nie mierzy sama poboru, więc ciągnę wszystko co mogę z niej.
O ile pobór energii udało się ogarnąc i pokazuje fajnie current, o tyle produkcja już lipa.
Ciepłmierz daje jeden impuls na 125Wh, więc ciężko skorzystać z change rate - jeden impuls co kilka minut to słaba baza do prezentacji…
Zostaje mi więc utility meter i średnia z godziny, dnia, miesiąca czy roku.
Ciepłomierz na jeden impuls daje 1 MJ czyli 277Wh z kawałkiem. Ale to już pół biedy.
Od czasu do czasu na wemosie, na wejściu z ciepłomierza pojawią się sygnały. Kabel biegnie tymczosowo z daleka od innych źródeł, więc to raczej nie jest przyczyną. Ciepłomierz też stoi w miejscu.
Oscyloskopu nie mam żeby sprawdzić czy na linii rzeczywiście coś jest, a co gorsza wyskakuje np raz na godzinę. Gdyby to była 1Wh to luz, ale 277 robi róznicę. Może dać rezystor 10k jako pul up? Odłączyłem tymczasowo kabel sygnałowy, żeby zobaczyć czy wemos sam coś wygeneruje.
Od tego bym zaczął. Z pewnością nie zaszkodzi.
Niestety zmiana rezystora nie pomogła. Zmieniłem nawet wyjście, ale nadal to samo. Od czasu do czasu widzę pojedńcze impulsy, czasem . Co ciekawe na drugim liczniku nie ma takich sytuacji, tam sygnał pojawia się regularnie. W nocy nie ma problemu, ale w dzień jest widoczny. Może jakiś problem na zasilaniu - musiałbym przepiąć zasilanie pod inne źródło. W tej chwili zasila go ups i zasilacz meanwell. Może przy obciążonym UPS w trakcie pracy coś się dzieje. Tak czy inaczej zrobiłem workaround z dodatkową taryfą. Kiedy pompa ciepła nie pracuje, impulsy idą do taryfy zero. Szkoda czasu na szukanie przyczyny.
Tak czy inaczej, statystki dają mnóstwo informacji

A zapomniałbym. Mam jeszcze jeden problem. Podczas restartu wemosa HA odczytuje stan implusow jako zmianę i potrafi nabić mi takiego spike-a. Przed restartem póki co zeruję, ale muszę znaleźć sposób na to.
Sprawdź możliwe ustawienia (tabela komend Tasmota) dla Counter
; CounterDebounceLow
; CounterDebounceHigh
.
Jeśli zerujesz w Tasmota, to możesz załatwić to regułą.
Dzięki, jest to opcja, ale bardziej mnie dziwi interpretacja HA.
Powiedzmy, że mamy te 400 impulsów i sensor w HA ma tyle samo. Wyglada tak jakby podczas niedostepnosci sensor przybieral wartosc 0 - choc ja tego nie widze w historii. Potem gdy sensor wraca przybiera wartosc 400 i HA intepretuje te 400 impulsow jako zmiane.
Mam taki sensor:
power_produced_heat_pump_total: friendly_name: "Energia wyprodukowana przez pompę ciepła - total" unit_of_measurement: "kWh" value_template: >- {{ ((states('sensor.wemos_counter_counter_c2')|float) /3.6) |float |round(2) }}
Gdy restartuje wemosa, to jest przez chwile niedostępny. Wtedy energia produkowana jest 0. Gdy się pojawi, to wartość odczytana interpretowana jest jako zmiana.
Nie jestem mocny w szablonach. Może @Stravi pomoże jako specjalista .
P.S.
Proszę zedytuj swój zapis kodu…
tak
lub używając na początku i końcu kodu trzech znaków tyldy <```>
Poprawione, dzięki za hinta
Szukam właśnie i widzę, że często ludzie maja podobny problem, ale póki co nie znalazłem nic co by mi pasowało.
Zastanawiam się czy nie zrobić tego przez input_number i automatyzację. Filtr outlier byłby spoko, ale przy dłuższej niedostępności też mi nie pomoże. Przykładowo jeśli będzie problem z połaczeniem wifi czy coś podobnego.
Przesiądź się na integrację template:
Nie testowałem, ale powinno działać:
- name: power_produced_heat_pump_total
unit_of_measurement: "kWh"
state: >-
{% if states('sensor.wemos_counter_counter_c2') != 'unavailable' %}
{{ ((states('sensor.wemos_counter_counter_c2')|float) /3.6) |float |round(2) }}
{% else %}
{{ states('sensor.power_produced_heat_pump_total') }}
{% endif %}
Dla porównania, tak wygląda licznik/sensor w ESPHome:
Dzięki Panowie, działa jak marzenie A ja chciałem komplikować sprawę.
Jestem już w domu jeśli chodzi o pompę ciepła. Z prostego sterownika wyciskam teraz więcej niż oferują rozwiązania z pudełka
Pozostaje jeszcze całkowite zużycie z diodą. Mam licznik z S0 podpięty do falownika solaredge, ale nie chcę łączyć w zaden sposób wemosa z falownikiem. A przez api falownika mam bardzo duże opóźnienie. Impulsy z diodą powinny mi wystarczyć
Połączenie z SolarEdge pewnie możesz zrobić przez Modbus. Ale nic na siłę.