attrTemplate für ZigBee2Tasmota

Begonnen von kimbolero, 19 Juni 2020, 21:02:50

Vorheriges Thema - Nächstes Thema

Beta-User

Das mit dem "kaputten" Speechcontrol-Ding ist seltsam; das hat eigentlich nicht direkt was mit dem aufrufenden attrTemplate zu tun. Muß ich mir mal ansehen.

Dimmen klappt auch?

Ein RAW wäre trotzdem informativ; das Reading "ZbReceived_Osram1_Power" sieht komisch aus.

Das mit dem Bewegungsmelder müßte man sich auch getrennt ansehen; tendenziell gibt es dafür kein template (@tasmota).
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

SirUli

#31
Hi zusammen,

ich habe mich sehr gefreut das heute zu lesen und konnte nach einem FHEM Update super-easy alles einrichten. Vielen Vielen Dank dafür!

Zitat von: Beta-User am 02 August 2020, 13:38:03
Ggf. können wir dann - wenn jetzt so langsam das Prinzip erkennbar wird - gerne auch die weiteren Devices "vertemplaten", die du so hast; ich bräuchte dazu jeweils halt ein "RAW"...

Ich hatte relativ wenig Thema dass die Geräte direkt angelegt wurden - war eher dann Details. Z.b. für Aqara Cube:

defmod MQTT2_z2t_AAD5 MQTT2_DEVICE z2t_AAD5
attr MQTT2_z2t_AAD5 DbLogExclude .*
attr MQTT2_z2t_AAD5 IODev TEC_MQTT_SERVER
attr MQTT2_z2t_AAD5 alias Cube1
attr MQTT2_z2t_AAD5 readingList tele/tasmota3/AAD5/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_AAD5 room MQTT2_DEVICE

setstate MQTT2_z2t_AAD5 2020-08-02 14:24:03 ZbReceived_Cube1_AppVersion 5
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:17 ZbReceived_Cube1_AqaraCube shake
setstate MQTT2_z2t_AAD5 2020-08-02 14:27:16 ZbReceived_Cube1_AqaraCubeFromSide 3
setstate MQTT2_z2t_AAD5 2020-08-02 14:29:53 ZbReceived_Cube1_AqaraCubeSide 1
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:01 ZbReceived_Cube1_AqaraRotate -19.03
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:01 ZbReceived_Cube1_Aqara_FF05 500
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Battery 51
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_BatteryPercentage 51
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_BatteryVoltage 2.915
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:17 ZbReceived_Cube1_Device 0xAAD5
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:17 ZbReceived_Cube1_Endpoint 2
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_LinkQuality 150
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:03 ZbReceived_Cube1_ModelId lumi.sensor_cube.aqgl01
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Voltage 2.915
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Xiaomi_97 0
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Xiaomi_98 0
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Xiaomi_99 0
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:04 ZbReceived_Cube1_Xiaomi_9A 4
setstate MQTT2_z2t_AAD5 2020-08-02 14:42:17 ZbReceived_Cube1_Name Cube1
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:03 associatedWith MQTT2_tasmota3


Und bei Temperatur/Luftfeuchte Sensoren :

defmod MQTT2_z2t_9442 MQTT2_DEVICE z2t_9442
attr MQTT2_z2t_9442 DbLogExclude .*
attr MQTT2_z2t_9442 IODev TEC_MQTT_SERVER
attr MQTT2_z2t_9442 alias TempHum2
attr MQTT2_z2t_9442 readingList tele/tasmota3/9442/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_9442 room MQTT2_DEVICE

setstate MQTT2_z2t_9442 2020-08-02 14:14:10 ZbReceived_TempHum2_AppVersion 2
setstate MQTT2_z2t_9442 2020-08-02 14:14:11 ZbReceived_TempHum2_Battery 92
setstate MQTT2_z2t_9442 2020-08-02 14:14:11 ZbReceived_TempHum2_BatteryPercentage 92
setstate MQTT2_z2t_9442 2020-08-02 14:14:11 ZbReceived_TempHum2_BatteryVoltage 2.985
setstate MQTT2_z2t_9442 2020-08-02 14:17:25 ZbReceived_TempHum2_Device 0x9442
setstate MQTT2_z2t_9442 2020-08-02 14:17:25 ZbReceived_TempHum2_Endpoint 1
setstate MQTT2_z2t_9442 2020-08-02 14:16:09 ZbReceived_TempHum2_Humidity 53.91
setstate MQTT2_z2t_9442 2020-08-02 14:17:25 ZbReceived_TempHum2_LinkQuality 78
setstate MQTT2_z2t_9442 2020-08-02 14:14:15 ZbReceived_TempHum2_Manufacturer LUMI
setstate MQTT2_z2t_9442 2020-08-02 14:17:25 ZbReceived_TempHum2_ModelId lumi.sensor_ht
setstate MQTT2_z2t_9442 2020-08-02 14:17:25 ZbReceived_TempHum2_Name TempHum2
setstate MQTT2_z2t_9442 2020-08-02 14:16:09 ZbReceived_TempHum2_Temperature 28.85
setstate MQTT2_z2t_9442 2020-08-02 14:14:11 ZbReceived_TempHum2_Voltage 2.985
setstate MQTT2_z2t_9442 2020-08-02 14:14:10 associatedWith MQTT2_tasmota3


Gibt es hier eine Möglichkeit bei den Attributen immer dieses "ZbReceived_Cube1_" bzw. "ZbReceived_TempHum2_" weg zu lassen? Ich weiss dass ich mir weitere Readings (userreadings) oder einen state (@kimbolero meinst du stateformat?) bauen kann (welcher mir das übersetzt in ein Standardformat) - aber evtl. kennst du, Beta-User, einen besseren Weg?

Vielen Dank im Voraus!

Viele Grüße,
Uli

kimbolero

#32
Hier nochmals beide Birnen im Detail:

1. TRADFRI bulb E27 WW 806lm]

https://zigbee.blakadder.com/Ikea_LED1836G9-E27.html

