Mehrere Parameter in einem Dummydevice

Begonnen von Archimedes, 30 Januar 2025, 17:00:54

Vorheriges Thema - Nächstes Thema

Archimedes

Hallo,
Ausgangspunkt ist ein ESP32 mit Tasmota 14.4 über MQTT angebunden an den FHEM Server. Der ESP32 hat 2 DS18-20 Temperaturmesser, die ich gerne in einem Graphen darstellen möchte. Das MQTT Device wurde automatisch generiert, das Logfile ebenfalls automatisch erstellt. Um den Datenwust bei der Ausgabe des Graphen zu bändigen hatte ich die Idee, ein Dummydevice anzulegen, diesem ein Logfile mitzugeben und so über das Attribut Event-on-change-reading state  die 2 Werte der DS18-20 separat in einem Logfile zu haben und die Generierung des Graphen somit zu optimieren hinsichtlich Beschleunigung und Auslastung des Servers.
Nur, wie bekomme ich mehrere Parameter in ein Dummydevice ? Im Moment habe ich für jeden Temperaturmesser einen separaten Dummy und damit mehrere Graphen untereinander. Ist nicht schlimm, aber auch nicht schön. So sieht es im Moment aus:

Gruß Axel


define BWWTI dummy
attr BWWTI event-on-change-reading state
attr BWWTI room Keller

define BWWTO dummy
attr BWWTO event-on-change-reading state
attr BWWTO room Keller

define TempInDummy at +*00:00:05 { my $d= ReadingsVal("DVES_C79D64","DS18B20-2_Temperature",0);; fhem("set BWWTI $d")}
define TempOutDummy at +*00:00:05 { my $d= ReadingsVal("DVES_C79D64","DS18B20-1_Temperature",0);; fhem("set BWWTO $d")}

define FileLog_BWWTI FileLog ./log/BWWTI-%Y-%m-%d.log BWWTI
attr FileLog_BWWTI logtype text
attr FileLog_BWWTI room Keller

define FileLog_BWWTO FileLog ./log/BWWTO-%Y-%m-%d.log BWWTI
attr FileLog_BWWTO logtype text
attr FileLog_BWWTO room Keller




passibe

#1
Verstehe nicht ganz, wozu du das dummy device brauchst? Du kannst doch einfach im jeweiligen FileLog-Device entscheiden, auf welche Events das triggert (d.h. welche Events geloggt werden). So wie du es aktuell versuchst, dürftest du ja letztlich sogar viel mehr Events/CPU-Last generieren.

Also (ungetestet):
defmod FileLog_BWWTI FileLog ./log/BWWTI-%Y-%m-%d. DVES_C79D64:DS18B20-2_Temperature.*
defmod FileLog_BWWTO FileLog ./log/BWWTO-%Y-%m-%d. DVES_C79D64:DS18B20-1_Temperature.*

Ansonsten spricht aus meiner Sicht erstmal auch nichts dagegen, das in eine Datei zu schreiben, vor allem, weil du doch ohnehin beide Werte in einem Graphen haben möchtest – insofern wäre es doch sogar kontraproduktiv zwei Dateien zu haben. Also (ebenfalls ungetestet – EDIT funktioniert wohl nicht so, siehe Antwort von Beta-User):
defmod FileLog_BWWT FileLog ./log/BWWT-%Y-%m-%d. DVES_C79D64:DS18B20-(1|2)_Temperature.*
Dass dir da bei autocreate ein (unnötiges) FileLog für das gesamte Device miterstellt wurde, ist ein separates Problem bzw. das solltest du eigentlich einfach löschen können. Bin mir grade nicht mehr sicher, ob man das automatische erstellen eines FileLogs bei MQTT ausstellen kann, habe das vergessen bzw. nutze kein autocreate. Das kann aber bestimmt jemand anderes hier beantworten.

Beta-User

#2
Mahlzeit...

Bei solchen Beiträgen frage ich mich:
- Warum ist nicht bekannt, wie man Beiträge lesbar formatiert? (=> code tags)
- Wo kommt der Gedanke her, dass das "Rumschubsen" von Informationen irgendeinen Mehrwert hätte?
- Warum wird die commandref nicht zu Hilfe genommen? Oder ist die dort enthaltene Info nicht verständlich? (Hier: "setreading" scheint nicht bekannt zu sein?)
- Warum will man unbedingt (separate) Logfiles haben? (Und nicht alles in ein, zwei Datenbanken schreiben...)

Generell: Du könntest separate Logfiles für beide Original-Readings anlegen und ggf. den "Event-Wust" (so er denn gegeben ist? Warum?!?) dadurch begrenzen, dass du das "event-on-change-reading"-Attribut (bzw. event-min-interval) am Ausgangsdevice passend setzt (das erste kennt auch eine Hysterese!)

