Fronthem - Eine FHEM-Schnittstelle für Frontends

Begonnen von Tropaion, 22 September 2014, 17:44:56

Vorheriges Thema - Nächstes Thema

herrmannj

Hi,

Mitstreiter: na klar! gerne.  :) Das "besondere" an smartVisu ist ja das es ein offenes System ist was es schon gibt. Wer möchte kann sich auf smartVisu.de zB ein komplettes Image für den raspi runter laden. Einfach auf sd reicht schon aus um Trockenübungen zu machen. Da ist dann zwar noch keine fhem Anbindung drin, aber es funktioniert gut genug um zu lernen oder zu testen.

So hab ich das auch gemacht, das reicht mir im Augenblick auch völlig aus um den Treiber und die Einbindung zu schreiben. Darüber "wie" man dann smartVisu Seiten an sich erstellt kann ich noch gar nicht viel sagen - da ist Forschungs- und Dokumentationsbedarf.  :)

Zu den Zertifikaten: ob der Plan die Praxis übersteht muss sich noch zeigen. Das sollte aber (so recherchiert) auf allen major Plattformen problemlos gehen, 'türlich auch ohne jailbreak.

Mac oder IP währen für die ersten Tests eine Alternative, beides lässt sich aber leicht fälschen und ist per se unsicher. Zertifikate hätte ich (wenn ich das eh von Grund auf mache) drin. Gleiches gilt für eine "innere" Sicherheit in Bezug auf "wer-darf-was", also nichts aufgesetztes sondern gleich in core verankert, das kommt mMn oft zu kurz. Dabei ist "meine Wohnung" für mich echt "sicherheitsrelevant".

Ist zwar komplizierter das so zu coden, (dauert länger). Denke aber das wird sich auszahlen.

vg
Jörg

Tropaion

Hi,

wenn ich es recht verstehe ist das dann Deviceübergreifen, oder?
Das heißt man braucht nicht für jede Device einen "Treiber".

Die "Trockenübungen" hätte ich sowieso gemacht, und ich denke nicht das sonderlich schwer wird. Und wenn doch, hab ich (wie schon erwähnt) deinen Bekannten der die SmartVisu im Einsatz hat, denn kann ich Notfalls auch fragen.

Meine wirkliche Frage war, ob du Hilfe benötgst (sofern ich dir helfen kann)?
Ich werde jetzt mal eine Anfrage stellen um die Doku zu bekommen.

mfg,
tropaion

herrmannj

Hi,

Genau. Damit es keine Verwirrungen gibt, smartvisu bekommt meinen Treiber für fhem und fhem bekommt ein Modul für smartvisu.

Dann wird schon das individuelle device (mein iphone, mein Tablett, das Tablett im Wohnzimmer, der Wecker...) einzeln angelegt. Bedeutet ja aber nicht das man dann immer bei Null startet. Man wird ein bestehendes device kopieren und anpassen.

Habe übrigens gestern nach deiner Frage nochmal gegoogelt, scheint so das ausgerechnet meine geliebte webviewcontrol keine Zertifikate kann, der Android Browser ab 4 kann es. Wird also auf beide Varianten rauslaufen, intern ip, wo geht Zertifikate.

Danke nochmal für das Hilfsangebot. Bei der direkten Einbindung fhem kannst du im Augenblick nicht viel tun. Da du PHP, js etc kannst könntest du aber tatsächlich innerhalb smartvisu viel machen. Um beispielsweise die webviewcontrol einzubinden wäre es wichtig ein passendes widget zu entwickeln.

Gilt auch für die Alarmanlagen Funktion. Beispiel, im Flur hängt dein Tablett, smartvisu läuft, licht, Heizung lassen sich einstellen. Alarmanlage kann aktiviert und deaktiviert werden. Damit jetzt nicht ein Einbrecher an dem Tablett die Alarmanlage deaktiviert wäre es sinnvoll wenn er dazu einen Pin eingeben muss und die Funktion dann auf dem Server freigegeben wird.

Da sehe ich super Ansätze um arbeitsteilig zu arbeiten, jede Hilfe ist wirklich sehr willkommen. Wobei das schon über Hilfe rausgeht, mit dem Thema Treiber und Anbindung bin ich erstmal ausgelastet. Der Teil smartvisu an sich ist noch komplett zu haben  ;)

