Aqara Taster übermittelt state 1002 sporadisch

Begonnen von xeenon, 19 März 2023, 02:19:53

Vorheriges Thema - Nächstes Thema

xeenon

Hallo zusammen,

Ich habe einen Aqara Taster, der mit den states 1002, 1003 und 1004 eine Hue Lampe mittels doif anspricht. Der Taster hat eine Temperatur Messung integriert. Und es scheint als würde bei Temperaturänderung das state 1002 übermittelt werden. Jedenfalls reagiert das doif drauf. Es geht ständig nachts das Licht an. Es nervt fürchterlich.

Wie kann ich das abstellen und nur bei tatsächlichen Tastendruck ein entsprechendes Event auslösen?

Das doif:

define 45_Taster_Bett_2_doif_Lichtsteuerung DOIF ([45_Taster_Bett_2] eq "1002") (set 45_Lampe_Decke bri 10) \
DOELSEIF ([45_Taster_Bett_2] eq "1004") (set 45_Lampe_Decke off)\
DOELSEIF ([45_Taster_Bett_2] eq "1003") (set 45_Lampe_Decke pct 100)
attr 45_Taster_Bett_2_doif_Lichtsteuerung disable 1
attr 45_Taster_Bett_2_doif_Lichtsteuerung do resetwait
attr 45_Taster_Bett_2_doif_Lichtsteuerung room 40_OG_Wohnräume->45_Schlafzimmer
#   DEF        ([45_Taster_Bett_2] eq "1002") (set 45_Lampe_Decke bri 10)
#DOELSEIF ([45_Taster_Bett_2] eq "1004") (set 45_Lampe_Decke off)
#DOELSEIF ([45_Taster_Bett_2] eq "1003") (set 45_Lampe_Decke pct 100)
#   FUUID      640cd441-f33f-194a-9f1f-db9432716acc934a
#   MODEL      FHEM
#   NAME       45_Taster_Bett_2_doif_Lichtsteuerung
#   NOTIFYDEV  global
#   NR         211
#   NTFY_ORDER 50-45_Taster_Bett_2_doif_Lichtsteuerung
#   STATE      deactivated
#   TYPE       DOIF
#   VERSION    27298 2023-03-05 15:15:00
#   disableNotifyFn 1
#   READINGS:
#     2023-03-15 21:47:18   mode            deactivated
#     2023-03-15 21:47:18   state           deactivated
#   Regex:
#   condition:
#   do:
#     0:
#   helper:
#     NOTIFYDEV  global
#
setstate 45_Taster_Bett_2_doif_Lichtsteuerung deactivated
setstate 45_Taster_Bett_2_doif_Lichtsteuerung 2023-03-15 21:47:18 mode deactivated
setstate 45_Taster_Bett_2_doif_Lichtsteuerung 2023-03-15 21:47:18 state deactivated



Das device:

define 45_Taster_Bett_2 HUEDevice sensor 2  IODev=deCONZ
attr 45_Taster_Bett_2 IODev deCONZ
attr 45_Taster_Bett_2 group HUESensor
attr 45_Taster_Bett_2 model lumi.remote.b1acn01
attr 45_Taster_Bett_2 room 40_OG_Wohnräume->45_Schlafzimmer
#   DEF        sensor 2  IODev=deCONZ
#   FUUID      640cec56-f33f-194a-3923-e21e8c698a08b73f
#   FVERSION   31_HUEDevice.pm:0.267300/2022-11-21
#   ID         S2
#   INTERVAL   
#   IODev      deCONZ
#   NAME       45_Taster_Bett_2
#   NR         215
#   STATE      1004
#   TYPE       HUEDevice
#   eventCount 80
#   has_events 1
#   manufacturername LUMI
#   modelid    lumi.remote.b1acn01
#   name       45_Taster_Bett_2
#   on         1
#   reachable  1
#   swversion  20180525
#   type       ZHASwitch
#   uniqueid   00:15:8d:00:08:f4:4a:80-01-0012
#   READINGS:
#     2023-03-15 21:47:19   IODev           deCONZ
#     2023-03-19 01:31:10   battery         100
#     2023-03-19 01:31:10   batteryPercent  100
#     2023-03-15 15:33:22   lastseen        2023-03-18T20:20Z
#     2023-03-19 01:31:10   reachable       1
#     2023-03-15 15:33:22   state           1004
#     2023-03-19 01:31:10   temperature     19
#   helper:
#     devtype    S
#     state      1004
#     update_timeout 1
#     configList:
#     json:
#       ep         1
#       etag       3ee49bb94d741bc12ca3a8bae3825c29
#       lastannounced
#       lastseen   2023-03-19T00:31Z
#       manufacturername LUMI
#       mode       1
#       modelid    lumi.remote.b1acn01
#       name       45_Taster_Bett_2
#       swversion  20180525
#       type       ZHASwitch
#       uniqueid   00:15:8d:00:08:f4:4a:80-01-0012
#       config:
#         battery    100
#         temperature 1900
#       state:
#         buttonevent 1004
#         lastupdated 2023-03-15T14:33:21.858
#     setList:
#
setstate 45_Taster_Bett_2 1004
setstate 45_Taster_Bett_2 2023-03-15 21:47:19 IODev deCONZ
setstate 45_Taster_Bett_2 2023-03-19 01:31:10 battery 100
setstate 45_Taster_Bett_2 2023-03-19 01:31:10 batteryPercent 100
setstate 45_Taster_Bett_2 2023-03-15 15:33:22 lastseen 2023-03-18T20:20Z
setstate 45_Taster_Bett_2 2023-03-19 01:31:10 reachable 1
setstate 45_Taster_Bett_2 2023-03-15 15:33:22 state 1004
setstate 45_Taster_Bett_2 2023-03-19 01:31:10 temperature 19



Logeintrag vom doof:
2023-03-15_01:46:09 45_Taster_Bett_2_doif_Lichtsteuerung cmd_nr: 1
2023-03-15_01:46:09 45_Taster_Bett_2_doif_Lichtsteuerung cmd: 1
2023-03-15_01:46:09 45_Taster_Bett_2_doif_Lichtsteuerung cmd_event: 45_Taster_Bett_2
2023-03-15_01:46:09 45_Taster_Bett_2_doif_Lichtsteuerung cmd_1


Logeintrag vom device:

2023-03-15_01:46:09 45_Taster_Bett_2 battery: 100
2023-03-15_01:46:09 45_Taster_Bett_2 reachable: 1
2023-03-15_01:46:09 45_Taster_Bett_2 temperature: 21
2023-03-15_01:46:09 45_Taster_Bett_2 batteryPercent: 100


Ich bin mir jetzt nicht sicher ob mein doif falsch ist, oder ob ich eine Eigenart des Tasters übersehen habe.

Viele Grüße

Aurel_B

Ohne die Aqara Taster zu kennen: ich denke, wir bräuchten noch ein wenig mehr Infos? Kannst du mal das Verbose Level von deinem Taster auf 5 hochsetzen und dann Logeinträge posten, was passiert wenn du den Taster so betätigst, dass State 1002 gesetzt wird und was passiert, wenn der Taster von sich aus die Temperatur ermittelt (und anscheinend ebenfalls State 1002 gesetzt wird)? So können wir denke ich die Unterschiede herausfinden (wenn es denn welche gibt!) und das DOIF entsprechend anpassen.

Beta-User

Bist du sicher, dass das Event wirklich ein Taster-Event ist?
Kommt mir eher so vor, dass das kein ZigBee-Thema ist, sondern ein Verständnisproblem zu DOIF (verschieben könntest du selbst).
Nach meinem sehr begrenzten Verständnis von DOIF müßte da eigentlich ein Event-Trigger stehen, und keine STATE-Auswertung.
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

rx

#3
Ich habe leider nicht zu einer Lösung beizutragen- allerdings habe ich 8 dieser Schalter und heute Nacht war es wieder soweit. Alle haben mit Event 1002 ausgelöst. Das ist leider sehr ärgerlich, da dann u.a. meine Garage aufgeht.

Ich setze deCONZ in der aktuellsten Beta ein. Aktuell habe ich noch keinen Plan wie ich das weiter analysieren kann- ich habe allerdings die deCONZ-Version im Verdacht.