defmod MQTT2_z2t_51FF MQTT2_DEVICE z2t_51FF
attr MQTT2_z2t_51FF IODev myBroker
attr MQTT2_z2t_51FF alias Tradfri806LmE27
attr MQTT2_z2t_51FF devStateIcon on:on@red off:off
attr MQTT2_z2t_51FF genericDeviceType light
attr MQTT2_z2t_51FF homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_z2t_51FF icon light_control
attr MQTT2_z2t_51FF jsonMap Dimmer:brightness Power:state Battery:batteryPercent
attr MQTT2_z2t_51FF model tasmota_zigbee2tasmota_light_dimmer
attr MQTT2_z2t_51FF readingList tele/ZigBee2MQTT/51FF/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_51FF room MQTT2_Device
attr MQTT2_z2t_51FF setList on cmnd/ZigBee2MQTT/ZbSend {"device":"0x51FF","send":{"Power":"On"}}\
  off cmnd/ZigBee2MQTT/ZbSend {"device":"0x51FF","send":{"Power":"Off"}}\
  brightness:colorpicker,BRI,0,5,254 cmnd/ZigBee2MQTT/ZbSend { "device":"0x51FF", "send":{"Dimmer":$EVTPART1} }\
  dimup:noArg cmnd/ZigBee2MQTT/ZbSend { "device":"0x51FF", "send":{"DimmerUp"} }\
  dimdown:noArg cmnd/ZigBee2MQTT/ZbSend { "device":"0x51FF", "send":{"DimmerDown"} }
attr MQTT2_z2t_51FF setStateList on off

setstate MQTT2_z2t_51FF set_on
setstate MQTT2_z2t_51FF 2020-08-02 15:06:18 ZbReceived_Tradfri806LmE27_Device 0x51FF
setstate MQTT2_z2t_51FF 2020-08-02 15:05:17 ZbReceived_Tradfri806LmE27_Dimmer 55
setstate MQTT2_z2t_51FF 2020-08-02 15:06:18 ZbReceived_Tradfri806LmE27_Endpoint 1
setstate MQTT2_z2t_51FF 2020-08-02 15:06:18 ZbReceived_Tradfri806LmE27_LinkQuality 76
setstate MQTT2_z2t_51FF 2020-08-02 14:08:54 ZbReceived_Tradfri806LmE27_Manufacturer IKEA of Sweden
setstate MQTT2_z2t_51FF 2020-08-02 14:08:54 ZbReceived_Tradfri806LmE27_ModelId TRADFRI bulb E27 WW 806lm
setstate MQTT2_z2t_51FF 2020-08-02 15:06:18 ZbReceived_Tradfri806LmE27_Power 1
setstate MQTT2_z2t_51FF 2020-08-02 13:06:35 associatedWith MQTT2_ZigBee2MQTT
setstate MQTT2_z2t_51FF 2020-08-02 14:09:11 attrTemplateVersion 20200718_1
setstate MQTT2_z2t_51FF 2020-08-02 15:05:16 brightness set 55
setstate MQTT2_z2t_51FF 2020-08-02 15:06:00 dimdown set
setstate MQTT2_z2t_51FF 2020-08-02 15:05:57 dimup set
setstate MQTT2_z2t_51FF 2020-08-02 15:06:17 state set_on


Funktionieren tut Folgendes:
On
Off
Brightness (Schieberegler)
Off-for-timer
Off-till
On-for-timer
On-till

Nicht funktionieren tut:
toogle --> schaltet komischerweise nur an ausgeschaltete Birne ein, aber kein eingeschaltete Birne aus
dimup
dimdown
blink --> fraglich, ob hier ein Wert angegeben werden muss
intervals --> faglich, ob hier ein Wert angegeben werden muss

Nicht ausprobiert, sollte aber sicherlich auch funktionieren:
Off-till-overnite
On-till-overnite


2. Osram A60 (lt. Amazon lediglich dimmbar)

defmod MQTT2_z2t_C1FF MQTT2_DEVICE z2t_C1FF
attr MQTT2_z2t_C1FF IODev myBroker
attr MQTT2_z2t_C1FF alias Osram1
attr MQTT2_z2t_C1FF devStateIcon on:on@red off:off
attr MQTT2_z2t_C1FF genericDeviceType light
attr MQTT2_z2t_C1FF homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_z2t_C1FF icon light_control
attr MQTT2_z2t_C1FF jsonMap Dimmer:brightness Power:state Battery:batteryPercent
attr MQTT2_z2t_C1FF model tasmota_zigbee2tasmota_light_dimmer
attr MQTT2_z2t_C1FF readingList tele/ZigBee2MQTT/C1FF/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_C1FF room MQTT2_Device
attr MQTT2_z2t_C1FF setList on cmnd/ZigBee2MQTT/ZbSend {"device":"0xC1FF","send":{"Power":"On"}}\
  off cmnd/ZigBee2MQTT/ZbSend {"device":"0xC1FF","send":{"Power":"Off"}}\
  brightness:colorpicker,BRI,0,5,254 cmnd/ZigBee2MQTT/ZbSend { "device":"0xC1FF", "send":{"Dimmer":$EVTPART1} }\
  dimup:noArg cmnd/ZigBee2MQTT/ZbSend { "device":"0xC1FF", "send":{"DimmerUp"} }\
  dimdown:noArg cmnd/ZigBee2MQTT/ZbSend { "device":"0xC1FF", "send":{"DimmerDown"} }
attr MQTT2_z2t_C1FF setStateList on off

setstate MQTT2_z2t_C1FF set_on
setstate MQTT2_z2t_C1FF 2020-08-02 14:08:35 ZbReceived_Osram1_Device 0xC1FF
setstate MQTT2_z2t_C1FF 2020-08-02 14:08:35 ZbReceived_Osram1_Endpoint 3
setstate MQTT2_z2t_C1FF 2020-08-02 14:08:35 ZbReceived_Osram1_LinkQuality 68
setstate MQTT2_z2t_C1FF 2020-08-02 14:08:35 ZbReceived_Osram1_Power 0
setstate MQTT2_z2t_C1FF 2020-08-02 13:00:24 associatedWith MQTT2_ZigBee2MQTT
setstate MQTT2_z2t_C1FF 2020-08-02 13:57:31 attrTemplateVersion 20200718_1
setstate MQTT2_z2t_C1FF 2020-08-02 14:05:15 dimdown set
setstate MQTT2_z2t_C1FF 2020-08-02 15:05:00 state set_on


Die Lampe nimmt exakt die gleichen Befehle wie die Tradfri an

Funktionieren tut Folgendes:
On
Off
Brightness (Schieberegler)
Off-for-timer
Off-till
On-for-timer
On-till

Nicht funktionieren tut:
toogle --> schaltet komischerweise nur an ausgeschaltete Birne ein, aber kein eingeschaltete Birne aus
dimup
dimdown
blink --> fraglich, ob hier ein Wert angegeben werden muss
intervals --> faglich, ob hier ein Wert angegeben werden muss

Nicht ausprobiert, sollte aber sicherlich auch funktionieren:
Off-till-overnite
On-till-overnite

@Beta-User:
ZitatEin RAW wäre trotzdem informativ; das Reading "ZbReceived_Osram1_Power" sieht komisch aus.
Bei der Osram bzw Tradfri Birne steht im Reading Power entweder "0" für aus und "1" für an

@SirUli:
ZitatIch weiss dass ich mir weitere Readings (userreadings) oder einen state (@kimbolero meinst du stateformat?) bauen kann (welcher mir das übersetzt in ein Standardformat) - aber evtl. kennst du, Beta-User, einen besseren Weg?
Vollkommen richtig - Tippfehler, habe es oben direkt geändert
CUL 868, Jeelink 868 Clone, NanoCUL 868, HM-CC-RT-DN,  max! Fensterkontakte, Zigbee, GoogleAssistant, GHoma Wifi-Steckdosen, Telegram etc.....

TL60


kimbolero

#34
@Beta-User:
ZitatGgf. können wir dann - wenn jetzt so langsam das Prinzip erkennbar wird - gerne auch die weiteren Devices "vertemplaten", die du so hast; ich bräuchte dazu jeweils halt ein "RAW"...

Hier noch die RAWs der weiteren Devices, welche ich habe:


1. Tradfri Bewegungsmelder
https://zigbee.blakadder.com/Ikea_E1745.html

defmod MQTT2_z2t_C9E7 MQTT2_DEVICE z2t_C9E7
attr MQTT2_z2t_C9E7 IODev myBroker
attr MQTT2_z2t_C9E7 alias TradfriBWM
attr MQTT2_z2t_C9E7 readingList tele/ZigBee2MQTT/C9E7/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_C9E7 room MQTT2_Device

setstate MQTT2_z2t_C9E7 2020-08-02 16:28:57 ZbReceived_TradfriBWM_0006_42 0008070000
setstate MQTT2_z2t_C9E7 2020-08-02 16:28:57 ZbReceived_TradfriBWM_Device 0xC9E7
setstate MQTT2_z2t_C9E7 2020-08-02 16:28:57 ZbReceived_TradfriBWM_Endpoint 1
setstate MQTT2_z2t_C9E7 2020-08-02 16:28:57 ZbReceived_TradfriBWM_LinkQuality 115
setstate MQTT2_z2t_C9E7 2020-08-02 13:07:12 ZbReceived_TradfriBWM_Manufacturer IKEA of Sweden
setstate MQTT2_z2t_C9E7 2020-08-02 13:07:12 ZbReceived_TradfriBWM_ModelId TRADFRI motion sensor
setstate MQTT2_z2t_C9E7 2020-08-02 16:28:57 ZbReceived_TradfriBWM_Power 66
setstate MQTT2_z2t_C9E7 2020-08-02 12:57:42 associatedWith MQTT2_ZigBee2MQTT



2. Xiaomi Temp/Humidity Sensor
https://zigbee.blakadder.com/Xiaomi_MCCGQ01LM.html

defmod MQTT2_z2t_6EA4 MQTT2_DEVICE z2t_6EA4
attr MQTT2_z2t_6EA4 IODev myBroker
attr MQTT2_z2t_6EA4 alias Xiaomi_Humitemp1
attr MQTT2_z2t_6EA4 readingList tele/ZigBee2MQTT/6EA4/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_6EA4 room MQTT2_Device
attr MQTT2_z2t_6EA4 stateFormat T: ZbReceived_Humitemp1_Temperature°C | H: ZbReceived_Humitemp1_Humidity% | B: ZbReceived_Humitemp1_Battery%
setstate MQTT2_z2t_6EA4 T: 25.65°C | H: 57.91% | B: 100%
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Battery 100
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Device 0x6EA4
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Endpoint 1
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Humidity 57.91
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_LinkQuality 147
setstate MQTT2_z2t_6EA4 2020-08-02 13:07:32 ZbReceived_Humitemp1_ModelId lumi.sensor_ht
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Temperature 25.65
setstate MQTT2_z2t_6EA4 2020-08-02 16:01:56 ZbReceived_Humitemp1_Voltage 3.015
setstate MQTT2_z2t_6EA4 2020-08-02 13:07:32 associatedWith MQTT2_ZigBee2MQTT



3. Xiaomi/Aqara Cube
https://zigbee.blakadder.com/Xiaomi_MFKZQ01LM.html

defmod MQTT2_z2t_0289 MQTT2_DEVICE z2t_0289
attr MQTT2_z2t_0289 IODev myBroker
attr MQTT2_z2t_0289 alias Xiaomi_Cube
attr MQTT2_z2t_0289 readingList tele/ZigBee2MQTT/0289/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_0289 room MQTT2_Device

setstate MQTT2_z2t_0289 2020-08-02 13:43:55 ZbReceived_Cube1_AqaraCube slide
setstate MQTT2_z2t_0289 2020-08-02 13:43:55 ZbReceived_Cube1_AqaraCubeSide 3
setstate MQTT2_z2t_0289 2020-08-02 13:43:53 ZbReceived_Cube1_AqaraRotate 11.24
setstate MQTT2_z2t_0289 2020-08-02 13:43:53 ZbReceived_Cube1_Aqara_FF05 500
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Battery 100
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Device 0x0289
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Endpoint 1
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_LinkQuality 141
setstate MQTT2_z2t_0289 2020-08-02 13:43:55 ZbReceived_Cube1_MultiInValue 259
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Voltage 3.005
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Xiaomi_97 0
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Xiaomi_98 148
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Xiaomi_99 142
setstate MQTT2_z2t_0289 2020-08-02 15:43:28 ZbReceived_Cube1_Xiaomi_9A 4
setstate MQTT2_z2t_0289 2020-08-02 13:02:11 associatedWith MQTT2_ZigBee2MQTT




4. Xiaomi Tür/Fenster-Kontakt

https://zigbee.blakadder.com/Xiaomi_MCCGQ01LM.html

