Mit dem FHEM Alexa Connector das Eurotronic SPZB0001 Thermostat steuern

Begonnen von xTomi93, 22 November 2020, 22:49:17

Vorheriges Thema - Nächstes Thema

xTomi93

Hallo Community,

ich habe folgendes Problem, Ich habe über ein Eurotronic Spirit ZigBee SPZB0001 Heizungsthermostat, das ich über eine Zigbee2Tasmota Bridge in Verbindung mit MQTT erfolgreich bei FHEM eingebunden habe. Über das TabletUI kann ich das Thermostat problemlos steuern, nun wollte ich es in Alexa hinzufügen aber Alexa erkennt das Gerät nicht als Thermostat.

Ich habe sämtliche Beiträge schon gelesen bezüglich des HomeBridge-Mapping, aber das hat nur bewirkt das Alexa das Gerät nun als Temperatursensor und nicht als Thermostat erkennt.

Diesen Code habe ich beim attr homebridgeMapping eingegen.
TargetTemperature=ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true
CurrentTemperature=ZbReceived_HZ_Kinderzimmer_LocalTemperature


Hier noch die definition meines Geräts mit allen attr:
define MQTT2_z2t_ED59 MQTT2_DEVICE z2t_ED59

attr MQTT2_z2t_ED59 IODev MQTTServer
attr MQTT2_z2t_ED59 alexaName HeizungKinderzimmer
attr MQTT2_z2t_ED59 alias HZ_Kinderzimmer
attr MQTT2_z2t_ED59 genericDeviceType thermostat
attr MQTT2_z2t_ED59 homebridgeMapping TargetTemperature=ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true \
CurrentTemperature=ZbReceived_HZ_Kinderzimmer_LocalTemperature\
attr MQTT2_z2t_ED59 readingList tele/tasmota_DC0320/ED59/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_ED59 room Wohnung -> Heizung
attr MQTT2_z2t_ED59 setList Temperatur:slider,5.0,0.5,30.0,1 cmnd/tasmota_DC0320/ZbSend {"Device":"HZ_Kinderzimmer","Write":{"OccupiedHeatingSetpoint": $EVTPART1}}
attr MQTT2_z2t_ED59 stateFormat Soll: ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint °C Ist: ZbReceived_HZ_Kinderzimmer_LocalTemperature °C Batterie: ZbReceived_HZ_Kinderzimmer_BatteryPercentage %
define FileLog_MQTT2_z2t_ED59 FileLog ./log/MQTT2_z2t_ED59-%Y.log MQTT2_z2t_ED59
setuuid FileLog_MQTT2_z2t_ED59 5fa79c74-f33f-9161-44d2-26eb82293e8bc4fa
attr FileLog_MQTT2_z2t_ED59 alias FileLog_MQTT2_z2t_ED59
attr FileLog_MQTT2_z2t_ED59 logtype text
attr FileLog_MQTT2_z2t_ED59 room MQTT2_DEVICE


in der Alexa log konnte ich folgendes finden.
[2020-11-22 22:45:53] [FHEM] MQTT2_z2t_ED59 is thermostat
[2020-11-22 22:45:53] [FHEM] MQTT2_z2t_ED59 is NOT a thermostat. set command for target temperature missing: control
[2020-11-22 22:45:53] [FHEM] MQTT2_z2t_ED59 has
[2020-11-22 22:45:53] [FHEM]   CurrentHeatingCoolingState [undefined]
[2020-11-22 22:45:53] [FHEM]   CurrentTemperature [ZbReceived_HZ_Kinderzimmer_LocalTemperature]
[2020-11-22 22:45:53] [FHEM] MQTT2_z2t_ED59 will not send proactive events
[2020-11-22 22:45:53] [FHEM] MQTT2_z2t_ED59 uses ID: 5fa79c74-f33f-9161-5b26-c4ad7a506dc06311
  2020-11-22 22:45:53 caching: MQTT2_z2t_ED59-ZbReceived_HZ_Kinderzimmer_LocalTemperature: 24

nur was meint Alexa mit der definition control, in allen Beiträgen in denen es sich um das HomeBridge-Mapping handelt wird control nicht einmal erwähnt, wie soll ich das jetzt definieren. Das problem ist meiner Meinung das ich kein HomeMatic Thermostat habe, aber es muss doch eine Möglichkeit geben das ganze einzubinden und zu steuern.

Ich hoffe jemand blickt da durch und kann mir weiterhelfen, im Dateianhang befindet sich noch ein Bild mit den mir zu Verfügung stehenden Readings.


Gruß Tom

amenomade

Du hast "control" als cmd im HomeBridgeMapping eingetragen, dann sucht er das passende "set ... control ...." Kommando im Fhem-Device, was anscheinend nicht existiert.

Mit welchem Befehl in Fhem steuerst Du die Zieltemperatur?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

xTomi93

ach tatsächlich. Das hat man also von Copy&Paste.