Bei Nutzung einer Datenbank (=> DbLog) könnte man dann noch weitere Optionen nutzen, falls man doch "viele Events" aus dem Ausgangsdevice benötigen würde...

Nur meine Gedanken...

Zu dem Vorschlag von @passibe noch - da dürfte NOTIFYDEV verloren gehen, das geht ggf. auch so:
defmod FileLog_BWWT FileLog ./log/BWWT-%Y-%m-%d. DVES_C79D64:DS18B20-[12]_Temperature.*
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Archimedes

Hallo,
erstmal dankeschön  :) Sorry, ich habe den Code Tag schlichtweg vergessen. Ja ich war bereits dazu im Wiki unterwegs, auch im Forum und auf Google. Und deswegen extra im Bereich Anfänger gepostet: Ja, ich habe die Informationen nicht verstanden. Das Original Device sieht so aus (siehe unten). Ich hatte keinen blassen Schimmer, wo ich da konstruktiv ansetzen sollte um die Logfiles so aufzubereiten, dass ich nicht evtl. zu Analysezwecken etwas verliere. Ja, das Device hat noch weitere Funktionen. Deswegen dachte ich der Umweg über das Dummydevice würde Sinn machen. Und nein, ich will ja gerade nicht mehrere Logfiles haben, sondern die beiden Werte der DS18-20 in einem.
Ich probiere das weiter aus und melde mich dazu.

Gruß Axel

