notify: 2. Abfrage mit einbinden.

Begonnen von Wasserwerk33, 24 Januar 2025, 14:21:50

Vorheriges Thema - Nächstes Thema

Wasserwerk33

Hallo Leute,

hoff es ist hier richtig, habe keine untergruppe für Notify gefunden.

ich habe mir ein Notify mit eventmonitoring angelegt. Dieses Schalter nun auch so wie es soll. Nun würde ich gerne noch ein zusätzliche abfrage mit einbauen. Also als "elsif" nur leider schaltet nun garnichts mehr. Vielleicht hat jemand eine Idee und im WIKI steht leider nix genaues dirn.

Also dieses Schalter so wie es soll:
defmod MQTT2_zigbee_Mehrfachschalter1_notify_1 notify MQTT2_zigbee_Mehrfachschalter1:action:.1_single set IT_0FF000000F on;;\
jetzt hatte ich es umgebaut in sowas:
MQTT2_zigbee_Mehrfachschalter1:action:.* { if ($EVENT eq ".1_single") {fhem("set IT_0FF000000F on");
{
elsif ($EVENT eq ".1_double") {fhem ("set IT_0FF000000F on");
InternalTimer(gettimeofday() +60 "fhem", "set IT_0FF000000F on");
}
}
 

Leider klappt nun garnix. Das mit InternalTimer(gettimeofday) habe ich unter Google gefunden.

Danke schon mal im vorraus

rabehd

Du weißt das fhem auf perl basiert?
Wie wäre es mit "perl if else" in die Suchmaschine Deines Vertrauens?
Oder hier mal die Suchfunktion benutzt?
https://forum.fhem.de/index.php?topic=90170.msg826258#msg826258
Auch funktionierende Lösungen kann man hinterfragen.

Wasserwerk33

Ich suche nochmal weiter schon mal danke.

rabehd

  my $GesStatus = (Value("Anwesenheit"));
  if ($GesStatus eq "niemandda")
  {
    fhem("set A off");
 }
  elsif ($GesStatus eq "jemandda")
  {
fhem("set A on");
  }
Auch funktionierende Lösungen kann man hinterfragen.

TomLee

#4
Hallo,

schau Dir hier auch mal die Tabellen mit den Beispielen an, was und wie in $EVENT und $EVTPART1 steht.
Im Suchmuster würde ich genau die zwei Events angeben, auf die später in Perl auch verglichen wird und nicht immer auf alles (andere) "lauschen".
Warum InternalTimer und nicht einfach sleep 60?
{fhem ("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on");
Gruß Thomas

Otto123

Zitat von: Wasserwerk33 am 24 Januar 2025, 14:21:50Vielleicht hat jemand eine Idee und im WIKI steht leider nix genaues dirn.
Ich finde hier steht alles drin? https://wiki.fhem.de/wiki/Notify
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitat von: Otto123 am 24 Januar 2025, 17:23:28Ich finde hier steht alles drin? https://wiki.fhem.de/wiki/Notify

Weiß nicht. Hier würde mir bspw. ein mustergültiges Beispiel fehlen, welches mit NOTIFYDEV vereinbar ist, wenn nur auf genau zwei (oder mehr) Events getriggert werden soll.

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#8
Keine Ahnung ¯\_(ツ)_/¯, sowas in der Art:

defmod MQTT2_zigbee_Mehrfachschalter1_notify_1 notify MQTT2_zigbee_Mehrfachschalter1:action:.1_single|MQTT2_zigbee_Mehrfachschalter1:action:.1_double {Debug $EVTPART1}
um im Faden zu bleiben?

Wasserwerk33

Hallo

so habe heute wieder zeit dafür.

Aber verstehen tu ich dieses überhaupt nicht, mit Perl tu ich mich so schwer ich will es ja auch verstehen.

an diesem habe ich mach dran entlang gehangelt.
define nt.sonnenlichtpersolar notify sv:currentPower.* { \
 if ($EVTPART1 < 3000 ) {\
 fhem('set Flur1 Auf')\
}else {\
 if ($EVTPART1 > 5000 ) {\
 fhem('set Flur1 Ab')\
 } \
 }\
}
Das ist meiner. Aber er reagiert nicht mal auf die Taster betätigung.


MQTT2_zigbee_Mehrfachschalter1:action:.* {
if ($EVTPART1 eq ".1_single") {
 fhem("set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq ".1_double") {
 fhem ("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")
 }
 }
}

wo ist den mein Fehler. ich habe es doch genauso abgeschrieben wie im Wiki

Nobbynews

Zitat von: Wasserwerk33 am 26 Januar 2025, 10:09:59Das ist meiner. Aber er reagiert nicht mal auf die Taster betätigung.
MQTT2_zigbee_Mehrfachschalter1:action:.* {
if ($EVTPART1 eq ".1_single") {
Bist Du sicher, dass es .1_single heißt und nicht 1_single, also ohne Punkt??

Otto123

#11
Zitat von: Wasserwerk33 am 26 Januar 2025, 10:09:59ich will es ja auch verstehen.
der Punkt steht weiter oben für "jedes Zeichen" im Suchmuster "MQTT2_zigbee_Mehrfachschalter1:action:.1_single" das Readings selbst wird auf "1_single" gesetzt. Du vergleichst Strings :) keine Suchmuster.
Der Event selbst hat an der Stelle ein Leerzeichen (kannst Du Dir im Eventviewer anschauen) das Leerzeichen wird im Suchmuster mit einem . gefunden.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wasserwerk33

Habe es auch schon Punkt gemacht.
Also das der schalter ankommt kann ich im event sehen. das Notify reagiert garnicht.

2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 battery: 81
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 operation_mode: event
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 action: 1_single
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 voltage: 2900
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 linkquality: 116
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 linkquality: 116
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 operation_mode: event
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 action: 1_single
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 voltage: 2900
2025-01-26 10:27:17 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 battery: 81
2025-01-26 10:27:20 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 battery: 81
[color=blue]2025-01-26 10:27:20 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 action: 1_double
2025-01-26 10:27:20 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 operation_mode: event
2025-01-26 10:27:20 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 voltage: 2900
2025-01-26 10:27:20 MQTT2_DEVICE MQTT2_zigbee_Mehrfachschalter1 linkquality: 116[/color]

Wasserwerk33

Zitat von: Otto123 am 26 Januar 2025, 10:27:09
Zitat von: Wasserwerk33 am 26 Januar 2025, 10:09:59ich will es ja auch verstehen.
der Punkt steht weiter oben für "jedes Zeichen" im Suchmuster "MQTT2_zigbee_Mehrfachschalter1:action:.1_single" das Readings selbst wird auf "1_single" gesetzt. Du vergleichst Strings :) keine Suchmuster.
Der Event selbst hat an der Stelle ein Leerzeichen (kannst Du Dir im Eventviewer anschauen) das Leerzeichen wird im Suchmuster mit einem . gefunden.

Das verstehe ich nicht?? Bin zu Blond

Otto123

Zitat von: Wasserwerk33 am 26 Januar 2025, 10:29:05das Notify reagiert garnicht.
ich vermute eher Dein Code tut nicht was er soll. Das notify wird doch bestimmt getriggert?
Zitat von: Wasserwerk33 am 26 Januar 2025, 10:31:56Das verstehe ich nicht?? Bin zu Blond
Tja gegen "Blond" gibts wohl kein Mittel. :) Was verstehst Du denn nicht? Im Wiki ist es doch genau erklärt, auch wie man alles testen kann.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz