fhem.pl Aenderungen

Begonnen von rudolfkoenig, 03 Januar 2013, 14:49:49

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Ich habe ein paar zentrale Aenderungen durchgefuehrt, deswegen die Nachricht hier:

- folgende Module auf die readingsUpdate Funktionen umgestellt, d.h. die
  event-on-.* Attribute ab jetzt verwendbar:
    FS20 CUL_WS HMS CUL_EM CUL_TX EnOcean ZWave

- stateFormat, zusaetzlicher Attribut fuer alle readingsUpdate Module:
    Ändert den Gerätestatus, dies ist z.Bsp. in der Ausgabe des list Kommandos
    zu sehen, oder in der Raumübersicht von FHEMWEB. Falls nicht gesetzt, dann
    wird das state Reading übernommen (Verhalten wie bisher).
    Falls gesetzt, werden alle Wörter im Wert des Attributes durch das
    entsprechende Reading des Gerätes ersetzt (soweit vorhanden). Falls der
    Wert in {} eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet.
    Die Auswertung passiert bei jeder Änderung eines Readings.
    Beispiel:
      attr myFht stateFormat Temp:measured-temp Ventil:actuator
  Ob ein Modul die readingsUpdate Attribute unterstuetzt, sieht man in commandref.html, im Abschnitt Attribute

- eventMap fix fuer read-only devices
- eventMap erlaubt jetzt < or << als Uebersetzung
- FileLog sollte etwas seltener syncen (einmal per EventBlock, nicht pro Zeile), damit ggf. schneller.

Ich habe zwar vieles ausgiebig getestet, uebernehme aber keine vollstaendige Funktions-Garantie :)

rudolfkoenig

Weiteres event- Attribut eingefuehrt:

event-min-interval

Syntax:
attr dev event-min-interval reading1:int1,reading2:int2,...

Bedeutung:
falls einer der readingX regexps zutrifft, dann wird nur dann ein event generiert, falls das letzte event der gleichen Sorte mindestens intX Sekunden zurueckliegt.

Wozu:
Um die von FRITZ:DECT alle 10 Sekunden gemeldenten Stromwerte etwas seltener zu protokollieren.

rudolfkoenig

Das Befehl updatefhem wird ab sofort stillschweigend und automatisch zu "update" konvertiert, um Leuten, die alte Dokus lesen, zu helfen.

rudolfkoenig

Es gibt ein neues Befehl version, um die SVN-Versioninformation der unterschiedlichen Module einfach ausgeben zu koennen.
Beispielausgabe:

# $Id: fhem.pl 3405 2013-07-11 19:46:39Z rudolfkoenig $
# $Id: 00_CUL.pm 3237 2013-06-01 17:15:59Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 3378 2013-07-02 16:57:27Z martinp876 $

rudolfkoenig

Das bisherige loglevel wird durch das verbose Attribut ersetzt mit der gleichen Semantik wie das bisherige global verbose Attribut: Grosse Werte (5) bedeuten viel Ausgaben, kleine (1) wenig.

Das Attribut kann man zwar jetzt schon fuer alle Geraete setzen, die noch nicht umgestellten Module (die in der Doku noch auf loglevel verweisen) befolgen dies aber noch nicht. Ich hoffe darauf, dass dieser Zustand sich aber schnell aendert, ich habe die etwa 50 von mir betreuten Module schon umgestellt.

rudolfkoenig

Windows:

T.E. hat Routinen fuer die Installation von fhem als Windows Service spendiert.

Wie man FHEM unter Windows ohne Registry Eintraege (z.Bsp. auf einem USB Disk auf dem Firmen-Laptop :) installiert und es anschliesend optional(!) als Service registriert ist in docs/HOWTO_Windows.txt beschrieben.

Wenn man FHEM als Service registriert hat, dann klappt auch ein "shutdown restart", ohne Service habe ich das aber nicht hingekriegt: wenn jemand ein Tipp fuer mich hat, dann uebernehme ich das gerne.

rudolfkoenig

Um das Leben fuer Anfaenger leichter zu machen, habe ich fuer at, notify und Watchdog ein disabledForIntervals Attribut eingefuegt.
Diese Funktion koennen auch andere Module einfach verwenden, indem sie die in fhem.pl definierte IsDisabled($name) aufrufen, sie prueft zusaetzlich auch das disabled Attribut. Diese Funktion gibt es seit einem Jahr, wurde aber von keinem Modul verwendet...

betateilchen

#7
fhem.pl stellt ab sofort (Verteilung per update ab morgen) in der Variablen $fhem_started den Zeitpunkt (epoche) des letzten fhem-Startes (genauer: des letzten global:INITIALIZED) bereit. Aus dieser Variablen kann beispielsweise eine upTime berechnet werden:

my $up = time - $fhem_started;

Als Ergebnis bekommt man die Laufzeit von fhem in Sekunden.

Nebenbemerkung: 98_fheminfo.pm verwendet diese Variable, um upTime als neue Information anzuzeigen.

(http://up.picr.de/17795965bj.png)

http://forum.fhem.de/index.php/topic,21933.0.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Das # Zeichen wird ab sofort nur am Anfang der Zeile in einer fhem.cfg als Kommentarzeichen interpretiert.

Diese Aenderung war notwendig, damit die in CSS ueblichen Farben-Angaben (#RGB) auch als Attribut abgespeichert werden koennen.

Urspruenglich sollte sich das # Zeichen in fhem.cfg so verhalten, wie in perl selbst, d.h. alles ab # bis Ende der Zeile ist Kommentar. Die Aenderung sollte nur wenige Anwender betreffen, da beim Speichern (save) solche Kommentare verloren gehen.