Neue FHEM Statistik verfügbar unter fhem.de

Begonnen von Markus Bloch, 01 Juli 2017, 11:32:37

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

in den letzten Wochen/Monaten haben betateilchen und Ich an einer Überarbeitung der FHEM Statistik gearbeitet. Da wir an Grenzen mit der bestehenden Lösung gestoßen sind, haben wir uns für eine komplette Überarbeitung entschieden. Nun sind wir an dem Punkt angelangt, wo wir die neue Statistik euch vorstellen möchten:

https://fhem.de/stats/statistics.html

Folgende Hinweise zur neuen Statistik möchte ich hier nochmal explizit geben:


  • Die Statistik wird bei jedem Aufruf direkt generiert. Sie ist daher stets aktuell und zeigt den Zeitpunkt der letzten Übertragung an.
  • Es werden nur die Datensätze der letzten 12 Monate angezeigt.
  • Da die IP Auflösung zum entsprechenden Ort sehr ungenau ist (insbesondere bei Unity-Media) haben wir uns lediglich für eine Visualisierung der Bundesländer in Deutschland entschieden.
  • Es werden keine IP-Adressen in der Datenbank gespeichert sondern nur die regionale Zuordnung.
  • Die Europa- & Welt-Karte zeigt primär an, in welchen Ländern FHEM genutzt wird. Mit einem Mouse-Over kann man die exakten Zahlen einsehen. Eine farbliche Abstufung wurde bewusst entfernt.
  • Es gibt bewusst keinen Chart über die verwendete Architektur, da diese eine zu große Vielfalt ist und man nicht daraus ableiten kann, ob es sich um ein NAS/FritzBox/Raspberry/etc. handelt.
  • Die Modultabelle zeigt alle verwendeten Module an. Auch inoffizielle Module, die nicht über den Update-Mechanismus verteilt werden, werden angezeigt.
  • Es werden nur Module angezeigt, die auf mehr als einer Installation verwendet werden. Hintergrund ist, dass nicht jedes Modul was man gerade entwickelt/testet sofort hier aufgeführt werden soll.
  • Es werden die Anzahl der FHEM Installationen angezeigt, auf denen ein Modul eingesetzt wird, sowie die Anzahl der gesamten Definitionen auf allen Installationen. Sofern ein Modul verschiedene Gerätemodelle unterstützt (Attribut "model" / Reading "model" / Internal "MODEL"), wird die Anzahl der verschiedenen, bekannten Modelle angezeigt.
  • Bei Modulen, die Gerätemodelle unterscheiden, kann man durch Klick auf die Zahl die einzelnen Modelle mit deren Verteilung einsehen.
  • Da die Modelle erst mit dem neuen fheminfo-Befehl zu dem jeweiligen Modul zugeordnet werden, gibt es hier noch geringe Zahlen, da diese Infos erst seit wenigen Wochen via  fheminfo send" übertragen werden. In der bisherigen Statistik wurden die Modelle nicht mit dem zugehörigen Modul verknüpft, weswegen wir die Altdaten für die Modelle nicht verwenden können.
  • Die Modultabelle bietet eine Suchfunktion für Modulnamen, sowie Sortierung durch das Klicken auf die Spaltenüberschriften an.

Fragen/Anmerkungen/Wünsche können gerne in diesem Thread geäussert werden.

Viele Grüße

Markus

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

amenomade

Ich aktiviere das sofort. Wie macht man das schon? ;)

Ich finde die Modul Statistiken irgendwie... nicht brauchbar / uninteressant. Die Module, die kommen, sind nicht bedeutend. Kann man die gängliche Modulen wie FHEMWEB, at, autocreate, filelog, notify, usw nicht ausblenden? Die sind bei jeder standard Installation da.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

marvin78

Dass sie da sind, heißt nicht, das sie benutzt werden. Man kann FHEM tatsächlich noch flexibler verwenden, als viele denken.

Markus Bloch

Hallo Amenomade,

natürlich könnte man bestimmte Module aus der Statistik ausschließen. Wir haben uns erstmal für die Anzeige aller Module entschieden ohne irgendwelche Sonderbehandlungen.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

amenomade

#4
Naja, das ist allerdings unwichtig. Man kann durchblättern, um sinnige Informationen zu finden. Ich finde z.B. die HM Statistiken interessant. Anscheinend nutzen viele FHEM Benutzer Homematic ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

Du kannst die Tabelle ja auch nach den Spalten sortieren und die Anzahl der angezeigten Zeilen verändern.

Dann steht CUL_HM bereits an 12. Stelle - siehe Screenshot.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#6
Hier noch ein paar Zusatzinfos


  • Bitte an alle Entwickler: wir sollten uns im Developerbereich darüber abstimmen, wo künftig "model" Informationen einheitlich (!!!) im device abgelegt werden.
  • ab dem morgigen Update wird die Information übertragen, ob das System configDB oder fhem.cfg nutzt
  • Bei der Modulinformation zu configDB wird unter Models der verwendete Datenbanktyp (sqlite, mysql, ...) ausgewertet
  • Bei der Modulinformation zu DbLog wird unter Models der verwendete Datenbanktyp (sqlite, mysql, ...) ausgewertet
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

krikan

Danke.  :)

Anmerkung zum Reading model bei 10_ZWave.pm:
Der Readingwert "model" ist nicht "langzeitstabil", d.h. davon abhängig, wann das Device in FHEM per autocreate angelegt wurde.
Das Reading wird durch meine manuelle Zuordnung in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/openzwave_manufacturer_specific.xml anhand des vom Endgerät gelieferten Readingwertes von modelId mitbestimmt. Wenn ich noch keine Zuordnung in der genannten Datei vorgenommen habe, bekommt das Reading model den Hexwert vom Reading modelId.

model hatte bisher keine funktionale Bedeutung im Modul/FHEM und ich habe die Benennung immer laufend an neue Erkenntnisse und an openzwave als Hauptlieferant der Infos angepasst. Aktualisiert wird das Reading model nach der Ersteinrichtung des Devices durch autocreate regelmäßig nur, wenn der User manuell "get <device> model" abruft. Macht vermutlich keiner.

Führt dazu, das gleiche Geräte in der Statistik mehrfach aufgeführt sind:
FIBARO System FGWPE Wall Plug 1 2
FIBARO System FGWPE/F Wall Plug 1 1


Und von mir bisher noch nicht eingepflegte Geräte mit dem Hexwert von modelId angezeigt werden:
0x0175 0x0100 0x0102 1 1

Um das Problem zu verhindern, müsste die Statistik das Reading modelId nutzen. Das gibt es bei ordnungsgemäßer Device-Einrichtung immer und ändert sich nie. Der Hexwert ist aber recht nichtssagend.

Für mich ist der derzeitige Weg auch vollkommen ok.

betateilchen

Immer dieses Sonderlocken  :P Aber noch schlimmer als ZWave ist KNX...

Genau deshalb in meinem vorherigen Beitrag die Bitte, dass wir uns als Entwickler darüber abstimmen. Aber bitte nicht hier im Thread.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Amenophis86

Gefällt mir sehr gut. Vielen Dank für das Update und die Arbeit, die ihr reingesteckt habt.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

betateilchen

Vielleicht mal noch ein paar technische Details am Rande:

Die alte Datenbank...

  • ... hatte eine Größe von ca. 58 MB
  • ... bestand aus 5 Tabellen
  • ... mehrere der Tabellen hatten Strukturen mit mehreren Hundert Feldern
  • ... wurde bei jedem "neuen" Modul und/oder Modell strukturell komplett geändert (ALTER TABLE... für mehrere Tabellen)

Die neue Datenbank...

  • ... hat (inkl. der migrierten Daten aus der alten DB) aktuell eine Größe von ca. 8 MB
  • ... besteht nur noch aus einer einzigen Tabelle mit vier Feldern
  • ... muss bei neuen Modulen und/oder Modellen nicht mehr geändert werden

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

#11
Hallo,

vielen Dank für die Entwicklung und die Informationen, sehr gut und sehr interessant!

Kann man euch eigentlich irgendwie mal ein Teambier oder ne Chipstüte spendieren?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Zitat von: krikan am 01 Juli 2017, 12:53:01

Anmerkung zum Reading model bei 10_ZWave.pm:
...
Um das Problem zu verhindern, müsste die Statistik das Reading modelId nutzen.


Das habe ich jetzt mal so als Sonderbehandlung in 98_fheminfo.pm eingebaut. Gefallen tut mir das nicht, aber wenn es einer Verbesserung der Datenqualität dient, soll es erstmal so sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Zitat von: Otto123 am 01 Juli 2017, 13:24:29
Kann man euch eigentlich irgendwie mal ein Teambier oder ne Chipstüte spendieren?

Vielen Dank, Otto!

Ich bin vom 16.-23.09. in Leipzig. Da liese sich was machen ;)

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

98_fheminfo.pm zählt ab dem morgigen Update keine devices mehr, die als TEMPORARY oder VOLATILE gekennzeichnet sind.

Und "Global" wird nicht mehr als Modultyp ausgewertet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!