ebus Weishaupt MQTT im Zusammenspiel

Begonnen von rob, 13 Juli 2021, 17:33:38

Vorheriges Thema - Nächstes Thema

rob

Zitat von: Beta-User am 19 Juli 2021, 15:48:15
@rob: Bist du sicher, dass du das entsorgt gehabt hattest?
Im Prinzip ja. Ich hatte ein "delete MQTT2_ebus.*" losgelassen. Weil der Docker aber noch lief, wurde sogleich ein Roh-Device wieder angelegt.

Ich geh jetzt einfach nochmals her und stoppe Docker, lösche alles und starte Docker wieder.

Beta-User

Zitat von: rob am 19 Juli 2021, 16:26:12
Im Prinzip ja. Ich hatte ein "delete MQTT2_ebus.*" losgelassen. Weil der Docker aber noch lief, wurde sogleich ein Roh-Device wieder angelegt.

Ich geh jetzt einfach nochmals her und stoppe Docker, lösche alles und starte Docker wieder.

Bitte nach dem Löschen einfach warten, bis das erste Device von autocreate wieder angelegt wurde, dann darauf das "splitter-attrTemplate" anwenden. Dann sollte dieses Phantomdevice nicht erstellt werden.
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

rob

So, Docker gestoppt ✅
Devices gelöscht ✅
Docker restartet ✅
list .*ebus.* sagt:

FileLog_MQTT2_ebusd_21.2_1
MQTT2_ebusd_21.2_1

Splitter angewendet ✅
Neuste 99_attrTmqtt2_ebus_Utils.pm eingefügt ✅
reload 99_attrTmqtt2_ebus_Utils.pm ausgeführt ✅

list .*ebus.* sagt:

FileLog_MQTT2_ebusd_21.2_1
FileLog_MQTT2_ebusd_hc1
FileLog_MQTT2_ebusd_sc
MQTT2_ebusd_21.2_1
MQTT2_ebusd_hc1
MQTT2_ebusd_sc


getAll ausgeführt ✅
attr aus Post #50 eingefügt und Devices angelegt ✅
getKnown ausgeführt ✅

list .*ebus.* sagt:

FileLog_MQTT2_ebusd_21.2_1
FileLog_MQTT2_ebusd_hc1
FileLog_MQTT2_ebusd_hc2
FileLog_MQTT2_ebusd_hc3
FileLog_MQTT2_ebusd_hc4
FileLog_MQTT2_ebusd_hc5
FileLog_MQTT2_ebusd_hc6
FileLog_MQTT2_ebusd_hc7
FileLog_MQTT2_ebusd_hc8
FileLog_MQTT2_ebusd_sc
MQTT2_ebusd_21.2_1
MQTT2_ebusd_hc1
MQTT2_ebusd_hc1_HP2
MQTT2_ebusd_hc1_HP3
MQTT2_ebusd_hc1_WP
MQTT2_ebusd_hc1_ZP
MQTT2_ebusd_hc2
MQTT2_ebusd_hc3
MQTT2_ebusd_hc4
MQTT2_ebusd_hc5
MQTT2_ebusd_hc6
MQTT2_ebusd_hc7
MQTT2_ebusd_hc8
MQTT2_ebusd_sc


Jetzt schaut das Log unauffällig aus.

2021.07.19 16:38:29 3: MQTT2_DEVICE set MQTT2_ebusd_21.2_1 getAll
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc2 MQTT2_DEVICE ebusd_hc2 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc2 FileLog ./log/MQTT2_ebusd_hc2-%Y.log MQTT2_ebusd_hc2
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc3 MQTT2_DEVICE ebusd_hc3 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc3 FileLog ./log/MQTT2_ebusd_hc3-%Y.log MQTT2_ebusd_hc3
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc4 MQTT2_DEVICE ebusd_hc4 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc4 FileLog ./log/MQTT2_ebusd_hc4-%Y.log MQTT2_ebusd_hc4
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc5 MQTT2_DEVICE ebusd_hc5 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc5 FileLog ./log/MQTT2_ebusd_hc5-%Y.log MQTT2_ebusd_hc5
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc6 MQTT2_DEVICE ebusd_hc6 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc6 FileLog ./log/MQTT2_ebusd_hc6-%Y.log MQTT2_ebusd_hc6
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc7 MQTT2_DEVICE ebusd_hc7 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc7 FileLog ./log/MQTT2_ebusd_hc7-%Y.log MQTT2_ebusd_hc7
2021.07.19 16:38:30 2: autocreate: define MQTT2_ebusd_hc8 MQTT2_DEVICE ebusd_hc8 myMQTT_Server
2021.07.19 16:38:30 2: autocreate: define FileLog_MQTT2_ebusd_hc8 FileLog ./log/MQTT2_ebusd_hc8-%Y.log MQTT2_ebusd_hc8
2021.07.19 16:48:39 3: MQTT2_DEVICE set MQTT2_ebusd_21.2_1 getKnown

Anscheinend hatte ich irgendeinen Murks fabriziert. Sorry, wenn ich zu hektisch war und für unnötigen Wirbel gesorgt habe  :-[ :-X



Beta-User

Mal ein kurzer Zwischenstand und ein paar Fragen:

Bin grade am Testen, ob bzw. wie man die automatisch erstellten Geräte (readingList und Reading-Namen) automatisiert analysieren kann. Das klappt zumindest bei der readingList schon ganz ordentlich, abgesehen von der Frage, dass es nicht so einfach ist rauszufinden, wann man Prefixes für j2nv() benötigt, und wann nicht. Müßte aber eigentlich anhand der Readingnamen gehen, wenn "complex" gesetzt war.

Die Idee wäre, dann eine generalisierte Funktion zu haben, die das flexibel übernimmt und auch gewisse Sonderfälle (wie das mit den mehreren Zeitprogrammen) abdecken kann und dann gleich auch die passende setList dazu bastelt...?

Ein weiterer Sonderfall scheint das mit Day/Month zu sein? (Mal schauen, geringe Prio)

In die setList vom "splitter" gehört m.E. eigentlich per default auch was rein für die Zeit (also aktuelle Uhrzeit)? Hat da jemand eine Idee dazu?

Was die konkreten "verdrehten" Zeitprogramme angeht:
Entspricht das dem, was auf dem Gerät direkt zu erkennen ist (es müßte ja irgendwo an der Hardware eine Eingabemöglichkeit geben)? Oder ist es da schon falsch?
Wenn nein, kommt es vermutlich aus den Untiefen der csv's und sollte dort geändert werden...

Bis dahin erst mal, ich melde mich, wenn es was "verwertbareres" gibt. Falls das mit der automatisierten Analyse nicht als gute Idee angesehen wird, wäre das auch eine Rückmeldung, dann stecke ich da auch keinen großen Aufwand mehr rein...
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

rob

Der Eingabe am Gerät entspricht es so nicht. Ich hab mal ein paar Fotos drangehangen. Auf dem letzten Bild sieht man die konkreten Zeiten. Habe mir das JSON nochmals angeschaut Bsp.:

Client mosqsub/17638-OpenWRT received PUBLISH (d0, q0, r0, m0, 'ebusd/hc1/HP1.Do.1', ... (67 bytes))
ebusd/hc1/HP1.Do.1 {
     "Start": {"value": "22:00"},
     "End": {"value": "07:30"}}

Dort sehe ich nun eindeutig, dass es bereits falsch übermittelt wird. Meine Vermutung bzgl. Sortierung ist also Quatsch, hätte besser nicht bei 00:00 schauen sollen  ::)

Habe am CSV (hc.timer.inc) testweise die Templates der zwei Felder vertauscht (erste Zeile)

r,,HP1.Di.1,Heizprogramm 1 Di 1 Start/Ende (Anwender 122) ,,,,"201402",,,_8_TimeEnd,,, ,,,_8_TimeStart,,,
w,,HP1.Di.1,Heizprogramm 1 Di 1 Start/Ende (Anwender 122) ,,,,"2014",,,_8_TimeStart,,, ,,,_8_TimeEnd,,,
r,,HP1.Di.2,Heizprogramm 1 Di 2 Start/Ende (Anwender 122) ,,,,"211402",,,_8_TimeStart,,, ,,,_8_TimeEnd,,,
w,,HP1.Di.2,Heizprogramm 1 Di 2 Start/Ende (Anwender 122) ,,,,"2114",,,_8_TimeStart,,, ,,,_8_TimeEnd,,,

und schon kommt es richtig an:

Client mosqsub/10235-OpenWRT received PUBLISH (d0, q0, r0, m0, 'ebusd/hc1/HP1.Di.1', ... (67 bytes))
ebusd/hc1/HP1.Di.1 {
     "End": {"value": "22:00"},
     "Start": {"value": "07:30"}}

Im Reading

Tuesday  07:30;22:00;-,-;-,-;-,-;-,-;Mo-So  2021-07-21 10:14:48

Irgendwie kann ich mir nicht vorstellen, dass J0EK3R dort etwas übersehen oder vertauscht haben sollte. Gibt es vielleicht "Versionsunterschiede" in den Weishaupt-Telegrammen? Das wäre wenig schön - passt aber eher in den (aktuell stummen) Fred zum CSV.



Zitat von: Beta-User am 21 Juli 2021, 08:32:21
Falls das mit der automatisierten Analyse nicht als gute Idee angesehen wird, wäre das auch eine Rückmeldung, dann stecke ich da auch keinen großen Aufwand mehr rein...
Ich finde das eine gute + sinnvolle Idee und ich bin hoffentlich nicht der einzige mit Interesse (im Moment scheint das Sommerloch zu wirken).



Im Splitter wird die Zeit aus dem Broadcast geholt:

Client mosqsub/17638-OpenWRT received PUBLISH (d0, q0, r0, m0, 'ebusd/broadcast/datetime', ... (113 bytes))
ebusd/broadcast/datetime {
     "outsidetemp": {"value": 19.000},
     "time": {"value": "09:08:-"},
     "date": {"value": "19.07.2021"}}

Das kommt via broadcast.csv und scheint dort nicht als writable definiert zu sein (nur "b" vorne, statt "w;b"):

# type (r[1-9];w;u),class,name,comment,QQ,ZZ,PBSB,ID,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment
b,,datetime,Datum/Uhrzeit,,,0700,,outsidetemp,,temp2,,,,time,,btime,,,,date,,bdate,,,,,,,,,

Vielleicht kann das jmd. sagen, ob das überhaupt schreibbar möglich ist und in welchem Format. So ganz unbedarft möchte ich das nicht schreibend testen...

rob

#65
Bilder vergessen ...  :P

Beta-User

#66
Zitat von: rob am 21 Juli 2021, 10:33:23
Ich finde das eine gute + sinnvolle Idee und ich bin hoffentlich nicht der einzige mit Interesse (im Moment scheint das Sommerloch zu wirken).
..dann hoffe ich das auch mal; anbei eine Version zum testen...
{ FHEM::aTm2u_ebus::analyzeReadingList('MQTT2_ebusd_hc1') }sollte dann z.B. dein Device "MQTT2_ebusd_hc1" "auseinandernehmen".
Das sollte eigentlich mit jedem Device klappen, bei dem vorher Readings da waren, die mit "complex" erzeugt wurden, und wenn alles gut läuft, hat man hinterher die readingList so konfiguriert, dass der "wrapper" mal mit prefix aufgerufen wird, und mal ohne, je nachdem, ob die Readings auch so "gut waren" oder nicht. Bin aber nicht sicher, ob ich das richtige Kriterium rausgefischt habe, testen und das Ergebnis jeweils kritisch beäugen wäre also gut...

ZitatDer Eingabe am Gerät entspricht es so nicht. [...]
Habe am CSV (hc.timer.inc) testweise die Templates der zwei Felder vertauscht (erste Zeile)
Grundsätzlich müßte man es schon am ebusd ändern, damit die gesendete Struktur den tatsächlichen Daten an der Hardware entspricht. Habe etwas "Bauchweh", dass das die richtige Stelle ist, die du da erwischt hast; ich würde eher annehmen, dass es entweder einen "Richtungsschalter" gibt, oder dass es irgendwo eine modellspezifische Stelle gibt, an der das einzustellen wäre - ist aber nur "so ein Gefühl", das auch komplett falsch sein kann...

