FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: flipse am 22 Januar 2019, 10:25:46

Titel: Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 10:25:46
Hallo zusammen,

ich hänge gerade an einem Problem, dass ein notify nicht getriggert wird.

Hintergrund:
- Ich habe 2 Devices als Schalter für Licht Esszimmer, Licht Wohnzimmer (an und aus) --> funktioniert
- Ich habe einen RGBW Controller für die Farbe des Lichts (LED Band)  [kein echtes Reading für RGB oder Brightness]
- Ich möchte nun zwei Dummy erstellen, die alle Funktionen vereint:
       Wohnzimmer: An, Aus, Farbe, Dim
       Esszimmer: An, Aus, Farbe, Dim

- Wird in einem Dummy die Farbe oder Dim geändert, muss der Wert natürlich in beiden angepasst werden, da nur eine Farbe und Dim für beides gewählt werden kann (Nur 1 Controller).


Idee:
- Beim Ändern des RGBs, oder der Brightness im RGBW soll dies in einem eigenen userReading gespeichert werden
- Diese Information soll auch an den Dummy weitergegeben werden, der letztlich alle Funktionen vereinen soll.


Mein Notify sieht wie folgt aus:

DEF
ZWave_SW_RGBW:state:.* IF ("$EVTPART0" eq "dim")
  (
      setreading ZWave_SW_RGBW _lastDim $EVTPART1,
      setreading RGB_Esszimmer ControllerDim $EVTPART1,
      setreading RGB_Esszimmer ControllerLastAction $EVENT
  )
   ELSE
   (
       IF ("$EVTPART0" eq "rgb")
       (
           setreading ZWave_SW_RGBW _lastRGB $EVTPART1 $EVTPART2 $EVTPART3,
           setreading RGB_Esszimmer ControllerRGB $EVTPART1 $EVTPART2 $EVTPART3
       ),
       setreading RGB_Esszimmer ControllerLastAction $EVENT
   )



Meine Probleme:

Das notify wird nicht getriggert. Ändere ich den regex auf: ZWave_SW_RGBW.*, dann wird er getriggert, aber viel zu häufig.
Außerdem würde ich das notify gerne in ein Switch Case wandeln. Das gelingt mir leider auch nicht.

Ich hoffe ich konnte das gut darstellen.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: viegener am 22 Januar 2019, 10:38:26
Ich denke dein problem ist der zweite Doppelpunkt.
Ändere doch mal in

DEF
ZWave_SW_RGBW:state.* IF ("$EVTPART0" eq "dim")
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: viegener am 22 Januar 2019, 10:40:38
Das mit dem switch case verstehe ich nicht. IF ist ein FHEM Befehl und kein perl-statement. in FHEM gibt es aber nur IF für solche Bedingungen.

Für switch case müsstest Du erst nach perl wechseln und dann alle FHEM-Kommandos in fhem(...) einschliessen.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 11:10:03
Mir würden auch zum Beispiel Nur IF Anweisungen reichen, aber leider fordert das immer ein ELSE.

Zum Beispiel

IF ($EVTPART0 eq "bla") ()
IF ($EVTPART0 eq "bla2") ()
IF ($EVTPART0 eq "bla3") ()

Das funktioniert leider nicht
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 11:11:02
Zitat von: viegener am 22 Januar 2019, 10:38:26
Ich denke dein problem ist der zweite Doppelpunkt.
Ändere doch mal in

DEF
ZWave_SW_RGBW:state.* IF ("$EVTPART0" eq "dim")


funktioniert leider auch nicht.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: Wernieman am 22 Januar 2019, 11:36:50
Wird es nicht aufgerufen oder gibt es einen Fehler im Inhalt?

Gehe doch mal in den Eventmonitor und gucke nach, was für ein Event generiert wird ...
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 11:38:11
Wird gar nicht erst getriggert. EventMonitor habe ich auf.
Ich sehe, dass der set BEfehl für das Device ausgeführt wird, aber eben das notify fehlt