Vg
Jörg

Tropaion

Hi,
wie wäre es denn wenn du das bei der Webviewcontroll über die App-ID machst? Zu dem ist die ja meines erachtens gedacht. Und diese ist auch frei einstellbar. Ich würde ja eig gerne mein altes iPad verwenden, weist du schon was, ob das mit denn Zertifikaten geht? Jailbreaken würde mich auch nicht stören.

Wegen dem Widget. Ich "kann" C, PHP & HTML, JS kann ich leider nicht, wäre aber mal interessant da reinzuschauen.
Meine PHP-Kenntnisse reichen für so ein Programm: http://www.yakuzasubs.at/Subtitle-Translator.php

Ich habe jedoch keine scheu mich in der Freizeit damit stärker zu beschäftigen.

mfg,
tropaion

herrmannj

Soweit sind wir noch nicht. Auch wenn Zertifikate nicht funktionieren werde ich für eine Lösung sorgen, Zertifikate werden sicherer sein.

Ipad: hängt vom ipad ab wegen Geschwindigkeit. Bei mir: altes iPhone 3GS sehr langsam, macht kein Spaß. Ipad2 geht gut. 4s, dito.

Webviewcontrol: besteht aus zwei Teilen. Die app, wird auf Android installiert und stellt den Rahmen. Die Inhalte (eben auch Funktion, mach Display an, spiele Lied ...) kommen von fhem. Wenn smartvisu das liefert braucht es ein Widget um die Funktionalität dort abzubilden.

Vg
Jörg

Tropaion

Hi,
wenn ich das richtig verstanden habe, braucht man für SmartVisu also ein Widget das die Inhalte im richtigen Format an den "Rahmen" übergibt.
Wie funktioniert denn die Inhaltsübertragung? Ist das wie ein Browser aufgebaut, das einfach ein mit PHP erzeugtes HTML-Dokument anzeigt?

mfg,
tropaion

herrmannj

Nein, lade und installiere smartvisu mal.

Alles browser basiert. Widgets reichern das um spezielle Funktionalität an. Browserseitig. Javascript. Gesteuert von fhem.

Das webviewcontrol von Dirk stellt einen zusätzlichen Browser auf Android zur Verfügung der gleichzeitig auch Hardware steuern kann. (Display, Sound, ... Auf dem Android)

Wenn also smartvisu im webviewcontrol läuft läuft es in einem Browser mit spezieller Funktionalität.

Vg
Jörg

Tropaion

Ok, dann habe ich es eh richtig verstanden.
Warscheinlich nur schlecht beschrieben/formuliert.
Ich werde heute Abend mal eine Testoberfläche einrichten mit XAMPP und mir das mal anschauen.

mfg,
tropaion

herrmannj

Zitat von: Tropaion am 08 Oktober 2014, 14:44:23
Ok, dann habe ich es eh richtig verstanden.
Warscheinlich nur schlecht beschrieben/formuliert.
Ich werde heute Abend mal eine Testoberfläche einrichten mit XAMPP und mir das mal anschauen.

mfg,
tropaion

Vermutlich (sorry). Nun passt es ja. Im Prinzip geht es also wirklich darum smartvisu an die speziellen Anforderungen der eigenen Installation anzupassen, bzw. eben um die Dinge (Widgets) zu erweitern die speziell für fhem sinnvoll sind.

Viele Sachen kann es ja schon von Haus aus. Vielleicht ja eine gute Chance in js plus jQuery einzusteigen - wer mag. Bedarf besteht  :)

Vg
Jörg


drdownload

Leider bin ich gerade bei den Strukturen von FHEM viel zu unbewandert um das sauber abbilden zu können, aber was ich bei der openhab integration in smartvisu gesehen habe ist der Aufbau immer, dass es einen Treiber gibt, der aber nur die Endpunkt-Infos zum jeweiligen System bereitstellt. Die eigentliche Logik ist dann in Modulen in den darunterliegenden Heim-Automatisierungs-Servern wie FHEM. Standard-Weg scheint für die Kommunikation derzeit Websocket zu sein oder?

