HMinfo: Unterschied zwischen den Versionen

Aus FHEMWiki
(Formatierungsvorschlag; an die Seitenersteller: bitte "wohlwollend prüfen" :-))
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''HMInfo''' ist eine Zusatzfunktion, die hilft, die Verwendung von [[HomeMatic]] in Fhem komfortabler zu machen. Darüber hinaus können diese Informationen natürlich auch zur Problembestimmung und bei der Erstellung von Konfigurationen hilfreich sein.
'''HMInfo''' ist ein Modul, das alle [[HomeMatic]] repräsentiert. Es bietet Funktionen zur Übersicht, Kontrolle, Archivierung  und, begrenzt, zur Programmierung der Homematic Komponenten. Somit soll es eine Hilfestellung bei Konfiguration und Fehlerbehandlung geben.  
   
   
== Definition ==  
== Definition ==  
Zeile 23: Zeile 23:
|}
|}


== Save Commands ==
== Anzeigen zur Übertragungssituation ==
Peers und Register mit saveConfig speichern:
===RSSI ===
set HM saveConfig [<typeFilter>] [<file>]  
  get HM rssi [<filter>]
Erzeugt eine Tabelle aller RSSI Werte.
  set hm clear [<filter>] rssi
setzt die RSSI Werte aller devices gemäß filter zurück. Eine neue Messung kann beginnen


Nur vollständige Elemente speichern:
===protoEvents ===
  getHM protoEvents [<filter>][short|long]
Es wird eine Tabelle mit allen wichtigen Ereignissen zur Datenübertragung erzeugt. Dies beinhaltet Wiederholungen sowie Übertragungsfehler.
short ist eine Fassung ohne Zeitstempel und lässt sich besser am Bildschirm darstellen.
Ausserdem kann man sehen, welche Abfragen noch in der queue sind, z.B. durch autoReadReg erzeugt.
Die Zustände aller für HM zuständigen IOs sind beinhaltet.
Alles in allen ist hier ein kompletter Überblick zur Kommunikation zu sehen. Insbesondere bei
  set hm clear [<filter>] Protocol
setzt die Protokol Einträge aller gemäß filter zurück. Kann gut vor einer Konfigurations-aktion genutzt werden um hinterher zu kontrollieren, ob Fehler aufgetreten sind.
 
===msgStat===
  set hm msgStat
Statistic der Übertragenen Messages insgesamt. Es gibt eine Tabelle über die letzten 24h und eine über die letzte Woche.
 
== Speichern von Daten ==
HMInfo speichert Konfigurationen der Geräte in Files. Mit dem Attribut configDir kann man eine directory festlegen, in die alles geschrieben wird.
 
=== saveConfig===
Peers und Register werden in ein file geschrieben. Die Daten kann man ggf. wieder in ein gerät oder ein Austauschgerät schreiben. Die Speicherung erfolgt kumulativ, man kann alles in ein File schreiben.
set HM saveConfig [<filter>] [<file>]
 
=== archConfig ===
Arbeiter prinzipiell wie saveConfig. Es werden jedoch nur vollständige Registersätze gespeichert.
  set HM archConfig [-a] [<file>]
  set HM archConfig [-a] [<file>]
Mit dem Attribut autoArchive kann man einstellen, dass automatisch nach einem erfolgreichen Lesen einer Device-Konfiguration diese Archiviert wird.
Das Speichern erfolgt auch hier Kumulativ, jedoch wird ab einer Filegröße von 1MB gepurged, also alles bis auf den neusten Eintrag für eine Entity gelöscht. 
Will man eine bekannt gute Konfiguration sicherm, muss man sich ggf. eine Kopie des Archivs machen - dies wird bei nächster Gelegenheit überschrieben.


Template erstellen:
Template erstellen:
  set HM saveConfig -f ^meinDevice$ <myTempalteFile>
  set HM saveConfig -f ^meinDevice$ <myTempalteFile>


== Aktionen ==
=== loadConfig ===
  set hm loadConfig [<filter>] [<filename>]
Liest die Registerwerte, welche für eine Entity in einem File gespeichert sind, zurück in die Readings. Sollten die Register schon in FHEM vorhanden sein, wird '''nicht''' überschrieben.
Sinn macht dies beispielsweise für remotes, welche nicht automatisch gelesen werden sollen. Man kann somit nach einem system-reboot die Register "rekonstruieren" und wieder darstellen.
Es liegt im ermessen des User, eine bekannt aktuelle Version der Register einzulesen.
=== purgeConfig===
  set hm purgeConfig [<filename>]
Löscht alle älteren Datensätze in einem File.
 
== Register setzen ==
Register von einem Peer kopieren:
Register von einem Peer kopieren:
  set HM cpRegs Licht1:peer7 Licht3:peer2
  set HM cpRegs Licht1:peer7 Licht3:peer2


== Info Commands ==
== web Einträge und Readings ==
Counter updaten:
Counter updaten:
  set HM update
  set HM update
Zeile 61: Zeile 99:


== Filter ==
== Filter ==
Filter dienen bei HMInfo dazu, ...?
Kommandos in HMInfo wirken auf alle HM Komponenten. Man kann dies mit Hilfe der Filter einschränken. Zum einen gibt es '''modelsFilter''', womit man nur devices, nur channels, nur virtuellen Entities bearbeiten kann
    set <name> <cmd> '''[-dcasevi]'''  [params]
        entities according to list will be processed"
          d - device  :include devices"
          c - channels :include channels"
          i - ignore  :include devices marked as ignore"
          v - virtual  :supress fhem virtual"
          p - physical :supress physical"
          a - aktor    :supress actor"
          s - sensor  :supress sensor"
          e - empty    :include results even if requested fields are empty"
 
Ein auf '''-d''' gefiltertes Kommando wird nur auf devices, nicht aber auf channels angewendet.  


Wo / wie werden diese Filter definiert?
Dann gibt es noch dem '''nameFilter''', mit dem man mittles regexp auf dem Namen der Entity gefiltert werden kann
  -f Rollo # alle Entities mit Rollo im Namen
  -f ^Rollo$ # nur Entity mit Namen "Rollo"
  -f Rollo$ # nur Entity deren Name auf Rollo endet


      ."\n ***footnote***"
Die Filter kann man kombinieren mit
          ."\n [<nameFilter>]   : only matiching names are processed - partial names are possible"
   -c -f Rollo # alle Kanäle mit Rollo im Namen
          ."\n [<modelsFilter>] : any match in the output are searched. "


      ."\n ======= typeFilter options: supress class of devices  ===="
Beispiel:  
          ."\n set <name> <cmd> [-dcasev] [-f <filter>] [params]"
Zeige mir die Parameter IODev und room der Devices mit Rollo im Namen
          ."\n      entities according to list will be processed"
  set hm param -d -f Rollo IODev room
          ."\n      d - device  :include devices"
          ."\n      c - channels :include channels"
          ."\n      i - ignore  :include devices marked as ignore"
          ."\n      v - virtual  :supress fhem virtual"
          ."\n      p - physical :supress physical"
          ."\n      a - aktor    :supress actor"
          ."\n      s - sensor  :supress sensor"
          ."\n      e - empty    :include results even if requested fields are empty"
          ."\n "
          ."\n    -f - filter  :regexp to filter entity names "
          ."\n "




== Quellen ==
=Attribute=
* '''configDir''' bietet die Möglichkeit ein directory zu definieren, in welches HMInfo Files ablegen und von welchem es die Files lesen wird.
* '''configFilename''' legt einen default namen fest, der bei save und archive genutzt wird.
* '''autoArchive ''' automatisch archivieren von vollständigen Konfigurationen.
= Quellen =
* Thread [http://forum.fhem.de/index.php?topic=11035.0 HMinfo] im Fhem Forum
* Thread [http://forum.fhem.de/index.php?topic=11035.0 HMinfo] im Fhem Forum
* Thread [http://forum.fhem.de/index.php/topic,20119.0.html HMINfo, Intention, Sinn und Zweck] im Fhem Forum
* Thread [http://forum.fhem.de/index.php/topic,20119.0.html HMINfo, Intention, Sinn und Zweck] im Fhem Forum

Version vom 29. März 2014, 19:30 Uhr

HMInfo ist ein Modul, das alle HomeMatic repräsentiert. Es bietet Funktionen zur Übersicht, Kontrolle, Archivierung und, begrenzt, zur Programmierung der Homematic Komponenten. Somit soll es eine Hilfestellung bei Konfiguration und Fehlerbehandlung geben.

Definition

HMInfo wird erstellt / angelegt mit dem Befehl

define HM HMinfo

Danach können alle Funktionen aufgelistet werden mit

set HM help

Integritätsprüfungen

Befehle, um die Gültigkeit von verschiedenen HomeMatic Eigenschaften zu überprüfen:

Erläuterungen Definition
Überprüfen, ob alle peerings auch beidseitig sind: set HM peerCheck
Überprüfen, ob alle register korrekt gelesen wurden: set HM regCheck
Kombination von peerCheck und regCheck set HM configCheck

Anzeigen zur Übertragungssituation

RSSI

  get HM rssi [<filter>]

Erzeugt eine Tabelle aller RSSI Werte.

 set hm clear [<filter>] rssi

setzt die RSSI Werte aller devices gemäß filter zurück. Eine neue Messung kann beginnen

protoEvents

 getHM protoEvents [<filter>][short|long]

Es wird eine Tabelle mit allen wichtigen Ereignissen zur Datenübertragung erzeugt. Dies beinhaltet Wiederholungen sowie Übertragungsfehler. short ist eine Fassung ohne Zeitstempel und lässt sich besser am Bildschirm darstellen. Ausserdem kann man sehen, welche Abfragen noch in der queue sind, z.B. durch autoReadReg erzeugt. Die Zustände aller für HM zuständigen IOs sind beinhaltet. Alles in allen ist hier ein kompletter Überblick zur Kommunikation zu sehen. Insbesondere bei

 set hm clear [<filter>] Protocol

setzt die Protokol Einträge aller gemäß filter zurück. Kann gut vor einer Konfigurations-aktion genutzt werden um hinterher zu kontrollieren, ob Fehler aufgetreten sind.

msgStat

 set hm msgStat

Statistic der Übertragenen Messages insgesamt. Es gibt eine Tabelle über die letzten 24h und eine über die letzte Woche.

Speichern von Daten

HMInfo speichert Konfigurationen der Geräte in Files. Mit dem Attribut configDir kann man eine directory festlegen, in die alles geschrieben wird.

saveConfig

Peers und Register werden in ein file geschrieben. Die Daten kann man ggf. wieder in ein gerät oder ein Austauschgerät schreiben. Die Speicherung erfolgt kumulativ, man kann alles in ein File schreiben.

set HM saveConfig [<filter>] [<file>] 

archConfig

Arbeiter prinzipiell wie saveConfig. Es werden jedoch nur vollständige Registersätze gespeichert.

set HM archConfig [-a] [<file>]

Mit dem Attribut autoArchive kann man einstellen, dass automatisch nach einem erfolgreichen Lesen einer Device-Konfiguration diese Archiviert wird. Das Speichern erfolgt auch hier Kumulativ, jedoch wird ab einer Filegröße von 1MB gepurged, also alles bis auf den neusten Eintrag für eine Entity gelöscht.

Will man eine bekannt gute Konfiguration sicherm, muss man sich ggf. eine Kopie des Archivs machen - dies wird bei nächster Gelegenheit überschrieben.

Template erstellen:

set HM saveConfig -f ^meinDevice$ <myTempalteFile>

loadConfig

 set hm loadConfig [<filter>] [<filename>] 

Liest die Registerwerte, welche für eine Entity in einem File gespeichert sind, zurück in die Readings. Sollten die Register schon in FHEM vorhanden sein, wird nicht überschrieben. Sinn macht dies beispielsweise für remotes, welche nicht automatisch gelesen werden sollen. Man kann somit nach einem system-reboot die Register "rekonstruieren" und wieder darstellen. Es liegt im ermessen des User, eine bekannt aktuelle Version der Register einzulesen.

purgeConfig

 set hm purgeConfig [<filename>] 

Löscht alle älteren Datensätze in einem File.

Register setzen

Register von einem Peer kopieren:

set HM cpRegs Licht1:peer7 Licht3:peer2

web Einträge und Readings

Counter updaten:

set HM update

Counter zurücksetzen:

set HM clear [<typeFilter>] [Protocol|readings|msgStat|register|rssi]

Register lesen:

set HM register [<typeFilter>]

Geräte Modelle anzeigen:

set HM models [<typeFilter>]

Übertragungsfehler/status anzeigen:

set HM protoEvents [<typeFilter>] [short|long]

Übersicht über alle peerings:

set HM peerXref [<typeFilter>] 

Übersicht über Emfangsstärken:

set HM rssi [<typeFilter>]


Filter

Kommandos in HMInfo wirken auf alle HM Komponenten. Man kann dies mit Hilfe der Filter einschränken. Zum einen gibt es modelsFilter, womit man nur devices, nur channels, nur virtuellen Entities bearbeiten kann

    set <name> <cmd> [-dcasevi]  [params]
       entities according to list will be processed"
         d - device   :include devices"
         c - channels :include channels"
         i - ignore   :include devices marked as ignore"
         v - virtual  :supress fhem virtual"
         p - physical :supress physical"
         a - aktor    :supress actor"
         s - sensor   :supress sensor"
         e - empty    :include results even if requested fields are empty"

Ein auf -d gefiltertes Kommando wird nur auf devices, nicht aber auf channels angewendet.

Dann gibt es noch dem nameFilter, mit dem man mittles regexp auf dem Namen der Entity gefiltert werden kann

 -f Rollo # alle Entities mit Rollo im Namen
 -f ^Rollo$ # nur Entity mit Namen "Rollo"
 -f Rollo$ # nur Entity deren Name auf Rollo endet

Die Filter kann man kombinieren mit

 -c -f Rollo # alle Kanäle mit Rollo im Namen

Beispiel: Zeige mir die Parameter IODev und room der Devices mit Rollo im Namen

 set hm param -d -f Rollo IODev room


Attribute

  • configDir bietet die Möglichkeit ein directory zu definieren, in welches HMInfo Files ablegen und von welchem es die Files lesen wird.
  • configFilename legt einen default namen fest, der bei save und archive genutzt wird.
  • autoArchive automatisch archivieren von vollständigen Konfigurationen.

Quellen