define DVES_C79D64 MQTT2_DEVICE DVES_C79D64
attr DVES_C79D64 readingList DVES_C79D64:tele/DVES_C79D64/LWT:.* LWT\
DVES_C79D64:cmnd/DVES_C79D64/POWER:.* POWER\
DVES_C79D64:tele/DVES_C79D64/INFO1:.* { json2nameValue($EVENT) }\
DVES_C79D64:tele/DVES_C79D64/INFO2:.* { json2nameValue($EVENT) }\
DVES_C79D64:tele/DVES_C79D64/INFO3:.* { json2nameValue($EVENT) }\
DVES_C79D64:stat/DVES_C79D64/RESULT:.* { json2nameValue($EVENT) }\
DVES_C79D64:stat/DVES_C79D64/POWER1:.* POWER1\
DVES_C79D64:stat/DVES_C79D64/POWER2:.* POWER2\
DVES_C79D64:stat/DVES_C79D64/POWER3:.* POWER3\
DVES_C79D64:tele/DVES_C79D64/STATE:.* { json2nameValue($EVENT) }\
DVES_C79D64:tasmota/discovery/24DCC3C79D64/config:.* { json2nameValue($EVENT) }\
DVES_C79D64:tasmota/discovery/24DCC3C79D64/sensors:.* { json2nameValue($EVENT) }\
DVES_C79D64:tele/DVES_C79D64/SENSOR:.* { json2nameValue($EVENT) }
attr DVES_C79D64 room MQTT2_DEVICE
#   CID        DVES_C79D64
#   DEF        DVES_C79D64
#   FUUID      6772cd36-f33f-3e5d-c99e-71624a38002d187e
#   IODev      MQTT2SRV
#   LASTInputDev MQTT2SRV
#   MQTT2SRV_CONN MQTT2SRV_192.168.178.53_50309
#   MQTT2SRV_MSGCNT 34
#   MQTT2SRV_TIME 2025-01-30 18:05:38
#   MSGCNT     34
#   NAME       DVES_C79D64
#   NR         55
#   STATE      ???
#   TYPE       MQTT2_DEVICE
#   eventCount 34
#   READINGS:
#     2025-01-30 18:02:03   Berry_HeapUsed  3
#     2025-01-30 18:02:03   Berry_Objects   45
#     2025-01-30 18:02:03   DS18B20-1_Id    0000067F6E8B
#     2025-01-30 18:02:03   DS18B20-1_Temperature 11.8
#     2025-01-30 18:02:03   DS18B20-2_Id    6DAB211864FF
#     2025-01-30 18:02:03   DS18B20-2_Temperature 13.6
#     2025-01-30 18:02:03   Heap            120
#     2025-01-30 17:34:46   IODev           MQTT2SRV
#     2025-01-25 14:57:17   Info1_FallbackTopic cmnd/DVES_C79D64_fb/
#     2025-01-25 14:57:17   Info1_GroupTopic cmnd/tasmotas/
#     2025-01-25 14:57:17   Info1_Module    WT32-ETH01
#     2025-01-25 14:57:17   Info1_Version   14.4.1(release-tasmota32)
#     2025-01-25 14:57:17   Info2_Hostname  DVES-C79D64-7524
#     2025-01-25 14:57:17   Info2_IP6Global
#     2025-01-25 14:57:17   Info2_IP6Local  fe80::26dc:c3ff:fec7:9d64%st46
#     2025-01-25 14:57:17   Info2_IPAddress 192.168.178.53
#     2025-01-25 14:57:17   Info2_WebServerMode Admin
#     2025-01-25 14:57:17   Info3_BootCount 29
#     2025-01-11 16:39:11   Info3_RestartReason Vbat power on reset
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_1 401a462f
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_2 40177b5e
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_3 40170fa5
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_4 40143ab6
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_5 400e25e4
#     2025-01-25 14:57:17   Info3_RestartReason_CallChain_6 40138813
#     2025-01-10 17:29:28   Info3_RestartReason_CallChain_7 40138813
#     2025-01-25 14:57:17   Info3_RestartReason_EPC 401a4632
#     2025-01-25 14:57:17   Info3_RestartReason_EXCVADDR 8013f013
#     2025-01-25 14:57:17   Info3_RestartReason_Exception 28
#     2025-01-25 14:57:17   Info3_RestartReason_Reason LoadProhibited
#     2025-01-30 18:05:37   LWT             Online
#     2025-01-30 18:02:03   LoadAvg         19
#     2025-01-09 14:32:27   LogHost        
#     2025-01-09 14:32:27   LogPort         514
#     2025-01-30 18:02:03   MqttCount       58
#     2025-01-09 14:32:27   MqttLog         0
#     2025-01-30 18:05:37   POWER          
#     2025-01-30 18:02:03   POWER1          OFF
#     2025-01-30 18:02:03   POWER2          OFF
#     2025-01-30 18:02:03   POWER3          OFF
#     2025-01-09 14:32:27   SerialLog_2_Active 2
#     2025-01-30 18:02:03   Sleep           50
#     2025-01-30 18:02:03   SleepMode       Dynamic
#     2025-01-09 14:32:27   SysLog_0_Active 0
#     2025-01-30 12:09:24   TelePeriod      300
#     2025-01-30 18:02:03   TempUnit        C
#     2025-01-30 18:02:03   Time            2025-01-30T18:01:56
#     2025-01-30 18:02:03   Uptime          5T03:14:21
#     2025-01-30 18:02:03   UptimeSec       443661
#     2025-01-09 14:32:27   WebLog          2
#     2025-01-30 18:02:03   Wifi_AP         1
#     2025-01-30 18:02:03   Wifi_BSSId      74:42:7F:6E:4E:98
#     2025-01-30 18:02:03   Wifi_Channel    7
#     2025-01-30 18:02:03   Wifi_Downtime   0T00:46:54
#     2025-01-30 18:02:03   Wifi_LinkCount  16
#     2025-01-30 18:02:03   Wifi_Mode       HT40
#     2025-01-30 18:02:03   Wifi_RSSI       74
#     2025-01-30 18:02:03   Wifi_SSId       FRITZ75
#     2025-01-30 18:02:03   Wifi_Signal     -63
#     2025-01-30 18:05:38   bat             0
#     2025-01-30 18:05:38   btn_1           0
#     2025-01-30 18:05:38   btn_10          0
#     2025-01-30 18:05:38   btn_11          0
#     2025-01-30 18:05:38   btn_12          0
#     2025-01-30 18:05:38   btn_13          0
#     2025-01-30 18:05:38   btn_14          0
#     2025-01-30 18:05:38   btn_15          0
#     2025-01-30 18:05:38   btn_16          0
#     2025-01-30 18:05:38   btn_17          0
#     2025-01-30 18:05:38   btn_18          0
#     2025-01-30 18:05:38   btn_19          0
#     2025-01-30 18:05:38   btn_2           0
#     2025-01-30 18:05:38   btn_20          0
#     2025-01-30 18:05:38   btn_21          0
#     2025-01-30 18:05:38   btn_22          0
#     2025-01-30 18:05:38   btn_23          0
#     2025-01-30 18:05:38   btn_24          0
#     2025-01-30 18:05:38   btn_25          0
#     2025-01-30 18:05:38   btn_26          0
#     2025-01-30 18:05:38   btn_27          0
#     2025-01-30 18:05:38   btn_28          0
#     2025-01-30 18:05:38   btn_29          0
#     2025-01-30 18:05:38   btn_3           0
#     2025-01-30 18:05:38   btn_30          0
#     2025-01-30 18:05:38   btn_31          0
#     2025-01-30 18:05:38   btn_32          0
#     2025-01-30 18:05:38   btn_4           0
#     2025-01-30 18:05:38   btn_5           0
#     2025-01-30 18:05:38   btn_6           0
#     2025-01-30 18:05:38   btn_7           0
#     2025-01-30 18:05:38   btn_8           0
#     2025-01-30 18:05:38   btn_9           0
#     2025-01-30 18:05:38   dn              TasmoBWWP1
#     2025-01-30 18:05:38   dslp            0
#     2025-01-30 18:05:38   fn_1            TasmotaBWWP1
#     2025-01-30 18:05:38   fn_2           
#     2025-01-30 18:05:38   fn_3           
#     2025-01-30 18:05:38   ft              %prefix%/%topic%/
#     2025-01-30 18:05:38   hn              DVES-C79D64-7524
#     2025-01-30 18:05:38   if              0
#     2025-01-30 18:05:38   ip              192.168.178.53
#     2025-01-30 18:05:38   lk              0
#     2025-01-30 18:05:38   lt_st           0
#     2025-01-30 18:05:38   mac             24DCC3C79D64
#     2025-01-30 18:05:38   md              WT32-ETH01
#     2025-01-30 18:05:38   ofln            Offline
#     2025-01-30 18:05:38   onln            Online
#     2025-01-30 18:05:38   rl_1            1
#     2025-01-30 18:05:38   rl_10           0
#     2025-01-30 18:05:38   rl_11           0
#     2025-01-30 18:05:38   rl_12           0
#     2025-01-30 18:05:38   rl_13           0
#     2025-01-30 18:05:38   rl_14           0
#     2025-01-30 18:05:38   rl_15           0
#     2025-01-30 18:05:38   rl_16           0
#     2025-01-30 18:05:38   rl_17           0
#     2025-01-30 18:05:38   rl_18           0
#     2025-01-30 18:05:38   rl_19           0
#     2025-01-30 18:05:38   rl_2            1
#     2025-01-30 18:05:38   rl_20           0
#     2025-01-30 18:05:38   rl_21           0
#     2025-01-30 18:05:38   rl_22           0
#     2025-01-30 18:05:38   rl_23           0
#     2025-01-30 18:05:38   rl_24           0
#     2025-01-30 18:05:38   rl_25           0
#     2025-01-30 18:05:38   rl_26           0
#     2025-01-30 18:05:38   rl_27           0
#     2025-01-30 18:05:38   rl_28           0
#     2025-01-30 18:05:38   rl_29           0
#     2025-01-30 18:05:38   rl_3            1
#     2025-01-30 18:05:38   rl_30           0
#     2025-01-30 18:05:38   rl_31           0
#     2025-01-30 18:05:38   rl_32           0
#     2025-01-30 18:05:38   rl_4            0
#     2025-01-30 18:05:38   rl_5            0
#     2025-01-30 18:05:38   rl_6            0
#     2025-01-30 18:05:38   rl_7            0
#     2025-01-30 18:05:38   rl_8            0
#     2025-01-30 18:05:38   rl_9            0
#     2025-01-30 18:05:38   sn_DS18B20-1_Id 0000067F6E8B
#     2025-01-30 18:05:38   sn_DS18B20-1_Temperature 11.8
#     2025-01-30 18:05:38   sn_DS18B20-2_Id 6DAB211864FF
#     2025-01-30 18:05:38   sn_DS18B20-2_Temperature 13.7
#     2025-01-30 18:05:38   sn_TempUnit     C
#     2025-01-30 18:05:38   sn_Time         2025-01-30T18:05:37
#     2025-01-30 18:05:38   so_11           0
#     2025-01-30 18:05:38   so_114          0
#     2025-01-30 18:05:38   so_117          0
#     2025-01-30 18:05:38   so_13           0
#     2025-01-30 18:05:38   so_17           0
#     2025-01-30 18:05:38   so_20           0
#     2025-01-30 18:05:38   so_30           0
#     2025-01-30 18:05:38   so_4            0
#     2025-01-30 18:05:38   so_68           0
#     2025-01-30 18:05:38   so_73           0
#     2025-01-30 18:05:38   so_82           0
#     2025-01-30 18:05:38   state_1         OFF
#     2025-01-30 18:05:38   state_2         ON
#     2025-01-30 18:05:38   state_3         TOGGLE
#     2025-01-30 18:05:38   state_4         HOLD
#     2025-01-12 14:08:12   subscriptions   cmnd/DVES_C79D64/# cmnd/DVES_C79D64_fb/# cmnd/tasmotas/#
#     2025-01-30 18:05:38   sw              14.4.1
#     2025-01-30 18:05:38   swc_1           -1
#     2025-01-30 18:05:38   swc_10          -1
#     2025-01-30 18:05:38   swc_11          -1
#     2025-01-30 18:05:38   swc_12          -1
#     2025-01-30 18:05:38   swc_13          -1
#     2025-01-30 18:05:38   swc_14          -1
#     2025-01-30 18:05:38   swc_15          -1
#     2025-01-30 18:05:38   swc_16          -1
#     2025-01-30 18:05:38   swc_17          -1
#     2025-01-30 18:05:38   swc_18          -1
#     2025-01-30 18:05:38   swc_19          -1
#     2025-01-30 18:05:38   swc_2           -1
#     2025-01-30 18:05:38   swc_20          -1
#     2025-01-30 18:05:38   swc_21          -1
#     2025-01-30 18:05:38   swc_22          -1
#     2025-01-30 18:05:38   swc_23          -1
#     2025-01-30 18:05:38   swc_24          -1
#     2025-01-30 18:05:38   swc_25          -1
#     2025-01-30 18:05:38   swc_26          -1
#     2025-01-30 18:05:38   swc_27          -1
#     2025-01-30 18:05:38   swc_28          -1
#     2025-01-30 18:05:38   swc_29          -1
#     2025-01-30 18:05:38   swc_3           -1
#     2025-01-30 18:05:38   swc_30          -1
#     2025-01-30 18:05:38   swc_31          -1
#     2025-01-30 18:05:38   swc_32          -1
#     2025-01-30 18:05:38   swc_4           -1
#     2025-01-30 18:05:38   swc_5           -1
#     2025-01-30 18:05:38   swc_6           -1
#     2025-01-30 18:05:38   swc_7           -1
#     2025-01-30 18:05:38   swc_8           -1
#     2025-01-30 18:05:38   swc_9           -1
#     2025-01-30 18:05:38   t               DVES_C79D64
#     2025-01-30 18:05:38   tp_1            cmnd
#     2025-01-30 18:05:38   tp_2            stat
#     2025-01-30 18:05:38   tp_3            tele
#     2025-01-30 18:05:38   ty              0
#     2025-01-30 18:05:38   ver             1
#
setstate DVES_C79D64 2025-01-30 18:02:03 Berry_HeapUsed 3
setstate DVES_C79D64 2025-01-30 18:02:03 Berry_Objects 45
setstate DVES_C79D64 2025-01-30 18:02:03 DS18B20-1_Id 0000067F6E8B
setstate DVES_C79D64 2025-01-30 18:02:03 DS18B20-1_Temperature 11.8
setstate DVES_C79D64 2025-01-30 18:02:03 DS18B20-2_Id 6DAB211864FF
setstate DVES_C79D64 2025-01-30 18:02:03 DS18B20-2_Temperature 13.6
setstate DVES_C79D64 2025-01-30 18:02:03 Heap 120
setstate DVES_C79D64 2025-01-30 17:34:46 IODev MQTT2SRV
setstate DVES_C79D64 2025-01-25 14:57:17 Info1_FallbackTopic cmnd/DVES_C79D64_fb/
setstate DVES_C79D64 2025-01-25 14:57:17 Info1_GroupTopic cmnd/tasmotas/
setstate DVES_C79D64 2025-01-25 14:57:17 Info1_Module WT32-ETH01
setstate DVES_C79D64 2025-01-25 14:57:17 Info1_Version 14.4.1(release-tasmota32)
setstate DVES_C79D64 2025-01-25 14:57:17 Info2_Hostname DVES-C79D64-7524
setstate DVES_C79D64 2025-01-25 14:57:17 Info2_IP6Global
setstate DVES_C79D64 2025-01-25 14:57:17 Info2_IP6Local fe80::26dc:c3ff:fec7:9d64%st46
setstate DVES_C79D64 2025-01-25 14:57:17 Info2_IPAddress 192.168.178.53
setstate DVES_C79D64 2025-01-25 14:57:17 Info2_WebServerMode Admin
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_BootCount 29
setstate DVES_C79D64 2025-01-11 16:39:11 Info3_RestartReason Vbat power on reset
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_1 401a462f
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_2 40177b5e
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_3 40170fa5
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_4 40143ab6
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_5 400e25e4
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_CallChain_6 40138813
setstate DVES_C79D64 2025-01-10 17:29:28 Info3_RestartReason_CallChain_7 40138813
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_EPC 401a4632
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_EXCVADDR 8013f013
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_Exception 28
setstate DVES_C79D64 2025-01-25 14:57:17 Info3_RestartReason_Reason LoadProhibited
setstate DVES_C79D64 2025-01-30 18:05:37 LWT Online
setstate DVES_C79D64 2025-01-30 18:02:03 LoadAvg 19
setstate DVES_C79D64 2025-01-09 14:32:27 LogHost
setstate DVES_C79D64 2025-01-09 14:32:27 LogPort 514
setstate DVES_C79D64 2025-01-30 18:02:03 MqttCount 58
setstate DVES_C79D64 2025-01-09 14:32:27 MqttLog 0
setstate DVES_C79D64 2025-01-30 18:05:37 POWER
setstate DVES_C79D64 2025-01-30 18:02:03 POWER1 OFF
setstate DVES_C79D64 2025-01-30 18:02:03 POWER2 OFF
setstate DVES_C79D64 2025-01-30 18:02:03 POWER3 OFF
setstate DVES_C79D64 2025-01-09 14:32:27 SerialLog_2_Active 2
setstate DVES_C79D64 2025-01-30 18:02:03 Sleep 50
setstate DVES_C79D64 2025-01-30 18:02:03 SleepMode Dynamic
setstate DVES_C79D64 2025-01-09 14:32:27 SysLog_0_Active 0
setstate DVES_C79D64 2025-01-30 12:09:24 TelePeriod 300
setstate DVES_C79D64 2025-01-30 18:02:03 TempUnit C
setstate DVES_C79D64 2025-01-30 18:02:03 Time 2025-01-30T18:01:56
setstate DVES_C79D64 2025-01-30 18:02:03 Uptime 5T03:14:21
setstate DVES_C79D64 2025-01-30 18:02:03 UptimeSec 443661
setstate DVES_C79D64 2025-01-09 14:32:27 WebLog 2
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_AP 1
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_BSSId 74:42:7F:6E:4E:98
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_Channel 7
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_Downtime 0T00:46:54
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_LinkCount 16
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_Mode HT40
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_RSSI 74
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_SSId FRITZ75
setstate DVES_C79D64 2025-01-30 18:02:03 Wifi_Signal -63
setstate DVES_C79D64 2025-01-30 18:05:38 bat 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_1 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_10 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_11 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_12 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_13 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_14 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_15 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_16 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_17 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_18 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_19 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_2 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_20 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_21 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_22 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_23 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_24 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_25 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_26 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_27 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_28 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_29 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_3 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_30 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_31 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_32 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_4 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_5 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_6 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_7 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_8 0
setstate DVES_C79D64 2025-01-30 18:05:38 btn_9 0
setstate DVES_C79D64 2025-01-30 18:05:38 dn TasmoBWWP1
setstate DVES_C79D64 2025-01-30 18:05:38 dslp 0
setstate DVES_C79D64 2025-01-30 18:05:38 fn_1 TasmotaBWWP1
setstate DVES_C79D64 2025-01-30 18:05:38 fn_2
setstate DVES_C79D64 2025-01-30 18:05:38 fn_3
setstate DVES_C79D64 2025-01-30 18:05:38 ft %prefix%/%topic%/
setstate DVES_C79D64 2025-01-30 18:05:38 hn DVES-C79D64-7524
setstate DVES_C79D64 2025-01-30 18:05:38 if 0
setstate DVES_C79D64 2025-01-30 18:05:38 ip 192.168.178.53
setstate DVES_C79D64 2025-01-30 18:05:38 lk 0
setstate DVES_C79D64 2025-01-30 18:05:38 lt_st 0
setstate DVES_C79D64 2025-01-30 18:05:38 mac 24DCC3C79D64
setstate DVES_C79D64 2025-01-30 18:05:38 md WT32-ETH01
setstate DVES_C79D64 2025-01-30 18:05:38 ofln Offline
setstate DVES_C79D64 2025-01-30 18:05:38 onln Online
setstate DVES_C79D64 2025-01-30 18:05:38 rl_1 1
setstate DVES_C79D64 2025-01-30 18:05:38 rl_10 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_11 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_12 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_13 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_14 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_15 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_16 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_17 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_18 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_19 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_2 1
setstate DVES_C79D64 2025-01-30 18:05:38 rl_20 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_21 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_22 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_23 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_24 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_25 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_26 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_27 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_28 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_29 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_3 1
setstate DVES_C79D64 2025-01-30 18:05:38 rl_30 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_31 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_32 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_4 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_5 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_6 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_7 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_8 0
setstate DVES_C79D64 2025-01-30 18:05:38 rl_9 0
setstate DVES_C79D64 2025-01-30 18:05:38 sn_DS18B20-1_Id 0000067F6E8B
setstate DVES_C79D64 2025-01-30 18:05:38 sn_DS18B20-1_Temperature 11.8
setstate DVES_C79D64 2025-01-30 18:05:38 sn_DS18B20-2_Id 6DAB211864FF
setstate DVES_C79D64 2025-01-30 18:05:38 sn_DS18B20-2_Temperature 13.7
setstate DVES_C79D64 2025-01-30 18:05:38 sn_TempUnit C
setstate DVES_C79D64 2025-01-30 18:05:38 sn_Time 2025-01-30T18:05:37
setstate DVES_C79D64 2025-01-30 18:05:38 so_11 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_114 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_117 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_13 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_17 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_20 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_30 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_4 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_68 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_73 0
setstate DVES_C79D64 2025-01-30 18:05:38 so_82 0
setstate DVES_C79D64 2025-01-30 18:05:38 state_1 OFF
setstate DVES_C79D64 2025-01-30 18:05:38 state_2 ON
setstate DVES_C79D64 2025-01-30 18:05:38 state_3 TOGGLE
setstate DVES_C79D64 2025-01-30 18:05:38 state_4 HOLD
setstate DVES_C79D64 2025-01-12 14:08:12 subscriptions cmnd/DVES_C79D64/# cmnd/DVES_C79D64_fb/# cmnd/tasmotas/#
setstate DVES_C79D64 2025-01-30 18:05:38 sw 14.4.1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_1 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_10 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_11 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_12 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_13 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_14 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_15 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_16 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_17 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_18 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_19 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_2 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_20 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_21 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_22 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_23 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_24 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_25 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_26 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_27 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_28 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_29 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_3 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_30 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_31 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_32 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_4 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_5 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_6 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_7 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_8 -1
setstate DVES_C79D64 2025-01-30 18:05:38 swc_9 -1
setstate DVES_C79D64 2025-01-30 18:05:38 t DVES_C79D64
setstate DVES_C79D64 2025-01-30 18:05:38 tp_1 cmnd
setstate DVES_C79D64 2025-01-30 18:05:38 tp_2 stat
setstate DVES_C79D64 2025-01-30 18:05:38 tp_3 tele
setstate DVES_C79D64 2025-01-30 18:05:38 ty 0
setstate DVES_C79D64 2025-01-30 18:05:38 ver 1