ZitatIm Splitter wird die Zeit aus dem Broadcast geholt:
Dass man an broadcost nicht schreibend senden kann, erscheint mir logisch; allerdings würde ich annehmen, dass es eine Adresse gibt, auf der "die Uhr" (ggf. gibt es mehrere, aber vermutlich nur eine zentrale) einen Stellbefehl annehmen müßte.

ZitatVielleicht kann das jmd. sagen, ob das überhaupt schreibbar möglich ist und in welchem Format. So ganz unbedarft möchte ich das nicht schreibend testen...
Das hoffe ich auch, wobei ich bei der Uhrzeit noch die wenigsten Skrupel hätte; irgendwo "muss" man ja anfangen, wenn man vorwärtskommen will, und bei dr Uhrzeit sind die Zusammenhänge hoffentlich noch einigermaßen überschaubar ;) .
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

rob

Das ging ja wieder sehr flink  8) Vielen Dank

Doofe Frage: Damit "{ FHEM::aTm2u_ebus::analyzeReadingList('MQTT2_ebusd_hc1') }" ersetze ich die rL im Device MQTT2_ebusd_hc1. Richtig? Und anschl. ein getAll/ Known?

Zitat von: Beta-User am 21 Juli 2021, 14:43:47
...testen und das Ergebnis jeweils kritisch beäugen wäre also gut...
Mach ich gerne. Wollte bereits rückmelden, dass ErrorHistory ein Kandidat für den Wrapper ist. Aber jetzt schaue ich mir diesen "Analyzer" genauer an - sobald ich verstanden habe wie ich das anwenden soll  ;D



Wegen dem Start/End: Anscheinend kommt man überhaupt nicht an den CSV vorbei. Wird wohl warten müssen, bis das Sommerloch rum ist.

Beta-User

Zitat von: rob am 21 Juli 2021, 16:06:27
Damit [...]
Nein, das ist für die FHEM-Kommandozeile (wenn der Code a) aktualisiert und b) neu geladen wurde (reload 99_attrTmqtt2_ebus_Utils.pm)).

Das kann dann für jedes "ebus" Device verwendet werden, um die json2nameValue()-Anweisungen (hoffentlich...) durch was passenderes aus den internen Funktionen zu ersetzen ;) .
ZitatWollte bereits rückmelden, dass ErrorHistory ein Kandidat für den Wrapper ist.
Vermutlich wird das eher eine Spezialfunktion werden? (Muss mir dazu aber auch Topic/Payload nochmal ansehen, wird ggf. dauern)

ZitatWegen dem Start/End: Anscheinend kommt man überhaupt nicht an den CSV vorbei. Wird wohl warten müssen, bis das Sommerloch rum ist.
Das schon, die Frage war aber eher, was der richtige "Trick" ist, und die von dir genannte Stelle sah mir relativ zentral aus (will sagen: dem Bauchgefühl nach (!) passt das schon für einen Teil der Devices, und das "Umdrehen" ist eventuell nur für manche Typen richig. Wenn mein Bauchgefühl stimmt, wäre es demnach einfach eine andere Stelle, die man anfassen muss.



Bzgl. der Spezialfunktion für die Wochenprofile: der dummy aus den jetzigen attrTemplate scheint davon auszugehen, dass 6 Datenpunkte bestehen, und die auch so (in den Topics?) durchnummeriert sind, hier sind es 3 Paare. Leider habe ich keine Datengrundlage, um vergleichen zu können, was "damals" Stand der Dinge war, und auch keine Info, ob ebusd das zwischenzeitlich allgemein anders handhabt. Falls jemand Info dazu hat: gerne!
(Habe eine Aussage von Reinhart im Ohr, in der er sinngemäß ausgeführt hat, dass er das feature sowieso nicht nutzt...)
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

rob

Danke Dir. Ja, die 99_attrTmqtt2_ebus_Utils.pm hatte ich aktualisiert und neu geladen. Wusste nur nicht wo der Befehl hin sollte :)
Weil die Readings noch mit alten vermischt waren, habe ich neu begonnen.

Meine Schritte:
- Docker gestoppt, alle Devices gelöscht "delete .*MQTT2_ebus.*", Docker neu gestartet, abgewartet
- Fhem Update + Shutdown restart
- Splitter angewendet, 99_attrTmqtt2_ebus_Utils.pm aktualisiert + reload
- getAll ausgeführt
- HP* Devices aus #50 angelegt incl. rL (MQTT2_ebusd_hc1 absichtl. unangetastet gelassen)
- getKnown ausgeführt
- 2x Befehl ausgeführt

{ FHEM::aTm2u_ebus::analyzeReadingList('MQTT2_ebusd_hc1') }
{ FHEM::aTm2u_ebus::analyzeReadingList('MQTT2_ebusd_sc') }

- 4x Get-Beispiele gestartet

set myMQTT_Server publish ebusd/hc1/HP2.Mo.1/get
set myMQTT_Server publish ebusd/hc1/HP2.Mo.2/get
set myMQTT_Server publish ebusd/sc/ErrorVoltagSupply/get
set myMQTT_Server publish ebusd/sc/ExternalSensorDefektive/get


Um nichts zu verfälschen, habe ich nicht weiter eingegriffen.

Beobachtungen:
- in den Devices "hc1" und "sc" steht unter model "ebus_analyzeReadingList"
- in beiden Devices sind die Readings ohne "_value" angelegt (nach obigem Schritt4 waren sie ja noch im "Urzustand")
- Zeiten werden in HP2 zusammengefasst (da gem. #50 die rL entspr. gesetzt ist) in hc1 nicht, hier wird der JSON-Teil angezeigt
- im Device sc analog, auch der JSON-Teilstring
- Log ist unauffälig

So schaut es aus laut list -r MQTT2_ebus.*:

define MQTT2_ebusd_21.2_1 MQTT2_DEVICE ebusd
attr MQTT2_ebusd_21.2_1 autocreate 1
attr MQTT2_ebusd_21.2_1 bridgeRegexp (ebus\S[^/]*?)/(bai|\d+|cc|e7f|ehp|f\d\d|hc|hc\d+|he.|hmu|hwc|mc|mc.\d|omu|omu.\d|pms|rcc|rcc.\d|sc|sdr_p|solar|ui|uih|v\d\d|v81.\d|vd\d|vl\d|vr_\d\d|zeo)/.*:.* "$1_$2"\
(ebus\S[^/]*?)/(global|broadcast|general|scan[^/]+|memory)/.*:.* "$1"
attr MQTT2_ebusd_21.2_1 comment NOTE: additional templates and code have been downloaded from svn (contrib).<br>Pls. inform the maintainer, if the bridgeRegexp doesn't fit to all of your devices connected to the bus.
attr MQTT2_ebusd_21.2_1 devStateIcon 1.true:it_net 1.false:it_net@red  2.true:lan_rs485 2.false:lan_rs485@red
attr MQTT2_ebusd_21.2_1 icon sani_boiler_temp
attr MQTT2_ebusd_21.2_1 model eBus_daemon_splitter
attr MQTT2_ebusd_21.2_1 readingList ebusd/scan[^/]+/.*:.* { $TOPIC =~ m,scan.([^/]+)/,;; FHEM::aTm2u_ebus::j2nv($EVENT,"scan_${1}_") }\
  ebusd/global/uptime:.* uptime\
  ebusd/global/running:.* running\
  ebusd/global/version:.* version\
  ebusd/global/signal:.* signal\
  ebusd/global/updatecheck:.* updatecheck\
  ebusd/global/scan:.* scan\
  ebusd/broadcast/datetime:.* { FHEM::aTm2u_ebus::j2nv($EVENT) }\
ebusd/broadcast/error:.* error\
ebusd/broadcast/id:.* id\
ebusd/broadcast/queryexistence:.* queryexistence\
ebusd/broadcast/signoflife:.* signoflife\
ebusd/memory/eeprom:.* eeprom\
ebusd/memory/ram:.* ram
attr MQTT2_ebusd_21.2_1 room MQTT2_DEVICE
attr MQTT2_ebusd_21.2_1 setList getKnown:noArg ebusd/list onlyknown\
  getAll:noArg ebusd/list
attr MQTT2_ebusd_21.2_1 stateFormat Status: \
1:running\
Signal: \
2:signal\
<br>Uptime: formatedUptime
attr MQTT2_ebusd_21.2_1 userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,'uptime',0)/60;; return sprintf '0 000 00:%02d', $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf '0 000 %02d:%02d', $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;;;; return sprintf '0 %03d %02d:%02d', $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf '%d %03d %02d:%02d', $y, $d, $h, $m}

define MQTT2_ebusd_hc1 MQTT2_DEVICE ebusd_hc1
attr MQTT2_ebusd_hc1 model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1 readingList ebusd/hc1/Set:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/Adaption:.* Adaption\
ebusd/hc1/BCAST1:.* BCAST1\
ebusd/hc1/BCAST2:.* BCAST2\
ebusd/hc1/DHWMin:.* DHWMin\
ebusd/hc1/DHWMode:.* DHWMode\
ebusd/hc1/DHWSetpoint:.* DHWSetpoint\
ebusd/hc1/DHWSetValue:.* DHWSetValue\
ebusd/hc1/DHWTemperature:.* DHWTemperature\
ebusd/hc1/EndOfHoliday\x2eDay:.* EndOfHoliday.Day\
ebusd/hc1/EndOfHoliday\x2eMonth:.* EndOfHoliday.Month\
ebusd/hc1/EndOfHoliday:.* EndOfHoliday\
ebusd/hc1/ExternalTemperature:.* ExternalTemperature\
ebusd/hc1/FrostProtection:.* FrostProtection\
ebusd/hc1/Gradient:.* Gradient\
ebusd/hc1/HeatDemand:.* HeatDemand\
ebusd/hc1/HeatingDemand:.* HeatingDemand\
ebusd/hc1/HolidayTemp:.* HolidayTemp\
ebusd/hc1/HP1\x2eDi\x2e1:.* HP1.Di.1\
ebusd/hc1/HP1\x2eDi\x2e2:.* HP1.Di.2\
ebusd/hc1/HP1\x2eDi\x2e3:.* HP1.Di.3\
ebusd/hc1/HP1\x2eDo\x2e1:.* HP1.Do.1\
ebusd/hc1/HP1\x2eDo\x2e2:.* HP1.Do.2\
ebusd/hc1/HP1\x2eDo\x2e3:.* HP1.Do.3\
ebusd/hc1/HP1\x2eFr\x2e1:.* HP1.Fr.1\
ebusd/hc1/HP1\x2eFr\x2e2:.* HP1.Fr.2\
ebusd/hc1/HP1\x2eFr\x2e3:.* HP1.Fr.3\
ebusd/hc1/HP1\x2eMi\x2e1:.* HP1.Mi.1\
ebusd/hc1/HP1\x2eMi\x2e2:.* HP1.Mi.2\
ebusd/hc1/HP1\x2eMi\x2e3:.* HP1.Mi.3\
ebusd/hc1/HP1\x2eMo\x2e1:.* HP1.Mo.1\
ebusd/hc1/HP1\x2eMo\x2e2:.* HP1.Mo.2\
ebusd/hc1/HP1\x2eMo\x2e3:.* HP1.Mo.3\
ebusd/hc1/HP1\x2eSa\x2e1:.* HP1.Sa.1\
ebusd/hc1/HP1\x2eSa\x2e2:.* HP1.Sa.2\
ebusd/hc1/HP1\x2eSa\x2e3:.* HP1.Sa.3\
ebusd/hc1/HP1\x2eSo\x2e1:.* HP1.So.1\
ebusd/hc1/HP1\x2eSo\x2e2:.* HP1.So.2\
ebusd/hc1/HP1\x2eSo\x2e3:.* HP1.So.3\
ebusd/hc1/HP2\x2eDi\x2e1:.* HP2.Di.1\
ebusd/hc1/HP2\x2eDi\x2e2:.* HP2.Di.2\
ebusd/hc1/HP2\x2eDi\x2e3:.* HP2.Di.3\
ebusd/hc1/HP2\x2eDo\x2e1:.* HP2.Do.1\
ebusd/hc1/HP2\x2eDo\x2e2:.* HP2.Do.2\
ebusd/hc1/HP2\x2eDo\x2e3:.* HP2.Do.3\
ebusd/hc1/HP2\x2eFr\x2e1:.* HP2.Fr.1\
ebusd/hc1/HP2\x2eFr\x2e2:.* HP2.Fr.2\
ebusd/hc1/HP2\x2eFr\x2e3:.* HP2.Fr.3\
ebusd/hc1/HP2\x2eMi\x2e1:.* HP2.Mi.1\
ebusd/hc1/HP2\x2eMi\x2e2:.* HP2.Mi.2\
ebusd/hc1/HP2\x2eMi\x2e3:.* HP2.Mi.3\
ebusd/hc1/HP2\x2eMo\x2e1:.* HP2.Mo.1\
ebusd/hc1/HP2\x2eMo\x2e2:.* HP2.Mo.2\
ebusd/hc1/HP2\x2eMo\x2e3:.* HP2.Mo.3\
ebusd/hc1/HP2\x2eSa\x2e1:.* HP2.Sa.1\
ebusd/hc1/HP2\x2eSa\x2e2:.* HP2.Sa.2\
ebusd/hc1/HP2\x2eSa\x2e3:.* HP2.Sa.3\
ebusd/hc1/HP2\x2eSo\x2e1:.* HP2.So.1\
ebusd/hc1/HP2\x2eSo\x2e2:.* HP2.So.2\
ebusd/hc1/HP2\x2eSo\x2e3:.* HP2.So.3\
ebusd/hc1/HP3\x2eDi\x2e1:.* HP3.Di.1\
ebusd/hc1/HP3\x2eDi\x2e2:.* HP3.Di.2\
ebusd/hc1/HP3\x2eDi\x2e3:.* HP3.Di.3\
ebusd/hc1/HP3\x2eDo\x2e1:.* HP3.Do.1\
ebusd/hc1/HP3\x2eDo\x2e2:.* HP3.Do.2\
ebusd/hc1/HP3\x2eDo\x2e3:.* HP3.Do.3\
ebusd/hc1/HP3\x2eFr\x2e1:.* HP3.Fr.1\
ebusd/hc1/HP3\x2eFr\x2e2:.* HP3.Fr.2\
ebusd/hc1/HP3\x2eFr\x2e3:.* HP3.Fr.3\
ebusd/hc1/HP3\x2eMi\x2e1:.* HP3.Mi.1\
ebusd/hc1/HP3\x2eMi\x2e2:.* HP3.Mi.2\
ebusd/hc1/HP3\x2eMi\x2e3:.* HP3.Mi.3\
ebusd/hc1/HP3\x2eMo\x2e1:.* HP3.Mo.1\
ebusd/hc1/HP3\x2eMo\x2e2:.* HP3.Mo.2\
ebusd/hc1/HP3\x2eMo\x2e3:.* HP3.Mo.3\
ebusd/hc1/HP3\x2eSa\x2e1:.* HP3.Sa.1\
ebusd/hc1/HP3\x2eSa\x2e2:.* HP3.Sa.2\
ebusd/hc1/HP3\x2eSa\x2e3:.* HP3.Sa.3\
ebusd/hc1/HP3\x2eSo\x2e1:.* HP3.So.1\
ebusd/hc1/HP3\x2eSo\x2e2:.* HP3.So.2\
ebusd/hc1/HP3\x2eSo\x2e3:.* HP3.So.3\
ebusd/hc1/LegionnairesFunction:.* LegionnairesFunction\
ebusd/hc1/MaxDHWTemp:.* MaxDHWTemp\
ebusd/hc1/MaxSupplyTemperature:.* MaxSupplyTemperature\
ebusd/hc1/MinSupplyTemperature:.* MinSupplyTemperature\
ebusd/hc1/MixedExternalTemperature:.* MixedExternalTemperature\
ebusd/hc1/NormalSetTemp:.* NormalSetTemp\
ebusd/hc1/ProgramChooseSwitch:.* ProgramChooseSwitch\
ebusd/hc1/ReducedSetTemp:.* ReducedSetTemp\
ebusd/hc1/Reduces:.* Reduces\
ebusd/hc1/RoomInfluence:.* RoomInfluence\
ebusd/hc1/RoomSensorCorrection:.* RoomSensorCorrection\
ebusd/hc1/RoomSetValue:.* RoomSetValue\
ebusd/hc1/RoomTemperature:.* RoomTemperature\
ebusd/hc1/RoomThermostat:.* RoomThermostat\
ebusd/hc1/StartOfHoliday\x2eDay:.* StartOfHoliday.Day\
ebusd/hc1/StartOfHoliday\x2eMonth:.* StartOfHoliday.Month\
ebusd/hc1/StartOfHoliday:.* StartOfHoliday\
ebusd/hc1/Status:.* Status\
ebusd/hc1/SummerWinterChangeOverTemperature:.* SummerWinterChangeOverTemperature\
ebusd/hc1/SupplySetValueHC:.* SupplySetValueHC\
ebusd/hc1/SupplyTemperatureHC:.* SupplyTemperatureHC\
ebusd/hc1/SupplyTemperatureWTC:.* SupplyTemperatureWTC\
ebusd/hc1/SwitchOffSetting:.* SwitchOffSetting\
ebusd/hc1/SwitchOnSetting:.* SwitchOnSetting\
ebusd/hc1/TypeOfConstruction:.* TypeOfConstruction\
ebusd/hc1/WP\x2eDi\x2e1:.* WP.Di.1\
ebusd/hc1/WP\x2eDi\x2e2:.* WP.Di.2\
ebusd/hc1/WP\x2eDi\x2e3:.* WP.Di.3\
ebusd/hc1/WP\x2eDo\x2e1:.* WP.Do.1\
ebusd/hc1/WP\x2eDo\x2e2:.* WP.Do.2\
ebusd/hc1/WP\x2eDo\x2e3:.* WP.Do.3\
ebusd/hc1/WP\x2eFr\x2e1:.* WP.Fr.1\
ebusd/hc1/WP\x2eFr\x2e2:.* WP.Fr.2\
ebusd/hc1/WP\x2eFr\x2e3:.* WP.Fr.3\
ebusd/hc1/WP\x2eMi\x2e1:.* WP.Mi.1\
ebusd/hc1/WP\x2eMi\x2e2:.* WP.Mi.2\
ebusd/hc1/WP\x2eMi\x2e3:.* WP.Mi.3\
ebusd/hc1/WP\x2eMo\x2e1:.* WP.Mo.1\
ebusd/hc1/WP\x2eMo\x2e2:.* WP.Mo.2\
ebusd/hc1/WP\x2eMo\x2e3:.* WP.Mo.3\
ebusd/hc1/WP\x2eSa\x2e1:.* WP.Sa.1\
ebusd/hc1/WP\x2eSa\x2e2:.* WP.Sa.2\
ebusd/hc1/WP\x2eSa\x2e3:.* WP.Sa.3\
ebusd/hc1/WP\x2eSo\x2e1:.* WP.So.1\
ebusd/hc1/WP\x2eSo\x2e2:.* WP.So.2\
ebusd/hc1/WP\x2eSo\x2e3:.* WP.So.3\
ebusd/hc1/ZP\x2eDi\x2e1:.* ZP.Di.1\
ebusd/hc1/ZP\x2eDi\x2e2:.* ZP.Di.2\
ebusd/hc1/ZP\x2eDi\x2e3:.* ZP.Di.3\
ebusd/hc1/ZP\x2eDo\x2e1:.* ZP.Do.1\
ebusd/hc1/ZP\x2eDo\x2e2:.* ZP.Do.2\
ebusd/hc1/ZP\x2eDo\x2e3:.* ZP.Do.3\
ebusd/hc1/ZP\x2eFr\x2e1:.* ZP.Fr.1\
ebusd/hc1/ZP\x2eFr\x2e2:.* ZP.Fr.2\
ebusd/hc1/ZP\x2eFr\x2e3:.* ZP.Fr.3\
ebusd/hc1/ZP\x2eMi\x2e1:.* ZP.Mi.1\
ebusd/hc1/ZP\x2eMi\x2e2:.* ZP.Mi.2\
ebusd/hc1/ZP\x2eMi\x2e3:.* ZP.Mi.3\
ebusd/hc1/ZP\x2eMo\x2e1:.* ZP.Mo.1\
ebusd/hc1/ZP\x2eMo\x2e2:.* ZP.Mo.2\
ebusd/hc1/ZP\x2eMo\x2e3:.* ZP.Mo.3\
ebusd/hc1/ZP\x2eSa\x2e1:.* ZP.Sa.1\
ebusd/hc1/ZP\x2eSa\x2e2:.* ZP.Sa.2\
ebusd/hc1/ZP\x2eSa\x2e3:.* ZP.Sa.3\
ebusd/hc1/ZP\x2eSo\x2e1:.* ZP.So.1\
ebusd/hc1/ZP\x2eSo\x2e2:.* ZP.So.2\
ebusd/hc1/ZP\x2eSo\x2e3:.* ZP.So.3
attr MQTT2_ebusd_hc1 room MQTT2_DEVICE

define MQTT2_ebusd_hc1_HP2 MQTT2_DEVICE ebusd_hc1_HP2
attr MQTT2_ebusd_hc1_HP2 readingList ebusd/hc1/HP2.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_HP2 room MQTT2_DEVICE

define MQTT2_ebusd_hc1_HP3 MQTT2_DEVICE ebusd_hc1_HP3
attr MQTT2_ebusd_hc1_HP3 readingList ebusd/hc1/HP3.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_HP3 room MQTT2_DEVICE

define MQTT2_ebusd_hc1_WP MQTT2_DEVICE ebusd_hc1_WP
attr MQTT2_ebusd_hc1_WP readingList ebusd/hc1/WP.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_WP room MQTT2_DEVICE

define MQTT2_ebusd_hc1_ZP MQTT2_DEVICE ebusd_hc1_ZP
attr MQTT2_ebusd_hc1_ZP readingList ebusd/hc1/ZP.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_ZP room MQTT2_DEVICE

define MQTT2_ebusd_hc2 MQTT2_DEVICE ebusd_hc2
attr MQTT2_ebusd_hc2 readingList ebusd/hc2/HeatingDemand:.* HeatingDemand\
ebusd/hc2/Status:.* Status
attr MQTT2_ebusd_hc2 room MQTT2_DEVICE

define MQTT2_ebusd_hc3 MQTT2_DEVICE ebusd_hc3
attr MQTT2_ebusd_hc3 readingList ebusd/hc3/HeatingDemand:.* HeatingDemand\
ebusd/hc3/Status:.* Status
attr MQTT2_ebusd_hc3 room MQTT2_DEVICE

define MQTT2_ebusd_hc4 MQTT2_DEVICE ebusd_hc4
attr MQTT2_ebusd_hc4 readingList ebusd/hc4/HeatingDemand:.* HeatingDemand\
ebusd/hc4/Status:.* Status
attr MQTT2_ebusd_hc4 room MQTT2_DEVICE

define MQTT2_ebusd_hc5 MQTT2_DEVICE ebusd_hc5
attr MQTT2_ebusd_hc5 readingList ebusd/hc5/HeatingDemand:.* HeatingDemand\
ebusd/hc5/Status:.* Status
attr MQTT2_ebusd_hc5 room MQTT2_DEVICE

define MQTT2_ebusd_hc6 MQTT2_DEVICE ebusd_hc6
attr MQTT2_ebusd_hc6 readingList ebusd/hc6/HeatingDemand:.* HeatingDemand\
ebusd/hc6/Status:.* Status
attr MQTT2_ebusd_hc6 room MQTT2_DEVICE