über SetList habe ich einen Silder eingefügt mit dem ich in 0.5 Schritten zwischen 5 und 30 Grad einstellen kann und dieser schickt mit folgendem Befehl cmnd/tasmota_DC0320/ZbSend {"Device":"HZ_Kinderzimmer","Write":{"OccupiedHeatingSetpoint": $EVTPART1} die gewünschte Temperatur an die Bridge über MQTT

//edit: habe nun den cmd von "control" auf "Temperatur" geändert, nun erkennt Alexa das Thermostat ganz normal und ich kann es per Sprachsteuerung steuern. Kleiner aber feiner Fehler, ich dachte eig. das control nicht der Aktor ist sondern das es heißen soll das Alexa den wert kontrollieren kann.

amenomade

Das heisst?

set MQTT2_z2t_ED59 Temperatur 27??

Das "set" Kommando wird gebraucht: set MQTT2_z2t_ED59 XXXXXX XX
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

xTomi93

set MQTT2_z2t_ED59 Temperatur 27

genau nur hab ich über das SetList Attributte mir halt nen Slider gesetzt, was aber in der tatsächlichen Funktion kein Unterscheid macht, denk ich mal.

amenomade

Dann probiere mit
TargetTemperature=Temperatur::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,minValue=5,maxValue=30,minStep=0.5
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Falls Interesse besteht, ein attrTemplate für den Eurotronic Spirit @zigbee2tasmota zu erstellen, mit dem man sich da (hoffentlich am Ende) leichter tut: Bitte melden, und vorab bitte den (leider etwas länglichen) Thread zur zigbee2mqtt-Variante (https://forum.fhem.de/index.php/topic,114994.0.html) und das Wiki zu https://wiki.fhem.de/wiki/Zigbee2Tasmota-MQTT lesen.
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

xTomi93

Zitat von: amenomade am 23 November 2020, 00:57:02
Dann probiere mit
TargetTemperature=Temperatur::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,minValue=5,maxValue=30,minStep=0.5

so funktioniert es auch und sieht sogar übersichtlicher aus vielen Dank, so ähnlich hatte ich es auch schon probiert allerdings wohl falsch herum.
Ich hatte es mal so probiert das hat allerdings nicht funktioniert
TargetTemperature=ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint::Temperatur,minValue=5,maxValue=30,minStep=0.5

Wie gesagt hab ich einfach unter cmd statt "control", "Temperatur" eingetragen und es hat auch funktioniert. Werde aber deine Version in Zukunft nutzen.
Alt:
TargetTemperature=ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true
Neu:
TargetTemperature=ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint::ZbReceived_HZ_Kinderzimmer_OccupiedHeatingSetpoint,,minValue=5,maxValue=30,minStep=0.5,cmd=Temperatur,nocache=true


Zitat von: Beta-User am 23 November 2020, 10:02:44
Falls Interesse besteht, ein attrTemplate für den Eurotronic Spirit @zigbee2tasmota zu erstellen, mit dem man sich da (hoffentlich am Ende) leichter tut: Bitte melden, und vorab bitte den (leider etwas länglichen) Thread zur zigbee2mqtt-Variante (https://forum.fhem.de/index.php/topic,114994.0.html) und das Wiki zu https://wiki.fhem.de/wiki/Zigbee2Tasmota-MQTT lesen.

Ich nutze derzeit kein Template, dadurch das ich den MQTT-Server von FHEM nutze wurde mir passend ein Device angelegt mit allen Readings und ohne Template, ich habe lediglich ein Set Befehl hinzugefügt das direkt die Änderung an MQTT sendet, damit es funktioniert. An einer Entwicklung oder auch Test eines Templates wäre ich schon interessiert, allerdings kann man beim Eurotronic über zigbee2tasmota aktuell nur die Temperatur Regeln, sonderfunktionen wie Boost-Mode, Auto-Mode, Window-Mode wie es bei zigbee2MQTT funktioniert sind derzeit nicht möglich, dazu habe ich bereits eine Anfrage im Github von Zigbee2Tasmota geschieben, welche aktuell den status "Troubleshooting" hat.

Beta-User

Zitat von: xTomi93 am 23 November 2020, 11:25:35
Ich nutze derzeit kein Template, dadurch das ich den MQTT-Server von FHEM nutze wurde mir passend ein Device angelegt mit allen Readings und ohne Template,
...das ist dann aber ein "Einheitsdevice" für den ganzen tasmota2zigbee-Strang...
Falls du beabsichtigst, mehr als den einen Thermostat da zu verwenden, würde ich das umstellen, sonst wird das schnell unübersichtlich. außerdem sind die ReadingNamen "Kacke" und vermutlich ist auch der "Kreis" zwischen Kommando/Setzen und Rückmeldung/Lesen nicht geschlossen. Außerdem kannst du ggf. dann einfacher Lampen einbinden usw..

Wenn ich helfen soll, müßtest du umbauen auf bridge (mit attrTemplate) und das Prinzip: Eine Zigbee-Adresse = ein separates MQTT2_DEVICE. "Leider" muss/sollte man dazu auch SetOption81 (?) verwenden, dann sendet der Tasmota-ESP an separate Topics, was bedeutet, dass du mit dem Spirit mehr oder weniger von vorne anfängst.

Da das Ergebnis dann aber mit ziemlicher Sicherheit nicht nur Sprachsteuerungsnäher ist, sondern auch z.B. via WeekdayTimer/weekprofile mit Solltemperaturen versorgt werden kann, meine ich, dass sich das lohnen würde.

Ich würde (nach der Umstellung auf "bridge") dann ein RAW-Listing benötigen sowie evtl. die eine oder andere MQTT topic/payload-Kombination.

Zitatallerdings kann man beim Eurotronic über zigbee2tasmota aktuell nur die Temperatur Regeln, sonderfunktionen wie Boost-Mode, Auto-Mode, Window-Mode wie es bei zigbee2MQTT funktioniert sind derzeit nicht möglich, dazu habe ich bereits eine Anfrage im Github von Zigbee2Tasmota geschieben, welche aktuell den status "Troubleshooting" hat.
Bin nicht sicher, ob wir das nicht hinbekämen. Man muss dazu zwar ziemlich "unter das Auto" liegen (und es wäre schöner, tasmota würde das direkt abbilden), aber auf der (sehr kurzen) Wiki-Seite dazu steht ja, dass man im Prinzip alle möglichen ZigBee-Befehle direkt absetzen kann, wenn ich das richtig interpretiere... Man müßte also "nur" wissen, wie die im einzelnen lauten ;) .
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

xTomi93

Für die Bridge selber hab ich ein Template verwendet.
Ich habe insgesamt 5 Heizungsthermostate und 9 Aqara temperature humidity sensor im Netzwerk und es wurde für jedes einzelne Gerät automatisch ein Device angelegt, somit habe ich was das angeht kein problem.  ;D

Was das ganze Thema angeht bin ich offen gesagt eig. ein totaler Noob bisher habe ich alles nur durch ein paar Foren und Learning by doing gemacht, weshalb ich genaugenommen von dem was du gesagt hast nicht wirklich was verstanden habe im Bezug auf SetOption81 oder so, wenns ins Thema Java Script und Co also in tiefere Programmierung geht bin ich nahezu 100% ahnungslos   ::)

Zum Thema Sonderfunktionen, ich hatte vorher einen CC2531 Zigbee Stick im Einsatz in Verbindung mit Zigbee2MQTT und da hab ich auch die Funktionen genutzt um z.B. manuell den Fenster offen Modus zu aktivieren, ich habe daraufhin nun bei Z2T den gleichen PayLoad ausprobiert um die sogenanten Host_Flags zu setzen, dieser wurde aber nicht akzeptiert, Anschließend habe ich es über den "Mode" versucht und da wurden sie zwar von der Bridge akzeptiert aber das Thermostat hat nicht darauf reagiert. Von Eurotronic selbst gibt es zumindest in der offizelen PDF keine erläuterung der host Flags was auch der Programmierer sagte von Z2T, wie es der programmierer bei Z2MQTT geschafft hat ist mir ein rätsel.

Zu den ReadingNamen davon bin ich auch nicht sonderlich begeistert die setzen sich allerdings wie folgt zusammen.
ZbReceived_FriendlyName_JSON-Name

Hoffe du verstehst mein durcheinander gewürfelten Text, blick da teilweise grad selbst nicht mehr durch.

Beta-User

Hmm, ok, dann ist SetOption81 (?) gesetzt, denn das macht das bridge-attrTemplate ;) .