defmod MQTT2_z2t_BEF7 MQTT2_DEVICE z2t_BEF7
attr MQTT2_z2t_BEF7 IODev myBroker
attr MQTT2_z2t_BEF7 alias Kontakt_Büro_Tür
attr MQTT2_z2t_BEF7 devStateIcon geschlossen:fts_door@green offen:fts_door_open@red
attr MQTT2_z2t_BEF7 eventMap 0:geschlossen 1:offen
attr MQTT2_z2t_BEF7 group Anzeige
attr MQTT2_z2t_BEF7 readingList tele/ZigBee2MQTT/BEF7/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_BEF7 room Fensterkontakte,MQTT2_Device
attr MQTT2_z2t_BEF7 stateFormat ZbReceived_Fenster1_Power

setstate MQTT2_z2t_BEF7 geschlossen
setstate MQTT2_z2t_BEF7 2020-08-02 16:16:49 ZbReceived_Fenster1_DateCode 0
setstate MQTT2_z2t_BEF7 2020-08-02 14:38:49 ZbReceived_Fenster1_DateCode2 null
setstate MQTT2_z2t_BEF7 2020-08-02 16:18:39 ZbReceived_Fenster1_Device 0xBEF7
setstate MQTT2_z2t_BEF7 2020-08-02 16:18:39 ZbReceived_Fenster1_Endpoint 1
setstate MQTT2_z2t_BEF7 2020-08-02 16:16:49 ZbReceived_Fenster1_HWVersion null
setstate MQTT2_z2t_BEF7 2020-08-02 16:18:39 ZbReceived_Fenster1_LinkQuality 63
setstate MQTT2_z2t_BEF7 2020-08-02 16:18:39 ZbReceived_Fenster1_Power 0
setstate MQTT2_z2t_BEF7 2020-08-02 15:39:00 ZbReceived_Fenster1_StackVersion null
setstate MQTT2_z2t_BEF7 2020-08-02 16:16:49 ZbReceived_Fenster1_ZCLVersion 382
setstate MQTT2_z2t_BEF7 2020-08-02 13:43:20 associatedWith MQTT2_ZigBee2MQTT



@Beta-User: Zunächst aber auch vielen vielen Dank für Deine Unterstützung und Geduld ;-)

Sag mir Bescheid, wenn  Du weitere Infos benötigst.
CUL 868, Jeelink 868 Clone, NanoCUL 868, HM-CC-RT-DN,  max! Fensterkontakte, Zigbee, GoogleAssistant, GHoma Wifi-Steckdosen, Telegram etc.....

Beta-User

 :) Danke erst mal für das nette Feedback!

Nachdem wir ja jetzt den Pfad pro Endgerät haben, müßte man ggf. erst mal hergehen und noch ein paar Bausteinchen neu zusammenpuzzeln:

- Zum einen sollte "^.*(..Device.+)..$" als Regex den "inneren JSON" liefern, um nur noch den an json2nameValue() zu übergeben. Ist vermutlich einfacher, als den "Umbenennungsnamen" zu ermitteln...
- Das Umbenennen der Readings geht dann mit jsonMap, damit sollte man es eigentlich hinbekommen, dass die Rückgabewerte auch wieder sauber auf die setter passen...
- Das mit der "1" in Power ist unschön. Kann mal jemand nachforschen, ob man das ggf. auf der Tasmota-Seite bereinigt bekommt? (Sonst müssen wir ggf. eine Ersetzungs-Vor-Schleife drehen; tendenziell etwas einfacher wie hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template?rev=22513#L2617)

Würde daher vorschlagen, erst mal die ersten beiden Punkte anzugehen. Dazu hatte ich mal für die A60 was vorbereitet gehabt, was bei euch aber wohl (kommentarlos...?!?) rausgeflogen ist, weil es mit umbenannten Devices nicht funktioniert hatte...  TELETOPIC/SENSOR:.* { $EVENT =~ m,0xDEV_ID.:(.[^}]+.), ?  json2nameValue($1,'',$JSONMAP) : undef }
Mag mal wer diese Version testen und dann auch Rückmeldung geben...?
  TELETOPIC/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : undef }
Die müßte eigentlich für alle Hardware-Varianten passen, die Details (dimUp etc.) müssen wir uns dann später ansehen, ich hatte teils nur eben auf die Schnelle zusammengeklaubt, was an anderer Stelle als funktionierend genannt gewesen war.

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

Beta-User

Vielleicht im Nachgang zu dem hier
Zitat von: Beta-User am 03 August 2020, 11:20:33- Zum einen sollte "^.*(..Device.+)..$" als Regex den "inneren JSON" liefern, um nur noch den an json2nameValue() zu übergeben. Ist vermutlich einfacher, als den "Umbenennungsnamen" zu ermitteln...
[...]
Dazu hatte ich mal für die A60 was vorbereitet gehabt, was bei euch aber wohl (kommentarlos...?!?) rausgeflogen ist, weil es mit umbenannten Devices nicht funktioniert hatte...  TELETOPIC/SENSOR:.* { $EVENT =~ m,0xDEV_ID..[^}]+.), ?  json2nameValue($1,'',$JSONMAP) : undef }Mag mal wer diese Version testen und dann auch Rückmeldung geben...?
nochmal eine Frage betreffend einzuhaltende Konventionen:
1. Soweit das hier erkennbar war, haben praktisch alle ihre Devices umbenannt, die "Technamen" (kurze HEX-ID) verwendet praktisch keiner. Mit umbenannten Devices klappt das aber nicht mit der Ausgangsregex, was vermutlich der Grund für kimbolero war, einfach wieder die "einfache" Variante von json2nameValue() einzubauen
2. Teils wurde SetOption83 gesetzt, teils nicht. Ohne klappt das mit "^.*(..Device.+)..$" aber nicht...

Ich würde daraus jetzt den Schluss ziehen, dass wir (analog zu SetOption89) auch SetOption83 automatisiert setzen, damit die, die erst ohne die attrTemplates unterwegs waren, nicht wieder zu den Technamen zurück müssen (was eigentlich einfacher wäre). Unterschiedliche Varianten würde ich jedenfalls ungern via attrTemplate unterstützen wollen.
Einverstanden?



Ansonsten hatte ich beim Durchsehen von https://tasmota.github.io/docs/Zigbee/ den Eindruck, dass da 1/true/"true" usw. ziemlich bunt durcheinandergehen. Ich hoffe mal, das täuscht, sonst wird das blöd in der vorbereitenden Aufarbeitung...
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

