Release - FHEM Connector

Begonnen von Afterburner, 07 August 2016, 13:29:52

Vorheriges Thema - Nächstes Thema

Afterburner

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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Afterburner

Beschreibung geändert und Programm released.
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Afterburner

#2
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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Wuppi68

feine Sache :-)

Du kannst es doch auf auf einen svn zur Verfügung stellen ... ggfls sogar mit den Sourcen
FHEM unter Proxmox als VM

Afterburner

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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Afterburner

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 ?
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

CoolTux

Rein nur die db auslesen. Textlogs haben mich nicht interessiert weil ich nur logdb habe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wuppi68

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 :-(
FHEM unter Proxmox als VM

Afterburner

No Java runtime present, requesting install.


sagt aus das Java nicht installiert ist, evtl musst Du es noch aktivieren ?
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Wuppi68

Danke für die Info ....

es klappt jetzt :-)

wenn ich das JDK und nicht nur die Runtime installiere klappt es :-)
FHEM unter Proxmox als VM

Afterburner

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 ;)
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Tedious

habs grade mal angetestet, IMHO seeeher schick - danke!
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...