define FileLog_DVES_C79D64 FileLog ./log/DVES_C79D64-%Y.log DVES_C79D64
attr FileLog_DVES_C79D64 logtype text
attr FileLog_DVES_C79D64 room MQTT2_DEVICE
#   DEF        ./log/DVES_C79D64-%Y.log DVES_C79D64
#   FD         7
#   FUUID      6772cd36-f33f-3e5d-46d2-0874dc971a79f890
#   NAME       FileLog_DVES_C79D64
#   NOTIFYDEV  DVES_C79D64
#   NR         56
#   NTFY_ORDER 50-FileLog_DVES_C79D64
#   REGEXP     DVES_C79D64
#   STATE      active
#   TYPE       FileLog
#   currentlogfile ./log/DVES_C79D64-2025.log
#   logfile    ./log/DVES_C79D64-%Y.log
#   READINGS:
#     2025-01-30 18:06:57   linesInTheFile  910169
#
setstate FileLog_DVES_C79D64 active
setstate FileLog_DVES_C79D64 2025-01-30 18:06:57 linesInTheFile 910169


Beta-User

...wenn du schon loggen willst - dieser Mist hat keinen Mehrwert:
DVES_C79D64:tasmota/discovery/24DCC3C79D64/config:.* { json2nameValue($EVENT) }\(Und ob du den Zustand der Relays bei jeder teleperiode haben willst?)

Und da anscheinend ESP32 mit Berry: du könntest ggf. die Sensoren benennen, dann kommt auch dann nichts durcheinander, wenn mal einer ausfällt oder getauscht werden muss, oder was dazu kommt:
https://tasmota.github.io/docs/DS18x20/#sensor-aliases
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Icinger

Also erstens würd ich ja dem Tasmota ein entsprechenderes Topic verpassen, dann ists auch im MQTT-Exlorer sprechender.

Zweitens würd ich in solchen Fällen ja ganz einfach hergehen und das readingsList radikal kürzen:

attr DVES_C79D64 readingList DVES_C79D64:tele/DVES_C79D64/LWT:.* LWT\
DVES_C79D64:stat/DVES_C79D64/RESULT:.* { json2nameValue($EVENT) }\
DVES_C79D64:tele/DVES_C79D64/STATE:.* { json2nameValue($EVENT) }\
DVES_C79D64:tele/DVES_C79D64/SENSOR:.* { json2nameValue($EVENT) }

und dann als erstes mal ein
deletereadings DVES_C79D64 .*
damit hast du letztendlich im nächsten Durchlauf grad mal noch 10-15 Readings im Device.

Dan könntest du entweder wie Beta-User geschrieben hat im Tasmota mit alias arbeiten oder aber mit Jsonmap wie zB:
attr Heizkessel jsonMap DS18S20-1_Temperature:0\
DS18S20-1_Id:0\
DS18S20-2_Temperature:vorlauf\
DS18S20-2_Id:0\
DS18S20-2_Temperature:ruecklauf\