Hier ein Listing vom Device
Internals:
   DEF        cfdf8029 29
   FUUID      5c458ed3-f33f-4184-af4f-52d18bc9b0d1bd79
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     16
   NAME       ZWave_SW_RGBW
   NR         159
   STATE      dim 2
   TYPE       ZWave
   ZWDongle_0_MSGCNT 16
   ZWDongle_0_RAWMSG 00131301
   ZWDongle_0_TIME 2019-01-22 10:30:32
   ZWaveSubDevice no
   cmdsPending 0
   endpointChildren ZWave_SW_RGBW.brightness,ZWave_SW_RGBW.red,ZWave_SW_RGBW.green,ZWave_SW_RGBW.blue,ZWave_SW_RGBW.white
   homeId     cfdf8029
   isWakeUp   
   lastMsgSent 1548153023.82252
   nodeIdHex  1d
   READINGS:
     2019-01-20 13:22:02   SEND_DATA       failed:00
     2019-01-22 09:11:48   _lastDim        11
     2019-01-21 21:25:48   _lastRGB        31 11 0
     2019-01-22 10:30:32   _lastRGBhex     1F0B00
     2019-01-18 20:53:05   assocGroup_1    Max 5 Nodes
     2019-01-18 20:53:05   assocGroup_2    Max 5 Nodes
     2019-01-18 20:53:05   assocGroup_3    Max 5 Nodes
     2019-01-18 20:53:05   assocGroup_4    Max 5 Nodes
     2019-01-18 20:53:05   assocGroup_5    Max 1 Nodes
     2019-01-18 20:53:05   assocGroups     5
     2019-01-20 08:28:24   ccCapability    WarmWhite Red Green Blue
     2019-01-20 09:29:11   configActivePROGRAMAlarmTime 600
     2019-01-20 09:29:11   configAlarm     INACTIVENoResponseToAlarmFrames
     2019-01-20 09:29:11   configAlarmSequenceProgram 10
     2019-01-20 09:29:11   configAssociationsCommandClassChoice NormalRGBWCOLORCONTROLSETSTARTST1
     2019-01-20 09:29:11   configCommandClassReportingOutputs42 ReportingAsAResultOfInputsAnd0
     2019-01-20 09:29:11   configDimmingStepValueForMODE1 1
     2019-01-20 09:29:11   configEnableDisableALLONOFF ALLONActiveALLOFFActive
     2019-01-20 09:29:11   configInputsOutputsConfiguration 4369
     2019-01-20 09:29:12   configMaximumDimmerLevel 255
     2019-01-20 09:29:12   configMinimumDimmerLevel 2
     2019-01-20 09:29:12   configOptionDoubleClick DoubleClickEnabled
     2019-01-20 09:29:12   configOutputsStateChangeMode MODE1ConstantSpeedSpeedIsDefined0
     2019-01-20 09:29:12   configPowerLoadReportingFrequency 30
     2019-01-20 09:29:12   configReporting010vAnalogInputsChange43 5
     2019-01-20 09:29:12   configReportingChangesInEnergyConsumed45 10
     2019-01-20 09:29:12   configResponseToBRIGHTNESSSetTo0 LastSetColourIsMemorized
     2019-01-20 09:29:12   configSavingStateBeforePowerFailure StateSavedAtPowerFailureAll1
     2019-01-20 09:29:12   configStartingPredefinedProgram 1
     2019-01-20 09:29:12   configTimeBetweenDimmingStepsForMODE1 10
     2019-01-20 09:29:12   configTimeToCompleteTheEntire11 67
     2019-01-20 09:29:12   configTripleClickAction NODEINFOControlFrameIsSent
     2019-01-18 16:40:05   mcCapability_01 SWITCH_MULTILEVEL
     2019-01-18 16:40:05   mcCapability_02 SWITCH_MULTILEVEL
     2019-01-18 16:40:05   mcCapability_03 SWITCH_MULTILEVEL
     2019-01-18 16:40:05   mcCapability_04 SWITCH_MULTILEVEL
     2019-01-18 16:40:05   mcCapability_05 SWITCH_MULTILEVEL
     2019-01-18 20:52:18   mcEndpoints     total 5, identical
     2019-01-18 20:52:25   meterSupported  type: energy scales: 0:kWh, 2:W resetable: yes
     2019-01-18 16:40:04   model           FIBARO System FGRGBWM441 RGBW Controller
     2019-01-18 16:40:04   modelConfig     fibaro/fgrgbwm441.xml
     2019-01-18 16:40:04   modelId         010f-0900-1000
     2019-01-20 08:28:36   power           2.0 W
     2019-01-22 10:23:57   reportedState   dim xx
     2019-01-22 10:30:23   state           dim 2
     2019-01-20 08:28:40   swa             on off
     2019-01-22 08:57:25   timeToAck       0.049
     2019-01-22 10:30:32   transmit        NO_ACK