SirUli

Zitat von: Beta-User am 03 August 2020, 13:42:31Soweit das hier erkennbar war, haben praktisch alle ihre Devices umbenannt, die "Technamen" (kurze HEX-ID) verwendet praktisch keiner.
Würde ich als Konvention so setzen - sehe ich wie du.

Zitat von: Beta-User am 03 August 2020, 13:42:31Ich würde daraus jetzt den Schluss ziehen, dass wir (analog zu SetOption89) auch SetOption83 automatisiert setzen
Sehe ich auch so.

Zitat von: Beta-User am 03 August 2020, 11:20:33
Mag mal wer diese Version testen und dann auch Rückmeldung geben...?
  TELETOPIC/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : undef }

Für meine Devices passt das und funktioniert:

Cube:
defmod MQTT2_z2t_AAD5 MQTT2_DEVICE z2t_AAD5
attr MQTT2_z2t_AAD5 DbLogExclude .*
attr MQTT2_z2t_AAD5 IODev TEC_MQTT_SERVER
attr MQTT2_z2t_AAD5 alias Cube1
attr MQTT2_z2t_AAD5 readingList tele/tasmota3/AAD5/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : undef }
attr MQTT2_z2t_AAD5 room MQTT2_DEVICE

setstate MQTT2_z2t_AAD5 2020-08-03 20:54:13 AqaraCube shake
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:11 AqaraCubeFromSide 1
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:11 AqaraCubeSide 0
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 AqaraRotate 148.03
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 Aqara_FF05 500
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 Device 0xAAD5
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 Endpoint 3
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 LinkQuality 132
setstate MQTT2_z2t_AAD5 2020-08-03 20:54:23 Name Cube1
setstate MQTT2_z2t_AAD5 2020-08-02 14:24:03 associatedWith MQTT2_tasmota3


Und Temperatur/Luftfeuchte Sensor:
defmod MQTT2_z2t_9442 MQTT2_DEVICE z2t_9442
attr MQTT2_z2t_9442 DbLogExclude .*
attr MQTT2_z2t_9442 IODev TEC_MQTT_SERVER
attr MQTT2_z2t_9442 alias TempHum2
attr MQTT2_z2t_9442 readingList tele/tasmota3/9442/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : undef }
attr MQTT2_z2t_9442 room MQTT2_DEVICE
attr MQTT2_z2t_9442 stateFormat T: Temperature °C, H: Humidity %rH
attr MQTT2_z2t_9442 userReadings alive { return "ok" if ( (time_str2num(ReadingsTimestamp($NAME,"Temperature","0")) - time_str2num(OldTimestamp($NAME))) < 3600 );; return "dead" }

setstate MQTT2_z2t_9442 T: 27.03 °C, H: 52.78 %rH
setstate MQTT2_z2t_9442 2020-08-03 20:48:59 Battery 100
setstate MQTT2_z2t_9442 2020-08-03 20:48:59 BatteryPercentage 100
setstate MQTT2_z2t_9442 2020-08-03 20:48:59 BatteryVoltage 3.025
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 Device 0x9442
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 Endpoint 1
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 Humidity 52.78
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 LinkQuality 135
setstate MQTT2_z2t_9442 2020-08-03 20:48:59 ModelId lumi.sensor_ht
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 Name TempHum2
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 Temperature 27.03
setstate MQTT2_z2t_9442 2020-08-03 20:48:59 Voltage 3.025
setstate MQTT2_z2t_9442 2020-08-03 20:49:14 alive ok
setstate MQTT2_z2t_9442 2020-08-02 14:14:10 associatedWith MQTT2_tasmota3


Vielen Dank dafür!

Beta-User

Moin zusammen,

mit dem update von heute kommen dann ein paar neue attrTemplate, die allerdings nur dann geladen werden, wenn das bridge-Device vorhanden ist. So ist wenigstens halbwegs sichergestellt, dass die beiden SetOption auch wirklich gesetzt wurden (wer noch nicht hat: jetzt wäre es Zeit...).

webCmd wäre ggf. bei den diversen light-Varianten noch zu ergänzen, und ich hoffe mal, dass jetzt auch die Rückmeldung zu state=on/off paßt (dann sollte z.B. toggle auch gehen...).

Für die diversen "Sensoren" gibt's erst mal ein generisches template. Die Idee dahinter ist, das für alle Varianten dann intern aufzurufen und nur noch die Teile zu ergänzen, die jeweils anders sind (jsonMap, ggf. stateFormat); das wird noch eine ziemliche Fleißaufgabe werden, und meine Hoffnung dazu wäre, das dann demnächst an einem Beispiel so demonstrieren zu können, dass ihr dann recht unkompliziert vollends zuarbeiten könnt. Dazu würde ich vorschlagen, den temp/hum-Xiaomi zu verwenden, da gibt's auch schon ein RAW, das zu der readingList paßt...
Um das kompatibel mit den vorhandenen Namenskonventionen zu machen: z.B. Temperature und Humidity klein schreiben?



@kimbolero:
Villeicht magst du den Titel ändern (ersten Post editieren), z.B. in "attrTemplate für ZigBee2Tasmota"
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

SirUli

Moin,

vielen Dank mal wieder!

Ich habe die Bridge abgesteckt, alle MQTT2_z2t devices und die bridge gelöscht, gespeichert und dann FHEM aktualisiert. Dann wieder die Bridge angesteckt womit sich das Gerät via MQTT gemeldet hat. Dann attrTemplate drauf, was nun so aussieht:
defmod MQTT2_tasmota3 MQTT2_DEVICE tasmota3
attr MQTT2_tasmota3 DbLogExclude .*
attr MQTT2_tasmota3 IODev TEC_MQTT_SERVER
attr MQTT2_tasmota3 bridgeRegexp tele/tasmota3/([^/]+)/SENSOR:.* "z2t_$1"
attr MQTT2_tasmota3 icon mqtt
attr MQTT2_tasmota3 model tasmota_zigbee2tasmota_bridge
attr MQTT2_tasmota3 readingList tasmota3:stat/tasmota3/RESULT:.* { json2nameValue($EVENT) }\
tasmota3:tele/tasmota3/STATE:.* { json2nameValue($EVENT) }\
tasmota3:tele/tasmota3/LWT:.* LWT\
tasmota3:cmnd/tasmota3/POWER:.* POWER\
tasmota3:tele/tasmota3/INFO1:.* { json2nameValue($EVENT) }\
tasmota3:tele/tasmota3/INFO2:.* { json2nameValue($EVENT) }\
tasmota3:tele/tasmota3/INFO3:.* { json2nameValue($EVENT) }\
tasmota3:tele/tasmota3/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_tasmota3 room MQTT2_DEVICE
attr MQTT2_tasmota3 setList permit_join:0,1,99 cmnd/tasmota3/ZbPermitJoin $EVTPART1\
  x_ZbSend:textField cmnd/tasmota3/zbsend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}

