Hallo,
ich habe mittlerweile ein Workaround geschaffen.... aber eigentlich wäre es schöner, dass Ganze in einem Notify unter zu bringen.
Es haben mittlerweile viele Leute versucht dieses zum Laufen zu bekommen. Eventuell ist hier im "Fachbereich" ja noch jemand mit neuen Ideen :-)
Nimmt man die Zeile mit der FOR Schleife heraus oder kommentiert sie aus - geht es. Genauso kann sie ganz alleine da sein und es funktioniert. Nur in Kombination nicht.
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=1;$i!=15;$i++) { fhem("set harmony_37861872 Dimm-") } }
}
Bisher liefert es immer Fehler:
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
Hi,
kannst Du mal das Coding zeigen in einer Version, die funktioniert und einer Version, die nicht funktioniert? Das ganze aber aus derselben Quelle, also nicht das eine aus der Fehlermeldung und das andere sonstwoher.
Am besten beides mit einem list von dem Device, in dem das drinsteht.
Gruß,
Thorsten
Ich hoffe ich habe dich richtig verstanden, hier einmal alles was ich aktuell habe und auch läuft.
Es geht um folgendes Device (ein Dummy):
Internals:
NAME Streifen
NR 206
STATE off
TYPE dummy
Readings:
2017-03-01 02:27:01 oldstate off
2017-03-01 02:26:59 state off
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
Geschaltet werden sollen folgende Devices (ein und das Selbe Gerät - ein LED-Stripe der über Infrarot gesteuert werden kann un über einen IT Schalter Strom An/Aus geschaltet bekommt) über ein Notify:
Infrarot-Steuerung:
Internals:
CHANGED
ConnectionState Initialized
DEF DEVICE 37861872
NAME harmony_37861872
NOTIFYDEV global
NR 89
NTFY_ORDER 50-harmony_37861872
STATE manual
TYPE harmony
hub Ultimate_Hub
id 37861872
Readings:
2017-03-02 19:00:35 power manual
Helper:
Attributes:
alias LED 24-Stripe
devStateIcon on:10px-kreis-gruen off:10px-kreis-rot
event-on-change-reading .*
room Wohnzimmer
stateFormat power
Strom-Steuerung:
Internals:
DEF 0000F0000F FF F0
IODev nanoCUL
LASTInputDev nanoCUL
MSGCNT 3
NAME Stripe.Strom
NR 105
STATE off
TYPE IT
XMIT 0000f0000f
XMITdimdown 00
XMITdimup 00
XMIToff f0
XMITon ff
nanoCUL_MSGCNT 3
nanoCUL_RAWMSG i004014
nanoCUL_RSSI -63.5
nanoCUL_TIME 2017-03-02 10:13:02
Code:
1 0000f0000f
Readings:
2017-02-10 17:58:18 protocol V1
2017-03-02 10:13:02 state off
Attributes:
IODev nanoCUL
group Licht
icon light_led_stripe_rgb
room Technikraum
Das Notify so wie oben geposted funktionert gar nicht, es wird die Fehlermeldung die auch oben bei steht.
Funktionieren tut es auf 2 Notifys aufgeteilt:
Einmal mit der For-Schleife:
Internals:
DEF Streifen.[0-9]+ {
if (Value("Streifen") eq "0") { for (my $i=1 ; $i < 4 ; $i++) { fhem("set harmony_37861872 Dimm-"); } }
}
NAME Streifen.Dimmer
NR 209
NTFY_ORDER 50-Streifen.Dimmer
REGEXP Streifen.[0-9]+
STATE active
TYPE notify
Readings:
2017-02-28 22:25:35 state active
Attributes:
room Technikraum
Einmal die If-Bedingungen:
Internals:
DEF Streifen {
if (Value("Streifen") eq "on") { fhem("set Stripe.Strom on"); }
if (Value("Streifen") eq "off") { fhem("set Stripe.Strom off"); }
fhem("setreading Streifen oldstate [Streifen:state]");
}
NAME Streifen.Schalter
NOTIFYDEV Streifen
NR 210
NTFY_ORDER 50-Streifen.Schalter
REGEXP Streifen
STATE 2017-03-01 02:26:59
TYPE notify
Readings:
2017-02-28 22:25:35 state active
Attributes:
room Technikraum
Das list vom notify, das nicht funktioniert, fehlt.
Ich sah soeben auch mein Thread-Eingangspost... war ohne die For-Schleife sorry... das konnte man nicht verstehen.
Das List vom nicht funktionierenden notify fehlte, weil man das schon nicht speichern kann. Ich und einige andere konnten den Fehler nicht finden (https://forum.fhem.de/index.php/topic,67955.0.html).
Er wirft in FHEM WEB beim Versuch zu Speichern folgende Meldung: "syntax error at (eval 24472) line 5, at EOF ".
Es sähe aber so aus - die DEF ist hier nun MANUELL angepasst:
Internals:
CFGFN
DEF 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-"); } }
}
NAME Dimmer
NOTIFYDEV Streifen
NR 3390
NTFY_ORDER 50-Dimmer
REGEXP Streifen
STATE active
TYPE notify
Readings:
2017-03-02 22:22:36 state active
Attributes:
Aus diesem, was nicht speicherbar ist habe ich dann die 2 anderen gemacht... entfernt man die For Schleife geht alles oder man entfernt alles außer der For Schleife, dann geht auch alles. Nur zusammen geht es nicht.
...da sind doppelte ";" in der for-Schleife.
Sorry ein Fehler beim Übertragen aus dem anderen Thread. :o ::) :-\
Die hatten wir schon raus. Fehler besteht weiter.
So hier endlich... war ein wenig Chaos eben..
Das ist die LETZTE Version und dennoch nicht lauffähig..oder zu speichern. For-Schleife allein kein Ding - Rest ohne For-Schleife auch kein Ding... nur zusammen... nöö
Internals:
CFGFN
DEF 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-"); } }
}
NAME Dimmer
NOTIFYDEV Streifen
NR 3390
NTFY_ORDER 50-Dimmer
REGEXP Streifen
STATE active
TYPE notify
Readings:
2017-03-02 22:22:36 state active
Attributes:
Hi,
ich habe das gerade mit copy&paste in meine FHEM-Testinstanz reingebastelt. Meckert nicht, gar kein Problem. perlSyntaxCheck in global ist aktiv. Wenn ich irgendwo was weglasse, dann meckert das System.
Hast Du mal ein update gemacht?
Gruß,
Thorsten
Ja von 5.7 auf die 5.8.
Bei mir will das nicht laufen
Verrückt! :o
Habe perlSyntaxCheck in global mal auf 1 gesetzt (es war gar nicht gesetzt). Nun geht es!! 8) ;D
Was genau war dann nun damit der Grund?
Zitat von: Master_Nick am 02 März 2017, 22:58:48
Ja von 5.7 auf die 5.8.
Ich meinte heute oder gestern. Das Release hat nicht sooo viel zu sagen.
Ok hab es soeben gemacht und dann noch die perlSyntaxCheck eingeschaltet.
Ja super ;-) Ich danke dir für die Hilfe!
Was genau heist "Ja von 5.7 auf die 5.8."?
Diesen Bug habe ich nach dem Release gefixt, kommt per update. perlSyntaxCheck zu setzen braucht man nicht, da es per Voreinstellung aktiv ist. Es sei denn, man hat featureLevel auf 5.7 gesetzt. Wenn man beide nicht explizit setzt, dann sollte es so wie bei Thorsten funktionieren.
Zitat von: rudolfkoenig am 03 März 2017, 06:53:03
Was genau heist "Ja von 5.7 auf die 5.8."?
Ich glaube, dass das mit den Releases bei vieln zu Missverständnissen führt. So nach dem Schema: Ah, da ist ein neues Release, jetzt aber schnell ein Update machen. ...während man bei anderen Sachen nach einem neuen Release eher nochmal abwartet.
Gruß,
Thorsten
@rudolfkoenig Ich meinte damit, dass als die 5.8 angekündigt war für den nächsten Tag ich genau an dem Morgen, als sie verfügbar war das Update gemacht hatte.
Ich wusste bisher gar nicht, dass auch ohne Versionsnummernwechsel Änderungen verfügbar werden *g*. Kenne das nur mit Buildnummern die sichtbar sind 5.7.XXXX oder Build XXX.
Zitat von: Master_Nick am 03 März 2017, 09:43:10
@rudolfkoenig Ich meinte damit, dass als die 5.8 angekündigt war für den nächsten Tag ich genau an dem Morgen, als sie verfügbar war das Update gemacht hatte.
Ich wusste bisher gar nicht, dass auch ohne Versionsnummernwechsel Änderungen verfügbar werden *g*. Kenne das nur mit Buildnummern die sichtbar sind 5.7.XXXX oder Build XXX.
q.e.d.
ZitatIch wusste bisher gar nicht, dass auch ohne Versionsnummernwechsel Änderungen verfügbar werden
Ich bitte dich (bzw. alle) vor der Meldung eines Problems den update FHEM-Befehl auszufuehren (inkl FHEM-Neustart), und danach nochmal pruefen, ob das Problem besteht.
Auf fhem.de steht, direkt unter dem Download-Link:
Zitat
Note: the FHEM development is a continuous one, and a release is only a starting point for the update process.
Use the update (https://fhem.de/commandref.html#update) command to get the most recent version, especially if you want to report issues in the forum.
;) Ich behaupte nicht, dass ich es nicht hätte lesen können oder es nicht da steht. Bei mir ist der Download von FHEM ca. 3 Jahre her, :-D da erinnere ich mich daran nicht und bin eher selten in der Download-Section.
Aber es ist ein sehr guter Gedanke vor Problemmeldungen erst ein Update zu machen :-) Ich werde das ab jetzt beherzigen.
Und Danke nochmal für die Unterstüzung :-) läuft nun prima!