Attributes:
   IODev      ZWDongle_0
   classes    SWITCH_ALL MANUFACTURER_SPECIFIC VERSION SWITCH_MULTILEVEL MULTI_CHANNEL CONFIGURATION METER SENSOR_MULTILEVEL ASSOCIATION COLOR_CONTROL
   homebridgeMapping Hue=rgb::_lastRGBhex Saturation=rgb::_lastRGBhex Brightness=_lastDim, delay=true, nocache=1
On=state,valueOn=/on|^dim|^rgb/,valueOff=off,cmdOn=on,cmdOff=off,nocache=1
   room       Homekit,Vouten,ZWave
   siriName   LED_Vouten
   userReadings _lastRGBhex
{
     sprintf("%02X%02X%02X", (split(' ', ReadingsVal("$name","_lastRGB",""), 3))[0], (split(' ', ReadingsVal("$name","_lastRGB",""), 3))[1], (split(' ', ReadingsVal("$name","_lastRGB",""), 3))[2]);
}
   userattr   _lastRGB, _lastDim, _lastRGBhex
   vclasses   ASSOCIATION:2 COLOR_CONTROL:1 CONFIGURATION:1 MANUFACTURER_SPECIFIC:1 METER:2 MULTI_CHANNEL:3 SENSOR_MULTILEVEL:2 SWITCH_ALL:1 SWITCH_MULTILEVEL:1 VERSION:1
   verbose    5
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: rabehd am 22 Januar 2019, 11:39:56
event-on-change-reading bei  ZWave_SW_RGBW?
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 11:43:56
hatte ich drin

event-on-change-reading für state

hatte aber nix gebracht
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: Otto123 am 22 Januar 2019, 11:47:49
Hi,

Einfach das notify mit dem richtigen Event anlegen lassen? Abschnitt 3
https://wiki.fhem.de/wiki/Notify
Und dann Abschnitt 4 im Link beachten und ruhig abarbeiten.

Gruß Otto
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: rabehd am 22 Januar 2019, 12:07:11
ZitatWird gar nicht erst getriggert. EventMonitor habe ich auf.
Solange es kein Event gibt ist alles andere nicht von Bedeutung.


Zitat von: flipse am 22 Januar 2019, 11:43:56
hatte ich drin

event-on-change-reading für state

hatte aber nix gebracht
Ich würde erstmal alles besondere löschen, wenns funktioniert kann man einschränken.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 12:18:42
Zitat von: Otto123 am 22 Januar 2019, 11:47:49
Hi,

Einfach das notify mit dem richtigen Event anlegen lassen? Abschnitt 3
https://wiki.fhem.de/wiki/Notify
Und dann Abschnitt 4 im Link beachten und ruhig abarbeiten.

Gruß Otto

Die Doku habe ich mir natürlich schon angeschau und weil es nicht funktioniert hat, wende ich mich an euch. Oder ich habe dich nicht richtig verstanden

Für set ZWave_SW_RGBW dim 19
erhalte ich: 2019.01.22 11:21:46 3 : ZWave set ZWave_SW_RGBW dim 19

Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: Hans Franz am 22 Januar 2019, 12:21:36
Ist denn im notify addStateEvent gesetzt?

Gruß
Hans
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 12:27:44
Zitat von: Hans Franz am 22 Januar 2019, 12:21:36
Ist denn im notify addStateEvent gesetzt?

