Hallo Leute,
ich weiß nicht, ob das hier in der richtigen Ecke gelandet ist ;D
... Da es der Allgemeinheit hilft, hau ich das einfach mal hier raus.
Ich habe ein Problem im FHEM-Wiki gefunden. Und zwar handelt es sich um das Skript, welches unter https://wiki.fhem.de/wiki/FHT_8v_direkt_ansprechen vorgestellt wurde.
Durch eine ausgiebige Debug-Session habe ich herausfinden können, dass bei mir ein Timing-Problem im Skript aus dem Wiki aufgetreten ist, welches den Heizplan nicht richtig ausführt.
Das Skript wurde bei mir immer eine Sekunde vor der angefangenen Viertelstunde ausgeführt, wodurch die Heizzeiten nicht gefunden wurden.
Ich konnte das beheben, indem ich am Anfang des Skriptes folgenden Perl-Code eingefügt habe:
sub
sucheSchaltzeit() {
# Timingproblem loesen
sleep 10;
Eventuell kann dies jemand beurteilen, ggfls. verbessern und im Wiki korrigieren.
Beste Grüße,
FexHo
Hallo FexHo,
würdest Du bitte dieses Thema in den Forenbereich "Wiki" verschieben?
Unabhängig davon kümmere ich mich schon mal um die Korrektur / Ergänzung.
Peter
Hallo Peter,
ich habe das Thema verschoben.
Danke für Deine Überarbeitung. Das Debugging hat mich locker zwei Stunden gekostet. Reine Anwender hätten die Komponente womöglich verteufelt und nie wieder angepackt :)
Das Skript funktioniert bei mir nun jedenfalls wunderbar um meine PID-Regler zu Schalten...
Hallo zusammen :)
Ich wollte das Skript, unter dem Punkt "Einen Heiz-Zeitplan erstellen (mit Urlaubsfunktion)" auch mal anpacken. Ich wollte es dann in meinem 99_myUtils speichern und bekam folgende Fehlermeldung.
syntax error at ./FHEM/99_myUtils.pm line 33, near "<" syntax error at ./FHEM/99_myUtils.pm line 33, near ">" Global symbol "@Zeilen" requires explicit package name at ./FHEM/99_myUtils.pm line 39. Global symbol "@Zeilen" requires explicit package name at ./FHEM/99_myUtils.pm line 40. Global symbol "$jetztzeit" requires explicit package name at ./FHEM/99_myUtils.pm line 57. syntax error at ./FHEM/99_myUtils.pm line 57, near ">" syntax error at ./FHEM/99_myUtils.pm line 57, near "$minimum_begin ) " Global symbol "$jetztzeit" requires explicit package name at ./FHEM/99_myUtils.pm line 57. syntax error at ./FHEM/99_myUtils.pm line 57, near "<" syntax error at ./FHEM/99_myUtils.pm line 57, near "$minimum_ende)" ./FHEM/99_myUtils.pm has too many errors.
Ich habe "use Time::Local;" auch eingebunden.
Soweit ich das verstehe sagt der Fehlercode doch nur, dass zb "@Zeilen" nicht deklariert ist bzw nicht übergeben wird??
Update: Es liegt anscheinend an den < , > , ; Zeichen.
Nachdem ich sie durch <,> und das letzte einfach gelöscht habe, konnte ich es ohne Fehlermeldung speichern.
Zitat von: Bastian0302 am 21 Mai 2017, 16:44:06
Update: Es liegt anscheinend an den < , > , ; Zeichen.
Nachdem ich sie durch <,> und das letzte einfach gelöscht habe, konnte ich es ohne Fehlermeldung speichern.
Das ist korrekt, die Spitzklammern sind in html ascii-code angegeben. Somit kann man den Code der Subroutine nicht einfach mit kopieren übernehmen.
Vielleicht findet sich ja Jemand der das Wiki bearbeiten kann und diesen Fehler im Listing der Subroutine korrigiert. ;)
Nachtrag: Das Wiki um das es geht heißt korrekter Weise "
FHT 8v direkt ansprechen"
Ich habe das Beispielskript geändert - kann jemand, der das benutzt, kontrollieren, ob jetzt alles i.O. ist?
Habe es ohne Fehlermeldung in die 99_myUtils.pm einfügen können. Sieht auf den ersten Blick gut aus, lasse es mal ein paar Std laufen
Scheint jetzt alles tadellos zu laufen, zumindest kommen keine Fehlermeldungen im Logfile