conex.io – Eine Abstraktionsebene für FHEM (Web-Präsentation am 08.08.2017)

Begonnen von philipptrenz, 20 Juli 2017, 09:28:09

Vorheriges Thema - Nächstes Thema

philipptrenz

Liebe FHEM-Community,

wir sind ein studentisches Projekt namens conex.io und seit September 2016 entwickeln wir eine Abstraktionsebene für Hausautomatisierungsserver, um Brücken- und Frontend-Entwicklern eine Schnittstelle mit einheitlicher Gerätedarstellung bieten zu können.

Hierbei haben wir einen Prototyp für FHEM entwickelt. Die Abstraktion der FHEM-Geräte anhand ihrer Funktionalität erlöst Entwickler von der Hürde, Unterstützung für unzählige Module entwickeln und pflegen zu müssen. Es besteht zudem die Option der Code-Generierung für die Anbindung an unsere Schnittstelle für zahlreiche Programmiersprachen, was die Arbeit für Entwickler weiter erleichtert. Eine solche standardisierte Schnittstelle für FHEM bietet die Chance, den Markt und die Qualität an Apps anzuregen.
Für die Geräteabstraktion wurde ein dynamischer Mapping-Mechanismus entwickelt, welcher die so genannten "Module Descriptions" nutzt. Diese Module Descriptions enthalten die Vorschriften zur Generierung der Modul-abhängigen FHEM-Befehle zur Steuerung der Geräte wie auch das Format der Readings zur Standardisierung dieser Werte. Die Module Descriptions können mit einem Texteditor und ohne Programmierkenntnisse, auch auf die eigene FHEM-Installation, angepasst werden. Sogar die Unterstützung eines neuen FHEM-Moduls kann so ohne eine Zeile Code hinzugefügt werden und ist nicht mehr vom Frontend oder der App abhängig.

Entwickelt haben wir unsere Anwendung mit Hilfe des Spring-Frameworks in Java und sie wurde erfolgreich im Parallelbetrieb mit FHEM auf einem Raspberry Pi getestet. Trotz der Komplexität der Software ist die Installation und Anbindung an FHEM sehr einfach möglich, auch für unerfahrene FHEM-Nutzer.

Das Projekt ist als Open Source auf GitHub unter https://github.com/philipptrenz/conex.io veröffentlicht und zum Abschluss unseres Projektes wollen wir euch unsere Erkenntnisse und Fortschritte in einem Webstream am Dienstag, den 08. August 2017 um 20 Uhr präsentieren und hoffen auf reges Interesse!

Wir sind überzeugt, dass eine solche Abstraktionsebene einen hohen Mehrwert für FHEM darstellt, auch wenn unser bisheriges Projekt sicher noch nicht alle Bedürfnisse vollständig erfüllen kann. Da unser Projekt im August endet, möchten wir unsere Software an euch, die FHEM-Community, mit der Hoffnung übergeben, dass das Projekt weitergeführt wird. Daher bereiten wir momentan die Präsentation über den Webstream vor und arbeiten an einer Dokumentation, welche die Nutzung und Weiterentwicklung unseres Projektes erleichtert.

Wir hoffen euer Interesse geweckt zu haben und stehen für Fragen gerne zur Verfügung!

Christin Voscort, Marcel Wemmer, Ben Brausse, Timo Schwan und Philipp Trenz

Edits:

Auf mehrfache Nachfrage werden wir die Web-Präsentation zu wissenschaftlichen Zwecken mitschneiden und aufbereitet anschließend nicht-öffentlich zur Verfügung stellen.

Unsere "API-Visualisierung", welche die grundsätzliche Funktionsweise unseres Projektes und einer API generell erläutert, könnt ihr unter folgendem Link ansehen: https://youtu.be/y0niRo0W4Nc


ZUGANGSDATEN ZUR WEBPRÄSENTATION

Unter dem folgenden Link könnt ihr euch am Dienstag in unsere Webpräsentation einwählen: https://webconf.vc.dfn.de/conex-io/
Zum Login einfach einen frei wählbaren (aber bitte möglichst aussprechbaren) Namen und den Raum-Passcode conex17hsharz eingeben.

Die Webpräsentation nutzt die Konferenz-Software Adobe Connect, hierfür wird entweder aktiviertes Flash im Browser benötigt bzw. beim Einloggen ein AddIn zur Installation angeboten.
Es besteht die Möglichkeit, per Chat, Audio und auch per Webcam teilzunehmen. Selbstverständlich darf auch stillschweigend nur zugesehen werden ;)

RaspiLED

Hi,
grundsätzlich ein tolles Vorgehen von Euch! Braucht Ihr für die Demo Infrastruktur? Ich kann Euch WebEx und TelCo Daten anbieten!
Gruß Arnd

Gesendet von meinem SM-G800F mit Tapatalk

Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

philipptrenz

