Hallo zusammen,
bei diesem Projekt handelt es sich um ein simples Webfrontend für FHEM. Es ist von jedem Gerät bedienbar und hat ein Responsive Layout.
Momentan ist es damit möglich, Geräte pro Raum anzeigen zu lassen und Geräte mit "on:off" und "up::down" States zu schalten.
Um die benötigten Daten zu erhalten wird per Telnet "xmllist" abgefragt und aufbereitet.
Features:
- Login Page mit Validation
- Bootstrap mit Untersützung für Mobile Devices
- Get/Set Device States
- List Rooms
- List Devices
- list Timers
- OS Informationen
Geplante Features:
- Set Timer
- Temperaturgraphen
- Wetteransicht
- Energie Monitor
Für dieses Webinterface wird benötigt:
- PHP 5.5+ (für mysqli benötigt)
- Apache oder nginx (empfohlen) Webserver
- MySQL Server (für die Menüstruktur)
- FHEM bereits eingerichtet
GitHubhttps://github.com/r3xx0n/Simple-FHEM-Frontend
Sieht nett aus,
Nur finde ich, dass ein zusärzlicher php Server den pi noch langsamer macht :/
Versuch dir doch ein neues Skin zu schreiben, das habe ich auch gemacht, es ist auch bei select style verfügbar. Man kann alleine mit css schon eine Menge machen ;)
Ich bin auch auf der Suche nach einer sehr schlichten GUI. Dein Ansatz sieht schon einmal sehr nett aus.
Ich würde mich als Tester anbieten!
Ich bin momentan dabei, dass ganze Design noch einmal zu überarbeiten und dieses gleich mit dem Bootstrap Framework umzusetzen.
Damit auch mit jedem Gerät ein perfektes Design vorhanden ist.
Die Mobile Version für Geräte unter 768px Breite ist auch schon nutzbar, jedoch erst einmal nur das Menü perfekt umgesetzt :-)
Edit: Sollte nun insgesamt gut auf Handys aussehen.
Kannst du ein Repository einrichten? (Cvs,git,svn?)
Zitat von: P.A.Trick am 12 Juni 2014, 02:03:40
Kannst du ein Repository einrichten? (Cvs,git,svn?)
Ja, das kann ich tun, eher, ich habe es schon eingerichtet.
Momentan bin ich aber noch mitten in der Programmierung :-)
Ich werde erste Releases machen, nachdem ich ein sicheres Login System
sowie Anpassungen auf die neusten Standards gemacht habe.
Momentan habe ich den MySQL Code noch mit den alten,
bald deprecated Funktionen in PHP erstellt und update das ganze die Tage auf mysqli, dann auch Objektorientiert.
Ich habe im Originalpost neue Screenshots hochgeladen.
Ah ok!
Nimm doch gleich adodb, damit habe ich immer gute Erfahrungen gemacht!
Zitat von: P.A.Trick am 14 Juni 2014, 14:34:28
Ah ok!
Nimm doch gleich adodb, damit habe ich immer gute Erfahrungen gemacht!
Ich denke nicht, dass man so etwas wie adodb braucht, der Syntax von mysqli ist einfach genug und kann objektorientiert oder prozedural programmiert werden.
Siehe http://www.php.net/manual/de/book.mysqli.php
Edit: Falls der Link zum GitHub Repository schon für dich interessant ist: https://github.com/r3xx0n/Simple-FHEM-Frontend
Urgs...ich bin doch ein git Noob :-)
Ein
git clone https://github.com/r3xx0n/Simple-FHEM-Frontend
bringt bei mir nur eine README ins Verzeichnis. Kannst du mir einen Tipp geben?
Zitat von: P.A.Trick am 14 Juni 2014, 16:32:31
Urgs...ich bin doch ein git Noob :-)
Ein
git clone https://github.com/r3xx0n/Simple-FHEM-Frontend
bringt bei mir nur eine README ins Verzeichnis. Kannst du mir einen Tipp geben?
Stimmt schon, ist ja auch noch nicht mehr vorhanden.
Dort werde ich erst in den nächsten Tagen ein Commit hochladen.
Das Update auf mysqli habe ich inzwischen schon fertig. Fehlt noch ein Login System.
Gut lasse es mich wissen, wenn du es hochgeladen hast!?
Kleiner Zwischenbericht:
- Font Awesome integriert (http://fortawesome.github.io/Font-Awesome/)
- Login System integriert mit BCrypt Verschlüsselung
- Verschönerungen durch Bootstrap
- Klasse integriert zum auslesen des Raspberry Pi ( Mem, CPU, Temperatur, ... )
Geplant:
- Graphen, Temperaturanzeigen
Die Farben im Webinterface erinnern mich ein wenig an die Telekom /t-online Seite ...
Keine Ahnung warum...
Zitat von: Jens_B am 17 Juni 2014, 17:48:35
Die Farben im Webinterface erinnern mich ein wenig an die Telekom /t-online Seite ...
Ist die Farbpalette von iOS 7
Edit:- BootStrapValidation bei der Login Form hinzugeüfgt (siehe http://r3xx0n.selfhost.eu/login.php)
Ist es eigentlich möglich das Interface wo anders zu hosten und nicht direkt auf der PI ?
Zitat von: nocomment am 18 Juni 2014, 02:31:48
Ist es eigentlich möglich das Interface wo anders zu hosten und nicht direkt auf der PI ?
Natürlich geht das, man muss lediglich in der config.inc.php für die Telnet Verbindung den FHEM Server angeben mit dem Telnet Port und schon funktioniert es.
Jedoch läuft es eigentlich recht schnell, wenn man nginx statt apache2 nimmt. Ich habe es auch auf dem Raspberry Pi und es läuft sehr schnell im Heimnetz.
Da bin ich ja mal gespannt! :D
Hast du schon etwas ins git Repository gelegt? *sabber* würde gerne testen :-)
Zitat von: P.A.Trick am 18 Juni 2014, 19:30:56
Hast du schon etwas ins git Repository gelegt? *sabber* würde gerne testen :-)
Ich schreibe gerade mehrere Funktionen für die Abfrage der "xmllist".
Momentan werden alte Funktionen aus myHCE genutzt, die ich noch einmal komplett neu schreibe,
damit hier auch keine Probleme entstehen, wenn ich den Sourcecode freigebe.
Danach muss ich noch ein Lizenzmodell finden, welches meiner Vorstellung entspricht.
Momentan habe ich beruflich bedingt wenig Zeit, weshalb es eher Mitte Juli sein wird,
bevor irgendwas in git landet.
Nun es muss ja keine fertige. Version sein als erste Alpha Verison, aber naja ich warte bis Mitte Juli. Gib einfach Bescheid wenn etwas "oben" ist!
Heute nochmal ein wenig weitergemacht:
- Alte Funktionen durch eigene ausgetauscht - check!
- WebCmd "on::off" und "up::down" momentan steuerbar, nicht definierte werden per "on::off" gesteuert.
- Timer werden im Frontend angezeigt
- FS20, HomeMatic, dummy Geräte und Intertechno werden momentan unterstützt bzw. aus der XML geparsed.
- neue Farbgebung :-)
- Struktur und Farbgebung jeweils eigene CSS Datei.
- Code extrem aufgeräumt, sehr viel gelöscht
Ich teste momentan noch das Datenbank Interface von FHEM ( DBlog und DBConfig ). Finde zwar die Datenbankstruktur richtig beschissen (wer hat sich das bitte ausgedacht ? Normalisierung ?!
Würde liebend gern eine neue Struktur planen, hab jedoch wiederum keinen Plan von Perl :-( ) aber dadurch könnte man über mein Frontend dann alles komplett konfigurieren, ohne überhaupt noch die FHEM Oberfläche zu nutzen.
Edit: Repository ist Online, bitte Vorschläge usw. unbedingt auf GitHub posten.
Erst einmal vielen Dank für das Füllen des GIT Repos und deiner Arbeit.
Ich habe es gerrade mal installiert.
Im Moment sind noch einige "bugs" enthalten, die die Nutzung zur Zeit nicht ermöglichen (siehe issues).
Ich habe allerdings ein Problem mit der Performance. Die Xmllist Abfrage dauert auf meinem QNAP Nas
schon arg lang und liefert zudem keine Ergebnisse...scheinbar ist in meiner XMLlist ein Fehler.
Kann mir jemand einen Tipp geben, wie ich den rausbekomme? XML Parser Frontend o.ä.?
EDIT:
<STATE key="display" value=" PL MOVIE " measured="2014-06-22 20:16:35"/>
Da scheint das XBMC Modul der Bösewicht zu sein!
Zitat von: P.A.Trick am 22 Juni 2014, 21:01:01
Ich habe allerdings ein Problem mit der Performance. Die Xmllist Abfrage dauert auf meinem QNAP Nas
schon arg lang und liefert zudem keine Ergebnisse...scheinbar ist in meiner XMLlist ein Fehler.
Kann mir jemand einen Tipp geben, wie ich den rausbekomme? XML Parser Frontend o.ä.?
Also ich habs auf nem Raspberry Pi laufen und dort dauert es nur Bruchteile von Sekunden zum aufbauen der Seiten.
Leider habe ich keinen zweiten Pi Zuhause, um alles vernünftig testen zu können. Ich programmiere sozusagen für mein produktiv-FHEM :-)
Wenn Sie mehr als 5 Sekunden dauert, wird er sich nicht mit dem Telnet Port von FHEM verbinden können.
Ja das ist das Problem....es funktioniert jetzt aber manchmal schlägt halt ein Timeout zu. Ich glaube
die komplette XMLList von fhem über telnet zu übertragen ist nicht wirklich die beste Idee. Eventuell
sollte man das cachen, denn sonst wird der Frontend für größere FHEM Installationen unbrauchbar.
Zitat von: P.A.Trick am 22 Juni 2014, 21:16:18
Es funktioniert jetzt aber manchmal schlägt halt ein Timeout zu.
Wie gesagt, auf nem ollen Rpi funktionierts selbst mit der Demo.cfg. Ich kann ja Testweise mal
30 Dummys eintragen um selber mal zu gucken. Aber ich denke, dass auch dann immer noch alles schnell läuft.
Was hast du Zuhause für ein Netz? Ich teste es hiermit:
- CISCO Small Business Switch 1Gbit/s
- Cat 6 Verkabelung
- PC mit SSD und 1Gbit/s Netzwerkkarte
- RPi mit leider recht langsamer Kingston 8GB SD Karte, hierdrauf nginx als Webserver und FHEM 5.5
Ich greife von meinem PC per Kabel und vom Handy per WLAN oder sogar Edge / 3G drauf zu und hatte noch nie einen
Time-out. Der PI war dabei entweder per Kabel oder per WLAN (TP-LINK) im Netz.
Was ich noch nicht gemacht habe, ist den Webserver auf einen anderen PC laufen zu lassen. Das nehme ich heute in Angriff und gucke, warum das so langsam ist.
Was man aber dagegen machen könnte, wäre die XMLLIST einmal abzurufen und in die mysql DB abzuspeichern unter einer Datenbankstruktur.
Diese aktualisiert nur die Stati beim ausführen oder wenn dies manuell gewünscht ist. Das finde ich aber eher unnütz, warum noch eine Instanz dazwischen?
ODER man nutzt die configDB.
Edit: Auf anderen PC getestet, keine Probleme mit dem Speed, eher schneller, da nicht auf langsamen Pi.
Nunja, bei mir auch Gbit Netzwerk aber halt ein qnap fuer fhem! Das generieren der xmlliste dauert bei mir teilweise mehr als 5 Sekunden! Ich habe halt mehr als 30 dummies definiert und ich denke es gibt einige Größere Installationen als die Demo.cfg!