Aktualizacja HA EspEasy MQTT

Witam,
Odczyt z DS18b20 podpietych do D1mini zgodnie z tutorialem Konfiguracja ESP Easy dla Home Assistant przez MQTT
Dziłało swietnie ale zachciało się aktualizacji. Na oficjalnej stronie HA i licznych forach doczytalem że zmieniła się składnia mqtt ale u mnie po zmianie skladni ha zglasza błędy.
Po aktualizacji HA niewidzi encji termometrów ale niezgłasza błedów. Po zmianie składni zgłasza błędy.

- mqtt:
    sensor:
    -name: "TemperaturaZasilanie"
  state_topic: "home/D1mini/Zasilanie/Temperature"
  value_template: "{{ value_json.temperature }}" 
  unit_of_measurement: "ºC"
 
- mqtt:
    sensor: 
    -name: "TemperaturaWodaDol"
  state_topic: "home/D1mini/WodaDol/Temperature"
  availability_topic: 'home/D1mini/LWT' 
  unit_of_measurement: "ºC"
  
- platform: mqtt
  name: "TemperaturaZewnatrz"
  state_topic: "home/D1mini/zewnatrz/Temperature"
  availability_topic: 'home/D1mini/LWT' 
  unit_of_measurement: "ºC"
  
- platform: mqtt
  name: "TempSalonPo"
  state_topic: "home/TempSalon/TempSalonPo/Temperature"
  availability_topic: 'home/TempSalon/LWT' 
  unit_of_measurement: "ºC"

Nie wiem do końca jak ma wyglądać nowa składnia wiec próbowałem różne warianty. 1 i 2 sensor ha zgłasza błedy a 3 stara składnia.


Czy ktoś już zmieniał skłądnie pod termometry? Jakiś może działający przykłąd?
Pozdrawiam

Wklej kod zamiast zrzutów ekranu.

Dzieki za link temat rozwiazany. W moim wypadku niebyła konieczna zmiana w pliku configuration.yaml
(sensor: !include_dir_merge_list sensor działa poprawnie)
Musiałęm tylko zmienić plik mqtt.yaml który mam w folderze sensor:

sensor:
  - name: "TemperaturaZasilanie"
    state_topic: "home/D1mini/Zasilanie/Temperature"
    availability_topic: 'home/D1mini/LWT'
    unit_of_measurement: "ºC"
 
  - name: "TemperaturaWodaDol"
    state_topic: "home/D1mini/WodaDol/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "TemperaturaWoda"
    state_topic: "home/D1mini/Woda/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "TemperaturaPowrot"
    state_topic: "home/D1mini/Powrot/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "TemperaturaPiec"
    state_topic: "home/D1mini/Piec/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "TemperaturaPowrotPiec"
    state_topic: "home/D1mini/PowrotPiec/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "Cisnienie"
    state_topic: "home/D1mini/zewnatrz/Pressure"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "hPa"
  
  - name: "TemperaturaZewnatrz"
    state_topic: "home/D1mini/zewnatrz/Temperature"
    availability_topic: 'home/D1mini/LWT' 
    unit_of_measurement: "ºC"
  
  - name: "TempSalonPo"
    state_topic: "home/TempSalon/TempSalonPo/Temperature"
    availability_topic: 'home/TempSalon/LWT' 
    unit_of_measurement: "ºC"

Wazny był dopisek "sensor:’ na poczatku. Wrzucam jeszcze podglad ustawien esp


Jeżeli ktoś chce sprawdzić czy MQtt i np. esp jest poprawnie skonfigurowany wystarczy w ustawieniach w nasłuchu wpisać # bedziemy widzieli co jest nadawane i odbierane:

Ja wolę programik

1 Like

Kilka dni temu zrobiłem aktualizacje HA do nowej wersji i wysypały mi się urządzenia z tasmoty i mqtt. Nie idzie ich wczytać ponownie. Czy ktoś miał taki problem? Jak to naprawić?

A z jakiej wersji robiłeś aktualizację , nie piszesz, ale w międzyczasie zmieniła się konfiguracja sensorów mqtt, może Ciebie dotyczy ?
kilka postów wyżej masz podlinkowaną przez @angler dokumentację MQTT sensor, a na forum kilka wątków w temacie zmiany “starego” formatu na “nowy” → lupka w prawym górnym rogu → szukaj.

1 Like

Robiłem z wersji 2022.10.5 MQTT póki co wyłączyłem i konfigurację mam prawidłową lecz podczas uruchamiania wywala mi błąd jak na zrzucie ekranu

