2024.1.6
Przy kopiowaniu gotowca ze strony OneMetera wartości mapowały się nieprawidłowo.
jak zacząłem, to wywnioskowałem, że nie potrzebne jest “- platform:” i zmieniłem na “- rest:”
wstawiałem wcięcia tak, żeby File Editor pokazywał OK
Ja u siebie mam wersję 2024.1.6 ale już zgłosiła się aktualizacja.
Wywnioskowałeś prawie dobrze
Tak, ale cały czas “krzyczał”, że name jest źle
A teraz za dużo skasowałem w UI Lovelace i dalej sensorów nie mam
W dokumentacji błąd jest również w miejscu:
{{ value_json.lastReading.OBIS['15_8_0'] }}
Nie ma takiej wartości w pliku JSON. Przez to kolejne wartości mapują się nieprawidłowo.
Dodałem jeszcze sensor baterii w procentach, może komuś się przyda.
sensor:
- platform: rest
scan_interval: 900
name: OneMeter
resource: https://cloud.onemeter.com/api/devices/<ID URZĄDZENIA>
value_template: "{{ value_json.lastReading.OBIS['S_1_1_12'] }} {{ value_json.lastReading.OBIS['S_1_1_4'] }} {{ value_json.usage['thisMonth'] }} {{ value_json.usage['previousMonth'] }} {{ value_json.firmware['currentVersion'] }} {{ value_json.lastReading.OBIS['S_1_1_2'] }} {{ value_json.lastReading['BATTERY_PC'] }}"
force_update: true
headers:
Authorization: <KLUCZ API>
- platform: template
sensors:
onemeter_kwh:
friendly_name: "kWh"
unit_of_measurement: "kWh"
icon_template: mdi:flash
value_template: "{{ states.sensor.onemeter.state.split(' ')[0] }}"
onemeter_voltage:
friendly_name: "OneMeter Battery Voltage"
unit_of_measurement: "v"
icon_template: mdi:battery
value_template: "{{ states.sensor.onemeter.state.split(' ')[5] }}"
onemeter_timestamp:
friendly_name: "OneMeter Last Readout"
icon_template: mdi:clock
value_template: "{{ states.sensor.onemeter.state.split(' ')[1] }}"
onemeter_this_month:
friendly_name: "Current Consumption"
unit_of_measurement: "kWh"
icon_template: mdi:calendar-month
value_template: "{{ states.sensor.onemeter.state.split(' ')[2] }}"
onemeter_previous_month:
friendly_name: "Previous Consumption"
unit_of_measurement: "kWh"
icon_template: mdi:calendar-month-outline
value_template: "{{ states.sensor.onemeter.state.split(' ')[3] }}"
onemeter_firmware:
friendly_name: "OneMeter Firmware Version"
icon_template: mdi:chip
value_template: "{{ states.sensor.onemeter.state.split(' ')[4] }}"
onemeter_battery_pc:
friendly_name: "OneMeter Battery Percentage"
unit_of_measurement: "%"
icon_template: mdi:battery
value_template: "{{ states.sensor.onemeter.state.split(' ')[6] }}"
Zajrzyj w przykład z dokumentacji, to zrozumiesz co było źle - początek ma być bez żadnych myślinków i wcięć rest:
stanowi tutaj główną sekcję (jest ona platformą) dla całej integracji rest
rest:
dalej lista więc wcięcia + myślnik
Od sekcji
sensor:
z platformami w środku w HA odchodzi się nie bez powodu
To za mało - linter (kontroler składni) wbudowany w edytor nie jest wystarczającym narzędziem do stworzenia prawidłowego YAMLa, dlatego musem jest czytanie dokumentacji, bo tylko ona uwzględnia zawiłości realnych integracji, w tym obecne i przyszłe w nich zmiany.
W okresie przejściowym obie składnie działają (czytając comiesięczne artykuły do wydań nie da się tego przegapić, ale tych zmian jest więcej niż ktokolwiek z nas jest w stanie ogarnąć, więc każdy musi się skupiać nad czytaniem tego co dotyczy jego konkretnej instalacji), w końcu jednak nadchodzi wydanie w którym jest nieodwołalne breaking change i cześć, ALE takie zmiany są zawsze zapowiadane z co najmniej półrocznym wyprzedzeniem.
Jak pisałem - ni znam się na tym - nie wiedziałem, co jest ważne a co nie, czy strona, na którą mnie przekierowało jest ta co ma być. Jeśli ktoś śledzi cały czas takie zmiany, to jest na bieżąco. Ja zacząłem przygodę dwa tygodnie temu i nie mogę poświęcić tyle czasu, ile bym chciał - stąd była moja prośba o pomoc.
Szybko się zapalam do pomysłu, ale jak trafię na problem, to równie szybko się zniechęcam - dzięki za pomoc - jak już wszystko będzie działało, spróbuję zmienić kod na właściwy
Przesyłam kod wg nowej składni, trochę trzeba było przerobić, może komuś się przyda:
rest:
- resource: https://cloud.onemeter.com/api/devices/<ID URZĄDZENIA>
scan_interval: 900
headers:
Authorization: <KLUCZ API>
sensor:
- name: "OneMeter kWh"
unit_of_measurement: "kWh"
icon: mdi:flash
value_template: "{{ value_json.lastReading.OBIS['S_1_1_12'] }}"
- name: "OneMeter Battery Voltage"
unit_of_measurement: "v"
icon: mdi:battery
value_template: "{{ value_json.lastReading.OBIS['S_1_1_2'] }}"
- name: "OneMeter Last Readout"
icon: mdi:clock
value_template: "{{ value_json.lastReading.OBIS['S_1_1_4'] }}"
- name: "OneMeter Current Consumption"
unit_of_measurement: "kWh"
icon: mdi:calendar-month
value_template: "{{ value_json.usage['thisMonth'] }}"
- name: "OneMeter Previous Consumption"
unit_of_measurement: "kWh"
icon: mdi:calendar-month-outline
value_template: "{{ value_json.usage['previousMonth'] }}"
- name: "OneMeter Firmware Version"
icon: mdi:chip
value_template: "{{ value_json.firmware['currentVersion'] }}"
- name: "OneMeter Battery Percentage"
unit_of_measurement: "%"
icon: mdi:battery
value_template: "{{ value_json.lastReading['BATTERY_PC'] }}"
Dzięki.
A czy jest możliwość wykorzystania tych sensorów w zakładce energia, żeby można było np. dodać pobraną energię i oddaną energię
Trzeba dodać 2 sensory dla całkowitego zużycia i produkcji:
- name: "OneMeter Full Time Consumption"
device_class: energy
state_class: total
unit_of_measurement: "kWh"
icon: mdi:home-lightning-bolt-outline
value_template: "{{ value_json.usage['fullTime'] }}"
- name: "OneMeter Full Time Production"
device_class: energy
state_class: total
unit_of_measurement: "kWh"
icon: mdi:solar-power
value_template: "{{ value_json.production['fullTime'] }}"
Potem będą one dostępne w sekcji Energii jako zużycie i produkcja
Do szczęścia fajnie byłoby jeszcze dodać wyświetlanie kosztu w PLN wyliczanego na podstawie zużycia miesięcznego, dziennego.
dzięki artpc
tak mam już na karcie energia
Ale tam pokazuje mi jedynie zużycie i koszt dzienny.
Chciałbym jeszcze miesięczny.
ale chciałbym jeszcze mieć na wybranej karcie pomieszczenia.
mam tak zrobione z wodą.
Robiłem to za pomocą pomocnika.
Ale teraz nie widzę takiej opcji.
Witam serdecznie.
Od kilku dni meczę się, aby pobrać dane z serwera [w dwóch różnych lokalizacjach + dwóch różnych licznikach i kontach].
Nie działa nawet u mnie udostępniony skrypt.
W czy może być problem.
Poprzez HTTPS i poprzez polecenie curl pobiera/wyswietlają mi sie dane. Mogę też z polecenia API pobrać plik z danymi bezpośrednio z clouda. Jednak do HA nie mogę zaimportować danych zużycia.
Gdzie szukać problemu? U mnie czy raczej u OneMeter?
Mam HAOS na Proxmoxie - wszystko w najnowszej wersji.
Jeszcze jedno. Jestem w tej materii świeżakiem.
Moim zdaniem coś źle przepisałeś - ja też tak miałem. ale jeśli odczytujesz z serwera dane API podstawiając swoje dane https://cloud.onemeter.com/api/devices/<DEVICE_ID>?key=<API_KEY>
to w OneMeter jest wszystko OK.
Napisz, co wkleiłeś do HA i zobaczymy co jest nie tak.
Ja z pomocą kolegów już trochę ten temat liznąłem
Tylko to:
rest:
- resource: https://cloud.onemeter.com/api/devices/<ID URZĄDZENIA>
scan_interval: 900
headers:
Authorization: <KLUCZ API>
sensor:
- name: "OneMeter kWh"
unit_of_measurement: "kWh"
icon: mdi:flash
value_template: "{{ value_json.lastReading.OBIS['S_1_1_12'] }}"
- name: "OneMeter Battery Voltage"
unit_of_measurement: "v"
icon: mdi:battery
value_template: "{{ value_json.lastReading.OBIS['S_1_1_2'] }}"
- name: "OneMeter Last Readout"
icon: mdi:clock
value_template: "{{ value_json.lastReading.OBIS['S_1_1_4'] }}"
- name: "OneMeter Current Consumption"
unit_of_measurement: "kWh"
icon: mdi:calendar-month
value_template: "{{ value_json.usage['thisMonth'] }}"
- name: "OneMeter Previous Consumption"
unit_of_measurement: "kWh"
icon: mdi:calendar-month-outline
value_template: "{{ value_json.usage['previousMonth'] }}"
- name: "OneMeter Firmware Version"
icon: mdi:chip
value_template: "{{ value_json.firmware['currentVersion'] }}"
- name: "OneMeter Battery Percentage"
unit_of_measurement: "%"
icon: mdi:battery
value_template: "{{ value_json.lastReading['BATTERY_PC'] }}"
- name: "OneMeter Full Time Consumption"
device_class: energy
state_class: total
unit_of_measurement: "kWh"
icon: mdi:home-lightning-bolt-outline
value_template: "{{ value_json.usage['fullTime'] }}"
- name: "OneMeter Full Time Production"
device_class: energy
state_class: total
unit_of_measurement: "kWh"
icon: mdi:solar-power
value_template: "{{ value_json.production['fullTime'] }}"
utility_meter:
#Do OneMeter
hourly_energy:
source: sensor.onemeter_kwh
cycle: hourly
daily_energy:
source: sensor.onemeter_kwh
cycle: daily
weekly_energy:
source: sensor.onemeter_kwh
cycle: weekly
monthly_energy:
source: sensor.onemeter_kwh
cycle: monthly
yearly_energy:
source: sensor.onemeter_kwh
cycle: yearly