Bidirektionale Kommunikation mit FHEM aus Kotlin/JVM

Begonnen von HaPeRiebmann, 27 August 2019, 20:55:43

Vorheriges Thema - Nächstes Thema

HaPeRiebmann

Hallo zusammen,

ich hab mein FHEM System um diverse externe Schnittstellen erweitert und bin immer wieder an die Stelle gekommen an der ich persönlich mit Perl meine Probleme habe und nicht weiter gekommen bin. Nachdem ich selbst primär mit Java, Kotlin und Swift arbeite hatte ich nicht sehr große Lust mich in Perl einzuarbeiten. Deswegen habe ich irgendwann mal angefangen eine Java-basierte Extension basierend auf jsonlist2 und Websocket zu bauen.

Das hat sich dann ein wenig entwickelt und irgendwann wurde es Zeit, das ganze neu zu schreiben. Was dann als Fingerübung in Kotlin/JVM entstanden ist gefällt mir eigentlich ganz gut und ich hab es mal in ein GitHub Repo gepackt:
https://github.com/mtasior/FhemExtension

Die Idee dahinter ist, dass man ein FHEMWEB Device erstellt und eine JVM parallel hochzieht die dann über dieses Device mit FHEM kommuniziert. Devices, die in der Extension leben, werden in FHEM als dummy angelegt und aus der Extension mit Readings versorgt. So kann man recht komfortabel in Kotlin programmieren und FHEM als Backend für Logging und Verbindung zu den üblichen Haussystemen nutzen.

Ich selbst habe beispielsweise meinen Hausspeicher an die JVM angebunden und schreibe die Daten in FHEM. Der loggt das dann weg was ich brauche. Jedes neu gesetzte Reading triggert wie üblich eine Message die dann auch mit notifies genutzt werden kann. Wenn also die Einspeisung unter einen gewissen Wert sinkt dann schalte ich beispielsweise über die HM Schaltsteckdose einen Verbraucher aus.

Vielleicht kann das ja wer brauchen.

Viele Grüße
Michael

Raspberry Pi | Homematic Komponenten | Brennenstuhl Funksteckdosen | homebridge
http://fhemwidget.de.tasior.de
Slack: fhemwidget.slack.com
https://itunes.apple.com/us/app/fhem-widget-2/id1169530472?l=de&ls=1&mt=8