Da die "Basis" in Ordnung ist, kannst du alles mit einer Kopie deines bestehenden Devices ausprobieren, beim Rest kann ich versuchen, dich zu coachen. Um erst mal halbwegs kurze Reading-Namen zu bekommen, sollte eigentlich  tasmota_zigbee2tasmota_generic_battery_sensor schon mal eine Verbesserung bringen, ergo: "RAW Definition" des bestehenden Devices anzeigen lassen, den Namen ändern, setstate-Zeilen weglassen, execute. Auf das neue Device dann das template und hier dann bitte vom Ergebnis - nach einer gewissen Laufzeit - ein RAW-listing einstellen.

Dann machen wir erst desired-temp/measured-temp+Sprachsteuerung soweit sauber (valve wäe noch nett), und ich versuche dann mal in dem Java-Code (der mir auch in etwa so fern ist wie die Insel) rauszufinden, wie die ZigBee-Payload sein muss. Da das Grundgerüst für den Rest soweit steht, ist der Rest eher Textverarbeitung, wir müssen nur auf den Trichter kommen und könnten notfalls  auch koenkk wegen eines Schubses fragen ...
(Eurotronic ist ein Saftladen und es freut mich zu hören, dass es dort doch irgendwelche Leute gibt, die wenigstens irgendjemandem antworten...).
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

xTomi93

Zitat von: Beta-User am 24 November 2020, 05:32:19

Da die "Basis" in Ordnung ist, kannst du alles mit einer Kopie deines bestehenden Devices ausprobieren, beim Rest kann ich versuchen, dich zu coachen. Um erst mal halbwegs kurze Reading-Namen zu bekommen, sollte eigentlich  tasmota_zigbee2tasmota_generic_battery_sensor schon mal eine Verbesserung bringen, ergo: "RAW Definition" des bestehenden Devices anzeigen lassen, den Namen ändern, setstate-Zeilen weglassen, execute. Auf das neue Device dann das template und hier dann bitte vom Ergebnis - nach einer gewissen Laufzeit - ein RAW-listing einstellen.

Ich habe jetzt das Template tasmota_zigbee2tasmota_generic_battery_sensor gesetzt, was praktisch eig. den Luftfeuchtigkeits-/Temperatursensor darstellt, allerdings mit erfolg die Readings sind jetzt ohne ZbReceived-Tag und FriendlyName. Allerdings hab ich keine Ahnung was du ab "Ergo: -->...." meinst  ;D
Hast du Discord? Klar ist das Forum praktisch um auch anderen dabei weiterzuhelfen allerdings denke ich wäre es einfach mit Discord oder Skype weiterzumachen dann können wir am Wochenende mal schreiben und du sagst mir genau ohne Zeitversatz was du brauchst und was ich tun soll  ;D

Zitat von: Beta-User am 24 November 2020, 05:32:19
Dann machen wir erst desired-temp/measured-temp+Sprachsteuerung soweit sauber (valve wäe noch nett), und ich versuche dann mal in dem Java-Code (der mir auch in etwa so fern ist wie die Insel) rauszufinden, wie die ZigBee-Payload sein muss. Da das Grundgerüst für den Rest soweit steht, ist der Rest eher Textverarbeitung, wir müssen nur auf den Trichter kommen und könnten notfalls  auch koenkk wegen eines Schubses fragen ...
(Eurotronic ist ein Saftladen und es freut mich zu hören, dass es dort doch irgendwelche Leute gibt, die wenigstens irgendjemandem antworten...).

Interessant. Mich wundert allerdings auch warum bei allen Zigbee Geräten die ich habe die Batteriestand abfrage so zickt  :o

Beta-User

 :) geht doch gut voran, jetzt haben wir schon "weniger unschöne" Readings...

Da ich zum einen weder mit Discord was anfangen kann, noch mein Skype-Passwort mir noch geläufig ist, würde ich vorschlagen, wir machen einfach textbasiert hier weiter? Da du mit RAW Definition nichts anfangen kannst: Wirf mal einen kurzen Blick auf https://wiki.fhem.de/wiki/Import_von_Code_Snippets.
Was ich bräuchte, wäre ein "c&p-Gerät", und das bekommst du damit; dann kann ich ggf. mit einem Testsystem und ein paar MQTT-Messages, wie man sie z.B. aus der Tasmota-Konsole kopieren kann, ggf. auch mal was "offline" und in Ruhe austesten. (Ich habe nämlich auch nicht die Ahnung, was uns da im Detail erwartet, und werde nachdenken müssen; Teile können/müssen eventuell auch andere lösen, das fällt mit Sicherheit nicht alles vom Himmel. Mal sehen, wenn wir etwas mehr Info haben, was wir alles an Infos über die bridge erhalten).

Falls du selbst was machen willst: für "desired-temp" brauchen wir in Sende- und Empfangsrichtung diesen (identischen) Reading-Namen. Geht über setList bzw. jsonMap, du könntest ggf. aus dem zigbee2mqtt-Zwilling abkupfern (auch wenn mein Tester in dem anderen Thread mir leider "ausgebüxt" ist und bisher nicht abschließend klar ist, ob das reibungslos funktioniert (er wollte scheinbar unbedingt was anderes und braucht das "desired-temp" nicht für Sprachsteuerungszwecke etc. (?)...)).

Zu der Batterieabfrage kann ich im Moment (noch) nichts beitragen, meine Vermutung wäre, dass man da eigentlich nur ein Intervall und/oder einen Schwellenwert setzen kann.

zigbee2tasmota ist aber viel eher ein "vorverarbeitender IO-Mechanismus" (ähnlich CUL) wie eine vollwertige ZigBee-Implementierung, von daher wird man vermutlich manches "nachrüsten" müssen, um "hex-payloads" zu erzeugen und auf die richtige (Teil-) Adresse zu versenden.
Bei der Gelegenheit: in https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/toZigbee.js#L1531 gibt's wohl den Hauptteil des Schlüssels, wie koenkk das gelöst hat mit boost etc.. Also falls du einen Hex-Wert unter der Adresse 0x4008 in den Readings hast, müßte das irgendwie dazu passen...
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

xTomi93

Zitat von: Beta-User am 24 November 2020, 12:19:22
Da ich zum einen weder mit Discord was anfangen kann, noch mein Skype-Passwort mir noch geläufig ist, würde ich vorschlagen, wir machen einfach textbasiert hier weiter?
ok  ;D

Zitat von: Beta-User am 24 November 2020, 12:19:22
Da du mit RAW Definition nichts anfangen kannst: Wirf mal einen kurzen Blick auf https://wiki.fhem.de/wiki/Import_von_Code_Snippets.
Was ich bräuchte, wäre ein "c&p-Gerät", und das bekommst du damit; dann kann ich ggf. mit einem Testsystem und ein paar MQTT-Messages, wie man sie z.B. aus der Tasmota-Konsole kopieren kann, ggf. auch mal was "offline" und in Ruhe austesten. (Ich habe nämlich auch nicht die Ahnung, was uns da im Detail erwartet, und werde nachdenken müssen; Teile können/müssen eventuell auch andere lösen, das fällt mit Sicherheit nicht alles vom Himmel. Mal sehen, wenn wir etwas mehr Info haben, was wir alles an Infos über die bridge erhalten).
Ich bin jetzt auf mein Gerät gegangen und habe unten auf RAW definition geklickt das ist dieser Code


defmod MQTT2_z2t_ED59 MQTT2_DEVICE z2t_ED59
attr MQTT2_z2t_ED59 IODev MQTTServer
attr MQTT2_z2t_ED59 alexaName HeizungKinderzimmer
attr MQTT2_z2t_ED59 alias HZ_Kinderzimmer
attr MQTT2_z2t_ED59 genericDeviceType thermostat
attr MQTT2_z2t_ED59 homebridgeMapping TargetTemperature=Temperatur::OccupiedHeatingSetpoint,minValue=5,maxValue=30,minStep=1\
CurrentTemperature=LocalTemperature
attr MQTT2_z2t_ED59 icon temperature_humidity
attr MQTT2_z2t_ED59 jsonMap Battery:batteryPercent Device:0 BatteryPercentage:0 Temperature:temperature Humidity:humidity
attr MQTT2_z2t_ED59 model tasmota_zigbee2tasmota_generic_battery_sensor
attr MQTT2_z2t_ED59 readingList tele/tasmota_DC0320/ED59/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xED59.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr MQTT2_z2t_ED59 room Wohnung -> Heizung
attr MQTT2_z2t_ED59 setList Temperatur:textField cmnd/tasmota_DC0320/ZbSend {"Device":"HZ_Kinderzimmer","Write":{"OccupiedHeatingSetpoint": $EVTPART1}}
attr MQTT2_z2t_ED59 stateFormat Soll: OccupiedHeatingSetpoint °C Ist: LocalTemperature °C Batterie: BatteryPercentage %

setstate MQTT2_z2t_ED59 Soll: 25 °C Ist: 24.5 °C Batterie: BatteryPercentage %
setstate MQTT2_z2t_ED59 2020-11-25 06:08:18 0001/003E 0
setstate MQTT2_z2t_ED59 2020-11-25 10:38:12 CurrentTemperatureSetPoint 25
setstate MQTT2_z2t_ED59 2020-11-25 10:39:42 Endpoint 1
setstate MQTT2_z2t_ED59 2020-11-25 10:29:51 EurotronicErrors 0
setstate MQTT2_z2t_ED59 2020-11-25 10:39:42 LinkQuality 55
setstate MQTT2_z2t_ED59 2020-11-25 10:39:42 LocalTemperature 24.5
setstate MQTT2_z2t_ED59 2020-11-25 10:39:42 Name HZ_Kinderzimmer
setstate MQTT2_z2t_ED59 2020-11-25 10:38:12 OccupiedHeatingSetpoint 25
setstate MQTT2_z2t_ED59 2020-11-25 10:32:52 PIHeatingDemand 7
setstate MQTT2_z2t_ED59 2020-11-25 10:31:51 UnoccupiedHeatingSetpoint 16
setstate MQTT2_z2t_ED59 2020-11-08 08:21:24 associatedWith MQTT2_DVES_DC0320
setstate MQTT2_z2t_ED59 2020-11-24 11:42:24 attrTemplateVersion 20200814
setstate MQTT2_z2t_ED59 2020-11-25 09:11:12 state Temperatur


und hier nocheinmal mit den "Probably associated with" werten:
defmod MQTT2_z2t_ED59 MQTT2_DEVICE z2t_ED59
attr MQTT2_z2t_ED59 IODev MQTTServer
attr MQTT2_z2t_ED59 alexaName HeizungKinderzimmer
attr MQTT2_z2t_ED59 alias HZ_Kinderzimmer
attr MQTT2_z2t_ED59 genericDeviceType thermostat
attr MQTT2_z2t_ED59 homebridgeMapping TargetTemperature=Temperatur::OccupiedHeatingSetpoint,minValue=5,maxValue=30,minStep=1\
CurrentTemperature=LocalTemperature
attr MQTT2_z2t_ED59 icon temperature_humidity
attr MQTT2_z2t_ED59 jsonMap Battery:batteryPercent Device:0 BatteryPercentage:0 Temperature:temperature Humidity:humidity
attr MQTT2_z2t_ED59 model tasmota_zigbee2tasmota_generic_battery_sensor
attr MQTT2_z2t_ED59 readingList tele/tasmota_DC0320/ED59/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xED59.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr MQTT2_z2t_ED59 room Wohnung -> Heizung
attr MQTT2_z2t_ED59 setList Temperatur:textField cmnd/tasmota_DC0320/ZbSend {"Device":"HZ_Kinderzimmer","Write":{"OccupiedHeatingSetpoint": $EVTPART1}}
attr MQTT2_z2t_ED59 stateFormat Soll: OccupiedHeatingSetpoint °C Ist: LocalTemperature °C Batterie: BatteryPercentage %

defmod FileLog_MQTT2_z2t_ED59 FileLog ./log/MQTT2_z2t_ED59-%Y.log MQTT2_z2t_ED59
attr FileLog_MQTT2_z2t_ED59 alias Log Kinderzimmer
attr FileLog_MQTT2_z2t_ED59 logtype text
attr FileLog_MQTT2_z2t_ED59 room MQTT -> Logs -> Heizung

defmod MQTT2_DVES_DC0320 MQTT2_DEVICE DVES_DC0320
attr MQTT2_DVES_DC0320 IODev MQTTServer
attr MQTT2_DVES_DC0320 alias Bridge
attr MQTT2_DVES_DC0320 bridgeRegexp tele/tasmota_DC0320/([^/]+)/SENSOR:.* "z2t_$1"
attr MQTT2_DVES_DC0320 getList ZbStatus1:noArg ZbStatus1 cmnd/tasmota_DC0320/ZbStatus1\
  ZbStatus2:textField ZbStatus2 cmnd/tasmota_DC0320/ZbStatus2 $EVTPART1
attr MQTT2_DVES_DC0320 group Zigbee2Tasmota
attr MQTT2_DVES_DC0320 icon mqtt
attr MQTT2_DVES_DC0320 model tasmota_zigbee2tasmota_bridge
attr MQTT2_DVES_DC0320 readingList tele/tasmota_DC0320/LWT:.* LWT\
  stat/tasmota_DC0320/RESULT:.* { $EVENT =~ m,(ZbStatus.), ? { $1=>$EVENT } : json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_DC0320/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_DC0320/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
DVES_DC0320:cmnd/tasmota_DC0320/POWER:.* POWER\
DVES_DC0320:tele/tasmota_DC0320/STATE:.* { json2nameValue($EVENT) }\
DVES_DC0320:tele/tasmota_DC0320/RESULT:.* { json2nameValue($EVENT) }\
DVES_DC0320:stat/tasmota_DC0320/UPGRADE:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_DC0320 room MQTT -> Server
attr MQTT2_DVES_DC0320 setList permit_join:0,1,99 cmnd/tasmota_DC0320/ZbPermitJoin $EVTPART1\
  x_ZbSend:textField cmnd/tasmota_DC0320/ZbSend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}\
  z_ZbBind_single:textField cmnd/tasmota_DC0320/ZbBind {"Device":"$EVTPART1","ToDevice":"0x$EVTPART2","Endpoint":$EVTPART3,"ToEndpoint":$EVTPART4,"Cluster":$EVTPART5}\
  z_ZbBind_group:textField cmnd/tasmota_DC0320/ZbBind {"Device":"$EVTPART1","ToGroup":"0x$EVTPART2","Endpoint":$EVTPART3,"Cluster":$EVTPART4}
attr MQTT2_DVES_DC0320 stateFormat LWT

setstate FileLog_MQTT2_z2t_ED59 active
setstate FileLog_MQTT2_z2t_ED59 2020-11-25 10:42:55 linesInTheFile 50578