Gruß
Hans

defmod ZWave_SW_RGBW_n notify ZWave_SW_RGBW:state:.* \
IF ("$EVTPART0" eq "dim") \
  (\
      setreading ZWave_SW_RGBW _lastDim $EVTPART1,\
      setreading RGB_Esszimmer ControllerDim $EVTPART1,\
      setreading RGB_Esszimmer ControllerLastAction $EVENT\
  )\
   ELSE \
   (\
       IF ("$EVTPART0" eq "rgb") \
       (\
           setreading ZWave_SW_RGBW _lastRGB $EVTPART1 $EVTPART2 $EVTPART3,\
           setreading RGB_Esszimmer ControllerRGB $EVTPART1 $EVTPART2 $EVTPART3\
       ),\
       setreading RGB_Esszimmer ControllerLastAction $EVENT\
   )
attr ZWave_SW_RGBW_n addStateEvent 1
attr ZWave_SW_RGBW_n verbose 5
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: flipse am 22 Januar 2019, 13:57:36
defmod ZWave_SW_RGBW_n notify ZWave_SW_RGBW:state.*\
IF ("$EVTPART1" eq "dim") \
  (\
      setreading ZWave_SW_RGBW _lastDim $EVTPART2,\
      setreading RGB_Esszimmer ControllerDim $EVTPART2,\
      setreading RGB_Esszimmer ControllerLastAction $EVENT\
  )\
   ELSE \
   (\
       IF ("$EVTPART1" eq "rgb") \
       (\
           setreading ZWave_SW_RGBW _lastRGB $EVTPART2 $EVTPART3 $EVTPART4,\
           setreading RGB_Esszimmer ControllerRGB $EVTPART2 $EVTPART3 $EVTPART4\
       ),\
       setreading RGB_Esszimmer ControllerLastAction $EVENT\
   )
attr ZWave_SW_RGBW_n addStateEvent 1
attr ZWave_SW_RGBW_n verbose 5


Jetzt scheint es zu funktionieren.
Wenn ich jetzt jedoch sage, dass er nur auf state: rgb oder state:dim reagieren soll, wird es wieder nicht ausgeführt.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: rabehd am 22 Januar 2019, 14:14:30
ZitatWenn ich jetzt jedoch sage, dass er nur auf state: rgb oder state:dim reagieren soll,
Nicht sagen, sondern so definieren.
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: 87insane am 22 Januar 2019, 14:43:39
defmod ZWave_SW_RGBW_n notify ZWave_SW_RGBW:state:(rgb.*|dim.*)

Deine Infos sind leider najaaaaaa......

1. Es MUSS ein Event erzeugt werden. Wenn dies nicht ist, dann auch kein notify
2. Wie sieht das Event dann aus?
3. Wenn es nur auf die beiden Dinge "(rgb.*|dim.*)" reagieren soll und nicht auf alles ".*" - Dann muss es auch so da stehen. Ich weiß leider nicht was bei dir in EVTPART0,1,2,3 usw drin steht. Das muss du leider heraus finden. Wenn der EVTPART aber korrekt ist, sollte es so ja laufen.

PS: Ich habe auch nur den Code oben rein geschrieben, weil ich selber ab und zu hänge und den Wald vor lauter Bäumen nicht sehe. Da ist Input von hier immer gut :)
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: Otto123 am 22 Januar 2019, 17:39:32
Zitat von: flipse am 22 Januar 2019, 13:57:36
Jetzt scheint es zu funktionieren.
Wenn ich jetzt jedoch sage, dass er nur auf state: rgb oder state:dim reagieren soll, wird es wieder nicht ausgeführt.
Nicht sagen sondern Eventmonitor, Eventmonitor, Eventmonitor ...  :o

Gruß Otto
Titel: Antw:Notify wird nicht ausgeführt
Beitrag von: 87insane am 24 Januar 2019, 09:01:11
Vermutlich ist irgendwo in deinem event ein doppelpunkt zu viel oder wenig drin. Dafür einfach den Event Monitor ckecken. Otto sagte es ja bereits.