setstate MQTT2_tasmota3 2020-08-04 10:41:43 FallbackTopic cmnd/tasmota3_fb/
setstate MQTT2_tasmota3 2020-08-04 10:41:43 GroupTopic cmnd/tasmotas/
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Heap 26
setstate MQTT2_tasmota3 2020-08-04 10:41:43 Hostname tasmota3-2271
setstate MQTT2_tasmota3 2020-08-04 10:41:43 IPAddress XXXXXX
setstate MQTT2_tasmota3 2020-08-04 10:42:42 LWT Online
setstate MQTT2_tasmota3 2020-08-04 10:41:47 LoadAvg 19
setstate MQTT2_tasmota3 2020-08-04 10:41:43 Module Zigbee
setstate MQTT2_tasmota3 2020-08-04 10:41:47 MqttCount 1
setstate MQTT2_tasmota3 2020-08-04 10:42:42 POWER
setstate MQTT2_tasmota3 2020-08-04 09:39:19 Restart Restarting
setstate MQTT2_tasmota3 2020-08-04 09:39:26 RestartReason Software/System restart
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_1 40101674
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_10 4026a61f
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_11 40000f58
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_12 4026a092
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_13 402737f3
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_14 402730b3
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_15 4025147c
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_16 40000f49
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_17 40000f49
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_18 40000e19
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_19 40105aed
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_2 4026cdfb
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_20 40105af3
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_21 4010000d
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_22 40271f98
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_23 40271f49
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_24 40101160
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_25 40102738
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_26 401059e7
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_27 401032cb
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_28 401034ac
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_29 4010396e
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_3 4026cd90
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_30 40101160
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_31 40102b69
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_4 4026cd37
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_5 4026be94
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_6 4026bebd
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_7 40269928
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_8 4010396e
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_CallChain_9 40265c91
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_DEPC 00000000
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_EPC_1 4000df64
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_EPC_2 00000000
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_EPC_3 00000000
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_EXCVADDR 00000000
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_Exception 29
setstate MQTT2_tasmota3 2020-08-04 10:41:43 RestartReason_Reason Exception
setstate MQTT2_tasmota3 2020-08-04 09:39:21 SaveData on
setstate MQTT2_tasmota3 2020-08-04 09:39:20 SetOption26 on
setstate MQTT2_tasmota3 2020-08-04 09:39:21 SetOption83 on
setstate MQTT2_tasmota3 2020-08-04 09:39:21 SetOption89 on
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Sleep 50
setstate MQTT2_tasmota3 2020-08-04 10:41:47 SleepMode Dynamic
setstate MQTT2_tasmota3 2020-08-04 09:39:19 StateText1 off
setstate MQTT2_tasmota3 2020-08-04 09:39:20 StateText2 on
setstate MQTT2_tasmota3 2020-08-04 09:39:20 StateText3 toggle
setstate MQTT2_tasmota3 2020-08-04 09:39:20 StateText4 hold
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Time 2020-08-04T09:41:48
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Uptime 0T00:00:13
setstate MQTT2_tasmota3 2020-08-04 10:41:47 UptimeSec 13
setstate MQTT2_tasmota3 2020-08-04 10:41:43 Version 8.4.0(tasmota)
setstate MQTT2_tasmota3 2020-08-04 10:41:43 WebServerMode Admin
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_AP 1
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_BSSId XXXXXX
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_Channel 1
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_Downtime 0T00:00:07
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_LinkCount 1
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_RSSI 42
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_SSId XXXXXX
setstate MQTT2_tasmota3 2020-08-04 10:41:47 Wifi_Signal -79
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_1 0x12F8
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_2 0x9442
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_3 0x280A
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_4 0x9F29
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_5 0xAAD5
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_AssocDevicesList_6 0x874F
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_DeviceState 9
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_DeviceType 7
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_IEEEAddr 0x00124B001F320B47
setstate MQTT2_tasmota3 2020-08-04 10:41:48 ZbState_MaintRel 3
setstate MQTT2_tasmota3 2020-08-04 10:41:48 ZbState_MajorRel 2
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_Message Started
setstate MQTT2_tasmota3 2020-08-04 10:41:48 ZbState_MinorRel 6
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_NewState 9
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_NumAssocDevices 6
setstate MQTT2_tasmota3 2020-08-04 10:41:48 ZbState_RestartReason Watchdog
setstate MQTT2_tasmota3 2020-08-04 10:41:48 ZbState_Revision 20190608
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_ShortAddr 0x0000
setstate MQTT2_tasmota3 2020-08-04 10:41:50 ZbState_Status 0
setstate MQTT2_tasmota3 2020-08-04 09:39:19 attrTemplateVersion 20200804
setstate MQTT2_tasmota3 2020-08-04 09:58:31 subscriptions cmnd/tasmota3/# cmnd/tasmota3_fb/# cmnd/tasmotas/#


Diese hat dann begonnen die TemperaturSensoren wie folgt zu erstellen:
defmod MQTT2_z2t_12F8 MQTT2_DEVICE z2t_12F8
attr MQTT2_z2t_12F8 DbLogExclude .*
attr MQTT2_z2t_12F8 IODev TEC_MQTT_SERVER
attr MQTT2_z2t_12F8 readingList tele/tasmota3/12F8/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_12F8 room MQTT2_DEVICE

setstate MQTT2_z2t_12F8 2020-08-04 10:13:48 ZbReceived_TempHum4_Battery 100
setstate MQTT2_z2t_12F8 2020-08-04 10:13:48 ZbReceived_TempHum4_BatteryPercentage 100
setstate MQTT2_z2t_12F8 2020-08-04 10:13:48 ZbReceived_TempHum4_BatteryVoltage 3.015
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_Device 0x12F8
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_Endpoint 1
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_Humidity 54.07
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_LinkQuality 122
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_Name TempHum4
setstate MQTT2_z2t_12F8 2020-08-04 10:42:50 ZbReceived_TempHum4_Temperature 23.22
setstate MQTT2_z2t_12F8 2020-08-04 10:13:48 ZbReceived_TempHum4_Voltage 3.015
setstate MQTT2_z2t_12F8 2020-08-04 09:49:53 associatedWith MQTT2_tasmota3


