Template für ESP8266 mit DS18B20 und DHT22

Begonnen von z0lt1, 17 Juni 2021, 23:01:00

Vorheriges Thema - Nächstes Thema

z0lt1

Hi, ich betreibe mehrere ESP8266 mit Tasmota und diversen Sensoren. Gibt es eine einfache Möglichkeit die unten gelisteten Devices etwas schöner darzustellen (Template oder sowas)? Evtl. auch die ganzen Readings die ich als normaler User nicht benötige einfach zu löschen? Bin aufgrund der einfacheren Bedienung von Mosquitto zu MQTT2_SERVER gewechselt. Jedoch werden bei MQTT2_Server so viele Readings erzeugt, die ich als "Normalsterblicher" nicht brauche

Hier die list der Devices
Internals:
   CFGFN     
   CID        DVES_55B2D4
   DEF        DVES_55B2D4
   DEVICETOPIC dr_Pool.Temperatur
   FUUID      60cbaeab-f33f-d024-f2b3-09964be1dfbe3821
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 23
   MQTT2_FHEM_Server_TIME 2021-06-17 23:00:12
   MSGCNT     23
   NAME       dr_Pool.Temperatur
   NR         284
   STATE      28.4°C
   TYPE       MQTT2_DEVICE
   READINGS:
     2021-06-17 23:00:12   DS18B20_Id      0120500854A7
     2021-06-17 23:00:12   DS18B20_Temperature 28.4
     2021-06-17 22:25:10   FallbackTopic   cmnd/DVES_55B2D4_fb/
     2021-06-17 22:25:10   GroupTopic      cmnd/tasmotas/
     2021-06-17 23:00:12   Heap            26
     2021-06-17 22:25:10   Hostname        DVES_55B2D4-4820
     2021-06-17 22:20:59   IODev           MQTT2_FHEM_Server
     2021-06-17 22:25:10   IPAddress       192.168.178.95
     2021-06-17 22:25:07   LWT             Online
     2021-06-17 23:00:12   LoadAvg         19
     2021-06-17 22:25:10   Module          Generic
     2021-06-17 23:00:12   MqttCount       1
     2021-06-17 22:25:10   POWER           
     2021-06-17 22:25:10   RestartReason   Software/System restart
     2021-06-17 23:00:12   Sleep           50
     2021-06-17 23:00:12   SleepMode       Dynamic
     2021-06-17 23:00:12   TempUnit        C
     2021-06-17 23:00:12   Time            2021-06-17T22:00:11
     2021-06-17 23:00:12   Uptime          0T00:35:09
     2021-06-17 23:00:12   UptimeSec       2109
     2021-06-17 22:25:10   Version         9.1.0(tasmota)
     2021-06-17 22:25:10   WebServerMode   Admin
     2021-06-17 23:00:12   Wifi_AP         1
     2021-06-17 23:00:12   Wifi_BSSId      24:65:11:EF:60:5D
     2021-06-17 23:00:12   Wifi_Channel    6
     2021-06-17 23:00:12   Wifi_Downtime   0T00:00:03
     2021-06-17 23:00:12   Wifi_LinkCount  1
     2021-06-17 23:00:12   Wifi_RSSI       52
     2021-06-17 23:00:12   Wifi_SSId       Z-Net
     2021-06-17 23:00:12   Wifi_Signal     -74
     2021-06-17 22:25:10   btn_1           0
     2021-06-17 22:25:10   btn_2           0
     2021-06-17 22:25:10   btn_3           0
     2021-06-17 22:25:10   btn_4           0
     2021-06-17 22:25:10   dn              Tasmota
     2021-06-17 22:25:10   fn_1            Tasmota
     2021-06-17 22:25:10   ft              %prefix%/%topic%/
     2021-06-17 22:25:10   hn              DVES_55B2D4-4820
     2021-06-17 22:25:10   if              0
     2021-06-17 22:25:10   ip              192.168.178.95
     2021-06-17 22:25:10   lk              1
     2021-06-17 22:25:10   lt_st           0
     2021-06-17 22:25:10   mac             C45BBE55B2D4
     2021-06-17 22:25:10   md              Generic
     2021-06-17 22:25:10   ofln            Offline
     2021-06-17 22:25:10   onln            Online
     2021-06-17 22:25:10   rl_1            0
     2021-06-17 22:25:10   rl_2            0
     2021-06-17 22:25:10   rl_3            0
     2021-06-17 22:25:10   rl_4            0
     2021-06-17 22:25:10   rl_5            0
     2021-06-17 22:25:10   rl_6            0
     2021-06-17 22:25:10   rl_7            0
     2021-06-17 22:25:10   rl_8            0
     2021-06-17 22:25:10   sn_DS18B20_Id   0120500854A7
     2021-06-17 22:25:10   sn_DS18B20_Temperature 28.6
     2021-06-17 22:25:10   sn_TempUnit     C
     2021-06-17 22:25:10   sn_Time         2021-06-17T21:25:08
     2021-06-17 22:25:10   so_11           0
     2021-06-17 22:25:10   so_114          0
     2021-06-17 22:25:10   so_13           0
     2021-06-17 22:25:10   so_17           0
     2021-06-17 22:25:10   so_20           0
     2021-06-17 22:25:10   so_30           0
     2021-06-17 22:25:10   so_4            0
     2021-06-17 22:25:10   so_68           0
     2021-06-17 22:25:10   so_73           0
     2021-06-17 22:25:10   so_82           0
     2021-06-17 22:25:10   state_1         OFF
     2021-06-17 22:25:10   state_2         ON
     2021-06-17 22:25:10   state_3         TOGGLE
     2021-06-17 22:25:10   state_4         HOLD
     2021-06-17 22:25:10   sw              9.1.0
     2021-06-17 22:25:10   swc_1           -1
     2021-06-17 22:25:10   swc_2           -1
     2021-06-17 22:25:10   swc_3           -1
     2021-06-17 22:25:10   swc_4           -1
     2021-06-17 22:25:10   swc_5           -1
     2021-06-17 22:25:10   swc_6           -1
     2021-06-17 22:25:10   swc_7           -1
     2021-06-17 22:25:10   swc_8           -1
     2021-06-17 22:25:10   t               DVES_55B2D4
     2021-06-17 22:25:10   tp_1            cmnd
     2021-06-17 22:25:10   tp_2            stat
     2021-06-17 22:25:10   tp_3            tele
     2021-06-17 22:25:10   ty              0
     2021-06-17 22:25:10   ver             1