Zitat von: RaspiLED am 20 Juli 2017, 09:46:43
Hi,
grundsätzlich ein tolles Vorgehen von Euch! Braucht Ihr für die Demo Infrastruktur? Ich kann Euch WebEx und TelCo Daten anbieten!
Gruß Arnd

Hi Arnd, wir haben an der Hochschule Adobe Connect, was wir nutzen wollen. Trotzdem vielen Dank dir!

Den Zugang werden wir dann ein paar Tage vor der Präsentation veröffentlichen, wenn alles steht.

Ranseyer

Ein gute+zukunftssichere, einfache und schicke GUI für FHEM vermisse ich. Mal sehen ob ich aus dem Ausland reinsehen kann. Wirds auch eine Aufzeichnung geben ?
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

philipptrenz

Zitat von: Ranseyer am 24 Juli 2017, 20:41:26
Ein gute+zukunftssichere, einfache und schicke GUI für FHEM vermisse ich. Mal sehen ob ich aus dem Ausland reinsehen kann. Wirds auch eine Aufzeichnung geben ?

Hey Ranseyer,

was Funktionalität angeht ist FHEMWEB sicher mit Abstand das beste, was es so an GUIs für FHEM gibt. Aber hübsch und intuitiv (in der Bedienung) ist natürlich etwas anderes ;) Die Schwierigkeit ist wirklich, Funktionalität modulübergreifend zu bündeln, um ein einheitliches Look-and-Feel anbieten zu können. Und genau da setzen wir ja an!

Wir planen auf jeden Fall den Webcast aufzuzeichnen. Und wenn Interesse besteht, können wir das Material auch zur Verfügung stellen.

Beste Grüße,
Philipp

PeMue

Hallo Phillip,

Zitat von: philipptrenz am 20 Juli 2017, 09:28:09
Das Projekt ist als Open Source auf GitHub unter https://github.com/philipptrenz/conex.io veröffentlicht und zum Abschluss unseres Projektes wollen wir euch unsere Erkenntnisse und Fortschritte in einem Webstream am Dienstag, den 08. August 2017 um 20 Uhr präsentieren und hoffen auf reges Interesse!
wenn ich im Urlaub eine halbwegs vernünftige Internetverbindung habe, schaue ich bei Euch rein.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

philipptrenz

Zitat von: PeMue am 24 Juli 2017, 22:04:36
Hallo Phillip,
wenn ich im Urlaub eine halbwegs vernünftige Internetverbindung habe, schaue ich bei Euch rein.

Gruß Peter

Hi Peter,

super, das freut uns sehr! Gerade die Developer wollen wir natürlich ansprechen ;)

Beste Grüße,
Philipp

PeMue

Zitat von: philipptrenz am 24 Juli 2017, 22:49:44
Gerade die Developer wollen wir natürlich ansprechen ;)
Hm, ich bin aber eher für die Hardware zuständig  ;D ;D ;D

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

JoWiemann

Hallo,

bin jetzt mal durch die Installationsanleitung gegangen und habe die Schritte auf meinem RPi nachvollzogen.

Anbei ein paar Anmerkungen:
- bitte die Anleitungen für die Installationen von Java8 und Maven hinzufügen. Oder wenigstens Links setzen.
- für Fhem / Linux Anfänger wenig geeignet. Besser wäre ein Packet anzunieten.

Ach ja, und man braucht Geduld für das Kompilieren.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

justme1968

eure beschreibung macht neugierig. das finde ich gut.

ich bin aber leider im august im urlaub. würde mir das ganze aber gerne danach ansehen. es wäre also schön wenn das möglich ist.

eine anmerkung bzw. frage vorweg: ein solches geräte unabhängiges konzept wäre doch eigentlich am besten (zumindest zum teil) direkt in fhem aufgehoben. so das es potentiell direkt mit ausgeliefert und per update verteilt werden kann. es gibt ja innerhalb von fhem auch schon ansätze abstraktere schnittstellen anzubieten. wie z.b. das units konzept, die mappings die für alexa und siri verwendet werden oder ein node/websocket interface. das ganze in einen extra dienst in einer anderen sprache mit zusätzlichen abhängigkeiten zu stecken ist nicht unbedingt ideal. gibt es einen grund (ausser das es studien projekt ist) komplett neu anzufangen und nichts existierendes zu verbessern und wieder zu verwenden?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

philipptrenz

Zitat von: JoWiemann am 25 Juli 2017, 21:20:56
Hallo,

bin jetzt mal durch die Installationsanleitung gegangen und habe die Schritte auf meinem RPi nachvollzogen.

Anbei ein paar Anmerkungen:
- bitte die Anleitungen für die Installationen von Java8 und Maven hinzufügen. Oder wenigstens Links setzen.
- für Fhem / Linux Anfänger wenig geeignet. Besser wäre ein Packet anzunieten.

Ach ja, und man braucht Geduld für das Kompilieren.

Hi Jörg,