define MQTT2_ebusd_hc7 MQTT2_DEVICE ebusd_hc7
attr MQTT2_ebusd_hc7 readingList ebusd/hc7/HeatingDemand:.* HeatingDemand\
ebusd/hc7/Status:.* Status
attr MQTT2_ebusd_hc7 room MQTT2_DEVICE

define MQTT2_ebusd_hc8 MQTT2_DEVICE ebusd_hc8
attr MQTT2_ebusd_hc8 readingList ebusd/hc8/HeatingDemand:.* HeatingDemand\
ebusd/hc8/Status:.* Status
attr MQTT2_ebusd_hc8 room MQTT2_DEVICE

define MQTT2_ebusd_sc MQTT2_DEVICE ebusd_sc
attr MQTT2_ebusd_sc model ebus_analyzeReadingList
attr MQTT2_ebusd_sc readingList ebusd/sc/Act:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/BoilerSensorDefective:.* BoilerSensorDefective\
ebusd/sc/BurnerOperationSinceLastService:.* BurnerOperationSinceLastService\
ebusd/sc/CRCErrorHeatingEngeneerParameter:.* CRCErrorHeatingEngeneerParameter\
ebusd/sc/CRCErrorManufacturerParameter:.* CRCErrorManufacturerParameter\
ebusd/sc/DHWSensorDefective:.* DHWSensorDefective\
ebusd/sc/Enduser:.* Enduser\
ebusd/sc/ErrorHistory:.* ErrorHistory\
ebusd/sc/ErrorSCOTCalibration4:.* ErrorSCOTCalibration4\
ebusd/sc/ErrorSCOTCalibration5:.* ErrorSCOTCalibration5\
ebusd/sc/ErrorSCOTCalibration6:.* ErrorSCOTCalibration6\
ebusd/sc/ErrorSCOTCalibration8:.* ErrorSCOTCalibration8\
ebusd/sc/ErrorSCOTControlInput:.* ErrorSCOTControlInput\
ebusd/sc/ErrorSCOTIOControl:.* ErrorSCOTIOControl\
ebusd/sc/ErrorVoltagSupply:.* ErrorVoltagSupply\
ebusd/sc/ExternalSensorDefektive:.* ExternalSensorDefektive\
ebusd/sc/FanFaultDuringOperation:.* FanFaultDuringOperation\
ebusd/sc/FanFaultDuringShutdown:.* FanFaultDuringShutdown\
ebusd/sc/FlameFailureDuringOperation:.* FlameFailureDuringOperation\
ebusd/sc/FlameSimulation:.* FlameSimulation\
ebusd/sc/FlueGasSensorDefective:.* FlueGasSensorDefective\
ebusd/sc/GasValveCycleV1V2Defective:.* GasValveCycleV1V2Defective\
ebusd/sc/GPSFailureDuringSafetyTime:.* GPSFailureDuringSafetyTime\
ebusd/sc/H2EmergencyOffFunction:.* H2EmergencyOffFunction\
ebusd/sc/Manufacturer1:.* Manufacturer1\
ebusd/sc/Manufacturer2:.* Manufacturer2\
ebusd/sc/NoFlameFormation:.* NoFlameFormation\
ebusd/sc/NoGasPressureAvailable:.* NoGasPressureAvailable\
ebusd/sc/ProcessValues1:.* ProcessValues1\
ebusd/sc/ProcessValues2:.* ProcessValues2\
ebusd/sc/ProcessValues3:.* ProcessValues3\
ebusd/sc/ProcessValues4:.* ProcessValues4\
ebusd/sc/ProcessValues5:.* ProcessValues5\
ebusd/sc/ProcessValues6:.* ProcessValues6\
ebusd/sc/PWMPumpDefective:.* PWMPumpDefective\
ebusd/sc/SetpointDHW:.* SetpointDHW\
ebusd/sc/SetpointTempSystem:.* SetpointTempSystem\
ebusd/sc/Statistic1:.* Statistic1\
ebusd/sc/Statistic2:.* Statistic2\
ebusd/sc/Statistic3:.* Statistic3\
ebusd/sc/Statistic4:.* Statistic4\
ebusd/sc/Statistic5:.* Statistic5\
ebusd/sc/Statistic6:.* Statistic6\
ebusd/sc/StatisticUkn01:.* StatisticUkn01\
ebusd/sc/StatisticUkn02:.* StatisticUkn02\
ebusd/sc/StatisticUkn03:.* StatisticUkn03\
ebusd/sc/StatisticUkn04:.* StatisticUkn04\
ebusd/sc/StatisticUkn05:.* StatisticUkn05\
ebusd/sc/WWTurbineDefective:.* WWTurbineDefective
attr MQTT2_ebusd_sc room MQTT2_DEVICE

setstate MQTT2_ebusd_21.2_1 Status: \
1:true\
Signal: \
2:true\
<br>Uptime: 0 000 01:20
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:50:19 attrTemplateVersion 20210720
setstate MQTT2_ebusd_21.2_1 2021-07-22 09:55:44 date 22.07.2021
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:57:15 eeprom
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:56:57 error
setstate MQTT2_ebusd_21.2_1 2021-07-22 09:56:06 formatedUptime 0 000 01:20
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:56:57 id
setstate MQTT2_ebusd_21.2_1 2021-07-22 09:55:44 outsidetemp 20.000
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:56:57 queryexistence
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:57:15 ram
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:06 running true
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:37:45 scan "finished"
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:37:43 scan_08_HW 0302
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:37:43 scan_08_ID W
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:37:43 scan_08_MF Kromschroeder
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:37:43 scan_08_SW 1200
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:43 scan_0c_ID ??
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:17 scan_35_ID W
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:17 scan_35_MF Kromschroeder
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:17 scan_35_SW 2726
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:19 scan_f6_HW 0302
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:19 scan_f6_ID WWST?
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:19 scan_f6_MF Kromschroeder
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:19 scan_f6_SW 1200
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:23 signal true
setstate MQTT2_ebusd_21.2_1 2021-07-22 07:56:57 signoflife
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:18:42 state getKnown
setstate MQTT2_ebusd_21.2_1 2021-07-22 09:55:44 time 09:58:-
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:39:45 updatecheck "OK"
setstate MQTT2_ebusd_21.2_1 2021-07-22 09:56:06 uptime 4800
setstate MQTT2_ebusd_21.2_1 2021-07-22 08:36:06 version "ebusd 21.2.v21.2"

setstate MQTT2_ebusd_hc1 2021-07-22 08:36:31 Action stopconsumer
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 Adaption
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 BCAST1
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 BCAST2
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 DHWMin
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 DHWMode
setstate MQTT2_ebusd_hc1 2021-07-22 08:36:31 DHWSetTemp 48.0
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 DHWSetValue
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 DHWSetpoint
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 DHWTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 EndOfHoliday
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 EndOfHoliday.Day
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:58 EndOfHoliday.Month
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 ExternalTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 FrostProtection
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 Gradient
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Di.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Di.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Di.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Do.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Do.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Do.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Fr.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Fr.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Fr.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Mi.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Mi.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Mi.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HP1.Mo.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.Mo.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.Mo.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.Sa.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.Sa.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.Sa.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.So.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.So.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP1.So.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Di.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Di.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Di.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Do.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Do.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Do.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:00 HP2.Fr.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Fr.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Fr.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Mi.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Mi.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Mi.3
setstate MQTT2_ebusd_hc1 2021-07-22 08:36:43 HP2.Mo.1 {\
     "End": {"value": "23:00"},\
     "Start": {"value": "19:00"}}
setstate MQTT2_ebusd_hc1 2021-07-22 09:31:40 HP2.Mo.2 {\
     "End": {"value": "00:00"},\
     "Start": {"value": "00:00"}}
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Mo.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Sa.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Sa.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.Sa.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:01 HP2.So.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP2.So.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP2.So.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Di.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Di.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Di.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Do.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Do.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Do.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Fr.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Fr.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:02 HP3.Fr.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mi.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mi.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mi.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mo.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mo.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Mo.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Sa.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Sa.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:03 HP3.Sa.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 HP3.So.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 HP3.So.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 HP3.So.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HeatDemand
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HeatingDemand
setstate MQTT2_ebusd_hc1 2021-07-22 07:56:59 HolidayTemp
setstate MQTT2_ebusd_hc1 2021-07-22 07:50:19 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 LegionnairesFunction
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 MaxDHWTemp
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 MaxSupplyTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 MinSupplyTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:04 MixedExternalTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 NormalSetTemp
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 ProgramChooseSwitch
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 ReducedSetTemp
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 Reduces
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 RoomInfluence
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 RoomSensorCorrection
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:05 RoomSetValue
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 RoomTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 RoomThermostat
setstate MQTT2_ebusd_hc1 2021-07-22 08:36:31 SetTemp 5.00
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 StartOfHoliday
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 StartOfHoliday.Day
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 StartOfHoliday.Month
setstate MQTT2_ebusd_hc1 2021-07-22 08:36:31 Status hotwater
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 SummerWinterChangeOverTemperature
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:06 SupplySetValueHC
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 SupplyTemperatureHC
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 SupplyTemperatureWTC
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 SwitchOffSetting
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 SwitchOnSetting
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 TypeOfConstruction
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 WP.Di.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 WP.Di.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:07 WP.Di.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Do.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Do.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Do.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Fr.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Fr.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:08 WP.Fr.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mi.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mi.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mi.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mo.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mo.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Mo.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:09 WP.Sa.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 WP.Sa.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 WP.Sa.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 WP.So.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 WP.So.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 WP.So.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:10 ZP.Di.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Di.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Di.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Do.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Do.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Do.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:11 ZP.Fr.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:12 ZP.Fr.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:12 ZP.Fr.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:12 ZP.Mi.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:12 ZP.Mi.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:12 ZP.Mi.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:13 ZP.Mo.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:13 ZP.Mo.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:13 ZP.Mo.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:13 ZP.Sa.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:13 ZP.Sa.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:14 ZP.Sa.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:14 ZP.So.1
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:14 ZP.So.2
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:14 ZP.So.3
setstate MQTT2_ebusd_hc1 2021-07-22 07:57:14 associatedWith MQTT2_ebusd_21.2_1
setstate MQTT2_ebusd_hc1 2021-07-22 08:20:00 attrTemplateVersion 2021-07-22 08:20:00 # $Id: 99_attrTmqtt2_ebus_Utils.pm 24777+ extended analysis 2021-07-21 Beta-User $

setstate MQTT2_ebusd_hc1_HP2 2021-07-22 08:03:20 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1_HP2 2021-07-22 09:31:40 Monday 19:00;;23:00;;00:00;;00:00;;-,-;;-,-;;Mo-So

setstate MQTT2_ebusd_hc1_HP3 2021-07-22 08:03:55 IODev myMQTT_Server

setstate MQTT2_ebusd_hc1_WP 2021-07-22 08:04:24 IODev myMQTT_Server

setstate MQTT2_ebusd_hc1_ZP 2021-07-22 08:05:01 IODev myMQTT_Server

setstate MQTT2_ebusd_hc2 2021-07-22 07:57:14 HeatingDemand
setstate MQTT2_ebusd_hc2 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc2 2021-07-22 07:57:14 Status
setstate MQTT2_ebusd_hc2 2021-07-22 07:57:14 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc3 2021-07-22 07:57:14 HeatingDemand
setstate MQTT2_ebusd_hc3 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc3 2021-07-22 07:57:14 Status
setstate MQTT2_ebusd_hc3 2021-07-22 07:57:14 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc4 2021-07-22 07:57:14 HeatingDemand
setstate MQTT2_ebusd_hc4 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc4 2021-07-22 07:57:15 Status
setstate MQTT2_ebusd_hc4 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc5 2021-07-22 07:57:15 HeatingDemand
setstate MQTT2_ebusd_hc5 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc5 2021-07-22 07:57:15 Status
setstate MQTT2_ebusd_hc5 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc6 2021-07-22 07:57:15 HeatingDemand
setstate MQTT2_ebusd_hc6 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc6 2021-07-22 07:57:15 Status
setstate MQTT2_ebusd_hc6 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc7 2021-07-22 07:57:15 HeatingDemand
setstate MQTT2_ebusd_hc7 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc7 2021-07-22 07:57:15 Status
setstate MQTT2_ebusd_hc7 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_hc8 2021-07-22 07:57:15 HeatingDemand
setstate MQTT2_ebusd_hc8 2021-07-22 07:56:58 IODev myMQTT_Server
setstate MQTT2_ebusd_hc8 2021-07-22 07:57:15 Status
setstate MQTT2_ebusd_hc8 2021-07-22 07:57:15 associatedWith MQTT2_ebusd_21.2_1

setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 BoilerSensorDefective
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 BurnerOperationSinceLastService
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 CRCErrorHeatingEngeneerParameter
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 CRCErrorManufacturerParameter
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 DHWSensorDefective
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 DHWTemp 50.0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 Enduser
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Error 0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 ErrorHistory
setstate MQTT2_ebusd_sc 2021-07-22 07:57:15 ErrorSCOTCalibration4
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 ErrorSCOTCalibration5
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 ErrorSCOTCalibration6
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 ErrorSCOTCalibration8
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 ErrorSCOTControlInput
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 ErrorSCOTIOControl
setstate MQTT2_ebusd_sc 2021-07-22 09:55:19 ErrorVoltagSupply {\
     "_16_Counter": {"value": 256}}
setstate MQTT2_ebusd_sc 2021-07-22 08:42:20 ExternalSensorDefektive {\
     "_16_Counter": {"value": 0}}
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 ExternalTemp 20
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 FanFaultDuringOperation
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 FanFaultDuringShutdown
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Flame 0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 FlameFailureDuringOperation
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 FlameSimulation
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 FlueGasSensorDefective
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 GPSFailureDuringSafetyTime
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 GasValve1 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 GasValve2 0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:16 GasValveCycleV1V2Defective
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 H2EmergencyOffFunction
setstate MQTT2_ebusd_sc 2021-07-22 07:50:19 IODev myMQTT_Server
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Load 0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 Manufacturer1
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 Manufacturer2
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 NoFlameFormation
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 NoGasPressureAvailable
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Operatingphase BrennerAus
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 PWMPumpDefective
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues1
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues2
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues3
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues4
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues5
setstate MQTT2_ebusd_sc 2021-07-22 07:57:17 ProcessValues6
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Pump 0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 SetpointDHW
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 SetpointTempSystem
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 SettingUV Heating
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 SoWi Summer
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic1
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic2
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic3
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic4
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic5
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 Statistic6
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 StatisticUkn01
setstate MQTT2_ebusd_sc 2021-07-22 07:57:18 StatisticUkn02
setstate MQTT2_ebusd_sc 2021-07-22 07:57:19 StatisticUkn03
setstate MQTT2_ebusd_sc 2021-07-22 07:57:19 StatisticUkn04
setstate MQTT2_ebusd_sc 2021-07-22 07:57:19 StatisticUkn05
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Status1 1
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 SupplySetTemp 8
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 SupplyTemp 42.0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 TrendTemp 19.469
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn2_1 1
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn2_2 1
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn2_3 1
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_1 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_3 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_4 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_5 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_6 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 Ukn3_7 0
setstate MQTT2_ebusd_sc 2021-07-22 09:54:40 UknTemp 0.0
setstate MQTT2_ebusd_sc 2021-07-22 07:57:19 WWTurbineDefective
setstate MQTT2_ebusd_sc 2021-07-22 07:57:19 associatedWith MQTT2_ebusd_21.2_1
setstate MQTT2_ebusd_sc 2021-07-22 09:53:54 attrTemplateVersion 2021-07-22 09:53:54 # $Id: 99_attrTmqtt2_ebus_Utils.pm 24777+ extended analysis 2021-07-21 Beta-User $



Beta-User

#70
Anbei eine erweiterte Version (aktueller als das, was jetzt im svn liegt, die sollte auch zumindest den einen "Error"-Zweig in ein einziges Reading überführen).

Grundsätzlich ist es hilfreich, diese Dinge "from the scratch" zu testen, wie du das jetzt auch gemacht hattest.
Du hattest jetzt aber das Problem, dass die readingList durchgehend von "Klartextreadings" ausgeht, der "analyze"-Code aber nur Zeilen anfasst, die
- nicht Klartext-Readings ergeben (also Perl-Code enthalten) und
- nicht bereits umgestellt sind.
Das ganze läuft nur "optimiert", wenn (anhand der durch json2nameValue erstellten Reading-Namen) erkannt werden kann, wo ein Präfix gesetzt werden sollte. Da nicht json2nameValue aufgerufen wurde (da Klartextreading), hat auch dieser Teil nicht geklappt...

Weiter:
Die Automatik erstellt bei den "Punkt-Tag-Punkt-Schaltpaar"-Topics automatisch neue Devices, wenn sie nicht vorhanden sind, und packt dann auch eine (hoffentlich passende) setList dazu. Es ist daher nicht mehr erforderlich, die zusätzlichen Geräte manuell zu erstellen ;) . Schritt 5 kann daher eigentlich entfallen.

Bleibt die Frage, warum überhaupt Klartext-Readings erstellt wurden (oder anders gesagt: warum jetzt zuerst die non-JSON Payload kam).
Eventuell ist da auch bei "getAll" irgendwas gespeichertes aberufen worden, und der letzte Wert scheint jeweils "leer" gewesen zu sein(?). Grundsätzlich bin ich der Meinung, man sollte das an john30 adressieren, das kommt mir unbeabsichtigt vor, dass da "leere" Payload und JSON im Wechsel kommen.

Vermutlich wäre es sinnvoll, nochmal "from scratch" anzufangen, bzw. immer erst mal die Zeilen aus der rL zu löschen, die "Klartext" ergeben, bis da was (halbwegs) sinnvolles steht?

"model" (und Versionsinfo) werden so gesetzt, damit ich ggf. besser nachvollziehen kann, wo (in etwa) was herkommt, falls mal jemand Fragen hat...

(EDIT: Typos)
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

rob

Zitat von: Beta-User am 22 Juli 2021, 10:59:45
...immer erst mal die Zeilen aus der rL zu löschen, die "Klartext" ergeben, bis da was (halbwegs) sinnvolles steht?...
OK, mach ich so. Mit einzelnen "gets" kann ich es etwas beschleunigen - wird aber trotzdem noch dauern. Bitte nicht wundern.

Viele Grüße
rob

Beta-User

...kein Ding...

Es gibt übrigens noch ein kleine updates im svn (contrib). Kannst du über das "ebus-update"-attrTemplate holen. Da ist dann v.a. auch etwas commandref enthalten zu den Funktionen etc.. Feedback/Verbesserungsvorschläge dazu sind willkommen...
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

rob

#73
...heute war mein Installateur da und hat die Anlage reparieren müssen. Es wurde Fehler 64 und 69 angezeigt. Natürlich ist F69 nirgends dokumentiert. Danke Weishaupt.

Habe gestern jedenfalls blank neu angefangen, die Readings alle einzeln bereits erzeugt gehabt und mir weggesichert. Sicherheitshalber Attr-Templates aus SVN neu geladen und anschl. den Analyzer auf "hc1" und "sc"losgelassen. Log sagte dann sogleich:

2021.08.03 11:26:23 1: SVN download of contrib/AttrTemplate/mqtt2.ebus.template to FHEM/lib/AttrTemplate/mqtt2.ebus.template finished
2021.08.03 11:26:23 2: AttrTemplates: got 246 entries
2021.08.03 11:32:27 1: Error reading file ..FHEM/99_attrTmqtt2_ebus_Utils.pm!
2021.08.03 14:12:07 1: Error reading file ..FHEM/99_attrTmqtt2_ebus_Utils.pm!




Die Devices für die Zeitprogramme wurden auch autom. angelegt und die Readings jeweils gesäubert. Weil nun alle Readings wieder weg sind, muss ich sie erneut alle einzeln "getten".
Es gibt ja ein paar Spezialfälle z.B. ErrorHistory, wo gleich mehrere Wertpaare enthalten sind. Diesen habe ich heute probehalber schon geholt und ergibt:

2021-08-04 12:56:45   ErrorHistory    E1.DHWTemp: 0 - E1.ErrorCode: fehlerfrei - E1.ExternalTemp: 0 - E1.FlueGasTemp: 0 - E1.IonisationSignal: 0 - E1.LoadSetting: 0 - E1.OperatingPhase: BrennerAus - E1.SupplyTemp: 0 - E1.ThroughputValue: 3 - E1._8_SettingUV: HZ - E2.DHWTemp: 0 - E2.ErrorCode: 0 - E2.ExternalTemp: 0 - E2.FlueGasTemp: 0 - E2.IonisationSignal: 0 - E2.LoadSetting: 0 - E2.OperatingPhase: BrennerAus - E2.SupplyTemp: 0 - E2.ThroughputValue: 0 - E2._8_SettingUV: HZ - E3.DHWTemp: 0 - E3.ErrorCode: 0 - E3.ExternalTemp: 0 - E3.FlueGasTemp: 0 - E3.IonisationSignal: 42 - E3.LoadSetting: 15 - E3.OperatingPhase: BrennerAus - E3.SupplyTemp: 0 - E3.ThroughputValue: 0 - E3._8_SettingUV: HZ - E4.DHWTemp: 0 - E4.ErrorCode: 251 - E4.ExternalTemp: 0 - E4.FlueGasTemp: 3 - E4.IonisationSignal: 0 - E4.LoadSetting: 130 - E4.OperatingPhase: 251 - E4.SupplyTemp: 0 - E4.ThroughputValue: 0 - E4._8_SettingUV: 167 - E5.DHWTemp: -1 - E5.ErrorCode: Differenz Vorlauf- und Rücklauftemperatur zu groß - E5.ExternalTemp: -9 - E5.FlueGasTemp: -37 - E5.IonisationSignal: 238 - E5.LoadSetting: 120 - E5.OperatingPhase: 128 - E5.SupplyTemp: -62 - E5.ThroughputValue: 254 - E5._8_SettingUV: 160 - E6.DHWTemp: 64 - E6.ErrorCode:  - E6.ExternalTemp: -58 - E6.FlueGasTemp: -108 - E6.IonisationSignal: 229 - E6.LoadSetting: 241 - E6.OperatingPhase: 247 - E6.SupplyTemp: -21 - E6.ThroughputValue: 104 - E6._8_SettingUV: 235 - Offset: 0

Im Log schimpft er dazu:

2021.08.04 12:56:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/99_attrTmqtt2_ebus_Utils.pm line 83.
2021.08.04 12:56:44 3: eval: my $CID=   $evalSpecials->{'%CID'};my $DEVICETOPIC=   $evalSpecials->{'%DEVICETOPIC'};my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $EVTPART10=   $evalSpecials->{'%EVTPART10'};my $EVTPART100=   $evalSpecials->{'%EVTPART100'};my $EVTPART101=   $evalSpecials->{'%EVTPART101'};my $EVTPART102=   $evalSpecials->{'%EVTPART102'};my $EVTPART103=   $evalSpecials->{'%EVTPART103'};my $EVTPART104=   $evalSpecials->{'%EVTPART104'};my $EVTPART105=   $evalSpecials->{'%EVTPART105'};my $EVTPART106=   $evalSpecials->{'%EVTPART106'};my $EVTPART107=   $evalSpecials->{'%EVTPART107'};my $EVTPART108=   $evalSpecials->{'%EVTPART108'};my $EVTPART109=   $evalSpecials->{'%EVTPART109'};my $EVTPART11=   $evalSpecials->{'%EVTPART11'};my $EVTPART110=   $evalSpecials->{'%EVTPART110'};my $EVTPART111=   $evalSpecials->{'%EVTPART111'};my $EVTPART112=   $evalSpecials->{'%EVTPART112'};my $EVTPART113=   $evalSpecials->{'%EVTPART113'};my $EVTPART114=   $evalSpecials->{'%EVTPART114'};my $EVTPART115=   $evalSpecials->{'%EVTPART115'};my $EVTPART116=   $evalSpecials->{'%EVTPART116'};my $EVTPART117=   $evalSpecials->{'%EVTPART117'};my $EVTPART118=   $evalSpecials->{'%EVTPART118'};my $EVTPART119=   $evalSpecials->{'%EVTPART119'};my $EVTPART12=   $evalSpecials->{'%EVTPART12'};my $EVTPART120=   $evalSpecials->{'%EVTPART120'};my $EVTPART121=   $evalSpecials->{'%EVTPART121'};my $EVTPART122=   $evalSpecials->{'%EVTPART122'};my $EVTPART123=   $evalSpecials->{'%EVTPART123'};my $EVTPART124=   $evalSpecials->{'%EVTPART124'};my $EVTPART125=   $evalSpecials->{'%EVTPART125'};my $EVTPART126=   $evalSpecials->{'%EVTPART126'};my $EVTPART127=   $evalSpecials->{'%EVTPART127'};my $EVTPART128=   $evalSpecials->{'%EVTPART128'};my $EVTPART129=   $evalSpecials->{'%EVTPART129'};my $EVTPART13=   $evalSpecials->{'%EVTPART13'};my $EVTPART130=   $evalSpecials->{'%EVTPART130'};my $EVTPART131=   $evalSpecials->{'%EVTPART131'};my $EVTPART132=   $evalSpecials->{'%EVTPART132'};my $EVTPART133=   $evalSpecials->{'%EVTPART133'};my $EVTPART134=   $evalSpecials->{'%EVTPART134'};my $EVTPART135=   $evalSpecials->{'%EVTPART135'};my $EVTPART136=   $evalSpecials->{'%EVTPART136'};my $EVTPART137=   $evalSpecials->{'%EVTPART137'};my $EVTPART138=   $evalSpecials->{'%EVTPART138'};my $EVTPART139=   $evalSpecials->{'%EVTPART139'};my $EVTPART14=   $evalSpecials->{'%EVTPART14'};my $EVTPART140=   $evalSpecials->{'%EVTPART140'};my $EVTPART141=   $evalSpecials->{'%EVTPART141'};my $EVTPART142=   $evalSpecials->{'%EVTPART142'};my $EVTPART143=   $evalSpecials->{'%EVTPART143'};my $EVTPART144=   $evalSpecials->{'%EVTPART144'};my $EVTPART145=   $evalSpecials->{'%EVTPART145'};my $EVTPART146=   $evalSpecials->{'%EVTPART146'};my $EVTPART147=   $evalSpecials->{'%EVTPART147'};my $EVTPART148=   $evalSpecials->{'%EVTPART148'};my $EVTPART149=   $evalSpecials->{'%EVTPART149'};my $EVTPART15=   $evalSpecials->{'%EVTPART15'};my $EVTPART150=   $evalSpecials->{'%EVTPART150'};my $EVTPART151=   $evalSpecials->{'%EVTPART151'};my $EVTPART152=   $evalSpecials->{'%EVTPART152'};my $EVTPART153=   $evalSpecials->{'%EVTPART153'};my $EVTPART154=   $evalSpecials->{'%EVTPART154'};my $EVTPART155=   $evalSpecials->{'%EVTPART155'};my $EVTPART156=   $evalSpecials->{'%EVTPART156'};my $EVTPART157=   $evalSpecials->{'%EVTPART157'};my $EVTPART158=   $evalSpecials->{'%EVTPART158'};my $EVTPART159=   $evalSpecials->{'%EVTPART159'};my $EVTPART16=   $evalSpecials->{'%EVTPART16'};my $EVTPART160=   $evalSpecials->{'%EVTPART160'};my $EVTPART161=   $evalSpecials->{'%EVTPART161'};my $EVTPART162=   $evalSpecials->{'%EVTPART162'};my $EVTPART163=   $evalSpecials->{'%EVTPART163'};my $EVTPART164=   $evalSpecials->{'%EVTPART164'};my $EVTPART165=   $evalSpecials->{'%EVTPART165'};my $EVTPART166=   $evalSpecials->{'%EVTPART166'};my $EVTPART167=   $evalSpecials->{'%EVTPART167'};my $EVTPART168=   $evalSpecials->{'%EVTPART168'};my $EVTPART169=   $evalSpecials->{'%EVTPART169'};my $EVTPART17=   $evalSpecials->{'%EVTPART17'};my $EVTPART170=   $evalSpecials->{'%EVTPART170'};my $EVTPART171=   $evalSpecials->{'%EVTPART171'};my $EVTPART172=   $evalSpecials->{'%EVTPART172'};my $EVTPART173=   $evalSpecials->{'%EVTPART173'};my $EVTPART174=   $evalSpecials->{'%EVTPART174'};my $EVTPART175=   $evalSpecials->{'%EVTPART175'};my $EVTPART176=   $evalSpecials->{'%EVTPART176'};my $EVTPART177=   $evalSpecials->{'%EVTPART177'};my $EVTPART178=   $evalSpecials->{'%EVTPART178'};my $EVTPART179=   $evalSpecials->{'%EVTPART179'};my $EVTPART18=   $evalSpecials->{'%EVTPART18'};my $EVTPART180=   $evalSpecials->{'%EVTPART180'};my $EVTPART181=   $evalSpecials->{'%EVTPART181'};my $EVTPART182=   $evalSpecials->{'%EVTPART182'};my $EVTPART183=   $evalSpecials->{'%EVTPART183'};my $EVTPART184=   $evalSpecials->{'%EVTPART184'};my $EVTPART185=   $evalSpecials->{'%EVTPART185'};my $EVTPART186=   $evalSpecials->{'%EVTPART186'};my $EVTPART187=   $evalSpecials->{'%EVTPART187'};my $EVTPART188=   $evalSpecials->{'%EVTPART188'};my $EVTPART19=   $evalSpecials->{'%EVTPART19'};my $EVTPART2=   $evalSpecials->{'%EVTPART2'};my $EVTPART20=   $evalSpecials->{'%EVTPART20'};my $EVTPART21=   $evalSpecials->{'%EVTPART21'};my $EVTPART22=   $evalSpecials->{'%EVTPART22'};my $EVTPART23=   $evalSpecials->{'%EVTPART23'};my $EVTPART24=   $evalSpecials->{'%EVTPART24'};my $EVTPART25=   $evalSpecials->{'%EVTPART25'};my $EVTPART26=   $evalSpecials->{'%EVTPART26'};my $EVTPART27=   $evalSpecials->{'%EVTPART27'};my $EVTPART28=   $evalSpecials->{'%EVTPART28'};my $EVTPART29=   $evalSpecials->{'%EVTPART29'};my $EVTPART3=   $evalSpecials->{'%EVTPART3'};my $EVTPART30=   $evalSpecials->{'%EVTPART30'};my $EVTPART31=   $evalSpecials->{'%EVTPART31'};my $EVTPART32=   $evalSpecials->{'%EVTPART32'};my $EVTPART33=   $evalSpecials->{'%EVTPART33'};my $EVTPART34=   $evalSpecials->{'%EVTPART34'};my $EVTPART35=   $evalSpecials->{'%EVTPART35'};my $EVTPART36=   $evalSpecials->{'%EVTPART36'};my $EVTPART37=   $evalSpecials->{'%EVTPART37'};my $EVTPART38=   $evalSpecials->{'%EVTPART38'};my $EVTPART39=   $evalSpecials->{'%EVTPART39'};my $EVTPART4=   $evalSpecials->{'%EVTPART4'};my $EVTPART40=   $evalSpecials->{'%EVTPART40'};my $EVTPART41=   $evalSpecials->{'%EVTPART41'};my $EVTPART42=   $evalSpecials->{'%EVTPART42'};my $EVTPART43=   $evalSpecials->{'%EVTPART43'};my $EVTPART44=   $evalSpecials->{'%EVTPART44'};my $EVTPART45=   $evalSpecials->{'%EVTPART45'};my $EVTPART46=   $evalSpecials->{'%EVTPART46'};my $EVTPART47=   $evalSpecials->{'%EVTPART47'};my $EVTPART48=   $evalSpecials->{'%EVTPART48'};my $EVTPART49=   $evalSpecials->{'%EVTPART49'};my $EVTPART5=   $evalSpecials->{'%EVTPART5'};my $EVTPART50=   $evalSpecials->{'%EVTPART50'};my $EVTPART51=   $evalSpecials->{'%EVTPART51'};my $EVTPART52=   $evalSpecials->{'%EVTPART52'};my $EVTPART53=   $evalSpecials->{'%EVTPART53'};my $EVTPART54=   $evalSpecials->{'%EVTPART54'};my $EVTPART55=   $evalSpecials->{'%EVTPART55'};my $EVTPART56=   $evalSpecials->{'%EVTPART56'};my $EVTPART57=   $evalSpecials->{'%EVTPART57'};my $EVTPART58=   $evalSpecials->{'%EVTPART58'};my $EVTPART59=   $evalSpecials->{'%EVTPART59'};my $EVTPART6=   $evalSpecials->{'%EVTPART6'};my $EVTPART60=   $evalSpecials->{'%EVTPART60'};my $EVTPART61=   $evalSpecials->{'%EVTPART61'};my $EVTPART62=   $evalSpecials->{'%EVTPART62'};my $EVTPART63=   $evalSpecials->{'%EVTPART63'};my $EVTPART64=   $evalSpecials->{'%EVTPART64'};my $EVTPART65=   $evalSpecials->{'%EVTPART65'};my $EVTPART66=   $evalSpecials->{'%EVTPART66'};my $EVTPART67=   $evalSpecials->{'%EVTPART67'};my $EVTPART68=   $evalSpecials->{'%EVTPART68'};my $EVTPART69=   $evalSpecials->{'%EVTPART69'};my $EVTPART7=   $evalSpecials->{'%EVTPART7'};my $EVTPART70=   $evalSpecials->{'%EVTPART70'};my $EVTPART71=   $evalSpecials->{'%EVTPART71'};my $EVTPART72=   $evalSpecials->{'%EVTPART72'};my $EVTPART73=   $evalSpecials->{'%EVTPART73'};my $EVTPART74=   $evalSpecials->{'%EVTPART74'};my $EVTPART75=   $evalSpecials->{'%EVTPART75'};my $EVTPART76=   $evalSpecials->{'%EVTPART76'};my $EVTPART77=   $evalSpecials->{'%EVTPART77'};my $EVTPART78=   $evalSpecials->{'%EVTPART78'};my $EVTPART79=   $evalSpecials->{'%EVTPART79'};my $EVTPART8=   $evalSpecials->{'%EVTPART8'};my $EVTPART80=   $evalSpecials->{'%EVTPART80'};my $EVTPART81=   $evalSpecials->{'%EVTPART81'};my $EVTPART82=   $evalSpecials->{'%EVTPART82'};my $EVTPART83=   $evalSpecials->{'%EVTPART83'};my $EVTPART84=   $evalSpecials->{'%EVTPART84'};my $EVTPART85=   $evalSpecials->{'%EVTPART85'};my $EVTPART86=   $evalSpecials->{'%EVTPART86'};my $EVTPART87=   $evalSpecials->{'%EVTPART87'};my $EVTPART88=   $evalSpecials->{'%EVTPART88'};my $EVTPART89=   $evalSpecials->{'%EVTPART89'};my $EVTPART9=   $evalSpecials->{'%EVTPART9'};my $EVTPART90=   $evalSpecials->{'%EVTPART90'};my $EVTPART91=   $evalSpecials->{'%EVTPART91'};my $EVTPART92=   $evalSpecials->{'%EVTPART92'};my $EVTPART93=   $evalSpecials->{'%EVTPART93'};my $EVTPART94=   $evalSpecials->{'%EVTPART94'};my $EVTPART95=   $evalSpecials->{'%EVTPART95'};my $EVTPART96=   $evalSpecials->{'%EVTPART96'};my $EVTPART97=   $evalSpecials->{'%EVTPART97'};my $EVTPART98=   $evalSpecials->{'%EVTPART98'};my $EVTPART99=   $evalSpecials->{'%EVTPART99'};my $JSONMAP=   $evalSpecials->{'%JSONMAP'};my $NAME=   $evalSpecials->{'%NAME'};my $TOPIC=   $evalSpecials->{'%TOPIC'};{ FHEM::aTm2u_ebus::j2singleReading( 'ErrorHistory', $EVENT, '', $JSONMAP ) }

