Ich scheitere wieder mal an der FHEM-Syntax. Ich möchte über ein Notify bei Bewegung eines MotionSensors ein Device schalten lassen und dachte mir, dass müsse doch in etwa so aussehen:
if (ReadingsVal("ZWaveEye","motion_state","unknown") eq "motion") set MQTT2_zigbee_GarderobeGroup on-for-timer 40
So funktioniert es schon mal nicht. Ich habe schon ein paar Varianten durch. Bin noch am Suchen, vielleicht möchte mir hier aber auch jemand einen Tipp geben...
Nimm den Event-Monitor zu Hilfe (und schau in den betr. Wiki-Artikel).
Und bitte nicht nur "Schnippsel" von irgendwas, sondern z.B. das komplette define vom notify, wenn es um notify geht...
Dieses Event gibt es schon mal wie gewünscht:
2023-03-07 11:49:08 ZWave ZWaveEye motion_state: motion
Nur vom Notify keine Spur...
define GarderobenLichtAnByMotionNotify notify if (ReadingsVal("ZWaveEye","motion_state","unknown") eq "motion") set MQTT2_zigbee_GarderobeGroup on-for-timer 40
# .COMMAND (ReadingsVal("ZWaveEye","motion_state","unknown") eq "motion") set MQTT2_zigbee_GarderobeGroup on-for-timer 40
# CFGFN
# DEF if (ReadingsVal("ZWaveEye","motion_state","unknown") eq "motion") set MQTT2_zigbee_GarderobeGroup on-for-timer 40
# FUUID 6407065f-f33f-88ea-6145-e269aeea79926ef1
# NAME GarderobenLichtAnByMotionNotify
# NR 12347
# NTFY_ORDER 50-GarderobenLichtAnByMotionNotify
# REGEXP if
# STATE active
# TYPE notify
# eventCount 7
# .attraggr:
# .attrminint:
# Helper:
# DBLOG:
# state:
# DBLogging:
# TIME 1678185854.00566
# VALUE active
# READINGS:
# 2023-03-07 11:44:14 state active
#
setstate GarderobenLichtAnByMotionNotify active
setstate GarderobenLichtAnByMotionNotify 2023-03-07 11:44:14 state active
Naja, das notify ist halt syntaktisch falsch.
In Deinem DEF gibt es keine gültige regexp, und im (gedachten) Ausführungsteil bringst Du perl-Code und FHEM-Befehle komplett durcheinander.
Warum lässt Du das notify nicht einfach "leer" aus dem Event Monitor generieren und füllst dann den Ausführungsteil korrekt aus?
Oder/und warum liest Du nicht einfach mal die Dokumentation zu notify, um zu verstehen, wie man das richtig macht?
Zitat von: betateilchen am 07 März 2023, 11:57:48
Oder/und warum liest Du nicht einfach mal die Dokumentation zu notify, um zu verstehen, wie man das richtig macht?
Habe deinen Rat befolgt und bin hier gelandet:
ZWaveEye:motion_state:.motion set MQTT2_zigbee_GarderobeGroup on-for-timer 40
Funktioniert. Lösung aus deiner Sicht ok oder sollte man die RegEx anders machen?
Alter Post, klar, aber musste gerade lachen:
ZitatUnd bitte nicht nur "Schnippsel" von irgendwas, sondern z.B. das komplette define vom notify, wenn es um notify geht...
ZitatZWaveEye:motion_state:.motion set MQTT2_zigbee_GarderobeGroup on-for-timer 40
Lösung aus deiner Sicht ok ...?
Ich bin ja an sich nicht mit der knappen, ja z.T. agressiven "RTFM" Beantwortung von Fragen durch erfahren Forenmitglieder immer so happy, aber da wär ich jetzt auch nur halb locker geblieben. ;D
Dann muss ich hier wohl auch noch meinen Senf abgeben.
Wenn jemand was in "Anfängerfragen" postet, kann man davon ausgehen dass die Person CommandRef/Wiki/Forum usw. durchgesehen hat. Meist wurde auch was ausprobiert aber nicht vollumfänglich verstanden. Dann landet man im Forum. Hier würde man doch meinen, die meisten erfahrenen User wäre primär aus Hilfsbereitschaft hier. (Bei rudolfkoenig himself, Otto123 oder Beta-User etwa trifft das mit Sicherheit auch zu.) Dem scheint aber oftmals nicht so zu sein. Das Erhabene/Lehrerhafte raushängen zu lassen macht manchen offenbar mehr Freude. (Ich sag ja auch nicht zu jemandem, der mit offenem Oberschenkelbruch vor der Straßenbahn liegt weil er unaufmeksam war: "Hey, lies zuerst mal die Verkehrsregeln durch!")
Ich habe durchaus auch so manches mal wegen hingeworfener Meta-Brocken oder den schlichten Verweis "lies commandref" abgekotzt. Zumal die Commandref auch nicht immer so verständlich ist, wenn man eigentlich eine Anleitung braucht.
Aber der Fragende hat mindesten auch ein Duty. Nämlich den Rat der Helfenden wenigstens bei den simplen Dingen anzunehmen, z.b schon wie ein Frage überhaupt gestellt werden soll.
Und eine wichtige Sache die Fragende immer wieder wenig berücksichtigen ist, dass etwas Kontext braucht - mindestens das komplette define um das es geht.
Z.B. ein komplettes Define, wenn man beurteilen soll ob das funktionieren kann. Darauf hat Beta-User hingewiesen, und gebeten eine komplettes Define abzuliefern. Es ist durchaus so, das man sich als Beantwortender sehr oft ne Menge "denken" muss, das der Fragende wohl meinen könnte. Und je mehr man sich erstmal denken muss - als jemand der deinen Code eben NICHT vor Augen hat - desto weniger Lust hat man.
Schon rauszufinden WELCHEN Teil der Fragende weggelassen hat ist manchmal gar nicht so einfach. Das ist hier sicher nicht ein komplizierter Fall - dennoch:
Der letzte Post von dir mit konkreter Frage ob das notify wohl Verbesserungswürdig ist, war dann aber WIEDER ein nur das halbe define. Trotz der expliziten Bitte so nicht zu fragen.
Ja, man kann notfies alleine beurteilen, es ist aber etwas schwerer ohne den Kontext.
D.H. es sind oft eben alle Beteiligten die sich gegenseitig das Leben schwer machen.
Zuletzt: Die richigten Profis hier haben eben leider auch das Problem, die gleichen Fragen immer wieder beantworten zu müssen. Und zwar IMMER UND IMMER UND IMMER wieder. Und dann nochmal.
Ich sehe es ihnen daher nach, das sie manchmal bisschen unentspannt sind.
Lösung gibt's da meiner Meinung nach keine.