Dzięki wielkie. Teraz nie tylko działa, ale i wygląda
Witam,
Korzystam od kilku miesięcy z tego kodu i w momencie włączenia trybu specjalnego Otwarte Okna albo poprzez HA albo przez panel na rekuperatorze mam komunikat
Unexpected response from modbus device slave 10 register 4224, got 0x a
Wyłączenie tego trybu specjalnego (rejestr 4224 wartość 10) skutkuje zaprzestaniem powstawania błędów.
Ktoś zna przyczynę?
Funkcja otwarte okna ma kod 10 czyli w hex 0xa. Pokaż definicję odczytu z rejestru 4224, coś namieszane z dekodowaniem danych. Skąd ta spacja pomiędzy 0x i a ?
Poniżej cała konfiguracja. Rejestr 4224 jest odczytywany kilka razy i nie wiem, którego obiektu (sensor.rekuperator_tryb_specjalny) czy też przełączników problem dotyczy.
Wklejony zapis jest wyświetlany w logu - to jest przeklejony komunikat
Włączenie innego trybu specjalnego ewidencjonowanego w rejestrze 4224 jak np. wietrzenie czy kominek także powoduje błąd, dla wietrzenia to
Unexpected response from modbus device slave 10 register 4224, got 0x 7
# REKUPERATOR MODBUS
modbus:
- type: tcp
host: 192.168.8.209
port: 4196
name: reku
timeout: 5
delay: 2
sensors:
- name: "Rekuperator Temperatura Czerpnia" #outside_temperature # Temperatura powietrza zewnętrznego (TZ1)
slave: 10
address: 16
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_czerpnia
- name: "Rekuperator Temperatura Nawiew" #supply_temperature # Temperatura powietrza nawiewanego (TN1)
slave: 10
address: 17
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_nawiew
- name: "Rekuperator Temperatura Wywiew" #exhaust_temperature # Temperatura powietrza usuwanego z pomieszczenia (TP)
slave: 10
address: 18
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_wywiew
- name: "Rekuperator Temperatura za FPX" #fpx_temperature # Temperatura powietrza za nagrzewnicą FPX (TZ2)
slave: 10
address: 19
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_za_fpx
- name: "Rekuperator Temperatura PCB" #ambient_temperature # Temperatura otoczenia (TO)
slave: 10
address: 22
input_type: input
data_type: int16
scan_interval: 120
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_pcb
- name: "Rekuperator Strumień nawiew"
slave: 10
address: 256
input_type: holding
scan_interval: 10
data_type: int16
unit_of_measurement: m3/h
scale: 1
precision: 1
- name: "Rekuperator Strumień wywiew"
slave: 10
address: 257
input_type: holding
scan_interval: 10
data_type: int16
unit_of_measurement: m3/h
scale: 1
precision: 1
- name: "Rekuperator lato zima"
scan_interval: 11
data_type: int16
slave: 10
address: 4209
input_type: holding
- name: "Rekuperator bypass status"
scan_interval: 11
data_type: int16
slave: 10
address: 4330
input_type: holding
- name: "Rekuperator tryb pracy"
scan_interval: 6
data_type: int16
slave: 10
address: 4208
input_type: holding
- name: "Rekuperator tryb specjalny" #specialMode
scan_interval: 6
slave: 10
address: 4224
data_type: int16
input_type: holding
unit_of_measurement: ""
unique_id: sensor.rekuperator_tryb_specjalny
- name: "Rekuperator speedmanual" #airFlowRateManual # Intensywność wentylacji - tryb MANUALNY
scan_interval: 5
data_type: int16
unit_of_measurement: "%"
slave: 10
address: 4210
input_type: holding
unique_id: sensor.rekuperator_speedmanual
- name: "Rekuperator SpeedTemporary" #airFlowRateTemporary # Intensywność wentylacji - tryb CHWILOWY
scan_interval: 5
data_type: int16
unit_of_measurement: "%"
slave: 10
address: 4211
input_type: holding
unique_id: sensor.rekuperator_speedtemporary
- name: "Rekuperator fpx flaga"
scan_interval: 29
data_type: int16
unit_of_measurement: ""
slave: 10
address: 4192
input_type: holding
- name: "Rekuperator FPX tryb"
scan_interval: 29
data_type: int16
unit_of_measurement: ""
slave: 10
address: 4198
input_type: holding
- name: "Rekuperator Alarm"
scan_interval: 63
slave: 10
data_type: int16
address: 8192
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Error"
scan_interval: 63
slave: 10
address: 8193
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator FPX zabezpieczenie termiczne"
scan_interval: 63
slave: 10
address: 8208
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria Wentylatora Nawiewu"
scan_interval: 63
slave: 10
address: 8222
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria Wentylatora Wywiewu"
scan_interval: 63
slave: 10
address: 8223
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria CF Nawiewu"
scan_interval: 63
slave: 10
address: 8330
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria CF Wywiewu"
scan_interval: 63
slave: 10
address: 8331
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Wymiana Filtrów" #E252 # Sygnalizacja konieczności wymiany filtrów w centrali wyposażonej w presostat
scan_interval: 63
slave: 10
address: 8444
data_type: int16
input_type: holding
unit_of_measurement: ""
binary_sensors:
- name: "Rekuperator Silownik bypassu" #bypass # Stan wyjścia siłownika przepustnicy bypass
scan_interval: 5
slave: 10
address: 9
- name: "Rekuperator Potwierdzenie pracy" #power_supply_fans # Stan wyjścia przekaźnika zasilania wentylatorów
scan_interval: 1
slave: 10
address: 11
switches:
- name: "Rekuperator Okna" #specialMode # 10 - OTWARTE OKNA
scan_interval: 1
slave: 10
address: 4224
command_on: 10
command_off: 0
verify:
- name: "Rekuperator Kominek" #specialMode # 2 - KOMINEK
scan_interval: 1
slave: 10
address: 4224
command_on: 2
command_off: 0
verify:
- name: "Rekuperator Wietrzenie" #specialMode # 7 - WIETRZENIE (aktywacja ręczna)
scan_interval: 1
slave: 10
address: 4224
command_on: 7
command_off: 0
verify:
- name: "Rekuperator Pusty Dom" #specialMode # 11 - PUSTY DOM
scan_interval: 1
slave: 10
address: 4224
command_on: 11
command_off: 0
verify:
- name: "Rekuperator bypass" #bypassOff # Dezaktywacja działania bypass
scan_interval: 5
slave: 10
address: 4320
command_on: 0 # 0 - aktywny
command_off: 1 # 1 - nieaktywny (pasywny)
verify:
- name: "Rekuperator ON/OFF" #onOffPanelMode # ON / OFF - załączanie urządzenia
scan_interval: 1
slave: 10
address: 4387
command_on: 1 # ON (urządzenie włączone)
command_off: 0 # OFF (urządzenie wyłączone)
verify:
- name: "Rekuperator tryb manualny" #mode # Tryb pracy AirPack
scan_interval: 1
slave: 10
address: 4208
command_on: 1 # 1 - manualny
command_off: 2 # 2 - chwilowy
verify:
unique_id: switch.rekuperator_tryb_manualny
- name: "Rekuperator tryb auto" #mode # Tryb pracy AirPack
scan_interval: 1
slave: 10
address: 4208
command_on: 0 # 0 - automatyczny
command_off: 1 # 1 - manualny
unique_id: switch.rekuperator_tryb_auto
- name: "Rekuperator zima"
scan_interval: 7
slave: 10
address: 4209
command_on: 1
command_off: 0
verify:
sensor:
- platform: integration
source: sensor.rekuperator_odzyskana_moc
name: rekuperator_odzyskana_energia
unit_prefix: k
round: 3
Czy po tym rekuperator przechodzi we właściwy tryb? Trzeba wychwycić czy źródłem błędu jest odczyt czy zapis do rejestru. To pokazuje się cyklicznie co 6sek?
Problemem najprawdopodobniej jest odczyt we wszystkich switch, który weryfikuje ich stan, jak usuniesz verify ze wszystkich switch dla tego rejestru 4224 to problem znika. Wg. dokumentacji HA, wartości powinny być czytane i pisane jako dziesiętne, a tutaj z jakiegoś powodu jest szesnastkowa. HA spodziewa się 10 a dostaje 0xA.
Spróbuj tak:
switches:
- name: "Rekuperator Okna" #specialMode # 10 - OTWARTE OKNA
scan_interval: 1
slave: 10
address: 4224
command_on: 0xA
command_off: 0x0
verify:
- name: "Rekuperator Kominek" #specialMode # 2 - KOMINEK
scan_interval: 1
slave: 10
address: 4224
command_on: 0x2
command_off: 0x0
verify:
- name: "Rekuperator Wietrzenie" #specialMode # 7 - WIETRZENIE (aktywacja ręczna)
scan_interval: 1
slave: 10
address: 4224
command_on: 0x7
command_off: 0x0
verify:
- name: "Rekuperator Pusty Dom" #specialMode # 11 - PUSTY DOM
scan_interval: 1
slave: 10
address: 4224
command_on: 0xB
command_off: 0x0
verify:
Edit:
Właśnie to zmieniłem u siebie i wychodzi na to, że tak jest poprawnie, lecz ja u siebie mam logowanie tylko błędów tylko critical, do testów włączyłem normalne logi, ten wpis pojawia się w logach, a wszystko i tak działa - nie ma statusu critical więc go olałem, ale teraz jak zmieniłem na hex, to nie ma wpisów w logach, a wszystko działa - więc rekuperator chyba na ten rejestr chce HEX (w modbus w hex najczęściej rejestry typu float pracują). Przetestuj u siebie.
Zmieniłem u siebie, ale problem nadal występuje. Co jedną sekundę wrzuca 3 wystąpienia błędów.
Moja obecna konfiguracja poniżej:
# REKUPERATOR MODBUS
modbus:
- type: tcp
host: 192.168.8.209
port: 4196
name: reku
timeout: 5
delay: 2
sensors:
- name: "Rekuperator Temperatura Czerpnia" #outside_temperature # Temperatura powietrza zewnętrznego (TZ1)
slave: 10
address: 16
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_czerpnia
- name: "Rekuperator Temperatura Nawiew" #supply_temperature # Temperatura powietrza nawiewanego (TN1)
slave: 10
address: 17
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_nawiew
- name: "Rekuperator Temperatura Wywiew" #exhaust_temperature # Temperatura powietrza usuwanego z pomieszczenia (TP)
slave: 10
address: 18
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_wywiew
- name: "Rekuperator Temperatura za FPX" #fpx_temperature # Temperatura powietrza za nagrzewnicą FPX (TZ2)
slave: 10
address: 19
input_type: input
scan_interval: 120
data_type: int16
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_za_fpx
- name: "Rekuperator Temperatura PCB" #ambient_temperature # Temperatura otoczenia (TO)
slave: 10
address: 22
input_type: input
data_type: int16
scan_interval: 120
unit_of_measurement: °C
scale: 0.1
precision: 1
unique_id: sensor.rekuperator_temperatura_pcb
- name: "Rekuperator Strumień nawiew"
slave: 10
address: 256
input_type: holding
scan_interval: 10
data_type: int16
unit_of_measurement: m3/h
scale: 1
precision: 1
- name: "Rekuperator Strumień wywiew"
slave: 10
address: 257
input_type: holding
scan_interval: 10
data_type: int16
unit_of_measurement: m3/h
scale: 1
precision: 1
- name: "Rekuperator lato zima"
scan_interval: 11
data_type: int16
slave: 10
address: 4209
input_type: holding
- name: "Rekuperator bypass status"
scan_interval: 11
data_type: int16
slave: 10
address: 4330
input_type: holding
- name: "Rekuperator tryb pracy"
scan_interval: 6
data_type: int16
slave: 10
address: 4208
input_type: holding
- name: "Rekuperator tryb specjalny" #specialMode
scan_interval: 6
slave: 10
address: 4224
data_type: int16
input_type: holding
unique_id: sensor.rekuperator_tryb_specjalny
- name: "Rekuperator speedmanual" #airFlowRateManual # Intensywność wentylacji - tryb MANUALNY
scan_interval: 5
data_type: int16
unit_of_measurement: "%"
slave: 10
address: 4210
input_type: holding
unique_id: sensor.rekuperator_speedmanual
- name: "Rekuperator SpeedTemporary" #airFlowRateTemporary # Intensywność wentylacji - tryb CHWILOWY
scan_interval: 5
data_type: int16
unit_of_measurement: "%"
slave: 10
address: 4211
input_type: holding
unique_id: sensor.rekuperator_speedtemporary
- name: "Rekuperator fpx flaga"
scan_interval: 29
data_type: int16
unit_of_measurement: ""
slave: 10
address: 4192
input_type: holding
- name: "Rekuperator FPX tryb"
scan_interval: 29
data_type: int16
unit_of_measurement: ""
slave: 10
address: 4198
input_type: holding
- name: "Rekuperator Alarm"
scan_interval: 63
slave: 10
data_type: int16
address: 8192
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Error"
scan_interval: 63
slave: 10
address: 8193
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator FPX zabezpieczenie termiczne"
scan_interval: 63
slave: 10
address: 8208
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria Wentylatora Nawiewu"
scan_interval: 63
slave: 10
address: 8222
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria Wentylatora Wywiewu"
scan_interval: 63
slave: 10
address: 8223
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria CF Nawiewu"
scan_interval: 63
slave: 10
address: 8330
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Awaria CF Wywiewu"
scan_interval: 63
slave: 10
address: 8331
data_type: int16
input_type: holding
unit_of_measurement: ""
- name: "Rekuperator Wymiana Filtrów" #E252 # Sygnalizacja konieczności wymiany filtrów w centrali wyposażonej w presostat
scan_interval: 63
slave: 10
address: 8444
data_type: int16
input_type: holding
unit_of_measurement: ""
binary_sensors:
- name: "Rekuperator Silownik bypassu" #bypass # Stan wyjścia siłownika przepustnicy bypass
scan_interval: 5
slave: 10
address: 9
- name: "Rekuperator Potwierdzenie pracy" #power_supply_fans # Stan wyjścia przekaźnika zasilania wentylatorów
scan_interval: 1
slave: 10
address: 11
switches:
- name: "Rekuperator Okna" #specialMode # 10 - OTWARTE OKNA
scan_interval: 1
slave: 10
address: 4224
command_on: 0xA
command_off: 0x0
verify:
- name: "Rekuperator Kominek" #specialMode # 2 - KOMINEK
scan_interval: 1
slave: 10
address: 4224
command_on: 0x2
command_off: 0x0
verify:
- name: "Rekuperator Wietrzenie" #specialMode # 7 - WIETRZENIE (aktywacja ręczna)
scan_interval: 1
slave: 10
address: 4224
command_on: 0x7
command_off: 0x0
verify:
- name: "Rekuperator Pusty Dom" #specialMode # 11 - PUSTY DOM
scan_interval: 1
slave: 10
address: 4224
command_on: 0xB
command_off: 0x0
verify:
- name: "Rekuperator bypass" #bypassOff # Dezaktywacja działania bypass
scan_interval: 5
slave: 10
address: 4320
command_on: 0 # 0 - aktywny
command_off: 1 # 1 - nieaktywny (pasywny)
verify:
- name: "Rekuperator ON/OFF" #onOffPanelMode # ON / OFF - załączanie urządzenia
scan_interval: 1
slave: 10
address: 4387
command_on: 1 # ON (urządzenie włączone)
command_off: 0 # OFF (urządzenie wyłączone)
verify:
- name: "Rekuperator tryb manualny" #mode # Tryb pracy AirPack
scan_interval: 1
slave: 10
address: 4208
command_on: 1 # 1 - manualny
command_off: 2 # 2 - chwilowy
verify:
unique_id: switch.rekuperator_tryb_manualny
- name: "Rekuperator tryb auto" #mode # Tryb pracy AirPack
scan_interval: 1
slave: 10
address: 4208
command_on: 0 # 0 - automatyczny
command_off: 1 # 1 - manualny
unique_id: switch.rekuperator_tryb_auto
- name: "Rekuperator zima"
scan_interval: 7
slave: 10
address: 4209
command_on: 1
command_off: 0
verify:
sensor:
- platform: integration
source: sensor.rekuperator_odzyskana_moc
name: rekuperator_odzyskana_energia
unit_prefix: k
round: 3
@RobinI30 Urządzenie przełącza się we właściwy tryb ale sypie błędami.
Są 3 nowe wystąpienia co jedną sekundę.
Bombardujesz rejestr 4224 w kilku miejscach co 1sek, czyli wysyłasz tą samą komendę odczytu kilka razy w ciągu sekundy - wysyłasz kolejną zanim w kolejce zostanie obsłużona poprzednia.
Wydłuż scan_interval. Pokaż te błędy.
Już wiem dlaczego, testowałem to wyrzucając wszystkie inne wpisy, a zostawiając jeden. Problemem jest taki:
Wysyłając komendę 10 - otwarte okna, rekuperator przechodzi w ten tryb potwierdza i wszystko super.
switches:
- name: "Rekuperator Okna" #specialMode # 10 - OTWARTE OKNA
scan_interval: 1
slave: 10
address: 4224
command_on: 0xA
command_off: 0x0
verify:
Natomiast, pozostałe tryby dostają niespodziewaną odpowiedź bo przychodzi “10”, a spodziewa się odpowiednio innej liczby, jeżeli dodasz ten switch raz to wszystko działa, zarówno hex, i dec, ale jak dodasz go kilka razy, jako wietrzenie, okna itd., to w jednym przypadku jest ok, a w pozostałych pojawia się błąd, bo spodziewa się 0 dla off, ale różnej wartości dla on, a jak pojawia się inna niż wpisana to pokazuje się ten błąd, a że masz różne tryby to przychodzi różna wartość, chyba jedyne rozwiązanie to nie weryfikować, a stan odczytywać jako sensor i odpowiednio do stanu z sensora ustawiać stan przycisku, ale to zabawa bezsensu lepsze rozwiązanie to olać ten błąd, który nie jest błędem, teraz to sobie przypomniałem już w zeszłym roku z tym walczyłem i doszedłem do tych samych wniosków i po prostu wyłączyłem logi
Wyłączenie verify powoduje, że jeśli w trakcie pracy trybu specjalnego dokonamy restartu HA to przycisk nie świeci się, można dojść jak pracuje rekuperator na podstawie sensora, jednak w takiej sytuacji chyba lepiej jest zmniejszyć częstość odczytu rejestru i mieć taki błąd niż niepełną informację.
Może kiedyś ktoś się pokusi o dodanie innej obsługi przycisku, ja na ten moment jestem zbyt słaby technicznie
Poniżej zrzut błędu o które prosił RobinI30
Logger: homeassistant.components.modbus.base_platform
Source: components/modbus/base_platform.py:350
Integration: Modbus (documentation, issues)
First occurred: 23:45:38 (3 occurrences)
Last logged: 23:45:38
Unexpected response from modbus device slave 10 register 4224, got 0x a
Możesz zrobić manekiny przełączników modbus i za ich pomocą sterować. Stan tych manekinów ustawiał byś na podstawie odczytanego rejestru. Do tego służy platforma template
Gdy poczytasz to zobaczysz, że można połączyć klika encji ze sobą jako jeden funkcjonalny przełącznik.
W tym temacie zbytnio nie pomogę bo nie znam na tyle dobrze HA aby coś podrzucić. @artpc by wiedział.
Takie rzeczy robę inaczej.
Dziękuję, wygląda na to, że trzeba by pójść drogą o której piszesz.
Trafiłem na artykuł, który wydaje mi się, że opisuje częściowo podobną sytuację, z tymże na ten moment nie czuję się na tyle biegły aby to wykonać.
Wspomniany link.
Na początek możesz próbować stworzyć kilka switch template aby ich stan uaktualniał się na podstawie encji sensor.rekuperator_tryb_specjalny (bez sterowania). Później dołożysz do nich sterowanie i usuniesz valid. Możesz próbować bez ryzyka, że popsujesz to co dotychczas działa.
Ja mam problem z tą zmianą, jak zmienić ten kod by nie krzyczał:
configuration.yaml
template:
sensor:
- name: "Rekuperator Sprawność"
unique_id: "sensor.rekuperator_sprawnosc"
icon: "mdi:percent"
unit_of_measurement: "%"
state: >-
{% if is_state('binary_sensor.rekuperator_silownik_bypassu', 'off') %}
{% set t1 = states('sensor.rekuperator_temperatura_czerpnia') | float %}
{% set t2 = states('sensor.rekuperator_temperatura_nawiew') | float %}
{% set t3 = states('sensor.rekuperator_temperatura_wywiew') | float %}
{{ (((t2 - t1) / (t3 - t1)) * 100|float) | round(2, default=0) }}
{% else %}
0
{% endif %}
- name: "Rekuperator Wysterowanie Nawiew"
unique_id: "sensor.rekuperator_wysterowanie_nawiew"
icon: "mdi:percent"
unit_of_measurement: "%"
state: >
{% set flowN = states('sensor.rekuperator_strumien_nawiew') | float %}
{{ ((flowN * 100) / 320 |float) | round(2, default=0) }}
- name: "Rekuperator Wysterowanie wywiew"
unique_id: "sensor.rekuperator_wysterowanie_wywiew"
icon: "mdi:percent"
unit_of_measurement: "%"
state: >
{% set flowW = states('sensor.rekuperator_strumien_wywiew') | float %}
{{ ((flowW * 100) / 320|float) | round(2, default=0) }}
- name: "Rekuperator Odzyskana Moc"
unique_id: "sensor.rekuperator_odzyskana_moc"
icon: "mdi:counter"
unit_of_measurement: "W"
state: >-
{% if is_state('binary_sensor.rekuperator_silownik_bypassu', 'off') %}
{% set strumienN = states('sensor.rekuperator_strumien_nawiew') | float %}
{% set tcz = states('sensor.rekuperator_temperatura_czerpnia') | float %}
{% set tn = states('sensor.rekuperator_temperatura_nawiew') | float %}
{% if states('sensor.rekuperator_temperatura_czerpnia')|float < states('sensor.rekuperator_strumien_nawiew')|float %}
{{ ((((tn - tcz) * strumienN * 1200) / 3600)|float) | round(2, default=0) }}
{% else %}
{{ (((((tn - tcz) * strumienN * 1200) / 3600) * -1)|float) | round(2, default=0) }}
{% endif %}
{% else %}
0
{% endif %}
A co on krzyczy ? Nic nie słyszę.
W YAML ważna jest ilość spacji na początku tak aby “robiło się drzewko” czyli najwyższy parametr startuje od początku linii, a każdy “podparametr” ma wcięcie, ten błąd dotyczy się tych wcięć. Zainstaluj sobie dodatek do HA File Editor - on podpowiada gdzie jest błąd.
Ten kod jest zamieszczony w twoim pliku configuration.yaml ? Jeżeli tak to błędy mogą być randomowe. Staraj się nie wrzucać wszystkiego do configuration.yaml tylko rozdziel swoje pliki, poczytaj o include
, packages
https://forum.arturhome.pl/t/package-w-home-assistant/707
Łatwiej jest zapanować nad konfiguracją i poszukiwaniem błędów w pojedynczej konfiguracji jakiegoś urządzenia, sensora ,template…
a to nie jest problem związany z tą zmianą?
Rozumiem, że to jakiś wojenny projekt i będziesz kapał informacjami do śmierci.
Jak na razie to wiadomo, że coś oczekuje zmiennej tablicowej zamiast tego dostaje coś?