setstate MQTT2_DVES_DC0320 Online
setstate MQTT2_DVES_DC0320 2020-11-12 13:37:37 0xA94F_Name HZ_Esszimmer
setstate MQTT2_DVES_DC0320 2020-11-12 13:13:18 Command Unknown
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 FallbackTopic cmnd/DVES_DC0320_fb/
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 GroupTopic cmnd/tasmotas/
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Heap 26
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 Hostname tasmota_DC0320-0800
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 IPAddress 192.168.178.6
setstate MQTT2_DVES_DC0320 2020-11-25 10:36:50 LWT Online
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 LoadAvg 19
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 Module ZHA ZBBridge
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 MqttCount 7
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:01 OtaUrl http://ota.tasmota.com/tasmota/tasmota-zbbridge.bin
setstate MQTT2_DVES_DC0320 2020-11-25 10:36:51 POWER
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:00 Restart Restarting
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 RestartReason Software/System restart
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:02 SaveData on
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:01 SetOption26 on
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:02 SetOption83 on
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:01 SetOption89 on
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Sleep 50
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 SleepMode Dynamic
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:00 StateText1 off
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:01 StateText2 on
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:01 StateText3 toggle
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:01 StateText4 hold
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Time 2020-11-25T10:42:06
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:43 Upgrade Successful. Restarting
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Uptime 3T13:35:14
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 UptimeSec 308114
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Vcc 3.436
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 Version 9.1.0.2(zbbridge)
setstate MQTT2_DVES_DC0320 2020-11-21 21:06:57 WebServerMode Admin
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_AP 1
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_BSSId 44:4E:6D:78:EF:BE
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_Channel 11
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_Downtime 0T00:00:05
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_LinkCount 2
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_RSSI 100
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_SSId SaTho
setstate MQTT2_DVES_DC0320 2020-11-25 10:42:06 Wifi_Signal -39
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:53 ZbBind_Device 0xDE7B
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:53 ZbBind_Name HZ_Schlafzimmer
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:53 ZbBind_Status 0
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:53 ZbBind_StatusMessage SUCCESS
setstate MQTT2_DVES_DC0320 2020-11-12 13:13:27 ZbForget Done
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:39 ZbParent_ChildInfo_1 0x00158D000460642B
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_10 0x00158D00044BF9C7
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_2 0x00158D0003C45F48
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_3 0x00158D0003C4607F
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_4 0x00158D00032F7003
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_5 0x00158D00053D2C36
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_6 0x00158D0004606562
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_7 0x00158D00053D2D4A
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_8 0x00158D00045CB3CD
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:25 ZbParent_ChildInfo_9 0x00158D00046590EF
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:39 ZbParent_Children 1
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:39 ZbParent_Device 0x0000
setstate MQTT2_DVES_DC0320 2020-11-12 13:29:33 ZbPermitJoin Done
setstate MQTT2_DVES_DC0320 2020-11-23 07:21:35 ZbRouteError_ShortAddr 0xE651
setstate MQTT2_DVES_DC0320 2020-11-23 07:21:35 ZbRouteError_Status 66
setstate MQTT2_DVES_DC0320 2020-11-23 07:21:35 ZbRouteError_StatusMessage MAC_INDIRECT_TIMEOUT
setstate MQTT2_DVES_DC0320 2020-11-25 09:11:12 ZbSend Done
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_ActiveEndpoints_1 0x01
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:05 ZbState_Code 2
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_Decision 3
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_DeviceId 0x0301
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:07 ZbState_DeviceType 1
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_DeviceVersion 1
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_Endpoint 0x01
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_IEEEAddr 0x00158D0003C45F48
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_1 0x0000
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_2 0x0001
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_3 0x0003
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_4 0x0201
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_5 0x0019
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_InClusters_6 0x000A
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:07 ZbState_Message Started
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_1 0x0000
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_2 0x0001
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_3 0x0003
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_4 0x0004
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_5 0x0201
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_6 0x0019
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_OutClusters_7 0x000A
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_ParentNetwork 0x0000
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_PowerSource false
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_ProfileId 0x0104
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:05 ZbState_Protocol 8
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_ReceiveWhenIdle false
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:05 ZbState_RestartReason Power-on
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_Security false
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:42 ZbState_ShortAddr 0xDE7B
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:05 ZbState_Stack 2
setstate MQTT2_DVES_DC0320 2020-11-25 03:19:44 ZbState_Status 33
setstate MQTT2_DVES_DC0320 2020-11-21 21:07:05 ZbState_Version 6.7.6.0
setstate MQTT2_DVES_DC0320 2020-11-01 20:20:00 attrTemplateVersion 20200807_1
setstate MQTT2_DVES_DC0320 2020-11-25 10:37:37 subscriptions cmnd/DVES_DC0320_fb/# cmnd/tasmota_DC0320/# cmnd/tasmotas/#

setstate MQTT2_z2t_ED59 Soll: 25 °C Ist: 24.5 °C Batterie: BatteryPercentage %
setstate MQTT2_z2t_ED59 2020-11-25 06:08:18 0001/003E 0
setstate MQTT2_z2t_ED59 2020-11-25 10:38:12 CurrentTemperatureSetPoint 25
setstate MQTT2_z2t_ED59 2020-11-25 10:42:55 Endpoint 1
setstate MQTT2_z2t_ED59 2020-11-25 10:29:51 EurotronicErrors 0
setstate MQTT2_z2t_ED59 2020-11-25 10:42:55 LinkQuality 45
setstate MQTT2_z2t_ED59 2020-11-25 10:39:42 LocalTemperature 24.5
setstate MQTT2_z2t_ED59 2020-11-25 10:42:55 Name HZ_Kinderzimmer
setstate MQTT2_z2t_ED59 2020-11-25 10:38:12 OccupiedHeatingSetpoint 25
setstate MQTT2_z2t_ED59 2020-11-25 10:42:55 PIHeatingDemand 7
setstate MQTT2_z2t_ED59 2020-11-25 10:31:51 UnoccupiedHeatingSetpoint 16
setstate MQTT2_z2t_ED59 2020-11-08 08:21:24 associatedWith MQTT2_DVES_DC0320
setstate MQTT2_z2t_ED59 2020-11-24 11:42:24 attrTemplateVersion 20200814
setstate MQTT2_z2t_ED59 2020-11-25 09:11:12 state Temperatur


Ist es das was du brauchst?

Zitat von: Beta-User am 24 November 2020, 12:19:22
Falls du selbst was machen willst: für "desired-temp" brauchen wir in Sende- und Empfangsrichtung diesen (identischen) Reading-Namen. Geht über setList bzw. jsonMap, du könntest ggf. aus dem zigbee2mqtt-Zwilling abkupfern (auch wenn mein Tester in dem anderen Thread mir leider "ausgebüxt" ist und bisher nicht abschließend klar ist, ob das reibungslos funktioniert (er wollte scheinbar unbedingt was anderes und braucht das "desired-temp" nicht für Sprachsteuerungszwecke etc. (?)...)).