No to uzupełnij to czego brakuje w Twojej konfiguracji, czyli max_age i/lub sampling_size wg przykładu z dokumentacji

  - platform: statistics
    name: "Processor mean over last 24 hours"
    entity_id: sensor.processor_temperature
    state_characteristic: mean
    max_age:
      hours: 24

Z mojej konfiguracji dla platform: statistics

- platform: statistics
    name: "Średnia Dzienna Temperatura Zewnętrzna"
    unique_id: outdoor_temperature_daily_average
    entity_id: sensor.pogoda_balkon_temperature
    state_characteristic: mean
    sampling_size: 5000
    max_age:
      days: 1
    precision: 1

  - platform: statistics
    name: "Dziena Wysoka Temperatura Zewnętrzna"
    unique_id: outdoor_temperature_daily_high
    entity_id: sensor.pogoda_balkon_temperature
    state_characteristic: value_max
    sampling_size: 5000
    max_age:
      days: 1
    precision: 1

  - platform: statistics
    name: "Najwyższa Dzienna Temperatura Zewnętrzna"
    unique_id: outdoor_temperature_daily_high_time
    entity_id: sensor.pogoda_balkon_temperature
    state_characteristic: datetime_value_max
    sampling_size: 5000
    max_age:
      days: 1
1 Like

Niestety nie umiem sobie poradzić z tym. Wrzucam plik może pomożecie:


# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate
frontend:
  themes: !include_dir_merge_named themes

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor.statistic: !include_dir_merge_list sensor.statistics
#garbage_collection: !include smieci.yaml
#modbus: !include ropam_n64_ha.yaml
#switch: !include switches.yaml
#utility_meter: !include utility_meter.yaml



#adb_service:
#  host: 192.168.2.125

    
modbus:
  - name: hub1
    close_comm_on_error: true
    delay: 5
    timeout: 5
    type: tcp  
    host: 192.168.2.15
    port: 502'
    sensor.statistics:                  #inputs (e.g. temp., hum., time)
#temperature sensor.statistics (begin)
 
      - name: SALON-alarm  #Nazwa encji
        unit_of_measurement: °C     #Nazwa jednostki pomiarowej
        precision: 1                #Ilość cyfr wyśiwtlanych po przecinku
        slave: 10
        scale: 0.1                  #Liczba przez jaką są monożone dane przed wyświetleniem
        input_type: input          #Rodzaj rejestru modbusa z jakiego są pobierane dane
        scan_interval: 30           #Czas pomiędzy kolejnymi odczytami danego rejestru
        data_type: uint16           #Rodzaj odczytywanych danych
        address: 1                  #Adres danych w rejestrze modbus
     
      - name: PODWÓRKO-alarm  #Nazwa encji
        unit_of_measurement: °C     #Nazwa jednostki pomiarowej
        precision: 1                #Ilość cyfr wyśiwtlanych po przecinku
        slave: 10
        scale: 0.1                  #Liczba przez jaką są monożone dane przed wyświetleniem
        input_type: input          #Rodzaj rejestru modbusa z jakiego są pobierane dane
        scan_interval: 30           #Czas pomiędzy kolejnymi odczytami danego rejestru
        data_type: uint16           #Rodzaj odczytywanych danych
        address: 0
        #write_type: coil
#GSM signal level (begin)
      - name: poziom GSM
        slave: 10
        input_type: input
        address: 14
        #write_type: coil
        data_type: uint16     
#GSM signal level (end)
#Date (begin)
      - name: _minuta 
        slave: 10
        input_type: input
        unit_of_measurement: ""
        address: 40
        #write_type: coil
        data_type: uint16
      - name: _godzina  
        slave: 10
        input_type: input
        unit_of_measurement: ""
        address: 41
        #write_type: coil
        data_type: uint16
      - name: _dzien   
        slave: 10
        unit_of_measurement: ""
        input_type: input
        address: 42
        #write_type: coil
        data_type: uint16
      - name: _miesiac  
        slave: 10
        input_type: input
        unit_of_measurement: ""
        address: 43
        #write_type: coil
        data_type: uint16
      - name: _rok
        slave: 10
        input_type: input
        unit_of_measurement: ""
        address: 44
        #write_type: coil
        data_type: uint16     
#Date (end)
#Error sensor.statistic (begin)
      - name: _awarie1
        slave: 10
        input_type: input
        address: 50
        #write_type: coil
        data_type: uint16
      - name: _awarie2   
        slave: 10
        input_type: input
        address: 51
        #write_type: coil
        data_type: uint16
      - name: _awarie3
        slave: 10
        input_type: input
        address: 52
        #write_type: coil
        data_type: uint16
      - name: _awarie4
        slave: 10
        input_type: input
        address: 53
        #write_type: coil
        data_type: uint16   
       
