cScene Notify funktioniert nicht mehr

Begonnen von Disabler, 12 Januar 2019, 23:12:11

Vorheriges Thema - Nächstes Thema

Disabler

Hallo liebe FHEM Gemeinde,

ich bin neu hier im Forum. Nach einiger erfolgloser Recherche hab ich mich entschlossen, mein Problem hier zu schildern.

Vor einigen wochen habe ich mit dem Verbau einiger fibaro Rolladen Schaltern begonnen. die Einbindung war kein Thema. Anschließend habe ich einen 8-fach Funktaster (Remotec Scene Master)hinzugenommen, um nicht ständig über den Rechner die Rolläden zu steuern. Das hat auch 3-4 Tage funktioniert. Über ein Notify habe ich die Tastatur Ergeinisse eingelesen und enstsprechen den Aufgaben zugewiesen.

Auf einmal hat es nicht mehr funktioniert. Egal was ich versuche, ich bekomme das Notify nicht mehr richtig zum laufen. Was ich bisher schon alles versucht habe:
- Im Event monitor ist die Tastatur zu sehen.
- die fibaros können weiterhin über den Rechner gesteuert werden
- das Notify hab ich schon 2 mal gelöscht und neu angelegt
- Notify ist auf active gesetzt

Beispiel Event monitor:
2019-01-12 22:59:02 ZWave cScene cSceneSet: 1
2019-01-12 22:59:04 ZWave cScene battery: 100 %
2019-01-12 22:59:04 ZWave cScene batteryState: ok
2019-01-12 22:59:04 ZWave cScene batteryPercent: 100
2019-01-12 22:59:06 ZWave cScene cSceneSet: 5
2019-01-12 22:59:07 ZWave cScene battery: 100 %
2019-01-12 22:59:07 ZWave cScene batteryState: ok
2019-01-12 22:59:07 ZWave cScene batteryPercent: 100