Ich habe bereits zigbee2mqtt vollkommen aus dem System geschmissen, deshalb weiß ich nicht wie ich das abkupfern soll  ;D
Ich habe wie gesagt das so definiert wie oben beschrieben. Mein MQTT Server hat mir automatisch ein Device angelegt dort habe ich über setList "Temperatur" angelegt mit dem MQTT befehl an die Bridge um dort ein Zigbee Befehl ans Gerät zu senden, das funktioniert einwandfrei, sowohl in FHEM direkt als auch im FTUI und über Alexa Sprachsteuerung.

Zitat von: Beta-User am 24 November 2020, 12:19:22Zu der Batterieabfrage kann ich im Moment (noch) nichts beitragen, meine Vermutung wäre, dass man da eigentlich nur ein Intervall und/oder einen Schwellenwert setzen kann.

Nur wo oder Wie kann man die Intervall setzen, aktuell kommt es vor das ein Gerät innerhalb von 24h ein Batteriewert anzeigt, während ein anderes Gerät nur 10 Minuten oder auch 1 Woche brauchen kann, das ist teils sehr unzuverlässig und manchmal krieg ich auch nicht rechtzeitig die Meldung das die Batterie leer ist  ::)

Zitat von: Beta-User am 24 November 2020, 12:19:22
zigbee2tasmota ist aber viel eher ein "vorverarbeitender IO-Mechanismus" (ähnlich CUL) wie eine vollwertige ZigBee-Implementierung, von daher wird man vermutlich manches "nachrüsten" müssen, um "hex-payloads" zu erzeugen und auf die richtige (Teil-) Adresse zu versenden.
Bei der Gelegenheit: in https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/toZigbee.js#L1531 gibt's wohl den Hauptteil des Schlüssels, wie koenkk das gelöst hat mit boost etc.. Also falls du einen Hex-Wert unter der Adresse 0x4008 in den Readings hast, müßte das irgendwie dazu passen...

ähhh.. Keine Ahnung was du da meinst.

Beta-User

Paßt doch schon soweit :) .

Erster Versuch:
defmod MQTT2_z2t_ED59_Test MQTT2_DEVICE z2t_ED59
attr MQTT2_z2t_ED59_Test genericDeviceType thermostat
attr MQTT2_z2t_ED59_Test jsonMap Battery:batteryPercent Device:0 BatteryPercentage:0 LocalTemperature:measured-temp OccupiedHeatingSetpoint:desired-temp
attr MQTT2_z2t_ED59_Test model tasmota_zigbee2tasmota_eurotronic_spirit_test
attr MQTT2_z2t_ED59_Test readingList tele/tasmota_DC0320/ED59/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xED59.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr MQTT2_z2t_ED59_Test setList desired-temp:slider,5.0,0.5,30.0,1 cmnd/tasmota_DC0320/ZbSend {"Device":"HZ_Kinderzimmer","Write":{"OccupiedHeatingSetpoint": $EVTPART1}}
attr MQTT2_z2t_ED59_Test stateFormat Soll: desired-temp °C Ist: measured-temp °C Batterie: BatteryPercentage %
attr MQTT2_z2t_ED59_Test userReadings valve:PIHeatingDemand.* { int(ReadingsNum($name, 'PIHeatingDemand', 0)/2.55)}
attr MQTT2_z2t_ED59_Test webCmd desired-temp
attr MQTT2_z2t_ED59_Test icon hm-cc-rt-dn

Wie du siehst, ist da einiges rausgeworfen, das IODev musst du eventuell wieder nachfüttern, sonst sollte das eigentlich passen.

Mit dem zigbee2mqtt-Hinweis war eigentlich nur der Verweis auf die attrTemplate-File gemeint, da "klaue" ich eigentlich auch ständig... Zu finden z.B. ab hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L720

Wenn du setList und jsonMap ansiehst, wirst du sehen, dass da zum einen der "Kreis" in Sende- und Empfangsrichtung geschlossen wurde und einfach dann die in FHEM "üblichen" Benennungen verwendet werden, das sollte eigentlich ein spezielles Mapping komplett überflüssig machen und das Device dann direkt so z.B. für WeekdayTimer/weekprofile direkt verwendbar sein, um Wochenprofile abzubilden und die schnell mal an- und abwesenheitsabhängig tauschen zu können ;) .

Was den Rest angeht, finde ich erst mal dieses Reading interessant:
setstate MQTT2_z2t_ED59 2020-11-25 06:08:18 0001/003E 0
In binärer Codierung wäre das "3E" "00111110" (62 dezimal), aber da bekomme ich im Moment auch noch keine Brücke zu https://www.zigbee2mqtt.io/devices/SPZB0001.html#controlling gebaut...

Vielleicht loggst du einfach mal eine zeitlang, was so (JSON-encoded) über den betreffenden Topic reinkommt? Dazu kannst du eine weitere Zeile in readingList einfügen:
tele/tasmota_DC0320/ED59/SENSOR:.* json_raw
und dann das Reading json_raw in ein eigenes FileLog laufen lassen?
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