Attributes:
   readingList DVES_55B2D4:tele/DVES_55B2D4/LWT:.* LWT
DVES_55B2D4:cmnd/DVES_55B2D4/POWER:.* POWER
DVES_55B2D4:tele/DVES_55B2D4/INFO1:.* { json2nameValue($EVENT) }
DVES_55B2D4:tele/DVES_55B2D4/INFO2:.* { json2nameValue($EVENT) }
DVES_55B2D4:tele/DVES_55B2D4/INFO3:.* { json2nameValue($EVENT) }
DVES_55B2D4:tasmota/discovery/C45BBE55B2D4/config:.* { json2nameValue($EVENT) }
DVES_55B2D4:tasmota/discovery/C45BBE55B2D4/sensors:.* { json2nameValue($EVENT) }
DVES_55B2D4:tele/DVES_55B2D4/STATE:.* { json2nameValue($EVENT) }
DVES_55B2D4:tele/DVES_55B2D4/SENSOR:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   stateFormat DS18B20_Temperature°C


und
Internals:
   CFGFN     
   CID        DVES_552E4A
   DEF        DVES_552E4A
   DEVICETOPIC bd_Klima
   FUUID      60cbaea9-f33f-d024-1834-5d1b856e1475ca76
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 14
   MQTT2_FHEM_Server_TIME 2021-06-17 22:56:01
   MSGCNT     14
   NAME       bd_Klima
   NR         276
   STATE      26.1 °C / 48.4 %
   TYPE       MQTT2_DEVICE
   READINGS:
     2021-06-17 22:56:01   AM2301_DewPoint 14.3
     2021-06-17 22:56:01   AM2301_Humidity 48.4
     2021-06-17 22:56:01   AM2301_Temperature 26.1
     2021-06-17 22:20:57   FallbackTopic   cmnd/DVES_552E4A_fb/
     2021-06-17 22:20:57   GroupTopic      cmnd/tasmotas/
     2021-06-17 22:56:01   Heap            26
     2021-06-17 22:20:57   Hostname        DVES_552E4A-3658
     2021-06-17 22:20:57   IODev           MQTT2_FHEM_Server
     2021-06-17 22:20:57   IPAddress       192.168.178.94
     2021-06-17 22:20:57   LWT             Online
     2021-06-17 22:56:01   LoadAvg         19
     2021-06-17 22:20:57   Module          Generic
     2021-06-17 22:56:01   MqttCount       1
     2021-06-17 22:20:57   POWER           
     2021-06-17 22:20:58   RestartReason   Software/System restart
     2021-06-17 22:56:01   Sleep           50
     2021-06-17 22:56:01   SleepMode       Dynamic
     2021-06-17 22:56:01   TempUnit        C
     2021-06-17 22:56:01   Time            2021-06-17T21:56:01
     2021-06-17 22:56:01   Uptime          0T00:36:04
     2021-06-17 22:56:01   UptimeSec       2164
     2021-06-17 22:20:57   Version         9.1.0(tasmota)
     2021-06-17 22:20:57   WebServerMode   Admin
     2021-06-17 22:56:01   Wifi_AP         1
     2021-06-17 22:56:01   Wifi_BSSId      24:65:11:EF:60:5D
     2021-06-17 22:56:01   Wifi_Channel    6
     2021-06-17 22:56:01   Wifi_Downtime   0T00:00:03
     2021-06-17 22:56:01   Wifi_LinkCount  1
     2021-06-17 22:56:01   Wifi_RSSI       100
     2021-06-17 22:56:01   Wifi_SSId       Z-Net
     2021-06-17 22:56:01   Wifi_Signal     -42
     2021-06-17 22:20:58   btn_1           0
     2021-06-17 22:20:58   btn_2           0
     2021-06-17 22:20:58   btn_3           0
     2021-06-17 22:20:58   btn_4           0
     2021-06-17 22:20:58   dn              Tasmota
     2021-06-17 22:20:58   fn_1            Tasmota
     2021-06-17 22:20:58   ft              %prefix%/%topic%/
     2021-06-17 22:20:58   hn              DVES_552E4A-3658
     2021-06-17 22:20:58   if              0
     2021-06-17 22:20:58   ip              192.168.178.94
     2021-06-17 22:20:58   lk              1
     2021-06-17 22:20:58   lt_st           0
     2021-06-17 22:20:58   mac             C45BBE552E4A
     2021-06-17 22:20:58   md              Generic
     2021-06-17 22:20:58   ofln            Offline
     2021-06-17 22:20:58   onln            Online
     2021-06-17 22:20:58   rl_1            0
     2021-06-17 22:20:58   rl_2            0
     2021-06-17 22:20:58   rl_3            0
     2021-06-17 22:20:58   rl_4            0
     2021-06-17 22:20:58   rl_5            0
     2021-06-17 22:20:58   rl_6            0
     2021-06-17 22:20:58   rl_7            0
     2021-06-17 22:20:58   rl_8            0
     2021-06-17 22:20:58   sn_AM2301_DewPoint 14.4
     2021-06-17 22:20:58   sn_AM2301_Humidity 45.3
     2021-06-17 22:20:58   sn_AM2301_Temperature 27.3
     2021-06-17 22:20:58   sn_TempUnit     C
     2021-06-17 22:20:58   sn_Time         2021-06-17T21:20:58
     2021-06-17 22:20:58   so_11           0
     2021-06-17 22:20:58   so_114          0
     2021-06-17 22:20:58   so_13           0
     2021-06-17 22:20:58   so_17           0
     2021-06-17 22:20:58   so_20           0
     2021-06-17 22:20:58   so_30           0
     2021-06-17 22:20:58   so_4            0
     2021-06-17 22:20:58   so_68           0
     2021-06-17 22:20:58   so_73           0
     2021-06-17 22:20:58   so_82           0
     2021-06-17 22:20:58   state_1         OFF
     2021-06-17 22:20:58   state_2         ON
     2021-06-17 22:20:58   state_3         TOGGLE
     2021-06-17 22:20:58   state_4         HOLD
     2021-06-17 22:20:59   subscriptions   cmnd/DVES_552E4A/# cmnd/DVES_552E4A_fb/# cmnd/tasmotas/#
     2021-06-17 22:20:58   sw              9.1.0
     2021-06-17 22:20:58   swc_1           -1
     2021-06-17 22:20:58   swc_2           -1
     2021-06-17 22:20:58   swc_3           -1
     2021-06-17 22:20:58   swc_4           -1
     2021-06-17 22:20:58   swc_5           -1
     2021-06-17 22:20:58   swc_6           -1
     2021-06-17 22:20:58   swc_7           -1
     2021-06-17 22:20:58   swc_8           -1
     2021-06-17 22:20:58   t               DVES_552E4A
     2021-06-17 22:20:58   tp_1            cmnd
     2021-06-17 22:20:58   tp_2            stat
     2021-06-17 22:20:58   tp_3            tele
     2021-06-17 22:20:58   ty              0
     2021-06-17 22:20:58   ver             1
Attributes:
   readingList DVES_552E4A:tele/DVES_552E4A/LWT:.* LWT
DVES_552E4A:cmnd/DVES_552E4A/POWER:.* POWER
DVES_552E4A:tele/DVES_552E4A/INFO1:.* { json2nameValue($EVENT) }
DVES_552E4A:tele/DVES_552E4A/INFO2:.* { json2nameValue($EVENT) }
DVES_552E4A:tele/DVES_552E4A/INFO3:.* { json2nameValue($EVENT) }
DVES_552E4A:tasmota/discovery/C45BBE552E4A/config:.* { json2nameValue($EVENT) }
DVES_552E4A:tasmota/discovery/C45BBE552E4A/sensors:.* { json2nameValue($EVENT) }
DVES_552E4A:tele/DVES_552E4A/STATE:.* { json2nameValue($EVENT) }
DVES_552E4A:tele/DVES_552E4A/SENSOR:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   stateFormat AM2301_Temperature °C / AM2301_Humidity %

Beta-User

#1
"Einfach" ist relativ, und für konkrete Hilfe müsste man zum einen wissen,
- welcher Wert über welchen Topic kommt,
- und was am Ende gewünscht ist
- und welche Einstellmöglichkeiten es am Gerät gibt...

Ich würde mal folgendes Vorgehen vorschlagen:
Mach' eine Kopie von dem Device mit anderer CID und abonniere erst mal nur, was über "SENSOR" kommt:
defmod Poolsensor_2 MQTT2_DEVICE DVES_55B2D4_2
attr  Poolsensor_2 readingList tele/DVES_55B2D4/SENSOR:.* { json2nameValue($EVENT) }


