Your manually configured MQTT binary_sensor(s) needs attention

Cześć,
nie mogę ogarnąć tej nowej składni. Mam ostrzeżenie jak w temacie.
W pliku configuration.yaml mam:

binary_sensor: !include binary-sensors.yaml

A plik binary-sensors.yaml wygląda po tak (za dokumentacją):

mqtt:
  - name: "Kuchnia ruch"
    unique_id: 5
    state_topic: "ESP_Kuchnia_0/Ruch/State"
    device_class: motion
    payload_on: "1"
    payload_off: "0"

Co robię źle?

https://www.youtube.com/watch?v=SKvuW5mUVJU&t=18s

gość ma plik mqtt.yaml więc pomija mqtt:
Rozumiem, że ja, skoro mam zdefiniowany plik dla binary sensorów, pomijam binary_sensor:
?

Ja mam tak

no wygląda podobnie tylko Ty masz to w pliku mqtt a ja w binary_sensor

W binary mam inne ale nie te które pochodzą z platformy mqtt
aqaq

Tak pomijasz bo już zdefiniowałeś przedrostek

może ktoś ma jeszze jakiś pomysł co jest nie tak?

Jeśli chcesz aby wszystkie wpisy dotyczące mqtt znalazły się w jednym pliku to proponuję, zdefiniuj w pliku configuration.yaml wpis:

mqtt: !include mqtt.yaml

następnie stwórz plik:

mqtt.yaml

W utworzonym powyżej pliku zamieść wpisy:

binary_sensor:
  - name: "Kuchnia ruch"
    unique_id: 5
    state_topic: "ESP_Kuchnia_0/Ruch/State"
    device_class: motion
    payload_on: "1"
    payload_off: "0"

Następnie usuń/wykasuj powyższy wpis z miejsca gdzie go miałeś wcześniej zdefiniowanego.

Ja chcę aby wszystkie wpisy dotyczące przełączników binarnych znalazły się w jednym pliku, niezależnie od platformy. Analogicznie dla przełączników i czujników.
W tej chwili to działa. Czy tak nie będzie można od wersji 2022.12?

Można to zapisać tak, nie sprawdzałem

Sprawdzone

mqtt:
  sensor: !include_dir_merge_list entities/mqtt/sensor/
  binary_sensor: !include_dir_merge_list entities/mqtt/binary_sensor/
  switch: !include_dir_merge_list entities/mqtt/switch/

Stary format

sensor:
  - platform: mqtt
    name: "Balkon Temperatura"  
    state_topic: "balkon/out/temp"
    unit_of_measurement: '°C'
    value_template: "{{ value_json['obs']['temperature'] }}"

Usuwamy linie - platform:mqtt

sensor:
  name: "Balkon Temperatura"  
  state_topic: "balkon/out/temp"
  unit_of_measurement: '°C'
  value_template: "{{ value_json['obs']['temperature'] }}"

następnie wstawiamy myślnik przed nazwą i dodajemy spację

Prawidłowy format

sensor:
  - name: "Balkon Temperatura"  
    state_topic: "balkon/out/temp"
    unit_of_measurement: '°C'
    value_template: "{{ value_json['obs']['temperature'] }}"
1 Like

Kurczę, upatruję tu jakichś błędów w HA.
Dzisiaj zainstalowałem 2022.9.6 gdzie teoretycznie były jakieś zmiany w związku z nowym schematem

Refactor MQTT tests to use modern platform schema

no i teraz gdy mam:

mqtt:
  - name: "Kuchnia ruch"
    unique_id: 5
    state_topic: "ESP_Kuchnia_0/Ruch/State"
    device_class: motion
    payload_on: "1"
    payload_off: "0"

to błędu nie ma, ale czujniki nie działają.
A gdy mam:

- platform: mqtt
  name: "Kuchnia ruch"
  unique_id: 5
  state_topic: "ESP_Kuchnia_0/Ruch/State"
  device_class: motion
  payload_on: "1"
  payload_off: "0"

Wykazuje błąd (jak w temacie), ale czujniki działają.
i bądź tu mądry…

skoro to czujniki, to gdzie masz sensor:

Z dokumentacji wydaje się że tak można:

Prawdopodobnie jedyna metoda to zastosować rozwiązanie zaproponowane przez @artpc

Spróbuj sobie wyobrazić jak wygląda parsowanie takich zagnieżdżonych plików - wszystkie wymagania składni muszą zostać spełnione dla takiego “wynikowego pliku configuration.yaml” powstałego z podstawień wszystkich zagnieżdżonych konfiguracji w jedną całość.