Neues Modul - Heating_Control, WeekdayTimer

Begonnen von Dietmar63, 04 Januar 2013, 19:42:26

Vorheriges Thema - Nächstes Thema

Dietmar63

ist mir ehrlich gesagt ein Rätsel:

Hier hat sich lt. SVN Repositoriy nichts, außer die Umlaute im Kommentar geändert:
Syntaktisch ist das aber alles korrekt. Wenn ich bei mir den reload ausführe funktioniert er.

Bist Du in der Lage die Programmstelle bei deiner Installation in Augenschein zu nehmen?
Dann poste die Stelle bitte einmal. Vielleicht ist bei Dir nicht alles angekommen.

Es müßte jedenfalls etwa so aussehen:

97   for(my $i=0; $i<@a; $i++) {
98     #prüfen auf Angabe eines Schaltpunktes
99     my @t = split(/\|/, $a[$i]);
100     my $anzahl = @t;
101     if ( $anzahl ~~ [2,3]) {
102       push(@switchingtimes, $a[$i]);
103     } else {
104       #der Rest ist das auzuführende Kommando/condition
105       $conditionOrCommand = trim(join(" ", @a[$i..@a-1]));
106       last;
107     }
108   }


Teilweise habe ich mit dem Upload von Umlauten ins SVN Probleme.
Da sie aber in Kommentaren sind dürfte das keine Auswirkungen haben.
Es ist aber möglich, dass verschiedene Plattformen anders reagieren.

Hat sonst noch jemand Probleme? Vielleicht hilft es das Problem zu umschiffen zunächst das Modul aus dem Forum zu laden:
http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/FHEM/98_Heating_Control.pm?revision=2753


Welche Hardware/Betriebsystem nutzt Du?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

czech

Danke für die schnelle Antwort.

Meine lokale 98_Heating_Control.pm ist absolut identisch mit dem Link. Ich habe auch schon eine vorher gepostete Variante probiert: dabei bekomme ich die gleichen Fehler (gleiche Codestelle, andere Zeilenzahl entsprechend).

Auf "reload" bin ich gekommen, nachdem ich ein "cannot load module Heating Control" bekommen habe. Das war mein erster Versuch mit dem Modul.

Das FHEM läuft auf einer Synology 1512+ (x86 Atom CPU). Die 98_He...pm liegt unter /usr/local/FHEM/share/fhem/FHEM. Vielleicht ist das eine seltene Basis, verwendet evtl. andere Perl Bibliothek?

Übrigens eine tolle Idee mit dem Modul, freue mich schon auf den Testeinsatz.

Dietmar63

Prüf mal welche Perlversion du einsetzt. Ich habe hier:
http://de.wikipedia.org/wiki/Perl_(Programmiersprache)

folgendes gefunden:

ZitatPerl 5.10 [Bearbeiten]Neben verringertem Speicherverbrauch und einer erneuerten und nun auch austauschbaren Regex-Maschine brachte diese Version am 18. Dezember 2007 unter der Führung von Rafaël Garcia-Suarez vor allem Neuerungen, die dem Entwurf von Perl 6 entstammen und deren Gebrauch entweder einzeln oder kollektiv mit use feature ':5.10'; angemeldet werden muss oder kürzer use v5.10;. Dies gilt ab dieser Version für alle Funktionen, welche die Kompatibilität brechen könnten. Hierzu zählen say, given und when (analog zur switch-Anweisung in C), der smartmatch-Operator (~~), der defined or-Operator (//) und state-Variablen, welche die Erzeugung von Closures vereinfachen. Weitere nennenswerte Neuheiten umfassen den verlagerbaren Installationspfad, stapelbare Dateitestoperatoren, definierbare lexikalische Pragmas, optionale C3-Serialisierung der Objektvererbung und field hashes (für ,,inside out"-Objekte). Die Regex-Engine arbeitet nun iterativ statt rekursiv, was nun rekursive Ausdrücke ermöglicht. Komplexe Suchanfragen können nun auch verständlicher und weniger fehleranfällig durch named captures formuliert werden. Die Spezialvariablen $# und $* sowie die Interpreterschnittstellen perlcc und JPL wurden entfernt.

Im folgenden Jahr wurden die Quelle von Perforce auf Git umgestellt, was die Entwicklung und Herausgabe neuer Versionen wesentlich vereinfachte.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

czech

Eine gute Idee, leider habe ich wohl schon 5.10:

synology> perl -v

This is perl, v5.10.0 built for i686-linux-gnu


Ich werde aber auch das Gefühl nicht los, dass er mit der if-clause ein Problem hat. Bin nicht so perl-erfahren, kann man die Bedingung evtl. anders formulieren?

czech

Nachtrag: es wird bei mir doch kein perl 5.10 verwendet!

Wenn ich das Skript um "use 5.010;" ergänze, dann bekomme ich folgenden Fehler:

fhem> reload 98_Heating_Control
Perl v5.10.0 required--this is only v5.8.6, stopped at /usr/local/FHEM/share/fhem/FHEM/98_Heating_Control.pm line 30.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_Heating_Control.pm line 30.


Also entweder bekomme ich das richtige perl 5.10, das Voraussetzung für das Skript ist, zum Laufen. Oder jemand hat einen Vorschlag, wie man die Bedingung ohne 5.10-Spezialität formuliert ;-)