#Error sensor.statistic (end)
    binary_sensor.statistics:
      - name: "KUCHNIA"
        address: 0
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
      - name: "SALON"
        address: 1
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
      - name: "WIATROŁAP"
        address: 2
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
      - name: "SCHODY"
        address: 3
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255    
      - name: "KOTŁOWNIA"
        address: 4
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
      - name: "GARAŻ"
        address: 5
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255   
      - name: "KONTRAKTON"
        address: 6
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
      - name: "CZUJNIK ZMIERZCHU"
        address: 7
        #write_type: coil
        sampling_size: 5000
        scan_interval: 1
        input_type: discrete_input
        slave: 255
        
    switches:
      - name: grzałka
        scan_interval: 1
        slave: 10
        address: 5
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
      - name: światło wiatrołap
        scan_interval: 1
        slave: 10
        address: 9
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
        
      - name: Rolety w dół
        scan_interval: 1
        slave: 10
        address: 3
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
      - name: Parter w górę
        scan_interval: 1
        slave: 10
        address: 4
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
      - name: Piętro w górę
        scan_interval: 1
        slave: 10
        address: 7
        write_type: coil
        command_on: 1
        command_off: 0
        verify:        
      - name: Roleta Sypialnia
        scan_interval: 1
        slave: 10
        address: 12
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
      - name: Gniazdko TV
        scan_interval: 1
        slave: 10
        address: 6
        write_type: coil
        command_on: 1
        command_off: 0
        verify: 
      - name: Brama garażowa
        scan_interval: 1
        slave: 10
        address: 14
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
      - name: Cyrkulacja
        scan_interval: 1
        slave: 10
        address: 15
        write_type: coil
        command_on: 1
        command_off: 0
        verify:   
      - name: ZAŁ/WYŁ czujwanie
        scan_interval: 1
        slave: 10
        address: 16
        write_type: coil
        command_on: 1
        command_off: 0
        verify:   
      - name: OŚ wiatrołap- wyswolenie
        scan_interval: 1
        slave: 10
        address: 17
        write_type: coil
        command_on: 1
        command_off: 0
        verify:   

climate:
  - platform: tasmota_irhvac
    name: HEIKO
    command_topic: "cmnd/%topic%/irhvac"
    state_topic: "tele/%topic%/RESULT"
    temperature_sensor.statistic: sensor.statistic.przekaznik_dht11_temperature #optional this sensor.statistic is used to display current temp on the AC card
    protocol: "HAIER_AC_YRW02"
    min_temp: 16 #optional - default 16 int value
    max_temp: 30 #optional - default 32 int value
    target_temp: 26 #optional - default 26 int value
    initial_operation_mode: heat #"off" #heat # optional - default "off" string value
    #away_temp: 25 #optional - default 24 int value
    precision: 1 #optional - default 1.0 float value
    supported_modes:
      - heat
      # cool
      #- dry
      #-fan_only
      #- auto
      - "off" #Turns the AC off - Should be quoted and should be always included here
    #supported_target_temps:
     # - 24
     # - 25
      #- 26
    #  - 27
    # - 28
      #- 29
      #- 30
    supported_fan_speeds:
      - low
      #- max
     # - medium
      # - high
      #- middle
      #- focus
      #- diffuse
      #- min
      #- auto
    supported_swing_list:
      - "off"
      - vertical #up to down
     # - horizontal # Left to right - remove if your AC does not support it
      #- both # remove if your AC does not support horizontal
    default_quiet_mode: "Off" #optional - default "Off" string value
    #default_power_mode: "On"
    default_turbo_mode: "Off" #optional - default "Off" string value
    default_econo_mode: "Off" #optional - default "Off" string value
    hvac_model: "-1" #optional - default "1" string value
    celsius_mode: "On" #optional - default "On" string value
    default_light_mode: "Off" #optional - default "Off" string value
    default_filter_mode: "Off" #optional - default "Off" string value
    default_clean_mode: "Off" #optional - default "Off" string value
    default_beep_mode: "Off" #optional - default "Off" string value
    default_sleep_mode: "-1" #optional - default "-1" string value
    default_swingv: "low" #optional - default "" string value
    default_swingh: "off" #optional - default "" string value 
    
   # bojler
  - platform: generic_thermostat
    name: Bojler 
    heater: switch.grzalka
    target_sensor.statistic: sensor.statistic.temperature_4 #sensor.statistic.brodlink_temperature
    min_temp: 36
    max_temp: 50
    ac_mode: false
    target_temp: 40
    cold_tolerance: 3
    hot_tolerance: 4
    min_cycle_duration:
      seconds: 240
    keep_alive:
      minutes: 4
    initial_hvac_mode: "heat" #"off" #"heat"
    #away_temp: 42
    precision: 0.1 
    
    # termostat kaloryfery
  - platform: generic_thermostat
    name: Kaloryfery 
    heater: switch.sonoff_10015aa717_2
    target_sensor.statistic: sensor.statistic.statistic.przekaznik_dht11_temperature #sensor.statistic.statistic.brodlink_temperature
    min_temp: 21
    max_temp: 26
    ac_mode: false
    target_temp: 23.5
    cold_tolerance: 0.3
    hot_tolerance: 0.2
    min_cycle_duration:
      seconds: 240
    keep_alive:
      minutes: 4
    initial_hvac_mode: "heat" #"off" #"heat"
    #away_temp: 42
    precision: 0.1 

 

utility_meter:
  pc_godzina:
    name: PC godzina kWh
    source: sensor.statistic.statistic.pompa_ciepla_energy
    cycle: hourly
    
  pc_dzien:
    name: PC dzień kWh
    source: sensor.statistic.statistic.pompa_ciepla_energy
    cycle: daily
    
  pc_miesiac:
    name: PC miesiąc kWh
    source: sensor.statistic.statistic.pompa_ciepla_energy
    cycle: monthly
    
  pc_rok:
    name: PC rok kWhk
    source: sensor.statistic.pompa_ciepla_energy
    cycle: yearly    
    


#template:
#  - sensor.statistic:
#     - name: "delta"
#        unit_of_measurement: "°C"
#        state: >
# 
#          {{ ((sensor.statistic.temperature_3 - sensor.statistic.temperature_5) | round(1, default=0) }}
#template:
#  - sensor.statistic:
#      - name: "cop"
#        unit_of_measurement: "°"
#        state: >
#  
#          {{ (states('sensor.statistic.roznica_temp_co') | float * 600 * 975 * 4.1899 / 3600) / states('sensor.statistic.pompa_ciepla_power') |float }} 
       
          
supla:
  servers:
    - server: svr9.supla.org
      access_token: MzlmYjM3MDExN2I3MjQxNzhjMWEyNTQ5Y2VlZWQ4ZmM2N2EzMTcwMjY4MmIzZWRkZmFjY2Q2NDM3NTkyYTdmMg.aHR0cHM6Ly9zdnI5LnN1cGxhLm9yZw==

Nie ma czegoś takiego jak sensor.statistic: w sekcji include
Musisz użyć takiego zapisu:
sensor: !include sensor.yaml lub
sensor: !include_dir_merge_list sensors/ gdzie sensors to katalog zawierający pliki konfiguracyjne *.yaml
nazwę sensor.yaml możesz nazwać np. sensor_statistics.yaml .

Czas zrobić porządek w twoim pliku configuration.yaml

Zapoznaj się z packages: !include_dir_named packages/

https://forum.arturhome.pl/t/package-w-home-assistant/707

https://forum.arturhome.pl/t/porzadki-w-configuration-yaml/6306

https://forum.arturhome.pl/t/template-sensors/2753/4

Rozumiem że po aktualizacji to już tego nie ma? Bo wcześniej działało.

W takim razie użyję tego: sensor: !include_dir_merge_list sensors bo mam katalog sensors a w nim mam kilka plików np. platform: statistics , platform: template, platform: systemmonitor.
Czy to tak mogę mięć?

Tak zachowując odpowiednie formatowanie.
Moje pliki w packages wyglądają tak:

sensor:
  - platform: filter # https://www.home-assistant.io/integrations/filter/
    name: "Filtrowana Temperatura Zewnętrzna"
    entity_id: sensor.pogoda_balkon_temperature
    filters:
      - filter: lowpass
        time_constant: 10
        precision: 1 


  - platform: statistics
    name: "Średnia Dzienna Temperatura Zewnętrzna"
    unique_id: outdoor_temperature_daily_average
    entity_id: sensor.pogoda_balkon_temperature
    state_characteristic: mean
    sampling_size: 5000
    max_age:
      days: 1
    precision: 1

  - platform: statistics
    name: "Dziena Wysoka Temperatura Zewnętrzna"
    unique_id: outdoor_temperature_daily_high
    entity_id: sensor.pogoda_balkon_temperature
    state_characteristic: value_max
    sampling_size: 5000
    max_age:
      days: 1
    precision: 1

Tutaj też są dwie konstrukcje “stara” i “nowa”