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 %
"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.
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?
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...
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
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/
Alles klar, danke für die Info.