DEF des Notify:
Schalter1:.*
{
if($EVTPART0 eq "cSceneSet:")
{
      if(ReadingsNum("cScene", "cSceneSet", undef) == 1)
      {
              # Erster Taster
              fhem("set Wohnzimmer_Fenster on");
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 2)
      {
              # ZweiterTaster
              fhem("set Wohnzimmer_grosse_Tuer off"); 
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 3)
      {
              # Dritter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 4)
      {
              # Vierter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 5)
      {
              # Fünfter Taster
              fhem("set Wohnzimmer_Fenster off");       
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 6)
      {
              # Sechster Taster
              fhem("set Wohnzimmer_grosse_Tuer on");       
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 7)
      {
              # Siebter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 8)
      {
              # Achter Taster
               
      }
}
}

Ich würde mich echt freuen, wenn jemand eine Idee hat, was es sein könnte. Bin seit es nicht mehr läuft ständig dran, irgendwelche Sachen zu testen.
Eine Frage zum schluss: kann es sein, dass dadurch, dass ich eine fhem App auf dem Apple Gerät installiert habe, diese Fehlfunktion zu Stande kommt?

Ich freu mich, von euch zu hören

Schönen Abend
Grüße
Disabler

Mundus

Guten Morgen,

Zunächst herzlich willkommen im Forum.

Beginnen möchte ich mit der Bitte deinen Code in Codetags zu setzen, dann ist es der Post besser zu lesen.

Und nun zu deiner Frage: M.E. kann das Notify nicht auslösen, da der Schalter1 cScene heißt. Entsprechend müsste die erste ZeilecScene:.*
Lauten. Die erste und zweite Zeile müsstes du auch zusammenfassen könnencScene:cSceneSet.*

Ich hoffe die Ausführungen helfen dir weiter.

Gruß Mundus

Disabler

Hallo Mundus,

danke für den Hinweis - war ein Copy/Paste Fehler aus dem alten Notify.
Habe die Zeile korrigiert - leider ohne Änderung. Das Problem besteht immernoch.
Kann es sein, dass eine App ein Notify "disabled"? Ich kann mir nur das vorstellen.
Evtl. gibt es eine Einstellung, in der ich die Änderung rückgängig machen kann. Das Verhalten ist erst aufgetreten, nachdem ich die App installiert habe.

Grüße
Disabler

Otto123

Moin,

dann wäre der Name ja Programm  ;D

Vielleicht hilft das hier, besonders Abschnitt 4 -> https://wiki.fhem.de/wiki/Notify
Uns hier würde beim helfen, ein komplettes und nicht gefaktes list vom notify helfen.
https://forum.fhem.de/index.php/topic,71806.0.html

Gruß Otto
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

Disabler

Hallo nochmal,

der Fehler selbst lag nicht im Code oder in der Syntax.
ich hatte ein lauffähiges Notify. Es hat alles funktioniert. Nachdem ich die App installiert habe, hat das alles nicht mehr funktioniert.

Der Code aus dem Notify war nicht gefaked. sondern ich habe ein neues Notify angelegt und beim kopieren der "alten" Daten vergessen, die oberste Zeile zu ändern.

nichts desto trotz funktioniert es immer noch nicht.
Weshalb ich auf den Schluss kam, ob sich durch die App etwas in den Einstellungen geändert haben könnte.

Grüße

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

Mundus

Hi,

Das List wäre, wie die Vorredner schon schreiben, super.

Ich bin mir nicht sicher, würde aber zunächst in dem Notify den Anfang von cScene:.*in cScene.*ändern.
Den Doppelpunkt weglassen. Dein Eventmonitor müsste auch anzeigen, ob das Notify getriggerd wird. Was zeigt der Monitor nach Betätigen des Schalters an? (Alternativ kannst du mit LOG3 auch Ausgaben erzeugen)

Du kannst dein Notify auch einmal verschlanken und ohne If Bedingung testen... also einfach wenn Schalter dann Licht an.

Gruß Mundus

Disabler

Hallo Mundus und Otto123,

ich habe nochmal nachgelesen und anbei das List von meinem Notify:

Internals:
   CFGFN     
   DEF        # On = hoch
# Off = runter
# sollte ggf. an der HW getauscht werden
cScene:.*
{
if($EVTPART0 eq "cSceneSet:")
{
      if(ReadingsNum("cScene", "cSceneSet", undef) == 1)
      {
              # Erster Taster
              fhem("set Wohnzimmer_Fenster on");
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 2)
      {
              # ZweiterTaster
              fhem("set Wohnzimmer_grosse_Tuer off"); 
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 3)
      {
              # Dritter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 4)
      {
              # Vierter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 5)
      {
              # Fünfter Taster
              fhem("set Wohnzimmer_Fenster off");       
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 6)
      {
              # Sechster Taster
              fhem("set Wohnzimmer_grosse_Tuer on");       
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 7)
      {
              # Siebter Taster
               
      }
      elsif(ReadingsNum("cScene", "cSceneSet", undef) == 8)
      {
              # Achter Taster
               
      }
}
}
   NAME       cSceneNotify
   NR         81
   NTFY_ORDER 50-cSceneNotify
   REGEXP     #
   STATE      active
   TRIGGERTIME 1547282340.63805
   TYPE       notify
   READINGS:
     2019-01-14 20:59:43   state           active
Attributes:
   room       Esszimmer,Wohnzimmer,ZWave

Otto123

#8
Kommentare in der DEF ???
Das ergibt dann sowas ->    REGEXP     #

Ich denke das ist so völlig unbrauchbar  :-X

Schmeiss bitte die Kommentare raus!

Gruß Otto
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

Disabler

WOW - das wars :-D ... vielen DANK dafür.
Komisch nur, dass es schon einmal funktioniert hatte...
Ihr wisst gar nicht, wie glücklich Ihr mich gemacht habt  ;)

Otto123

Zitat von: Disabler am 14 Januar 2019, 21:25:56
Komisch nur, dass es schon einmal funktioniert hatte...
Ich hatte mal einen Kollegen der hat den schönen Spruch gesagt:

Es besteht kein Rechtsanspruch auf die Beibehaltung von Fehlern

Auszug Doku
Zitatdefine <name> notify <pattern> <command>

Execute a command when received an event for the definition <pattern>. If <command> is enclosed in {},

Da steht eindeutig Pattern und ich weiß nicht ob man regExp Pattern mit Kommentaren beginnen lassen darf.  ::) ;D

Gruß Otto
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

Disabler

Das ist wohl wahr.
Jetzt kann ich auf jeden Fall weiterspielen und lernen. Ich find es echt toll, dass es so nette Menschen gibt, die Leuten wie mir auch aus solchen Lagen helfen

nils_

Zitat von: Otto123 am 14 Januar 2019, 21:30:37
Es besteht kein Rechtsanspruch auf die Beibehaltung von Fehlern
;D ;D ;D ;D ;D


@Disabler:
Lies mal ein wenig in der cref und wiki zu EVTPARTx, das würde deinen code erheblich vereinfachen.
viele Wege in FHEM es gibt!