Vielleicht muss man die paar Ausreißer doch manuell behandeln. So schlimm ist es auch wieder nicht :)



ein list -r MQTT2_ebusd_hc1.*|MQTT2_ebusd_sc sagt:

define MQTT2_ebusd_hc1 MQTT2_DEVICE ebusd_hc1
attr MQTT2_ebusd_hc1 userattr weekprofile
attr MQTT2_ebusd_hc1 model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1 readingList ebusd/hc1/Set:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/Adaption:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/DHWMin:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/DHWMode:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'DHWMode_', $JSONMAP ) }\
ebusd/hc1/DHWSetpoint:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'DHWSetpoint_', $JSONMAP ) }\
ebusd/hc1/DHWSetValue:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'DHWSetValue_', $JSONMAP ) }\
ebusd/hc1/DHWTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'DHWTemperature_', $JSONMAP ) }\
ebusd/hc1/EndOfHoliday.Day:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'EndOfHoliday_Day_', $JSONMAP ) }\
ebusd/hc1/EndOfHoliday.Month:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'EndOfHoliday_Month_', $JSONMAP ) }\
ebusd/hc1/EndOfHoliday:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/ExternalTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/FrostProtection:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/Gradient:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/HeatDemand:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/HeatingDemand:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'HeatingDemand_', $JSONMAP ) }\
ebusd/hc1/HolidayTemp:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'HolidayTemp_', $JSONMAP ) }\
ebusd/hc1/HP1.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }\
ebusd/hc1/LegionnairesFunction:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'LegionnairesFunction_', $JSONMAP ) }\
ebusd/hc1/MaxDHWTemp:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/MaxSupplyTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/MinSupplyTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/MixedExternalTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/NormalSetTemp:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/ProgramChooseSwitch:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/ReducedSetTemp:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/Reduces:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/RoomInfluence:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/RoomSensorCorrection:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/RoomSetValue:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/RoomTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/RoomThermostat:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/StartOfHoliday.Day:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StartOfHoliday_Day_', $JSONMAP ) }\
ebusd/hc1/StartOfHoliday.Month:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StartOfHoliday_Month_', $JSONMAP ) }\
ebusd/hc1/StartOfHoliday:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/Status:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SummerWinterChangeOverTemperature:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SupplySetValueHC:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SupplyTemperatureHC:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SupplyTemperatureWTC:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SwitchOffSetting:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/SwitchOnSetting:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/hc1/TypeOfConstruction:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'TypeOfConstruction_', $JSONMAP ) }
attr MQTT2_ebusd_hc1 room MQTT2_DEVICE
attr MQTT2_ebusd_hc1 setList Sunday ebusd/hc1/HP1.So/set\
Monday ebusd/hc1/HP1.Mo/set\
Tuesday ebusd/hc1/HP1.Di/set\
Wednesday ebusd/hc1/HP1.Mi/set\
Thursday ebusd/hc1/HP1.Do/set\
Friday ebusd/hc1/HP1.Fr/set\
Saturday ebusd/hc1/HP1.Sa/set
attr MQTT2_ebusd_hc1 weekprofile MQTT2_ebusd_hc1

define MQTT2_ebusd_hc1_HP2 MQTT2_DEVICE
attr MQTT2_ebusd_hc1_HP2 userattr weekprofile
attr MQTT2_ebusd_hc1_HP2 model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1_HP2 readingList ebusd/hc1/HP2.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_HP2 room MQTT2_DEVICE
attr MQTT2_ebusd_hc1_HP2 setList Sunday ebusd/hc1/HP2.So/set\
Monday ebusd/hc1/HP2.Mo/set\
Tuesday ebusd/hc1/HP2.Di/set\
Wednesday ebusd/hc1/HP2.Mi/set\
Thursday ebusd/hc1/HP2.Do/set\
Friday ebusd/hc1/HP2.Fr/set\
Saturday ebusd/hc1/HP2.Sa/set
attr MQTT2_ebusd_hc1_HP2 weekprofile MQTT2_ebusd_hc1_HP2

define MQTT2_ebusd_hc1_HP3 MQTT2_DEVICE
attr MQTT2_ebusd_hc1_HP3 userattr weekprofile
attr MQTT2_ebusd_hc1_HP3 model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1_HP3 readingList ebusd/hc1/HP3.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_HP3 room MQTT2_DEVICE
attr MQTT2_ebusd_hc1_HP3 setList Sunday ebusd/hc1/HP3.So/set\
Monday ebusd/hc1/HP3.Mo/set\
Tuesday ebusd/hc1/HP3.Di/set\
Wednesday ebusd/hc1/HP3.Mi/set\
Thursday ebusd/hc1/HP3.Do/set\
Friday ebusd/hc1/HP3.Fr/set\
Saturday ebusd/hc1/HP3.Sa/set
attr MQTT2_ebusd_hc1_HP3 weekprofile MQTT2_ebusd_hc1_HP3

define MQTT2_ebusd_hc1_WP MQTT2_DEVICE
attr MQTT2_ebusd_hc1_WP userattr weekprofile
attr MQTT2_ebusd_hc1_WP model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1_WP readingList ebusd/hc1/WP.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_WP room MQTT2_DEVICE
attr MQTT2_ebusd_hc1_WP setList Sunday ebusd/hc1/WP.So/set\
Monday ebusd/hc1/WP.Mo/set\
Tuesday ebusd/hc1/WP.Di/set\
Wednesday ebusd/hc1/WP.Mi/set\
Thursday ebusd/hc1/WP.Do/set\
Friday ebusd/hc1/WP.Fr/set\
Saturday ebusd/hc1/WP.Sa/set
attr MQTT2_ebusd_hc1_WP weekprofile MQTT2_ebusd_hc1_WP

define MQTT2_ebusd_hc1_ZP MQTT2_DEVICE
attr MQTT2_ebusd_hc1_ZP userattr weekprofile
attr MQTT2_ebusd_hc1_ZP model ebus_analyzeReadingList
attr MQTT2_ebusd_hc1_ZP readingList ebusd/hc1/ZP.*:.* { FHEM::aTm2u_ebus::upd_day_profile( $NAME, $TOPIC, $EVENT, 'So|Mo|Di|Mi|Do|Fr|Sa' ) }
attr MQTT2_ebusd_hc1_ZP room MQTT2_DEVICE
attr MQTT2_ebusd_hc1_ZP setList Sunday ebusd/hc1/ZP.So/set\
Monday ebusd/hc1/ZP.Mo/set\
Tuesday ebusd/hc1/ZP.Di/set\
Wednesday ebusd/hc1/ZP.Mi/set\
Thursday ebusd/hc1/ZP.Do/set\
Friday ebusd/hc1/ZP.Fr/set\
Saturday ebusd/hc1/ZP.Sa/set
attr MQTT2_ebusd_hc1_ZP weekprofile MQTT2_ebusd_hc1_ZP

define MQTT2_ebusd_sc MQTT2_DEVICE ebusd_sc
attr MQTT2_ebusd_sc model ebus_analyzeReadingList
attr MQTT2_ebusd_sc readingList ebusd/sc/Act:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ErrorSCOTIOControl:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTIOControl_', $JSONMAP ) }\
ebusd/sc/ErrorSCOTControlInput:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTControlInput_', $JSONMAP ) }\
ebusd/sc/ErrorSCOTCalibration8:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTCalibration8_', $JSONMAP ) }\
ebusd/sc/ErrorSCOTCalibration6:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTCalibration6_', $JSONMAP ) }\
ebusd/sc/ErrorSCOTCalibration5:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTCalibration5_', $JSONMAP ) }\
ebusd/sc/ErrorSCOTCalibration4:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorSCOTCalibration4_', $JSONMAP ) }\
ebusd/sc/ErrorHistory:.* { FHEM::aTm2u_ebus::j2singleReading( 'ErrorHistory', $EVENT, '', $JSONMAP ) }\
ebusd/sc/BoilerSensorDefective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'BoilerSensorDefective_', $JSONMAP ) }\
ebusd/sc/BurnerOperationSinceLastService:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'BurnerOperationSinceLastService_', $JSONMAP ) }\
ebusd/sc/CRCErrorHeatingEngeneerParameter:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'CRCErrorHeatingEngeneerParameter_', $JSONMAP ) }\
ebusd/sc/CRCErrorManufacturerParameter:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'CRCErrorManufacturerParameter_', $JSONMAP ) }\
ebusd/sc/DHWSensorDefective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'DHWSensorDefective_', $JSONMAP ) }\
ebusd/sc/Enduser:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ErrorVoltagSupply:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ErrorVoltagSupply_', $JSONMAP ) }\
ebusd/sc/ExternalSensorDefektive:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'ExternalSensorDefektive_', $JSONMAP ) }\
ebusd/sc/FanFaultDuringOperation:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'FanFaultDuringOperation_', $JSONMAP ) }\
ebusd/sc/FanFaultDuringShutdown:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'FanFaultDuringShutdown_', $JSONMAP ) }\
ebusd/sc/FlameFailureDuringOperation:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'FlameFailureDuringOperation_', $JSONMAP ) }\
ebusd/sc/FlameSimulation:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'FlameSimulation_', $JSONMAP ) }\
ebusd/sc/FlueGasSensorDefective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'FlueGasSensorDefective_', $JSONMAP ) }\
ebusd/sc/GasValveCycleV1V2Defective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'GasValveCycleV1V2Defective_', $JSONMAP ) }\
ebusd/sc/GPSFailureDuringSafetyTime:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'GPSFailureDuringSafetyTime_', $JSONMAP ) }\
ebusd/sc/H2EmergencyOffFunction:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'H2EmergencyOffFunction_', $JSONMAP ) }\
ebusd/sc/Manufacturer1:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Manufacturer2:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/NoFlameFormation:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'NoFlameFormation_', $JSONMAP ) }\
ebusd/sc/NoGasPressureAvailable:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'NoGasPressureAvailable_', $JSONMAP ) }\
ebusd/sc/ProcessValues1:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ProcessValues2:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ProcessValues3:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ProcessValues4:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ProcessValues5:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/ProcessValues6:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/PWMPumpDefective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'PWMPumpDefective_', $JSONMAP ) }\
ebusd/sc/SetpointDHW:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'SetpointDHW_', $JSONMAP ) }\
ebusd/sc/SetpointTempSystem:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'SetpointTempSystem_', $JSONMAP ) }\
ebusd/sc/Statistic1:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Statistic2:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Statistic3:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Statistic4:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Statistic5:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/Statistic6:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, '', $JSONMAP ) }\
ebusd/sc/StatisticUkn01:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StatisticUkn01_', $JSONMAP ) }\
ebusd/sc/StatisticUkn02:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StatisticUkn02_', $JSONMAP ) }\
ebusd/sc/StatisticUkn03:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StatisticUkn03_', $JSONMAP ) }\
ebusd/sc/StatisticUkn04:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StatisticUkn04_', $JSONMAP ) }\
ebusd/sc/StatisticUkn05:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'StatisticUkn05_', $JSONMAP ) }\
ebusd/sc/WWTurbineDefective:.* { FHEM::aTm2u_ebus::j2nv( $EVENT, 'WWTurbineDefective_', $JSONMAP ) }
attr MQTT2_ebusd_sc room MQTT2_DEVICE

setstate MQTT2_ebusd_hc1 2021-08-04 18:57:49 Action stopconsumer
setstate MQTT2_ebusd_hc1 2021-08-04 18:57:49 DHWSetTemp 48.0
setstate MQTT2_ebusd_hc1 2021-07-28 16:45:44 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1 2021-08-04 18:57:49 SetTemp 5.00
setstate MQTT2_ebusd_hc1 2021-08-04 18:57:49 Status hotwater
setstate MQTT2_ebusd_hc1 2021-08-03 11:32:28 associatedWith MQTT2_ebusd_21.2_1,MQTT2_ebusd_hc1_HP2,MQTT2_ebusd_hc1_HP3,MQTT2_ebusd_hc1_WP,MQTT2_ebusd_hc1_ZP
setstate MQTT2_ebusd_hc1 2021-08-03 11:32:29 attrTemplateVersion 2021-08-03 11:32:27 unknown

setstate MQTT2_ebusd_hc1_HP2 2021-08-03 11:32:28 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1_HP2 2021-08-03 11:32:28 associatedWith MQTT2_ebusd_hc1
setstate MQTT2_ebusd_hc1_HP2 2021-08-03 11:32:28 attrTemplateVersion 2021-08-03 11:32:27 unknown

setstate MQTT2_ebusd_hc1_HP3 2021-08-03 11:32:28 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1_HP3 2021-08-03 11:32:28 associatedWith MQTT2_ebusd_hc1
setstate MQTT2_ebusd_hc1_HP3 2021-08-03 11:32:28 attrTemplateVersion 2021-08-03 11:32:27 unknown

setstate MQTT2_ebusd_hc1_WP 2021-08-03 11:32:28 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1_WP 2021-08-03 11:32:28 associatedWith MQTT2_ebusd_hc1
setstate MQTT2_ebusd_hc1_WP 2021-08-03 11:32:28 attrTemplateVersion 2021-08-03 11:32:27 unknown

setstate MQTT2_ebusd_hc1_ZP 2021-08-03 11:32:28 IODev myMQTT_Server
setstate MQTT2_ebusd_hc1_ZP 2021-08-03 11:32:28 associatedWith MQTT2_ebusd_hc1
setstate MQTT2_ebusd_hc1_ZP 2021-08-03 11:32:28 attrTemplateVersion 2021-08-03 11:32:27 unknown

setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 DHWTemp 42.0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Error 0
setstate MQTT2_ebusd_sc 2021-08-04 12:56:45 ErrorHistory E1.DHWTemp: 0 - E1.ErrorCode: fehlerfrei - E1.ExternalTemp: 0 - E1.FlueGasTemp: 0 - E1.IonisationSignal: 0 - E1.LoadSetting: 0 - E1.OperatingPhase: BrennerAus - E1.SupplyTemp: 0 - E1.ThroughputValue: 3 - E1._8_SettingUV: HZ - E2.DHWTemp: 0 - E2.ErrorCode: 0 - E2.ExternalTemp: 0 - E2.FlueGasTemp: 0 - E2.IonisationSignal: 0 - E2.LoadSetting: 0 - E2.OperatingPhase: BrennerAus - E2.SupplyTemp: 0 - E2.ThroughputValue: 0 - E2._8_SettingUV: HZ - E3.DHWTemp: 0 - E3.ErrorCode: 0 - E3.ExternalTemp: 0 - E3.FlueGasTemp: 0 - E3.IonisationSignal: 42 - E3.LoadSetting: 15 - E3.OperatingPhase: BrennerAus - E3.SupplyTemp: 0 - E3.ThroughputValue: 0 - E3._8_SettingUV: HZ - E4.DHWTemp: 0 - E4.ErrorCode: 251 - E4.ExternalTemp: 0 - E4.FlueGasTemp: 3 - E4.IonisationSignal: 0 - E4.LoadSetting: 130 - E4.OperatingPhase: 251 - E4.SupplyTemp: 0 - E4.ThroughputValue: 0 - E4._8_SettingUV: 167 - E5.DHWTemp: -1 - E5.ErrorCode: Differenz Vorlauf- und Rücklauftemperatur zu groß - E5.ExternalTemp: -9 - E5.FlueGasTemp: -37 - E5.IonisationSignal: 238 - E5.LoadSetting: 120 - E5.OperatingPhase: 128 - E5.SupplyTemp: -62 - E5.ThroughputValue: 254 - E5._8_SettingUV: 160 - E6.DHWTemp: 64 - E6.ErrorCode:  - E6.ExternalTemp: -58 - E6.FlueGasTemp: -108 - E6.IonisationSignal: 229 - E6.LoadSetting: 241 - E6.OperatingPhase: 247 - E6.SupplyTemp: -21 - E6.ThroughputValue: 104 - E6._8_SettingUV: 235 - Offset: 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 ExternalTemp 15
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Flame 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 GasValve1 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 GasValve2 1
setstate MQTT2_ebusd_sc 2021-07-28 16:45:44 IODev myMQTT_Server
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Load 99
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Operatingphase BrennerInBetrieb
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Pump 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 SettingUV DHW
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 SoWi Summer
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Status1 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 SupplySetTemp 8
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 SupplyTemp 60.0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 TrendTemp 16.586
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn2_1 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn2_2 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn2_3 1
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_1 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_3 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_4 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_5 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_6 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 Ukn3_7 0
setstate MQTT2_ebusd_sc 2021-08-04 21:11:05 UknTemp 0.0
setstate MQTT2_ebusd_sc 2021-07-29 14:05:01 associatedWith MQTT2_ebusd_21.2_1
setstate MQTT2_ebusd_sc 2021-08-03 14:12:08 attrTemplateVersion 2021-08-03 14:12:07 unknown




Ich hab gesehen, Du hast für die Timer schon ein paar setter vorgesehen. Einen hatte ich mutig mal händisch gesetzt  - Werte sind da wieder verdreht. Wenn get verdreht ist, geht set richtig, wenn get richtig ist, wird set verdreht. Komisch. Lässt sich hier nicht lösen, muss halt warten, bis der ebus-Thread wiederbelebt wird. Wir stolpern sonst immer über die selben (hier nicht lösbaren) Stellen.



Die Hinweismeldung beim Anwenden des Analyzers schaut "unformatiert" aus (Screenshot anbei). Dachte dies könnte Dich interessieren.



Eigentlich wollte ich nur herausfinden, welches Template ich anwenden muss. Ich hatte nicht damit gerechnet, dass ich Dir damit soviel Aufwand aufhalse. War nicht meine Absicht. Dachte auch nicht, dass beim Thema ebus doch so viele Fragen offen sind.
Mein inneres Auge schiebt den Krams bereits in die "unbrauchbar"-Schublade. Die wirklich interessanten Dinge sind ja eh nicht schreib- oder auslesbar. Weishaupts miese Doku tut ihr übriges  :-X .

Beta-User

#74
F69 etc. war demnach keine Folge deiner Versuche, oder?

Die "Error reading file"-Meldungen kommen aus der Versions-Ermittlung, sollte mit der beigefügten Version gefixt sein.

Betr. Zeile 83 könnte man "if defined $values->{$item}" einfügen, dann müßte das auch weg sein?
push @all, qq{$item: $values->{$item}} if defined $values->{$item};
Zitat von: rob am 04 August 2021, 21:23:31
Die Devices für die Zeitprogramme wurden auch autom. angelegt und die Readings jeweils gesäubert. Weil nun alle Readings wieder weg sind, muss ich sie erneut alle einzeln "getten".
Das könnte man ggf. noch versuchen zu automatisieren. Wie sieht denn die Anfrage aus? (eventuell muss es eine "wildcard"-Variante werden?).



Die raw-listings sehen jedenfalls ansonsten doch erst mal ganz ok aus, oder 8) ?

ZitatIch hab gesehen, Du hast für die Timer schon ein paar setter vorgesehen. Einen hatte ich mutig mal händisch gesetzt  - Werte sind da wieder verdreht. Wenn get verdreht ist, geht set richtig, wenn get richtig ist, wird set verdreht. Komisch. Lässt sich hier nicht lösen, muss halt warten, bis der ebus-Thread wiederbelebt wird. Wir stolpern sonst immer über die selben (hier nicht lösbaren) Stellen.
Ich vermute, dass es entweder einen generellen "Schalter in den csv's gibt, durch den die Reihenfolge für "an/aus"-Zeiten allgemein vorgegeben wird, oder (/und) es für "get" und "set" insgesamt zwei Stellen gibt, in der das angegeben wird, von denen du aber nur eine gefunden und umgedreht hast...

ZitatDie Hinweismeldung beim Anwenden des Analyzers schaut "unformatiert" aus (Screenshot anbei). Dachte dies könnte Dich interessieren.
Danke für den Hinweis, muss mal schauen, ob sich das verbessern läßt. Das hat keine hohe Prio, ich wollte vorrangig dann erst mal überhaupt eine halbwegs zielführende Rückmeldung geben, damit der geneigte User Info hat, wo er wie den nächsten Schritt gehen kann...
(mus mal etwas rumtesten, evtl. hilft es, das ganze in html-Tags einzupacken...).

ZitatEigentlich wollte ich nur herausfinden, welches Template ich anwenden muss. Ich hatte nicht damit gerechnet, dass ich Dir damit soviel Aufwand aufhalse. War nicht meine Absicht. Dachte auch nicht, dass beim Thema ebus doch so viele Fragen offen sind.
Du brauchst dir da keinen Kopf machen: Ich hatte im "ebus-attrTemplate-Thread" getönt, dass da manches eigentlich besser gehen sollte und um "Spielmaterial" gebeten. Jetzt ist zumindest bewiesen, dass
a) die Readings nicht so unnötig komplex benannt sein müssen, und man das auch mit einer _generischen_ Lösung halbwegs ordentlich hinbiegen kann (jsonMap ist statischer und setzt voraus, dass man den "originalen" langen Namen schon hat; hier könnte man _zusätzlich_ noch JSONMAP setzen, um das Ergebnis dann weiter zu verbessern und die "Kreise" zu schließen)
b) es grundsätzlich möglich ist, weekprofile zu verwenden, um die ebus-typischen "on/off"-Profile zu generieren.

Ergo meine ich, dass der "proof of concept" daher zu beiden Aspekten durchaus gelungen ist 8) .

"Nebenbei" sind da ein paar Mechanismen entstanden, von denen ich _glaube_, dass sie künftig auch für ganz andere Dinge interessant sein können :) . (Einzelne (automatisiert zusammengebaute) Zeilen in setList/readingList etc. einfügen zu können, z.B.).

ZitatMein inneres Auge schiebt den Krams bereits in die "unbrauchbar"-Schublade. Die wirklich interessanten Dinge sind ja eh nicht schreib- oder auslesbar.
Das ist schade!
Ich kann zwar nachvollziehen, dass du einigermaßen gefrustet bist, v.a. weil die csv's (iVm. der nicht vorhandenen Doku seitens Weishaupt) ein ziemliches Dickicht zu sein scheinen, aber jetzt kommt der ganze Kram wenigstens (soweit er maschinell lesbar ist) halbwegs menschenlesbar in FHEM an und du solltest auch die Auswirkungen von Änderungen an den cvs-Vorgaben in FHEM direkt sehen können.

Der nächste Schritt wäre dann, sich ein "interessantes" Device mal vorzunehmen und eine getList/periodicCmd-Kombi (und jsonMap) zu generieren, um die Werte (unter "guten Namen") abzurufen. "MQTT2_ebusd_hc1" würde sich dafür anbieten.
Bin am Zweifeln, ob sich da irgendwas automatisiert machen läßt, aber _falls_ die Namen der Datenfelder in den csv's halbwegs standardisiert sind, könnte man z.B. eine Datei erstellen, die für einzelne "Namen" dann die passenden Parametrierungen für jsonMap/getList/periodicCmd/setList vorhält, so dass man auch diesen Teil noch erschlagen könnte.

Bis dahin wird zwar noch einiges Wasser den Rhein runterfließen, aber Rom wurde auch nicht an einem Tag erbaut!

(Und es kann eigentlich kaum sein, dass irgendjemand mit dem aktuellen Zwischenstand wirklich voll zufrieden ist! Es müsste daher durchaus weitere Interessenten geben, die ihre Ideen und "Spielmaterial" einbringen könnten...)
Edit: myUtils ist in contrib
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