Prinzipiell wäre es sogar denkbar die SmartVisu abseits von Perl zu integrieren zB mit Python eine Telnet-Verbindung aufbauen und dann einen Websockets-Server für smartvisu ;)

Prinzipiell bin ich der Meinung (v.a. nach den ganzen Diskussionen zu Homie, YAF, Dashboard etc.) dass das Web-Interface und damit der Familien/Breiten-Akzeptanz-Faktor das größte Manko von FHEM sind. (die vielzahl der unterstützten Systeme im Gegenzug der Vorteil)

Wenn wir hier die verstreuten Anstrengungen für fast jedes Modul ähnliche Elemente neu zu bauen (XBMC/MPD/Sonos/Squeezeserver oder die LED-Strip-Sachen) eher darin investieren, dass es ein wirklich gutes SmartVisu Widget und eine performante Einbindung in FHEM existiert ist allen geholfen.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

herrmannj

Ja genau. Die Anbindung realisiere ich über websockets, als eigenes Modul. Das

Zitat von: drdownload am 08 Oktober 2014, 15:37:10
Wenn wir hier die verstreuten Anstrengungen für fast jedes Modul ähnliche Elemente neu zu bauen (XBMC/MPD/Sonos/Squeezeserver oder die LED-Strip-Sachen) eher darin investieren, dass es ein wirklich gutes SmartVisu Widget ... existiert ist allen geholfen.

So sehe ich das auch. Genau darum kümmere ich mich aktuell jedoch nicht (hab ja mit dem Treiber genug zu tun). Wir haben ja hier oft user hier im Forum die sagen das sie gerne mitmachen würden aber nur PHP, HTML und js können. Genau das ist jetzt auch gefragt  ;)

Vg
Jörg

ntruchsess

Kann SmartVisu eigentlich mit mqtt reden? Dann könntet Ihr einfach das neue MQTT-modul zur Anbindung an fhem benutzten. Das habe im Prinzip genau für solche Dinge geschrieben.

Gruß,

Norbert
while (!asleep()) {sheep++};

herrmannj

vielen Dank. Ab Werk spricht meines Wissens nach smartVisu kein mqtt. Der Transportweg selber ist aber auch nicht so wild (vermutlich kann man smartVisu das beibringen).

Ein Websocketserver aufzusetzen war aber auch nicht wirklich schwer. Da ganze "rundherum" würde man auch bei mqtt aufsetzen müssen (zumindest wenn so wie von mir gewünscht  ;) ) Das betrifft zum einen die Mandantenfähigkeit (end-device werden seperat betrachtet und beschickt). Außerdem müssen die fhem states / readings in Formate umgesetzt werden die smartVisu versteht und erwartet. Besonderheiten zB für farbige LED, da werden die 3 RGB Werte getrennt gesendet, solche Sachen halt.

Das subscribe/publish haben die ähnlich umgesetzt, smartVisu fragt die subscription an und das fhem Modul soll das tracken und bedienen.

Den Websocketserver habe ich bei der Gelegenheit gleich forken lassen damit er etwas vom fhem Prozess entkoppelt ist, das ganze rundherum macht ja immer die Arbeit wenns was werden soll ...  8)

vg
Jörg

Tropaion

Hallo herrmannj,
wie läuft es denn?
Gibt es Neuigkeiten, wie läuft es mit denn Zertifikaten?
Lg,
Tropaion

herrmannj

Hi,

Wenn nicht was unvorhergesehenes passiert schaffen wir die für diese Woche geplante alpha.

Stand ist, websocket Server läuft, ist vom fhem Hauptprozessor entkoppelt und kann mit ihm kommunizieren. Nachrichten von smartVisu kommen an, Protokoll für einzelne items ist verstanden (Plots und Dialoge kommen später)

Zertifikate stehen auch noch zurück, die alpha wird die device an den ip Adressen unterscheiden.

Am device Modul arbeite ich, dort aktuell am Editor um die die fhem Reading / Events in die smartvisu Gad zu übersetzen. Das mit den Gad war übrigens viel weniger komplex als ich dachte. In der Definition von smartvisu ist das einfach freitext.

Vg
Jörg