Drittens:
Wenn du wirklich 2 getrennte Devices haben wolltest, ginge das ja mit MQTT und Jsonmap 100mal einfacher als der Umweg über die Dummy's. (Wobei du ja gar keine Dummys hast sondern ATs)
defmod Heizkessel MQTT2_DEVICE
attr Heizkessel IODev mq2_Client_gl
attr Heizkessel temperature
attr Heizkessel jsonMap DS18S20-1_Temperature:0\
DS18S20-1_Id:0\
DS18S20-2_Temperature:temperature\
DS18S20-2_Id:ID\
DS18S20-3_Temperature:0\
DS18S20-3_Id:0\
attr Heizkessel readingList tele/Heizraum/SENSOR:.* { json2nameValue($EVENT,'', $JSONMAP) }\
tele/Heizraum/STATE:.* { json2nameValue($EVENT) }
defmod Vorlauf MQTT2_DEVICE
attr Vorlauf IODev mq2_Client_gl
attr Vorlauf temperature
attr Vorlauf jsonMap DS18S20-1_Temperature:temperature\
DS18S20-1_Id:0\
DS18S20-2_Temperature:0\
DS18S20-2_Id:ID\
DS18S20-3_Temperature:0\
DS18S20-3_Id:0\
attr Vorlauf readingList tele/Heizraum/SENSOR:.* { json2nameValue($EVENT,'', $JSONMAP) }\
tele/Heizraum/STATE:.* { json2nameValue($EVENT) }
defmod Ruecklauf MQTT2_DEVICE
attr Ruecklauf IODev mq2_Client_gl
attr Ruecklauf temperature
attr Ruecklauf jsonMap DS18S20-1_Temperature:0\
DS18S20-1_Id:0\
DS18S20-2_Temperature:0\
DS18S20-2_Id:ID\
DS18S20-3_Temperature:temperature\
DS18S20-3_Id:0\
attr Ruecklauf readingList tele/Heizraum/SENSOR:.* { json2nameValue($EVENT,'', $JSONMAP) }\
tele/Heizraum/STATE:.* { json2nameValue($EVENT) }
Das legt dir zB drei Devices an, die alle 3 jeweils ein "temperature"-Reading haben.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

eisman

#6
hi,

ups, da habe ich wohl einen Fehler in meiner Installation:

defmod Heizung dummy
attr Heizung DbLogExclude .*
attr Heizung devStateStyle style="text-align:right;;;;font-weight:bold;;;;color:#00FFFF;;;;"
attr Heizung group Fernwärme
attr Heizung readingList state FV FR HV HR WV WR
attr Heizung room Keller,heizung
attr Heizung setList state
attr Heizung stateFormat FV °C
attr Heizung userReadings pumpe { ReadingsNum("Heizung","HV",0)>ReadingsNum("Heizung","WV",0) ? "Heizung" : "Wasser" }
defmod Wasser dummy
attr Wasser DbLogExclude .*
attr Wasser devStateStyle style="text-align:right;;;;font-weight:bold;;;;color:#00FFFF;;;;"
attr Wasser group Fernwärme
attr Wasser readingList state Warmwasser Speicher Zirkulation
attr Wasser room Keller,heizung
attr Wasser setList state
attr Wasser stateFormat Warmwasser °C
2 von den notify:
defmod no.ESP51.FV notify ESP51:FV:.* { fhem("set Heizung FV " . sprintf("%.1f",ReadingsNum("ESP51","FV",0)))}
attr no.ESP51.FV DbLogExclude .*
attr no.ESP51.FV room Keller

