[Gelöst] Ich und die Syntax.....

Begonnen von Master_Nick, 26 Februar 2017, 12:13:25

Vorheriges Thema - Nächstes Thema

CoolTux

Ich denke ich habe es gefunden. Ich hoffe



Streifen {
   fhem("setreading Streifen newstate [Streifen:state]");
   if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on"); }
   if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off"); }
   if (Value("Streifen") eq '0') { for (my $i=0 ; $i < 1 ; $i++) { fhem("set harmony_37861872 Dimm-"); } }
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#46
Nope immer noch.

Zitatsyntax error at (eval 368) line 5, at EOF

Verbose auf 5 sagt:

Zitat2017.02.27 22:21:10 1: ERROR evaluating my $EVTPART2='3';my $EVTPART19='0';my $EVTPART16='7';my $EVTPART25='6';my $EVTPART21='2';my $EVTPART0='1';my $EVTPART5='6';my $EVTPART22='3';my $EVTPART4='5';my $EVTPART18='9';my $SELF='Stripe.Dimmer';my $TYPE='Stripe.Dimmer';my $EVTPART10='1';my $EVTPART24='5';my $EVTPART12='3';my $EVTPART29='0';my $EVTPART3='4';my $EVTPART8='9';my $EVTPART6='7';my $EVTPART26='7';my $EVTPART13='4';my $EVTPART27='8';my $EVTPART23='4';my $EVTPART11='2';my $EVTPART15='6';my $EVTPART20='1';my $EVTPART9='0';my $NAME='Stripe.Dimmer';my $EVTPART7='8';my $EVTPART17='8';my $EVTPART1='2';my $EVTPART14='5';my $EVTPART28='9';my $EVENT='1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0';{return undef;; {
   fhem("setreading Streifen newstate [Streifen:state]");;
   if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on");; }
   if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off");; }
   if (Value("Streifen") eq "0") { for (my $i=0 ;; $i < 1 ;; $i++) { fhem("set harmony_37861872 Dimm-");; } }
}}: syntax error at (eval 381) line 5, at EOF
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Hast Du irgendwas besonderes aktiv codemirror oder so? Bist Du auf 5.8 ?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

Was ist Codemirror  :o ;D

Version 5.8 ja
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Ich bringe morgen früh mal meine Testumgebung auf aktuellen stand und teste dann noch mal
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#50
Kann ich in einem Notify mit regex arbeiten

Streifen:state:[0-9]+ {  blah blah }


Dann hätte ich eine Lösung. Und könnte den Dimmer in ein eigenes Notify, dass auf Zahlenwerte im State reagiert packen.

Denn alleine funktioniert das hier:

Streifen { if (Value("Streifen") eq "0") { for (my $i=0 ; $i < 1 ; $i++) { fhem("set harmony_37861872 Dimm-"); } } }

Und auch das hier allein:

Streifen {
fhem("setreading Streifen newstate [Streifen:state]");
if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on"); }
if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off"); }
if (Value("Streifen") eq "0") { fhem("set harmony_37861872 Dimm-");  }
}

Nur zusammen geht es nicht. Ich kann es aber sogar untereinander in ein Notify packen. Sofern es nicht mit Klammern zu einem wird.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Zitat von: Master_Nick am 27 Februar 2017, 23:35:50
Kann ich in einem Notify mit regex arbeiten

Streifen:state:[0-9]+ {  blah blah }


Dann hätte ich eine Lösung. Und könnte den Dimmer in ein eigenes Notify, dass auf Zahlenwerte im State reagiert packen.

Denn alleine funktioniert das hier:

Streifen { if (Value("Streifen") eq "0") { for (my $i=0 ; $i < 1 ; $i++) { fhem("set harmony_37861872 Dimm-"); } } }

Und auch das hier allein:

Streifen {
fhem("setreading Streifen newstate [Streifen:state]");
if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on"); }
if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off"); }
if (Value("Streifen") eq "0") { fhem("set harmony_37861872 Dimm-");  }
}

Nur zusammen geht es nicht. Ich kann es aber sogar untereinander in ein Notify packen. Sofern es nicht mit Klammern zu einem wird.

Klar kannst Du. Das Notify arbeitet ja mit RegEx um zu triggern. Du kannst also aus Deinem einen zwei machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

Nur reagiert FHEM nicht so wie ich es will...

state wird auf 50 gesetzt oder 3 völlig egal..


aber notify mit  Streifen:state:[0-9]+ { } springt nicht an also gar nicht kein Trigger.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

Mein Notfify:
Internals:
   CFGFN
   DEF        Streifen:state:[0-9]+ {
if (Value("Streifen") eq "0") { for (my $i=0 ; $i < 1 ; $i++) { fhem("set harmony_37861872 Dimm-"); } }
}



   NAME       Streifen.Dimmer
   NOTIFYDEV  Streifen
   NR         446
   NTFY_ORDER 50-Streifen.Dimmer
   REGEXP     Streifen:state:[0-9]+
   STATE      active
   TYPE       notify
   Readings:
     2017-02-27 23:57:34   state           active
Attributes:
   room       Technikraum


Mein Dummy zum schalten:
Internals:
   NAME       Streifen
   NR         206
   STATE      0
   TYPE       dummy
   Readings:
     2017-02-27 22:31:34   newstate        0
     2017-02-23 23:53:27   oldstate        40
     2017-02-27 23:57:43   state           0
Attributes:
   alexaName  Streifen
   alexaRoom  Wohnzimmer
   genericDeviceType light
   group      Licht
   homebridgeMapping Brightness=state,cmd=
   icon       light_led_stripe_rgb
   room       Echo,Wohnzimmer
   setList    state:slider,0,1,100 on off
   webCmd     state



Logmeldung:
Zitat2017.02.27 23:59:58 5: Cmd: >set Streifen 61<
2017.02.27 23:59:58 4: dummy set Streifen 61
2017.02.27 23:59:58 5: Starting notify loop for Streifen, 1 event(s), first is 61
2017.02.27 23:59:58 5: createNotifyHash
2017.02.27 23:59:58 5: data is {"deviceName": "Streifen","changes":"state:61","type":"notify","source":"gcmsend_fhem","vibrate":"false"}
2017.02.27 23:59:59 5: End notify loop for Streifen


2017.02.28 00:00:02 5: Cmd: >set Streifen 0<
2017.02.28 00:00:02 4: dummy set Streifen 0
2017.02.28 00:00:02 5: Starting notify loop for Streifen, 1 event(s), first is 0
2017.02.28 00:00:02 5: data is {"deviceName": "Streifen","changes":"state:0","type":"notify","source":"gcmsend_fhem","vibrate":"false"}
2017.02.28 00:00:03 5: End notify loop for Streifen
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Zitat von: Master_Nick am 27 Februar 2017, 23:56:25
Nur reagiert FHEM nicht so wie ich es will...

state wird auf 50 gesetzt oder 3 völlig egal..


aber notify mit  Streifen:state:[0-9]+ { } springt nicht an also gar nicht kein Trigger.

Du musst dich schon daran halten wie das Event aus schaut


Streifen.[0-9]+ { }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#55
Eventmonitor sagt:

Zitat2017-02-28 00:04:32 dummy Streifen 35

Wofür dann der "." ?


SOooo!  ;D

Es läuft.... warum nun die for Schleife zum Teufel nicht mit dem andern zusammen laufen will... KEINE Ahnung! Selbst 4 Augen vor einem Bildschirm konnten dies nicht klären.
Aber die Vorfilterung mittels Notify auf Zahlen oder Buchstaben vereinfachte es generell nochmal:

Internals:
   DEF        Streifen.[0-9]+ {
if (Value("Streifen") eq "0") { for (my $i=0 ; $i < 1 ; $i++) { fhem("set harmony_37861872 Dimm-"); } }
}

   NAME       Streifen.Dimmer
   NOTIFYDEV  Streifen
   NR         209
   NTFY_ORDER 50-Streifen.Dimmer
   REGEXP     Streifen.[0-9]+
   STATE      2017-02-28 00:15:32
   TYPE       notify
   Readings:
     2017-02-28 00:11:35   state           active
Attributes:
   room       Technikraum



Und das zweite:

Internals:
   DEF        Streifen.[a-z]+ {
if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on"); }
if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off"); }
}
   NAME       Streifen.Schalter
   NOTIFYDEV  Streifen
   NR         210
   NTFY_ORDER 50-Streifen.Schalter
   REGEXP     Streifen
   STATE      2017-02-28 00:15:32
   TYPE       notify
   Readings:
     2017-02-28 00:13:17   state           active
Attributes:
   room       Technikraum



Ggfs. werde ich beim zweiten den Filter auf Buchstaben weg lassen. Aber mal sehen ob nötig.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

MadMax-FHEM

Für das Leerzeichen zwischen Streifen und der Zahl...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Master_Nick

Jo hab es nun endlich laufen........

Aber wie gesagt es bleibt ein Rätsel warum nicht alles in einem Abwasch gehen will.
Fehler konnte bisher keiner Finden. Wird wohl eher irgendwas zur Laufzeit sein mit den Variablen bei der For Schleife.. aber selbst eine vorherige Definierung bevor sie referenziert werden.. keine chance.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

Es gab auch eine Variable für den vorherigen Wert in einem Notify oder? Hatte da mal was gelesen...
Finde es natürlich nicht wieder  ;D >:(
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

MadMax-FHEM

Du hast es doch im dummy gespeichert oder interpretiere ich oldValue/newValue falsch?
Einfach per ReadungsVal oder ReadingsNum abfragen...

Wenn du es noch nicht speicherst, dann kannst du das ja mit userreadings tun...

Bzw. ist doch der aktuelle Wert vor der Änderung der letzte weil danach ist es ja erst der neue!? ;)

Gruß, Joachim

P.S.: wenn du im notify noch mehr tun willst und weitere Dinge vergleichen/prüfen willst solltest du vielleicht mal über das Auslagern in eine sub nachdenken. Also notiy ruft sub und dort wird dann alles notwendige getan...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)