Hallo,
ich hatte it hilfe dieses Forums folgende Logik in meine fhem.cfg geschrieben um mit einem FHT80B-3 einen FS20 Aktor zu schalten. Das hat bisher auch immer gut funktioniert. Nun habe ich ein Update des FHEM Servers gemacht und nun schaltet es nicht mehr. Leider gibt es allerdings auch keinen LOG-Eintrag, weshalb ich bei der Fehlersuche überfordert bin. Vielleicht kann mir einer von euch helfen?
Hier der Eintrag in der FHEM Config
define AZ2_Heizung FHT 050c
attr AZ2_Heizung IODev CUL_0
attr AZ2_Heizung room AZ_Jens
define FileLog_AZ2_Heizung FileLog ./log/AZ2_Heizung-%Y.log AZ2_Heizung
attr FileLog_AZ2_Heizung logtype fht:Temp/Act,text
attr FileLog_AZ2_Heizung room AZ_Jens
define SVG_AZ2_Heizung SVG FileLog_AZ2_Heizung:fht:CURRENT
attr SVG_AZ2_Heizung label "AZ2_Heizung Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_AZ2_Heizung room AZ_Jens
define Heizungsschalter FS20 3eed 01
attr Heizungsschalter IODev CUL_0
attr Heizungsschalter room AZ_Jens
define FileLog_Heizungsschalter FileLog ./log/Heizungsschalter-%Y.log Heizungsschalter
attr FileLog_Heizungsschalter logtype text
attr FileLog_Heizungsschalter room AZ_Jens
define AZ2_Heizung_Logo notify AZ2_Heizung { \
my $FHT = "%";; \
if ($FHT =~ "actuator:") { \
$FHT = (substr($FHT, 9, (length($FHT)-10)));; \
if (($FHT > 45) && Value("Heizungsschalter") eq "off") { \
fhem("set Heizungsschalter on") \
} \
else { \
if (($FHT < 45) && Value("Heizungsschalter") eq "on") { \
fhem("set Heizungsschalter off") \
} \
} \
} \
}
Ich habe heute eine Wiederherstellung mit restore gemacht und schon geht es wieder.
Wenn ihr weitere Informationen braucht, liefer ich die natürlich gerne.
Lieben Gruß
Joe
my $FHT = "%";;
(http://up.picr.de/23840597ue.png)
Klicke auf den dort angegebenen Link "Update- und Anpassungshinweise"...
Hallo betateilchen,
vielen Dank für die mega schnelle Antwort. Dann habe ich nun ein Problem, da ich mir den Code nur zusammen gesucht habe und nicht selber geschrieben habe, habe ich keinen Plan wie ich das abändern muss. Wenn ich das auf der Seite richtig verstehe, wird % nicht mehr unterstützt und man soll statt dessen $ verwenden. Nun habe ich mir gerade ergoogelt, dass % für einen Hashes steht und $ für einen Skalare. Aber was machen die eigentlich und kann ich das einfach ein zu eins tauschen?
Lieben Gruß
Joe
Lies die Ankündigung noch einmal - du hast sie nicht verstanden.
Hallo,
ich habe die nun wirklich mehrmals gelesen aber ich scheine die wirklich nicht zu verstehen.
Bin nun durch den Eintrag in der FHEM.cfg zurück auf die 5.6 gegangen und werde weitere Updates auslassen. Ich bin gerne gewillt mich einzulesen aber scheinbar reicht mein Grundverständnis dafür nicht aus.
LG Joe
Zitat- @ und % im notify/etc gibts nicht mehr, genauso wie %NAME, %EVENT. Bitte stattdessen $NAME, $EVENT verwenden.
Da steht doch alles drinn!
my $FHT = "%";; ---> ??
das ist schon ein Wink mit dem Zaunpfahl ;)
ZitatBin nun durch den Eintrag in der FHEM.cfg zurück auf die 5.6 gegangen und werde weitere Updates auslassen
P.S. Wenn Rudi "ernst" macht, ist es irgendwann sowie so gänzlich vorbei mit %
ZitatUm den Uebergang nicht so hart zu gestalten, kann man "attr global featurelevel 5.6" setzen und damit die "alten Zoepfe" wieder aktivieren, allerdings wird diese Moeglichkeit auch irgendwannmal entfernt.
VG
Frank
Entschuldigt bitte. Den Wink habe ich schon verstanden. Ich weiß, dass es an dieser Zeile und dem darin enthaltenen % liegt. Ich habe daraufhin das % durch ein $ ersetzt. Leider hat das nicht geklappt und nun habe ich das Problem, dass ich nicht weiß wie ich das abändre, damit es wieder geht. Zumal ich mir den Code wie gesagt nur zusammen kopiert habe. Dies ärgert mich auch schon wieder, weil mir deshalb nun das Wissen fehlt um den Fehler zu korrigieren. Und leider fehlt mir auch der Ansatz um mich einzulesen. Also wenn da einer einen Tipp hätte, wäre ich sehr dankbar.
LG
Wie schon hier im Thread erwähnt, wie es in der commandref steht und wie es auch im Hinweis hinter dem Link oben unter der Suche erwähnt ist, wird % nicht durch $ ersetzt, sondern durch $EVENT.
ups, da war marvin78 schneller und hatte ein Einsehen ;)
ich wollte gerade anregen, einmal darüber nachzudenken, was genau das %-Zeichen überhaupt macht. Und dazu steht unter notify in der commandref folgendes:
ZitatDas Zeichen % wird ersetzt mit dem empfangenen Ereignis (Event), z.B. mit on oder off
Und auf "das empfangene Ereignis" kann man nun mal in einem notify mit $EVENT zugreifen, so hab ichs gelernt, das mit dem %-Zeichen kannte ich nicht ...
Ich find die perl/fhem-Syntax auch gruselig (hab früher viel in C/C++ programmiert); aber nur durch "Beißen" kommt man hier wirklich weiter, hab ich am eigenen Leib erfahren ... ;)
Wollte mich auch gerade "erbarmen" und den Der_müde_Joe erlösen, dann müsste ja jetzt alles wieder gewohnt funktionieren
:) ;)
VG
Frank
Hallo,
danke für die Hilfe. Nun verstehe ich auch was in den Anpassungshinweisen steht. Sorry das ich mich so dumm angestellt habe. Nun funktioniert meine Logik wieder. Danke.
Ich habe in meinem Leben noch nie etwas programmiert und es ist echt schwer sich in FHEM einzufinden. Ich war so stolz, als ich dieses mini Stückchen Code fertig bekommen habe. Schade das damals keiner gesagt, hat, dass das mit dem % schlecht programmiert ist. Aber ich werde das nun gleich in dem entsprechenden Tread anpassen.
Vielen Dank nochmal.
Der_müde_Joe