Das war nicht ganz so wie geplant vermute ich. Zudem kann ich in diesem Device das neue Template tasmota_zigbee2tasmota_generic_battery_sensor nicht auswählen (obwohl ich mit einem "list model=tasmota_zigbee2tasmota_bridge" eigentlich das bridge device finde). Ich tippe dass es am readingList regex liegt, da diese bei mir "tele/tasmota3/12F8/SENSOR" zeigt und in deiner regex nach TYPE=MQTT2_DEVICE:FILTER=readingList=.*tele.*/..../SENSOR gesucht wird?

Zitat von: Beta-User am 04 August 2020, 06:59:38
Um das kompatibel mit den vorhandenen Namenskonventionen zu machen: z.B. Temperature und Humidity klein schreiben?

Ja bitte - bin ich unbedingt dafür. Für den Cube muss man sich mal ausdenken wie das funktionieren kann, da dieser nicht immer alles in die gleichen Werte schreibt. Ich überlege mal (mein Beitrag zum zuarbeiten ;) )

Viele Grüße,
Uli

Beta-User

Kannst du nach dem ":" im Filter noch ein ".*" anhängen (dann neu Initialisieren)?
Dann müßte es eigentlich da sein.
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

TL60

Hallo,
auch von mir nochmal ein fettes Dankeschön an Beta-User für einen unermüdlichen Einsatz hier im Forum und besonders im MQTT-Bereich. Nachdem das hier eine ziemliche Dynamik entwickelt, will ich auch versuchen ein bischen was beizutragen. Darum habe ich heute ein Testsystem in Virtualbox mit einem tagesaktuellen Debian Buster und Fhem mit update von heute mittag aufgesetzt.MQTT2_Server definiert:
defmod MQTT2server MQTT2_SERVER 1884 global
attr MQTT2server autocreate simple
attr MQTT2server room Gateway
und mein Zigbee2tasmota Gateway (https://forum.fhem.de/index.php/topic,112502.0.html) darauf losgelassen. Die Bridge wurde auch per autocreate angelegt. Das Anwenden des Brigde Templates hat auch funktioniert, hier erhalte ich aber immer folgende Meldung:attr MQTT2_DVES_AAFFC1 readingList: attribute value is missing
Unknown command tele/zb2tasmota/LWT:.*, try help.

Raw Definition der Bridge:defmod MQTT2_DVES_AAFFC1 MQTT2_DEVICE DVES_AAFFC1
attr MQTT2_DVES_AAFFC1 IODev MQTT2server
attr MQTT2_DVES_AAFFC1 bridgeRegexp tele/zb2tasmota/([^/]+)/SENSOR:.* "z2t_$1"
attr MQTT2_DVES_AAFFC1 icon mqtt
attr MQTT2_DVES_AAFFC1 model tasmota_zigbee2tasmota_bridge
attr MQTT2_DVES_AAFFC1 readingList DVES_AAFFC1:stat/zb2tasmota/RESULT:.* { json2nameValue($EVENT) }\
DVES_AAFFC1:tele/zb2tasmota/LWT:.* LWT\
DVES_AAFFC1:cmnd/zb2tasmota/POWER:.* POWER\
DVES_AAFFC1:tele/zb2tasmota/INFO1:.* { json2nameValue($EVENT) }\
DVES_AAFFC1:tele/zb2tasmota/INFO2:.* { json2nameValue($EVENT) }\
DVES_AAFFC1:tele/zb2tasmota/INFO3:.* { json2nameValue($EVENT) }\
DVES_AAFFC1:tele/zb2tasmota/STATE:.* { json2nameValue($EVENT) }\
DVES_AAFFC1:tele/zb2tasmota/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_AAFFC1 room MQTT2_DEVICE
attr MQTT2_DVES_AAFFC1 setList permit_join:0,1,99 cmnd/zb2tasmota/ZbPermitJoin $EVTPART1\
  x_ZbSend:textField cmnd/zb2tasmota/zbsend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}

setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 FallbackTopic cmnd/DVES_AAFFC1_fb/
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 GroupTopic cmnd/tasmotas/
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Heap 27
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 Hostname zb2tasmota-8129
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 IPAddress 192.168.178.166
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 LWT Online
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 LoadAvg 19
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 Module Zigbee
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 MqttCount 1
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 POWER
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:21 Restart Restarting
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 RestartReason Software/System restart
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:23 SaveData on
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:22 SetOption26 on
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:22 SetOption83 on
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:22 SetOption89 on
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Sleep 50
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 SleepMode Dynamic
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:21 StateText1 off
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:21 StateText2 on
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:22 StateText3 toggle
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:22 StateText4 hold
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Time 2020-08-04T15:14:33
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Uptime 0T00:00:09
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 UptimeSec 9
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 Version 8.3.0(tasmota)
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:29 WebServerMode Admin
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_AP 1
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_BSSId E8:DF:70:D1:B9:02
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_Channel 9
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_Downtime 0T00:00:03
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_LinkCount 1
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_RSSI 90
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_SSId easybell DSL
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:33 Wifi_Signal -55
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_AssocDevicesList_1 0xA5A6
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_AssocDevicesList_2 0x0187
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_AssocDevicesList_3 0xF6F8
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_DeviceState 9
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_DeviceType 7
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_IEEEAddr 0x00124B001BAA5ADB
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:37 ZbState_MaintRel 3
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:37 ZbState_MajorRel 2
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_Message Started
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:37 ZbState_MinorRel 6
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_NewState 9
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_NumAssocDevices 3
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:37 ZbState_RestartReason Watchdog
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:37 ZbState_Revision 20190608
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_ShortAddr 0x0000
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:38 ZbState_Status 0
setstate MQTT2_DVES_AAFFC1 2020-08-04 15:14:21 attrTemplateVersion 20200804
Ein über die Tasmota Konsole geschalteter GU10 Spot, dimmbar und mit weiss Spektrum wurde automatisch angelegt. Nachdem ich wie oben beschrieben das Template geändert hatte habe ich das ...light_cct template darauf angewendet. Auch das hat prinzipell geklappt, allerdings bekomme ich kein vernünftiges Status Icon, der Wertebereich für das Weißspektrum liegt zwischen 153 und 370. Niedrigere Werte werden auf 153 angehoben, höhere Werte auf 370 gekappt.Als Beispiel hab ich mal in der Tasmota Konsole den CT Wert 400 probiert14:37:43 CMD: ZbSend { "device":"0xF6F8", "send":{"CT":"400"} }
14:37:43 MQT: stat/zb2tasmota/RESULT = {"ZbSend":"Done"}
14:37:43 MQT: tele/zb2tasmota/RESULT = {"ZbResponse":{"Device":"0xF6F8","Command":"0300!0A","Status":0,"StatusMessage":"SUCCESS","Endpoint":1,"LinkQuality":63}}
14:37:45 MQT: tele/zb2tasmota/F6F8/SENSOR = {"ZbReceived":{"0xF6F8":{"X":29991,"Y":26872,"CT":370,"ColorMode":2,"Endpoint":1,"LinkQuality":63}}}
man sieht CT:370. Ich weiss allerdings nicht, ob das bei anderen Lampen andere Werte hat. Außerdem springt der Slider für den ct Wert immer wieder zurück auf den untersten Wert. Dimmer funktioniert soweit ich das sehe korrekt, dafür geht der toggle Befehl wie schon von anderen erwähnt nur in Richtung on
Fehlt noch die RAW Definition vom GU10 Spot
defmod MQTT2_z2t_F6F8 MQTT2_DEVICE z2t_F6F8
attr MQTT2_z2t_F6F8 IODev MQTT2server
attr MQTT2_z2t_F6F8 icon light_control
attr MQTT2_z2t_F6F8 jsonMap Dimmer:brightness Power:state Device:0 Hue:hue Sat:saturation CT:ct
attr MQTT2_z2t_F6F8 model tasmota_zigbee2tasmota_light_cct
attr MQTT2_z2t_F6F8 readingList tele/zb2tasmota/F6F8/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_F6F8 room MQTT2_DEVICE
attr MQTT2_z2t_F6F8 setList on cmnd/zb2tasmota/ZbSend {"device":"0xF6F8","send":{"Power":"On"}}\
  off cmnd/zb2tasmota/ZbSend {"device":"0xF6F8","send":{"Power":"Off"}}\
  brightness:colorpicker,BRI,0,5,254 cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"Dimmer":$EVTPART1} }\
  dimup:noArg cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"DimmerUp"} }\
  dimdown:noArg cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"DimmerDown"} }\
  ct:colorpicker,CT,153,10,370 cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"CT":$EVTPART1} }
attr MQTT2_z2t_F6F8 setStateList on off
attr MQTT2_z2t_F6F8 webCmd on:off:brightness:ct

setstate MQTT2_z2t_F6F8 set_off
setstate MQTT2_z2t_F6F8 2020-08-04 14:58:42 ZbReceived_0xF6F8_CT 223
setstate MQTT2_z2t_F6F8 2020-08-04 14:58:42 ZbReceived_0xF6F8_ColorMode 2
setstate MQTT2_z2t_F6F8 2020-08-04 14:56:55 ZbReceived_0xF6F8_Dimmer 250
setstate MQTT2_z2t_F6F8 2020-08-04 15:35:13 ZbReceived_0xF6F8_Endpoint 1
setstate MQTT2_z2t_F6F8 2020-08-04 15:35:13 ZbReceived_0xF6F8_LinkQuality 57
setstate MQTT2_z2t_F6F8 2020-08-04 15:35:13 ZbReceived_0xF6F8_Power 0
setstate MQTT2_z2t_F6F8 2020-08-04 14:58:42 ZbReceived_0xF6F8_X 23841
setstate MQTT2_z2t_F6F8 2020-08-04 14:58:42 ZbReceived_0xF6F8_Y 24103
setstate MQTT2_z2t_F6F8 2020-08-04 13:56:44 associatedWith MQTT2_DVES_AAFFC1
setstate MQTT2_z2t_F6F8 2020-08-04 14:29:08 attrTemplateVersion 20200804
setstate MQTT2_z2t_F6F8 2020-08-04 14:56:53 brightness set 250
setstate MQTT2_z2t_F6F8 2020-08-04 14:58:40 ct set 223
setstate MQTT2_z2t_F6F8 2020-08-04 15:35:12 state set_off
UFF, das war ein ganz schöner Roman, hoffe aber es hilft weiter.
Nochmals danke und beste Grüße
Thomas

Beta-User

Hmm, da sind noch ein paar kleine Fehlerchen drin (da fehlt z.B. ein Zeilenumbruch nach dem rL-attr). Bugfix folgt ggf. vor morgen früh, allerdings kann ich das nicht versprechen, ggf. bitte selbst mal drübersehen.

Grundsätzlich ist es ok, wenn die automatisch erstellten Devices dann erst mal die "komischen" Readings haben, nach Anwenden der weiteren Templates sollte das aber weg sein (sonst paßt jsonMap auch nicht dazu).

Wertebereiche, z.B. für ct (0-254) hatte ich aus der Tasmota-z2t-Seite, wenn da "Müll" steht, sollten wir es in attrTemplate bereinigen und auch Feedback in Richtung von Theo&Co geben (die Slider anzupassen, ist nicht schwer, bitte im Wiki nach Color sehen, falls was unklar ist). Da ist es aber wirklich einfacher, ihr nehmt euch das template vor und testet das etwas aus, sonst ist das hin- und her fehleranfällig...

Bis demnächst!
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

TL60

Hi,
ich habe noch etwas weiter rumprobiert und dabei festgestellt, das
dimup:noArg cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"DimmerUp"} } keineAuswirkung hat und auf der Tasmota Konsole invalid Json usgegeben wird.
erweitert man den Befehl so dimup:noArg cmnd/zb2tasmota/ZbSend { "device":"0xF6F8", "send":{"DimmerUp":""} } wird erwartungsgemäß 10% hoch bzw. bei dimdown 10% runter gedimmt. Vielleicht kann man das ja noch einfließen lassen
Gruß Thomas

Beta-User

eiliges update ist drin, die gröbsten Schnitzer sollten raus sein und dim.* jetzt funktionieren, THX!

ct-Wertebereich etc. ist noch offen...
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