vielen Dank für dein Feedback, das ist mehr als wir uns bisher erhofft haben! ;)
Dass die Installation, gerade für weniger erfahrene Linux- oder FHEM-Nutzer, noch nicht ganz intuitiv ist, haben wir uns schon gedacht. Wir werden die Installationsanleitung auf jeden Fall mit deinen Hinweisen entsprechend erweitern.
Ein apt-Package für den Pi wäre natürlich optimal für eine komfortable Installation, nachdem die Software aber noch den Prototyp-Status hat, wäre es aus vermutlich noch etwas früh, ein eigenes Paket dafür anzulegen. Aber wir nehmen es auf jeden Fall in die Todo-Liste mit auf!

Einen Hinweis, dass es eine Weile dauert fügen wir hinzu!

Nochmals vielen Dank dir!

philipptrenz

Zitat von: justme1968 am 25 Juli 2017, 21:34:25
eure beschreibung macht neugierig. das finde ich gut.

ich bin aber leider im august im urlaub. würde mir das ganze aber gerne danach ansehen. es wäre also schön wenn das möglich ist.

eine anmerkung bzw. frage vorweg: ein solches geräte unabhängiges konzept wäre doch eigentlich am besten (zumindest zum teil) direkt in fhem aufgehoben. so das es potentiell direkt mit ausgeliefert und per update verteilt werden kann. es gibt ja innerhalb von fhem auch schon ansätze abstraktere schnittstellen anzubieten. wie z.b. das units konzept, die mappings die für alexa und siri verwendet werden oder ein node/websocket interface. das ganze in einen extra dienst in einer anderen sprache mit zusätzlichen abhängigkeiten zu stecken ist nicht unbedingt ideal. gibt es einen grund (ausser das es studien projekt ist) komplett neu anzufangen und nichts existierendes zu verbessern und wieder zu verwenden?

Hi Andre,

nachdem die Nachfrage da ist, werden wir das Material auf jeden Fall zur Verfügung stellen!

Außer dem Studienprojekt sehe ich (wenn man ordentlich Perl-affin ist) keinen Hinderungsgrund, so ein Konzept direkt in FHEM zu implementieren. Unser Studium ist auf Java ausgerichtet und Ausrichtung des Projekts war es auch, uns im Java- / Java EE-Bereich voran zu bringen. Nicht zuletzt war auch das Ziel, dass das Konzept allgemein auf Hausautomatisierungsserver anwendbar ist, nicht nur auf FHEM. Entsprechend stand die Sprache fest.
Letztlich ist es aber durchaus möglich, sowohl die API mit dem Abstraktionsprinzip als auch das Mapping direkt in Perl zu übertragen. Nachdem wir wie gesagt zeitlich kaum noch die Möglichkeit haben werden das Projekt weiter zu betreuen, sind wir durchaus für jede Art der Weiterführung offen!

philipptrenz

Um unsere am Dienstag statt findende Webpräsentation nochmals anzuteasern, wollen wir unsere "API-Visualisierung" mit euch teilen.

Am 10. Juni 2017 fand an unserer Hochschule, der Hochschule Harz, der Tag der offenen Türe statt. Wir haben diese Chance genutzt, um den Besuchern die Möglichkeit zu geben, unsere Software mit einer Demo-App für Android auszuprobieren. Außerdem haben wir mit einem Animationsfilm die Funktionsweise unserer Anwendung und die grundsätzliche Funktion einer API erläutert. Dieses Video könnt ihr, zur Einstimmung auf unsere Präsentation, unter folgendem Link ansehen:

https://youtu.be/y0niRo0W4Nc

Beste Grüße und bis Dienstag!

ManOki

Hallo,

könnt ihr vllt. ein paar Screenshots vorab online stellen? Ich möchte nicht den ganzen Aufwand der Installation betreiben, aber mich würde interessieren, wie das Ergebnis aussieht. Eine Aufzeichnung der Präsentation fände ich ebenfalls klasse! Wie/wo genau wird denn der Live-Stream am Dienstag erfolgen?

Vielen Dank

ManOki

philipptrenz

Zitat von: ManOki am 04 August 2017, 13:22:30
Hallo,

könnt ihr vllt. ein paar Screenshots vorab online stellen? Ich möchte nicht den ganzen Aufwand der Installation betreiben, aber mich würde interessieren, wie das Ergebnis aussieht. Eine Aufzeichnung der Präsentation fände ich ebenfalls klasse! Wie/wo genau wird denn der Live-Stream am Dienstag erfolgen?

Vielen Dank

ManOki

Hi ManOki,

nachdem unsere Software die Lücke zwischen Apps/Weboberflächen/Sprachassistenten und FHEM füllt, gibt es von der Funktionalität wenig zu sehen.
Aber ich lade, damit man sich etwas mehr vorstellen kann, einen Screenshot von den Logs der Anwendung, der interaktiven API-Doku und auch ein paar Screenshots unserer Demo-App, die wir für Android entwickelt haben, hoch. Ich hoffe das hilft dir weiter!

Die Zugangsdaten zum Livestream habe ich ganz oben mittlerweile ergänzt.

Beste Grüße,
Philipp