Mam podobnie, ale utworzylem jeszcze jedną instalacje z nr1 CO i w niej juz moge zaznaczyc ktore wykresy chce mieć i temp cwu i co sie dodaja.Nr2 CO i wysylka np f22.2 (cwu)brak wykresów.
Wydaje mi się, że brak danych związany jest z brakiem sygnatury czasowej przy ich wysyłce.
Testowo ręcznie z przeglądarki wysłałem dane z datą i godziną to się pokazały, a bez nie chciały, ktoś ma pomysł jak dodać do tego datę i godzinę w formacie jak opisany wyżej ?
Doszedłem już do tego jak to dodać - zostawiam dla wszystkich
Time & Date - Home Assistant datę i czas da się wyciągnąć.
W config trzeba dodać:
sensor:
- platform: time_date
display_options:
- 'date_time_iso'
W automatyzacji wtedy będzie to wyglądało tak:
service: rest_command.pvmonitor
data_template:
pvm: >-
&tm={{ states("sensor.date_time_iso") }}&F15.5={{
states("sensor.pompa_ciepla_temperatura_w_domu") }}&F16.5={{
states("sensor.pompa_ciepla_temperatura_zewnetrzna") }}&F22.5={{
states("sensor.pompa_ciepla_temperatura_cwu") }}&F26.5={{
states("sensor.pompa_ciepla_wilgotnosc_w_domu") }}
Wtedy wszystkie dane wpadają jak się należy
Ja wysyłam bez sensora daty i czasu i działa,ale może dodam.
U mnie bez daty i czasu nie chciały się pokazywać dane, weszły za pierwszym wysłaniem, a później się nie dodawały, a jak otworzyłem stronę w przeglądarce to dostałem ERR zamiast OK.
Ktoś wie jak zrobić aby automatyzacja nie odpalała się częściej jak co 3minuty ?
Sam sobie odpowiem dla potomnych
Do config yaml dodać trzeba
timer:
automatyzacja_opoznienie:
duration: '00:03:01'
A potem dodać do automatyzacji tak
- id: '1663599200393'
alias: pvmonitor wilgotność
description: ''
trigger:
- platform: state
entity_id:
- sensor.pompa_ciepla_wilgotnosc_w_domu
condition:
- condition: state
entity_id: timer.automatyzacja_opoznienie
state: idle
action:
- service: rest_command.pvmonitor
data_template:
pvm: '&tm={{ states("sensor.date_time_iso") }}&F26.2={{ states("sensor.pompa_ciepla_wilgotnosc_w_domu")
}}'
- service: timer.start
data: {}
target:
entity_id: timer.automatyzacja_opoznienie
mode: single
Finalnie działa to tak, że wysyła co każda zmiane stanu ale nie częściej niż 3minuty i 1s, dzięki temu nie robimy zbędnego ruchu na pvminitor a wysyłamy każda zmiane stanu możliwie często - w przypadku temperatur się przydaje bo przy narastaniu potrafią zapisywać co kilka sekund, a to działać będzie jak ddos na serwer.
Dzięki podpowiedzi @wileu ja wysyłam tak
alias: pvmonitor
description: ""
trigger:
- platform: time_pattern
minutes: /3
condition: []
action:
- service: rest_command.pvmonitor
data_template:
pvm: >-
&tm={{states("sensor.date.itd....
Chyba działa ok . Dodałem też dla spełnienia wymogów pvmonitor czas w formie ISO.
Dzięki wszystkim za pomoc w ogarnięciu tej wysyłki , miała być w NR ale w sumie liczy się efekt.Gdyby nie forum pewnie nie byłoby jej nigdy👍
Czy po ostatnim update NodeRed działa wam ten sposób odczytu z LK? U mnie pokazuje:
msg: string
“Deprecated API warning: Calls to RED.util.evaluateJSONataExpression must include a callback. This will not be optional in Node-RED 4.0. Please identify the node from the following stack and check for an update on npm. If none is available, please notify the node author.”
a drugi błąd jaki się pojawia to:
“Call-service error. Service not found.”
Co ciekawe działało do aktualizacji a teraz nawet przywrócenie kopii nie pomaga.
Coś się chyba zmieniło odnośnie service set_value:
pomimo, że jest to wybrane to w polu wyboru już nie istnieje aby wybrać ponownie?
Edit:
W sumie temat już nieaktualny pozbyłem się node-red i użyłem rest do odczytu LK.
Dla zainteresowanych
sensor:
- platform: rest
name: "Napięcie zasilania LK"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia1 | float / 10) | round(2) }}"
unit_of_measurement: 'V'
json_attributes_path: "$.response.ia1"
- platform: rest
name: "zuzycie INP1D(36)"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia20 | float / 1000) | round(2) }}"
unit_of_measurement: 'kWh'
json_attributes_path: "$.response.ia20"
- platform: rest
name: "Temperatura Inp17(28)"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia35 | float / 10) | round(2) }}"
unit_of_measurement: '°C'
json_attributes_path: "$.response.ia35"
Witam, siedzę już chyba 12 godzin , (próbuję za pomocą rest , w/g ostatniego postu…), co bym nie robił nie chce mi pobrać wartości z LK i wyświetlić w Dasz’u, jest tylko informacja: Nieznany
Chciałbym pobrać wartości , aktualne zużycie, jak to się zakończy powodzeniem zamierzam pobrać wartość “produkcji” PV i zrobić warunek że jak będzie powyżej 2kv odpali gniazdko kanluxa do którego jest podłączona grzałka w CWU.
Ale na ta chwilę za chiny nie chce pociągnąć tych wartości…
Mój LK:
Serdeczne dzieki za pomoc
p.s.
zapomniałem o logu:
ROZWIĄZANY :)))
Zgubiła mnie “automatyzacja” , po wrzuceniu w/w kodu błędy jak w logach i ni chuchu… dopiero po 24h (zabawa z HA ogólnie trwa 48h) rozbiłem na czynniki pierwsze w Redzie (a w zasadzie chciałem tu to uczynić - pobrać dane) w debuggu wyszedł mi błąd autoryzacji:
- EUREKA! i tu jak na wstępie … miałem włączona autoryzacje w LK , po wyłączeniu śmiga
Dzięki za pomoc, czasami przelanie myśli z głowy na papier, klawiaturę pomaga
teraz przechodzę do pkt 2: Produkcja powyżej 2k załącz gniazdko
Witam wszystkich na forum. Jestem tu nowy i trochę zielony jeśli chodzi HA. Posiadam bramkę DEV3 na linuksie i chciałbym dołączyć odczyt LK do mojej bramki. Czy możecie mi pomóc?
pozdr.
Rozumiem że pisząc DEV3 na linuksie masz na myśli AI-Speaker, czyli polski projekt nakładki na HA. Nie znam jej możliwości, ale jeśli możesz na niej doinstalować jako dodatek Node-Red’a, to czytając od początku wątek dasz radę wszystko poustawiać. Jakby co to pytaj w miarę możliwości pomogę.
Witam. Dzięki za zainteresowanie. Tak posiadam DEV3 z postawionym HA. I dlatego proszę o pomoc jak to zrobić. Bo @dar3k podaje przykład ale nie bardzo wiem o co chodzi. Wszystko co robię na mojej bramce to dzięki WAM. Nie jestem znawcą tego tematu.
To w configuration.yaml w HA musisz dopisać co potrzebujesz z LK.
Wejdz przez przeglądarkę na http://IP_lankonwertera/st0.xml
Dostaniesz coś w stylu
<response>
<out0>0</out0>
<out1>0</out1>
...
<ia0>178</ia0>
...
<sec0>312</sec0>
</response>
I z tego co Cię interesuje wpisujesz sobie jako sensory do HA, zgodnie z przykładem tutaj:
sensor:
- platform: rest
name: "Napięcie zasilania LK"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia1 | float / 10) | round(2) }}"
unit_of_measurement: 'V'
json_attributes_path: "$.response.ia1"
- platform: rest
name: "zuzycie INP1D(36)"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia20 | float / 1000) | round(2) }}"
unit_of_measurement: 'kWh'
json_attributes_path: "$.response.ia20"
- platform: rest
name: "Temperatura Inp17(28)"
resource: http://IP/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia35 | float / 10) | round(2) }}"
unit_of_measurement: '°C'
json_attributes_path: "$.response.ia35"
Na głównej stronie LK (bez /st0.xml) masz te dane uporządkowane, więc mam nadzieję, że znajdziesz co potrzebujesz.
Moje podłączenia w LK są takie: LK do którego wejść jest podłączony odczyt zużycia pompy ciepła Inp1D(#36), do wejścia podłączony jest odczyt produkcji fotowoltaiki Inp3D(#32) i odczyt zużycia z całego domu Inp4D(#34).
a po wpisaniu adresu mam coś takiego:
http://192.168.2.149/st0.xml
Jeżeli mogę poprosić o jeden przykład jak to napisać.
Czy możecie to sprawdzić:
# Odczyt danych LK
sensor:
- platform: rest
name: "Napięcie zasilania LK"
resource: http://192.168.2.149/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia1 | float / 10) | round(2) }}"
unit_of_measurement: 'V'
json_attributes_path: "$.response.ia1"
- platform: rest
name: "zuzycie caly dom Inp4D(34)"
resource: http://192.168.2.149/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia20 | float / 1000) | round(2) }}"
unit_of_measurement: 'kWh'
json_attributes_path: "$.response.ia20"
- platform: rest
name: "zuzycie pompa ciepla Inp1D(36)"
resource: http://192.168.2.149/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia20 | float / 1000) | round(2) }}"
unit_of_measurement: 'kWh'
json_attributes_path: "$.response.ia20"
- platform: rest
name: "Produkcja Fotowoltaika Inp3D(32)"
resource: http://192.168.2.149/st0.xml
scan_interval: 60
value_template: "{{ (value_json.response.ia20 | float / 1000) | round(2) }}"
unit_of_measurement: 'kWh'
json_attributes_path: "$.response.ia20"
Jak dopisałem do configu i po sprawdzeniu ma błędy:
Ostrzeżenia konfiguracji
Invalid config for ‘panel_iframe’ at configuration.yaml, line 24: expected a dictionary for dictionary value ‘panel_iframe->sensor’, got [{‘platform’: ‘rest’, ‘name’: ‘Napięcie zasilania LK’, ‘resource’: ‘http://192.168.2.149/st0.xml’, ‘scan_interval’: 60, ‘value_template’: ‘{{ (value_json.response.ia1 | float / 10) | round(2) }}’, ‘unit_of_measurement’: ‘V’, ‘json_attributes_path’: ‘$.response.ia1’}, {‘platform’: ‘rest’, ‘name’: ‘zuzycie caly dom Inp4D(34)’, ‘resource’: ‘http://192.168.2.149/st0.xml’, ‘scan_interval’: 60, ‘value_template’: ‘{{ (value_json.response.ia20 | float / 1000) | round(2) }}’, ‘unit_of_measurement’: 'k…
brak błędów, polskie znaki.
I co teraz, jak mogę to zobaczyć w HA?
Powinny się wygenerować sensory z tego rest
oczywiście dopiero po ponownym uruchomieniu HA,
ALE
prawdopodobnie masz złe wcięcia w tym YAMLu, a on reaguje na każdą użytą spację… więc nie licz na cud, ostrzeżenia świadczą, że raczej skleiłeś to z jakąś poprzednią sekcją YAMLa, a wkleiłeś tylko jakiś kawałek, a nie całość, więc nikt nie przeanalizuje co jest skopane…
Ale ten YAML to stworzyłeś chyba na pałę nie analizując w ogóle co jest z czym powiązane i skąd się mają brać dane…
z całą pewnością nie możesz 3x użyć
ia20
Może sobie wyobraź, że nie jesteśmy w twojej sieci LAN, więc sobie nie sięgniemy do
http://192.168.2.149/st0.xml
by pobrać dane
pobierz tego JSONa czy tam XMLa i wklej TEKST do posta w taki sposób by coś było widać - screenshot jest do d…
Swoją drogą to i tak sam sobie musisz powiązać identyfikatory danych ze swoją realna instalacją, jak mielibyśmy to zgadnąć?
A nie rozumiesz, że nie będę przepisywał z obrazka?
Przykład dostarczony przez @dar3k jest chyba wystarczająco jasny.