Bzgl. Sensoren gab es im Zusammenhang mit BT-Sensoren eine Entwicklung, jeden Sensor auf einem eigenen Unter-Ast von SENSOR ausgeben zu können, dazu bitte mal in den SetOption von Tasmota nachlesen, ob das bei den DS18B20 auch geht.

Falls du weitere Readings haben willst, z.B. die IP-Adresse oder das LWT-Reading, erweiterst du die readingList entsprechend, wobei du das so machen kannst, dass du erst den kompletten JSON "einfängst" um zu sehen, was da eigentlich drinsteht:attr  Poolsensor_2 readingList tele/DVES_55B2D4/LWT:.* LWT\
  tele/DVES_55B2D4/SENSOR:.* { json2nameValue($EVENT) }\
  tele/DVES_55B2D4/INFO1:.* INFO1_JSON
Dann kann man das wieder auf json2nameValue() umstellen, dann aber in der langen Variante, und mit jsonMap und/oder filter ergänzen, um rauszuwerfen, was man nicht braucht.

Letzteres erkläre ich gerne, ggf. schaust du dir dazu mal die vorhandenen attrTemplate zu Tasmota an, insbesondere das zu den DS18B20; da gibt es nämlich eine Option, die Temp-Werte jeweils mit der Sensor-ID zu belabeln, was v.a. dann sinnvoll ist, wenn man mehrere an dem Bus hat.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

