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?
zeig mal ein list von prxPort3e.2
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
hast du noch ein list vom PCF3e das geschalten werden soll :)
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
sehe bis jetzt keine Fehler, demzufolge hast du noch ein list von HM_566F2E_Btn_03
und dem notify?
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.
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?
probier mal HM_566F2E_Btn_03:trigger:.*Short.* IF ([prxPort3e.2] eq "on") (set prxPort3e.2 off) ELSE (set prxPort3e.2 on)
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
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.
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.
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
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