defmod no.ESP51.FR notify ESP51:FR:.* { fhem("set Heizung FR " . sprintf("%.1f",ReadingsNum("ESP51","FR",0)))}
attr no.ESP51.FR DbLogExclude .*
attr no.ESP51.FR room Keller

da ich esp easy benutze, werden die beiden dummys per notify geladen.
es lief auch mit MQTT als ein Devive, da ich alle datenredings in einem MQTT-device manuell zusammengefast hatte.
und man hat alle daten, die man braucht.

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

betateilchen

Wenn man numerische Werte vergleichen will, ist ReadingsNum() meistens die bessere Wahl (anstatt ReadingsVal())
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

eisman

danke für die info.... (hab es bei mir geändert)
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Archimedes

Hallo, erst einmal vielen Dank. Ich setze das entsprechend um, muss allerdings erst einen defekten ESP32 ersetzen, ist bestellt.
Und nein, ich möchte nicht zwei unterschiedliche Devices haben. Ich möchte alles in einem, ich wusste mir nur erst einmal nicht anders zu helfen, als 2 anzulegen. Aber das war ja auch genau der Grund, warum ich hier nachgefragt habe.

Kurz nochmal zur Info, was ich damit überhaupt machen will. Wir haben seit Ende letzten Jahres eine Brauchwasserwärmepumpe. Es geht darum, diese mit PV-Überschuss entsprechend zu steuern. Die Vaillant besitzt dafür 2 potentialfreie Eingänge, die sich über Relais schalten lassen.
Wenn PV Überschuss, dann heize das Wasser auf 65 Grad, ansonsten belasse es bei 50 Grad. So soll verhindert werden, dass die BWWP zu einem Zeitpunkt läuft, wo keine Sonne da ist.
Der ESP32 mit Tasmota soll somit insgesamt 3 Temperatursensoren DS1820, zwei Relais und einen DHT22 über MQTT dem FHEM Server zur Steuerung geben.

Gruß Axel