z0lt1

Ich danke dir recht herzlich! Vor allem für diese ausführliche Erklärung! Diese ist mir sehr hilfreich und ich verstehe es jetzt ein wenig besser. Ich habe zwar schon viel in der commandref gelesen, aber da tauchen aufgrund meines mangelhaften Hintergrundwissens immer viele Fragezeichen auf.

Das hier war genau das was ich gesucht habe:
defmod Poolsensor_2 MQTT2_DEVICE DVES_55B2D4_2
attr  Poolsensor_2 readingList tele/DVES_55B2D4/SENSOR:.* { json2nameValue($EVENT) }


Die anderen Sachen schaue ich mir bei Gelegenheit auch an, die IP wäre auch noch gut! Da kommt dann die nächsten Tage auch bestimmt mal eine Rückfrage.

Eine (Anfänger-)Frage vorab: Warum muss ich bei der Kopie die CID mit "_2" ergänzen? Kann ich nicht zwei Devices mit der selben CID haben? Und warum funktioniert die Kopie mit der Ergänzung "_2" obwohl das Device in MQTT ohne Ergänzung benannt wurde?

Beta-User

Zitat von: z0lt1 am 18 Juni 2021, 09:53:53
Eine (Anfänger-)Frage vorab: Warum muss ich bei der Kopie die CID mit "_2" ergänzen? Kann ich nicht zwei Devices mit der selben CID haben? Und warum funktioniert die Kopie mit der Ergänzung "_2" obwohl das Device in MQTT ohne Ergänzung benannt wurde?
Es ist keine wirkliche Anfängerfrage...

Die CID-Angabe dient v.a. dazu, dass der Code von MQTT2_DEVICE "weiß", welchem Gerät er ggf. neue Nachrichten zuordnen soll, also die readingList ergänzen => fast alles ist erlaubt, was nicht die "richtige" CID ist, löschen wäre auch gegangen. Hier habe ich einfach "irgendwas" angehängt, um diese Verbindung zu kappen, aber gleichzeitig einen Merker für die "Ausgangs-CID" zu haben.

Ergänzend noch: Diese recht neuen "tasmota/discovery/"-Pfade kann/sollte man mAn. gleich über eine ignoreRegexp am IO-Device (MQTT2_SERVER) "beerdingen". Es macht mAn. wenig Sinn, die zu verarbeiten, die generieren aber viele Readings...

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

z0lt1

Danke für die Erklärung.

Zitat von: Beta-User am 18 Juni 2021, 10:19:24
Ergänzend noch: Diese recht neuen "tasmota/discovery/"-Pfade kann/sollte man mAn. gleich über eine ignoreRegexp am IO-Device (MQTT2_SERVER) "beerdingen". Es macht mAn. wenig Sinn, die zu verarbeiten, die generieren aber viele Readings...
Hättest du evtl. den Befehl für mich? Ich such schon wieder seid 20 Minuten rum und der Kopf raucht schon wieder  ;D

Beta-User

#5
Na ja, im Wiki müßte was dazu zu finden sein (vermutlich bei MQTT2_CLIENT), und das Prinzip der (ignore-) Regexp ist eigentlich bei FHEM auch häufiger anzutreffen, lohnt sich ggf., da mal etwas tiefer einzusteigen (anhand von regex101.com, z.B.)...

Aber da ich das eh' bei mir ergänzen mußte, hier mal mein entsprechend ergänzter aktueller Stand:
attr MQTT2_FHEM_Server ignoreRegexp milight/0x[0-9a-fA-F]{1,4}/.*/[0-8]|shellies/[^/]+/command|cmnd/[^/]+/|homeassistant/.*/config|tasmota/discovery/
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

z0lt1