Zigbee Vibration sensor TS0210 on:off ??

Begonnen von moerte, 10 März 2025, 17:16:33

Vorheriges Thema - Nächstes Thema

moerte

Hallo leibe Leser.
Ich habe einen Zigbee Vibration sensor TS0210 erfolgreich in Fhem (über MQTT eingebunden).
Nun finde ich jetzt kein Tamplate für diesen Sensor.
Er sendet nur ein Reading wenn er ausgelöst wird - aber kein weiteres danach. Laut https://www.zigbee2mqtt.io/devices/TS0210.html steht aber folgendes:
vibration_timeout: Time in seconds after which vibration is cleared after detecting it (default 90 seconds). The value must be a number with a minimum value of 0
Es kommt aber kein Signal (auch nicht nach 90 Sekunden). Kann man dies in der Konsole konfigurieren und wenn ja wie -  bzw zumindest auch aktivieren dass überhaupt ein Signal kommt?

Ein list vom Sensor:
Internals:
   CFGFN     
   CID        z2t_AF88
   DEF        z2t_AF88
   FUUID      67cf070a-f33f-599c-2298-6302821b9d8a681f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     7
   NAME       z2t_AF88
   NR         553
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 8
   myBroker_CONN myBroker_192.168.2.63_62164
   myBroker_MSGCNT 7
   myBroker_TIME 2025-03-10 16:57:46
   READINGS:
     2025-03-10 16:36:42   IODev           myBroker
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_0500_00 010400010000
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_Device 0xAF88
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_Endpoint 1
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_LinkQuality 13
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_Movement 1
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_Name Vibrationssensor_1
     2025-03-10 16:50:54   ZbReceived_Vibrationssensor_1_ZoneStatus 0
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_ZoneStatusChange 1025
     2025-03-10 16:57:46   ZbReceived_Vibrationssensor_1_ZoneStatusChangeZone 1
     2025-03-10 16:36:42   associatedWith  Bridge_wifi
   hmccu:
Attributes:
   readingList tele/tasmota_289C12/AF88/SENSOR:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE,Testraum

Ich hatte eine ähnliche frage schon in gestellt als ich diesen Sensor nur als Reading in der Bridge hatte (da meine Konfiguration in Tasmota falsch war)
Beitrag

Hier habe ich einen Dummy erstellt. (Dies nur Vollständigkeitshalber)

Nur jetzt habe ich den Sensor als MQTT Device und würde auch gern nur diesen Haben und nicht wieder da ein dummy und ein notify etc erstellen.
Hat zufällig jemand so einen Sensor in Fhem laufen und könnte mir weiterhelfen?

LG und einen schönen Abend



TomLee

#1
Hallo,

ZitatLaut https://www.zigbee2mqtt.io/devices/TS0210.html steht aber folgendes:

Du nutzt  doch zigbee2tasmota? Wo steht die Doku zu dem Sensor bei z2t?

Kommen nur numerische Werte in dem Reading ZbReceived_Vibrationssensor_1_ZoneStatusChange an?

moerte

Zitat von: TomLee am 10 März 2025, 17:53:08Hallo,

ZitatLaut https://www.zigbee2mqtt.io/devices/TS0210.html steht aber folgendes:

Du nutzt  doch zigbee2tasmota? Wo steht die Doku zu dem Sensor bei z2t?

Kommen nur numerische Werte in dem Reading ZbReceived_Vibrationssensor_1_ZoneStatusChange an?

 ::)  ach das ist doch schon wieder scheiße  :-\  ...du hast vollkommen recht  ::)  ::)
Also ja, bei mir läuft auf fhem zigbee2tasmota  ::)  ::)  ::)

Ja, der ZbReceived_Vibrationssensor_1_ZoneStatusChange sind nur Zahlen meist die selben, mal 1025 mal 2049 - aber nicht abwechselnd. 

TomLee

Die readingList des Device kannst so anpassen:
{ $EVENT =~ s/"ZoneStatusChange":\d+/"ZoneStatusChange":"on"/g;json2nameValue($EVENT) }
und erhältst nur noch "on" für jedes Event.

Mit einem notify auf das Event kannst den Wert nach 5 Sekunden mit "off" überschreiben. Dazu musst in dem Ausführungsteil des notify nicht mal auf die Perlebene wechseln, einfach nur das sleep mit anschliessenden setreading angeben.


moerte

#4
Zitat von: TomLee am 10 März 2025, 18:37:41Die readingList des Device kannst so anpassen:
{ $EVENT =~ s/"ZoneStatusChange":\d+/"ZoneStatusChange":"on"/g;json2nameValue($EVENT) }
und erhältst nur noch "on" für jedes Event.

Mit einem notify auf das Event kannst den Wert nach 5 Sekunden mit "off" überschreiben. Dazu musst in dem Ausführungsteil des notify nicht mal auf die Perlebene wechseln, einfach nur das sleep mit anschliessenden setreading angeben.



Das klingt vielversprechend, leider gehts noch nicht auf on. habe mal noch das att webCmd dazu gemacht
So siehts jetzt aus:
Attributes:
   readingList tele/tasmota_289C12/AF88/SENSOR:.* { $EVENT =~ s/"ZoneStatusChange":\d+/"ZoneStatusChange":"on"/g;json2nameValue($EVENT) }


   room       MQTT2_DEVICE,Testraum
   webCmd     on:off

EDIT: doch das reading hat sich geändert..  ich schick nochmal ein list:

Internals:
   CFGFN     
   CID        z2t_AF88
   DEF        z2t_AF88
   FUUID      67cf070a-f33f-599c-2298-6302821b9d8a681f
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     83
   NAME       z2t_AF88
   NR         553
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 84
   myBroker_CONN myBroker_192.168.2.63_62164
   myBroker_MSGCNT 83
   myBroker_TIME 2025-03-10 18:52:51
   READINGS:
     2025-03-10 16:36:42   IODev           myBroker
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_0500_00 010400010000
     2025-03-10 17:54:38   ZbReceived_Vibrationssensor_1_BatteryPercentage 100
     2025-03-10 17:54:38   ZbReceived_Vibrationssensor_1_BatteryVoltage 3
     2025-03-10 18:04:01   ZbReceived_Vibrationssensor_1_Cluster 10
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_Device 0xAF88
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_Endpoint 1
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_LinkQuality 58
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_Movement 1
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_Name Vibrationssensor_1
     2025-03-10 18:04:01   ZbReceived_Vibrationssensor_1_ReadNames_LocalTime true
     2025-03-10 18:04:01   ZbReceived_Vibrationssensor_1_Read_1 7
     2025-03-10 18:50:53   ZbReceived_Vibrationssensor_1_ZoneStatus 0
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_ZoneStatusChange on
     2025-03-10 18:52:51   ZbReceived_Vibrationssensor_1_ZoneStatusChangeZone 1
     2025-03-10 16:36:42   associatedWith  Bridge_wifi
   hmccu:
Attributes:
   readingList tele/tasmota_289C12/AF88/SENSOR:.* { $EVENT =~ s/"ZoneStatusChange":\d+/"ZoneStatusChange":"on"/g;json2nameValue($EVENT) }


   room       MQTT2_DEVICE,Testraum
   webCmd     on:off



Notify dachte ich dann so???
z2t_AF88 { fhem("set z2t_AF88 ".ReadingsNum('z2t_AF88','ZbReceived_Vibrationssensor_1_ZoneStatusChange','on',0).';sleep 5;set z2t_AF88 off') }
Oder steh ichj wieder auf dem schlauch? :))