[gelöst] userreadings, readings Frage nach Aktualisierung

Begonnen von dafosy, 19 April 2021, 10:36:38

Vorheriges Thema - Nächstes Thema

dafosy

Servus in die Runde.

Ich beschäftige mich gerade mit "userreadings", weiß aber nicht, ob ich da jetzt falsch abgebogen bin.

Vielleicht kurz, was ich machen will:
Eine Tradfri-Fernbedinung möchte ich gerne für andere Dinge im Smart-Home verwenden. In einer DOIF ist es jetzt erforderlich, dass ich nicht nur den State auslese, sondern auch ein Reading erzeuge, was Button pressed oder released anzeigt. Quasi ähnlich dem Button State bei EnOcean Tastern - dort wird das Reading ja von vornherein bei jedem Tastendruck erzeugt.

Nun habe ich bereits versucht mittels einer notify und setstate ebenjenes Reading der Tradfri Fernbedienung zu erzeugen. Leider funktioniert das nicht, wie geplant. Im Screenshot ist zwar bei Trafdri ein "button" reading drin, welches ich mit
setstate TradfriFB 2021-04-19 00:13:44 buttons released
eingefügt habe, aber dieses ändert sich nicht. Leider auch nicht mit einem von mir eingerichteten notify
TradfriFB:2002 { setstate TradfriFB buttons pressed }

Habt ihr hier im Anfängerforum einen Tipp, wie ich das Problem angehen kann? Also wie erzeuge ich ein Reading, welches ausgelöst durch das Event eine Änderung zu "pressed" bekommt und danach sofort wieder auf "released" springt? Klar, gerne auch dauerhaft den Wert "0" hat und wenn die Taste gedrückt wird (das Event eintritt) bis zum loslassen der Taste auf "1" springt.

Danke
dafosy



KernSani

Hi,
kannst du bitte (siehe hier: https://forum.fhem.de/index.php/topic,71806.0.html) ein "list" der beteiligten Devices posten? Screenshots schauen sich erfahrungsgemäß wenige Luete an...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sany

#2
Hi,
Zitatweiß aber nicht, ob ich da jetzt falsch abgebogen bin.

... ich glaube, Du bist schon falsch abgebogen. Mir ist zwar nicht ganz klar, was du machen willst, aber es sieht so aus, als versuchst Du readings zu erzeugen, um diese dann zur Auswertung in DOIF zu verwenden. Die Tradfri-taster liefern doch alles, was du brauchst.
Ein einfacher on/off-taster (Trafdfri ON/OFF Switch steht drauf) liefert folgendes:

bei Druck auf "I": 100x
bei Druck auf "0": 200x

bei kurzem Druck: x002
bei langen Druck: x001
und beim loslassen kommt x003

Also hat quasi jeder Taster (der hier hat 2) eine Nummer (hier 100x und 200x), was der einzelne Taster macht liefert die letzte Stelle der vierstelligen Zahl. Dieser Runde Tradfri Remote hat 5 Tasten, ergo 100x,200x,300x,400x,500x. Nicht alle unterstützen den "Long-press"! Ausprobieren!

Das sind "Events", die Du dann in einem DOIF (oder notify) verwendest, um die gewünschten Funktionen auszulösen. Ein Event, wie der Name sagt, ist nur vorhanden, wenn er passiert. Darauf wird getriggert. Eine "Abfrage" des Zustands würde nix bringen, da sich dieser nicht zwingend ändert (mehfacher Druck auf die selbe Taste, der state bleibt gleich, der timestamp ändert sich).

Besipielhaft:

defmod TasterTest DOIF (["meinTradfri:^1002$"])
   (set Lampe on)
DOELSEIF
(["meinTradfri:^2002$"])
   (set Lampe off)

Der lange Tastendruck ist auch nix anderes. Du hälst zwar den Taster gedrückt, der Taster sendet aber nur den x003 wenn er erkannt hat, dass lange gedrückt wird, und wenn du loslässt schickt er x001. Das musst Du dann entsprechend auswerten.
defmod TasterTest DOIF (["meinTradfri:^1003$"])
   (set Lampe on)
DOELSEIF
(["meinTradfri:^1001$"])
   (set Lampe off)


Der Code würde die Lampe so bei langem Druck einschalten, beim loslassen ausschalten. Es "fühlt" sich so an, als ob die Lampe so lange brennt, wie du drückst. Sind aber nur 2 "Events"

Also, Commandref DOIF Ereignissteuerung über Auswertung von Events ist Dein Freund. https://fhem.de/commandref_modular_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events
und Wiki https://wiki.fhem.de/wiki/Event_monitor, Geräte anlegen/ändern.

Viel Erfolg!

Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

dafosy

Das war ein guter Hinweis, dass mittels der Tradfri-Fernbedienung verschiedene Events je nach Tastendrucklänge ausgelöst werden.

Das war mir neu. Cool Danke, damit komme ich tatsächlich in meiner DOIF weiter.