Update:
Es sind bei mir auch nur Aqara Taster des Typs "lumi.sensor_switch.aq2" betroffen- diverse andere zeigen dieses Verhalten nicht.


Server started with 1333 defined entities (fhem.pl:27302/2023-03-05 perl:5.028001 os:linux user:root pid:29591)

Jamo

Schau auch mal hier, die threads vorher und auch nachher. Abfangen kannst Du das evtl., indem Du das ReadingsAge des state des Schalters abfragst. Das Event also nur durchlassen, wenn der Schalter vorher wirklich gedrueckt wurde.

https://forum.fhem.de/index.php?topic=122075.msg1215590#msg1215590
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

KyleK

Nur so als idee:
Einer meiner Bewegungsmelder von Ikea sendet ghost Events, wenn die Batterien zur Neige gehen.
Er meldet zu der Zeit noch keine leeren Batterien, aber sieht Bewegung wo keine ist.

Vielleicht sind einfach die Batterien leer?
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

rx

#6
Zitat von: Jamo am 26 März 2023, 11:55:17Schau auch mal hier, die threads vorher und auch nachher. Abfangen kannst Du das evtl., indem Du das ReadingsAge des state des Schalters abfragst. Das Event also nur durchlassen, wenn der Schalter vorher wirklich gedrueckt wurde.

Danke, das war die Lösung für mich. Bei den Geister-Events wird tatsächlich der Zeitstempel von "state" nicht aktualisiert. Daher habe ich jetzt bei den Notifies folgendes eingefügt:

# Ghost-Detection
#
my $tlast = ReadingsTimestamp($NAME, "state", "0");
my $now = time_str2num(TimeNow());
my $gap = ($now - time_str2num($tlast));
if ($gap > 10)
{
    Log 1, ("[GHOST-DETECTION] $NAME $EVTPART0 GHOST-DETECTED ($gap)");
    return;
}

Gerade dann noch gesehen, dass es wohl "ReadingsAge" gibt- damit ist es natürlich nochmal viel einfacher:
my $age = ReadingsAge($NAME, "state", 20);
if ($age > 10)
{
Log 1, ("[GHOST-DETECTION] $NAME $EVTPART0 GHOST-DETECTED ($age)");
return;
}
Server started with 1333 defined entities (fhem.pl:27302/2023-03-05 perl:5.028001 os:linux user:root pid:29591)

Sany

#7
Hi

Zitatich bin mir jetzt nicht sicher ob mein doif falsch ist, oder ob ich eine Eigenart des Tasters übersehen habe.
ich denke mal Dein DOIF ist falsch, der taster kann nix dafür.

Die Lösung zu Deinem Problem steht in der cref zu DOIF:
https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung

besonders dieser satz ist wichtig fürs Verständnis was passiert, wenn man Vergleiche nutzt anstatt eines Events.

ZitatDas Modul wird getriggert, sobald das angegebene Device hier "remotecontrol" ein Event erzeugt. Das geschieht, wenn irgendein Reading oder der Status von "remotecontrol" aktualisiert wird. Ausgewertet wird hier der Zustand des Status von remotecontrol nicht das Event selbst.

Das bedeutet, du musst Dein DOIF auf Event-Trigger umstellen und dann sollte Ruhe sein.
siehe https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events
Also statt

[45_Taster_Bett_2] eq "1002" sollte da so etwas stehen:

[45_Taster_Bett_2:"^1002$"]
Am einfachsten kannst Du Dir die Trigger über den Eventmonitor "bauen" lassen (Wiki Eventmonitor)
Falls Du dann noch beim Taster die Attribute event-on-xxx nutzen möchtest um zu filtern: der Teil, der die 100x ausgibt (hier also state) muss mit event-on-update-reading gefiltert werden, da sonst nur eine Änderung einen Event erzeugen würde.


Viel Erfolg!


P.S.
ZitatAqara Taster übermittelt state 1002 sporadisch
für so etwas einfach den Eventmonitor mitlaufen lassen mit Filter auf das Device. Meine Vermutung: da wären keine sporadischen 1002 aufgetaucht.
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....