Toogle Button Syntax Fehler

Begonnen von tfriedrich85, 26 Januar 2020, 13:16:02

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo zusammen,

ich habe einen Syntax Fehler in einem Notify und brauche mal eure Hilfe:

HM_566F2E:HM_566F2E_Btn_03.Short set prxPort3e.2 on - funktionier und nun wollte ich beim wiederholten Tastendruck wieder den prxPort wieder ausschalten und meinte das sollte so funktionieren:


HM_566F2E:HM_566F2E_Btn_03.Short IF ([prxPort3e.2] eq "on") (set prxPort3e.2 off) ELSE (set prxPort3e.2 on)

macht es aber nicht. Seht ihr den Fehler?

MKeY

zeig mal ein list von prxPort3e.2
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC

tfriedrich85

Internals:
   DEF        PCF3e:Port2
   DEVICE     PCF3e
   FUUID      5cd59b78-f33f-aed9-9cdc-0bf1fd23a4a888f6
   NAME       prxPort3e.2
   NOTIFYDEV  PCF3e,global
   NR         359
   NTFY_ORDER 50-prxPort3e.2
   READING    Port2
   STATE      on
   TYPE       readingsProxy
   CONTENT:
     PCF3e      1
   READINGS:
     2020-01-26 14:01:55   lastCmd         off
     2020-01-26 13:17:55   state           on
Attributes:
   alias      Fussbodenheizung
   devStateIcon on:off:off off:on:on
   event-on-change-reading .*
   group      OutputPorts
   room       Bad,i2c
   setFn      {($CMD eq "on")?"Port2 off":"Port2 on"}
   setList    on off

MKeY

hast du noch ein list vom PCF3e das geschalten werden soll :)
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC

tfriedrich85

Ja klar,

Internals:
   DEF        PCF23:Port4
   DEVICE     PCF23
   FUUID      5cd9c199-f33f-aed9-9e32-79e476c2b9ac4a01
   NAME       prxPort23.4
   NOTIFYDEV  PCF23,global
   NR         305
   NTFY_ORDER 50-prxPort23.4
   READING    Port4
   STATE      on
   TYPE       readingsProxy
   CONTENT:
     PCF23      1
   READINGS:
     2020-01-26 20:17:38   lastCmd         off
     2020-01-26 13:33:44   state           on
Attributes:
   alias      Lüfter Bad
   devStateIcon on:off:off off:on:on
   group      OutputPorts
   icon       Ventilator_wind
   room       Bad,i2c
   setFn      {($CMD eq "on")?"Port4 off":"Port4 on"}
   setList    on off
   userattr   lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0


es handelt sich um Portextender des Moduls PCF23, damit schalte ich Relais on/off.

Danke für eure Hilfe

MKeY

sehe bis jetzt keine Fehler, demzufolge hast du noch ein list von HM_566F2E_Btn_03 und dem notify?
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC

amenomade

Zitat von: MKeY am 26 Januar 2020, 19:44:37
hast du noch ein list vom PCF3e das geschalten werden soll :)
Zitat von: tfriedrich85 am 26 Januar 2020, 21:24:11
Ja klar,

Internals:
  DEF        PCF23:Port4
   DEVICE     PCF23
   NAME       prxPort23.4

Habe etwas nicht verstanden.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tfriedrich85

Jetzt das List von Button:

Internals:
   DEF        566F2E03
   FUUID      5cd59b7d-f33f-aed9-8158-8c0f552f42f6a71e
   NAME       HM_566F2E_Btn_03
   NOTIFYDEV  global
   NR         609
   NTFY_ORDER 50-HM_566F2E_Btn_03
   STATE      LongRelease 0_13 (to CUL_0)
   TYPE       CUL_HM
   chanNo     03
   device     HM_566F2E
   READINGS:
     2020-01-27 08:15:13   state           LongRelease 0_13 (to CUL_0)
     2020-01-27 08:15:13   trigDst_F11034  noConfig
     2020-01-27 08:15:13   trigger         Long_13
     2020-01-27 08:15:13   trigger_cnt     13
   helper:
     BNO        13
     BNOCNT     0
     peerFriend peerAct,peerVirt
     peerOpt    4:remote
     regLst     1,4p
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     tmpl:
Attributes:
   model      HM-PB-6-WM55

Und das Notify

Internals:
   DEF        HM_566F2E:HM_566F2E_Btn_03.Short IF ([prxPort3e.2] eq "on") (set prxPort3e.2 off) ELSE (set prxPort3e.2 on)
   FUUID      5d874c01-f33f-aed9-92a6-188f1ac7b0dd877e
   NAME       HM_Button3
   NOTIFYDEV  HM_566F2E
   NR         1293
   NTFY_ORDER 50-HM_Button3
   REGEXP     HM_566F2E:HM_566F2E_Btn_03.Short
   STATE      active
   TRIGGERTIME 1580041026.95717
   TYPE       notify
   READINGS:
     2020-01-27 21:58:20   state           active
Attributes:
   room       Bad

Ich hoffe ihr findet was oder habt eine andere Idee wie man mit einem Notify eine ON/OFF Funktion für einen HM Button baut?

MKeY

probier mal HM_566F2E_Btn_03:trigger:.*Short.* IF ([prxPort3e.2] eq "on") (set prxPort3e.2 off) ELSE (set prxPort3e.2 on)
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC

tfriedrich85

Leider nicht erfolgreich.
Ich nutze die Schalter bisher jeden mit einer einzelenen funktion, das funktioniert ohne Probleme. z.B.

HM_566F2E:HM_566F2E_Btn_03.Short set Sonos_Bad Speak 20 de Fußbodenheizung aktiviert!; set prxPort3e.2 on

amenomade

#10
Nochmal meine Frage von oben: was hat prxPort23.4 mit der Geschichte (insb. mit prxPort3e.2 oder PCF3e) zu tun?

Dann etwas komisches:
    2020-01-26 14:01:55   lastCmd         off
     2020-01-26 13:17:55   state           on
Warum haben lastCmd und state nicht das gleiche Timestamp?

Und letztens:
{($CMD eq "on")?"Port2 off":"Port2 on"}
Ist es wirklich so gewünscht? Wenn Du "set prxPort3e.2 off" machst, soll Port2 von PCF3e auf "on" gehen, und umgekehrt?
Anders gesagt: das Kommando "set prxPort3e.2 off" schaltet prxPort3e.2 auf on?

Wenn ja, dann verstehe ich dein IF nicht
IF ([prxPort3e.2] eq "on") (set prxPort3e.2 off) ELSE (set prxPort3e.2 on)
Wenn Port2 auf on ist, soll dein Button das Kommando "set prxPort3e.2 off" ausführen, sprich Port2 auf on schalten... war aber schon auf on.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tfriedrich85

Hey,

Zitat
{($CMD eq "on")?"Port2 off":"Port2 on"}
Ist es wirklich so gewünscht? Wenn Du "set prxPort3e.2 off" machst, soll Port2 von PCF3e auf "on" gehen, und umgekehrt?
Anders gesagt: das Kommando "set prxPort3e.2 off" schaltet prxPort3e.2 auf on?
Da habe ich wohl bei der Implementierung ausversehen "on" und "off" vertauscht.

{($CMD eq "on")?"Port2 on":"Port2 off"}
Dann sollte es so richtig sein? Das werde ich gleich mal probieren.
Danke für den Hinweis

Zum Problem mit dem Schalter und dem on/off toogle:
iIh habe mehrere prxPort device für verschiedne Relais die ich so schalten kann. Aus Verzeiflung hab ich verschiede prxPorts versucht, aber der Port prxPort3e.2 existiert und soll geschalten werden. Ob "on" oder "off" sollte ja eigentlich egal sein. Denn letztlich soll das IF ein "toogle" ersetzten. Wenn "on" dann schalte "off" und umgekehrt.

amenomade

Zitat von: tfriedrich85 am 28 Januar 2020, 08:36:17


{($CMD eq "on")?"Port2 on":"Port2 off"}
Dann sollte es so richtig sein? Das werde ich gleich mal probieren.

Ich vermute, es wird ja besser funktionieren
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MKeY

Zitat von: tfriedrich85 am 27 Januar 2020, 22:32:55
Ich nutze die Schalter bisher jeden mit einer einzelenen funktion, das funktioniert ohne Probleme. z.B.

ich auch, aber ich habe meine notifys auf die einzelnen knöpfe gelegt. meine Testumgebung funktioniert mit dem Notify so. dann kann ich dir nicht helfen
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC