Servus,
ich habe für mich ein Programm geschrieben mit dem ich die von FHEM geloggten Daten direkt aus der MySQL Datenbank auslesen kann. Eine Option für SQLite ist auch eingebaut, kann diese aber nicht testen da ich keine SQLite Datenbank nutze. Getestet habe ich das Programm mit der MySQL Datenbank auf Win 10 und Linux (Debian 8.5).
Start unter Linux --> Rechtsklick --> Öffnen mit --> Benutzerdefinierte Befehlszeile --> "java -jar" oben eingeben (ohne Anführungszeichen)
Das Ganze ist natürlich Freeware und werbefrei ;)
Vorraussetzung:
- Java 8 muss installiert sein (läuft also überall dort wo auch Java läuft)
- MySQL Datenbank (lokal oder remote)
- SQLite Datenbank (geht nur lokal auf dem selben Rechner)
- wenn die MySQL Datenbank nicht auf dem selben Rechner liegt muss der externe Zugriff erlaubt sein, wie das dann geht steht hier: http://www.sysadminslife.com/linux/quicktipp-mysql-externer-zugriff-erlauben-bind-address/
Was kann das Programm bis jetzt
- liest die Hersteller (TYPE) aus der Tabelle current aus (1. DropDown oben links)
- listet die dazu gehörenden Geräte (DEVICES) auf (2. DropDown oben links)
- zeigt die aktuellen Werte aus der DB an (Tabelle unter DropDown)
- Intervallüberwachung eines ausgewählten Eintrages (große Tabelle rechts)
- grafische Anzeige eines Wertes in einem definierten Zeitraum (Grafik unten)
- Live Monitor
Am besten hier kurz das Video ansehen (die Bilder hier sind nicht mehr aktuell)
https://youtu.be/JmRYR8PLXfA
Das Ganze Design ist noch nicht final, habe ja gerade erst damit angefangen und spiele etwas rum ;)
Was ich noch umsetzen möchte ist eine Übersicht der einzelnen Räume mit den angeschlossenen Gerätschaften, sprich so in etwa wie das Dashboard, dazu fehlen mir aber noch die Ideen.
Funktionsweise:
Verbindung zur Datenbank konfigurieren
Menü --> Settings --> DB Settings
Database: Hier auswählen ob man zu einer MySQL oder SQLite Datenbank verbinden möchte, dem entsprechend dann halt die Angaben machen.
Bei SQLite gibt es nur eine Option welche nicht ausgegraut ist, dort den Path zur Datenbank einstellen. Eine SQLite Datenbank funktioniert nur lokal was auch extern eingebundene Festplatten beinhaltet.
Nachdem die Einstellungen für die DB erledigt sind können wir mit einem Klick auf "Read Data from DB" die Hersteller (Typen --> Spalte TYPE) aus der Datenbank auslesen.
Jetzt können wir im Dropdown unter dem Button "Read Data from DB" den Hersteller auswählen, das Dropdown darunter aktualisiert sich automatisch.
Hier wählen wir dann das gewünschte Device (Spalte DEVICE in der DB) aus und in der kleinen Tabelle darunter werden alle aktuellen Werte angezeigt.
Wenn wir jetzt in dieser Tabelle auf einen reinen Zahlenwert DOPPEL klicken, sprich die Spalte "Value" darf nur zahlen enthalten, dann wird unten im Programm ein Plot dieses Wertes im ausgewählten Zeitraum angezeigt. Standardmäßig ist dort immer der aktuelle Tag ausgewählt. Die beiden Dropdowns links sind das VON Datum und die beiden rechts das BIS Datum.
Wenn wir die Grafik neu erstellen möchten dann DOPPEL klicken wir wieder auf den Wert den wir plotten möchten.
Die rechte große Tabelle ist für das Monitoring eines Gerätes, links in den DropDowns wieder sein Gerät auswählen und dann auf "Start Monitoring" klicken. Jetzt werden die Werte in dem Zeitraum aktualisiert welchen man ausgewählt hat Mit einem Klick auf "Stop" wird das Monitoring wieder beendet.
Leider kann ich das Programm hier nicht anhängen, deswegen in der Dropbox
https://www.dropbox.com/s/0wy7biqjeczyksc/FHEM-Connector.jar?dl=1
Beschreibung geändert und Programm released.
Hier mal eine kleine Preview woran ich gerade arbeite (noch nicht im Download verfügbar)
- es wurden die Charts "ausgetauscht",
--> die schauen jetzt bei weitem besser aus,
--> man kann dort rein zoomen,
--> man kann die Charts speichern
--> man kann die Charts drucken
--> man kann die Charts in die Zwischenablage kopieren
--> man kann jetzt mehrere Werte plotten lassen
- Die Queries für die Charts können jetzt gespeichert werden so das man später kann schnell die gewünschten Werte auslesen kann
- geplant ist noch eine Emailfunktion wo man sich die Plots regelmäßig schicken lassen kann, hardgecodet funktioniert das schon, fehlt halt noch die Benutzerfreundlichkeit ^^
- des weiteren habe ich noch geplant über das Tool die DB bereinigen zu lassen, also alten Daten zu löschen, komplett für einen Hersteller, für ein Gerät oder nur für einen Wert. Natürlich in dem dann von euch einstellbaren Zeitraum
feine Sache :-)
Du kannst es doch auf auf einen svn zur Verfügung stellen ... ggfls sogar mit den Sourcen
Ein weiterer Punkt den ich gerade umsetze (siehe Screenshot), man kann sich seine Chartsübersicht selbst zusammen stellen und jeweils in der Größe ändern und auch frei anordnen, weiterhin geht zoom, druck und speichern
Klinke mich mal ein. Habe vor 1 Monat mit was ähnlichen begonnen. Hatte schon den Connector und das Filtern fertig und bin dann leider von ab gekommen.
Aber nun gibt es ja eine schöne fertige Lösung. Vielen Dank.
Im übrigen musste ich erstmal Java lernen um das hin zu bekommen, daher hat es bei mir Recht lange gedauert.
Grüße
Ja mit Java ging es mir nicht anders, und bin immer noch dabei, komme eigentlich aus dem Bereich PHP und MySQL aber zumindest letzteres spielt ja hierbei auch eine Rolle.
Wie hattest DU das geplant ? Auch direkt die MySQL DB auslesen oder auch die TextLogs ?
Rein nur die db auslesen. Textlogs haben mich nicht interessiert weil ich nur logdb habe.
mal ne blöde Frage:
Wie starte ich das JAR File unter OSX????
Ich bekomme immer die Meldung:
java -cp /Volumes/UserRaid/Users/ralf/Downloads/FHEM-Connector.jar
No Java runtime present, requesting install.
JRE habe ich natürlich installiert und auch die Hinweise aus dem Weg verfolgt :-(
No Java runtime present, requesting install.
sagt aus das Java nicht installiert ist, evtl musst Du es noch aktivieren ?
Danke für die Info ....
es klappt jetzt :-)
wenn ich das JDK und nicht nur die Runtime installiere klappt es :-)
Habe eine neue Testversion hoch geladen, hat sich jetzt einiges getan, am besten hier das Video gucken
https://youtu.be/JmRYR8PLXfA
Das Video ist kleine Meisterleistung und am Ende hin habe ich noch nen Bug entdeckt aber zum Testen bzw Spielen ist die Version OK
Was ich noch nicht umgesetzt habe ist der Email Versand, evtl auch noch Upload auf einen FTP
Löschen aus der DB geht auch noch nicht aber der Button ist schon mal da ;)
habs grade mal angetestet, IMHO seeeher schick - danke!