ESPHome Sensor per MQTT einbinden

Begonnen von Astrofreak85, 21 Juni 2023, 13:58:07

Vorheriges Thema - Nächstes Thema

Astrofreak85

Hi,

aus dirv. Gründen bin ich auf einem meiner ESP von ESPEasy zu ESPHome gewechselt.
U.A. da ich noch eine Homeassistant Instanz hab und die Integrations recht gut ist.
Nun will ich die Werte vom Sensor aber auch weiterhin in FHEM haben.

Hab in der ESPHome Config MQTT aktiviert

mqtt:
  broker: 172.16.4.40

Im FHEM wurde das device per Autoconfig angelegt:

define MQTT2_espkeller_3c71bf28faa0 MQTT2_DEVICE espkeller_3c71bf28faa0
attr MQTT2_espkeller_3c71bf28faa0 readingList espkeller_3c71bf28faa0:espkeller/debug:.* debug\
espkeller_3c71bf28faa0:homeassistant/sensor/espkeller/keller_temperature/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }\
espkeller_3c71bf28faa0:espkeller/sensor/keller_temperature/state:.* state\
espkeller_3c71bf28faa0:homeassistant/sensor/espkeller/keller_humidity/config:.* { json2nameValue($EVENT, 'config_', $JSONMAP) }\
espkeller_3c71bf28faa0:espkeller/sensor/keller_humidity/state:.* state\
espkeller_3c71bf28faa0:espkeller/status:.* status
attr MQTT2_espkeller_3c71bf28faa0 room MQTT2_DEVICE
#  CFGFN     
#  CID        espkeller_3c71bf28faa0
#  DEF        espkeller_3c71bf28faa0
#  FUUID      6492e1df-f33f-1d65-11aa-630e5592bf4955ca
#  IODev      myBroker
#  LASTInputDev myBroker
#  MSGCNT    183
#  NAME      MQTT2_espkeller_3c71bf28faa0
#  NR        47770
#  STATE      58.8
#  TYPE      MQTT2_DEVICE
#  eventCount 189
#  myBroker_CONN myBroker_172.16.4.87_59820
#  myBroker_MSGCNT 183
#  myBroker_TIME 2023-06-21 13:55:00
#  READINGS:
#    2023-06-21 13:41:19  IODev          myBroker
#    2023-06-21 13:41:19  config_avty_t  espkeller/status
#    2023-06-21 13:41:19  config_dev_cla  humidity
#    2023-06-21 13:41:19  config_dev_ids  3c71bf28faa0
#    2023-06-21 13:41:19  config_dev_mdl  esp01_1m
#    2023-06-21 13:41:19  config_dev_mf  espressif
#    2023-06-21 13:41:19  config_dev_name espkeller
#    2023-06-21 13:41:19  config_dev_sw  esphome v2023.5.5 Jun 21 2023, 11:40:08
#    2023-06-21 13:41:19  config_name    Keller Humidity
#    2023-06-21 13:41:19  config_stat_cla measurement
#    2023-06-21 13:41:19  config_stat_t  espkeller/sensor/keller_humidity/state
#    2023-06-21 13:41:19  config_uniq_id  ESPsensorkeller_humidity
#    2023-06-21 13:41:19  config_unit_of_meas %
#    2023-06-21 13:55:00  debug          ␛[0;36m[D][sensor:093]: 'Keller Humidity': Sending state 58.80000 % with 1 decimals of accuracy␛[0m
#    2023-06-21 13:55:00  state          58.8
#    2023-06-21 13:41:19  status          online
#
setstate MQTT2_espkeller_3c71bf28faa0 58.8
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 IODev myBroker
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_avty_t espkeller/status
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_cla humidity
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_ids 3c71bf28faa0
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_mdl esp01_1m
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_mf espressif
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_name espkeller
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_dev_sw esphome v2023.5.5 Jun 21 2023, 11:40:08
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_name Keller Humidity
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_stat_cla measurement
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_stat_t espkeller/sensor/keller_humidity/state
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_uniq_id ESPsensorkeller_humidity
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 config_unit_of_meas %
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:55:00 debug ␛[0;;36m[D][sensor:093]: 'Keller Humidity': Sending state 58.80000 % with 1 decimals of accuracy␛[0m
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:55:00 state 58.8
setstate MQTT2_espkeller_3c71bf28faa0 2023-06-21 13:41:19 status online


Wie man sieht liefert der sensor Temperatur und Luftfeuchte, im State steht aber immer nur die Luftfeuchte...

Im Logfile sieht das wie folgt aus:

2023-06-21_13:56:00 MQTT2_espkeller_3c71bf28faa0 debug: ␛[0;36m[D][sensor:093]: 'Keller Temperature': Sending state 26.70000 °C with 1 decimals of accuracy␛[0m
2023-06-21_13:56:00 MQTT2_espkeller_3c71bf28faa0 26.7
2023-06-21_13:56:00 MQTT2_espkeller_3c71bf28faa0 debug: ␛[0;36m[D][sensor:093]: 'Keller Humidity': Sending state 61.90000 % with 1 decimals of accuracy␛[0m
2023-06-21_13:56:00 MQTT2_espkeller_3c71bf28faa0 61.9

ich befürchte da muss entweder im ESP oder in FHEM noch was konfiguriert werden, ein fertiges template passt hier vermutlich nich...

Weiß halt nurnich genau was ich tun wo am besten tun muss, das ich die Werte getrennt bekomme...

RalfRog

#1
Vermutlich weil das Reading state überschrieben wird.
  • zuerst wird es mit der Temperature befüllt (espkeller_3c71bf28faa0:espkeller/sensor/keller_temperature/state:.* state\)
  • dann mit der Humidity (espkeller_3c71bf28faa0:espkeller/sensor/keller_humidity/state:.* state\)

Nenn sie z.B. state_temp und state_hum (oder temperature und humidity) - die Webdarstellung kann mit dem Attribut "stateFormat" angepasst werden.

Gruß Ralf
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

Astrofreak85

Ach klar, manchmal is man aber auch blind :o ...oder man nennt es gleich "temperature" und "humidity"