Dietmar63

Man kann die Stelle leicht anders formulieren. Mache ich heute abend.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

habe es soeben geändert und schon eingeckeckt  - nach einem update sollte es auch auf der 5.8er Version von Perl laufen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

czech

Vielen Dank, Problem gelöst!

Zur Info: Synology hat ein Perl 5.8.6 mitgeliefert. Mittels "ipkg install perl" bekommt man zwar perl 5.10, aber dieses liegt unter /opt/bin/perl. Es wird auch normalerweise verwendet. Nur dass fhem direkt auf /usr/bin/perl verweist und von daher immer perl 5.8.6 verwendet werden wird. Was natürlich für alle Modulle ebenso gilt.

Setis

In meinem fhem-2013-02.log habe ich gefunden das die Einträge mehrfach vorkommen. Das bedeutet das die auch mehrfach gesendet werden. Aber warum? Mache ich was falsch.

Das Log-File sieht so aus:

8x------------------------------------------
2013.02.20 09:45:00 2: FS20 set TerrariumHauptspot on
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:00 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:00:01 2: FHT set hz_Wohnzimmer desired-temp 17.0
2013.02.20 16:30:01 2: FHT set hz_Olymp desired-temp 21.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:00:00 2: FHT set hz_Ines desired-temp 17.0
2013.02.20 17:47:39 2: FS20 set ExtraSchalter on
8x------------------------------------------

Dietmar63

Hast Du Dir die neueste Version per update gezogen?
Es war ein Fehler enthalten, der aber eigentlich korrigiert sein sollte.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Setis

Im Verzeichnis \fhem\usr\share\fhem\FHEM\ ist die Datei 98_Heating_Control.pm vom 7.2.13. Klingt ziemlich aktuell.

Dietmar63

nein, das ist nicht sehr aktuell - gerade in der letzen Woche habe ich es mehrmals freigegeben:
http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/FHEM/98_Heating_Control.pm?view=log

Selbst die Dokumentation habe ich mehrfach verändert.
Entweder einen Komplettupdate von fhem durchführen oder das einzelne Modul ersetzen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Setis

Mein update geht nicht mehr. Egal was ich eingebe. "update stable full force" zum Beispiel geht nicht. Das Modul ändert sich nicht. Was kann ich tun?

Dietmar63

ich meine man muss nur "update" eingeben - ich hatte auch mal ein solches Problem mit dem update.
wenn das nicht klappt folgenden Link aufrufen:
http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/FHEM/98_Heating_Control.pm?view=log
und das Programm direkt über den Downloadlink herunterladen, ins fhem-Verzeichnis kopieren, reload 98_Heating_Control ausführen und im fhem-log prüfen ob alles ok ist.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Michael N.

Ich finde das Modul super. Es kann mir eine Menge "at" Regeln ersparen. Es gibt nur noch eins, was mich davon abhält, in meiner Konfiguration alle Regeln umzustellen. Für mich als MAX-Benutzer ist es unheimlich praktisch, für desired temperature die Werte "comfort" und "eco" benutzen zu können. Diese "symbolischen Werte" sind in den Ventilen gespeichert und auch für manuelles Umschalten direkt abrufbar. Manchmal justiere ich diese Werte nach. Wenn ich in den Regeln die Temperaturwerte verwenden muss, müsste ich dann auch alle Regeln wieder neu eingeben.

Wäre es nicht möglich, auch diese "Werte" zuzulassen?

- Michael