Hauptmenü

FHEM App - Manage your Home

Begonnen von Gisbert, 12 März 2021, 15:05:20

Vorheriges Thema - Nächstes Thema

jemu75

Zitat von: tomspatz am 28 März 2021, 14:22:21
In fhem werden ja Teil angelegten deevices automatisch Gruppen und oder Räume zu geordnet.
Das ergibt es dann unter fhemapp quasi doppelt.
Ist es möglich bei den in fhemapp angelegten devices bestimmte Gruppen oder Raum zugehörigkeit zu entfernen?

Das Thema bereitet mir nach wie vor etwas Sorgen. Ich hole dazu kurz aus.  ;)
Sinn von FHEMApp ist es, schnell eine intuitiv bedienebare Oberfläche zu erzeugen. Die Konfiguration soll dabei direkt in FHEM erfolgen. Zudem wollte ich bewusst keine "Parallelwelt" zu FHEM aufbauen, da es hier schon viele nützliche Struktur-Attribute (wie alias, room oder group) gibt. Weiterhin bin ich davon ausgegangen, dass viele User bereits Gliederungen über diese FHEM Attribute geschaffen haben.

Da von mehreren Seiten der Wunsch bestand, die Gliederungen room bzw. group innerhalb von appOptions separat zuzuordnen, habe ich das dort eingebaut. Wenn man sich nun entscheidet, die Parameter room bzw. group über appOptions zu setzen, dann sollte man das konsequent für alle Devices durchziehen. Ich würde abraten, beide Strukturen (FHEM-Attribute room bzw. group und appOptions Parameter room bzw. group) zu mischen. Das wird schwer zu managen und bildet zudem eine "Stolperfalle" wenn man mal Fehler sucht.

Zusammengefasst: Alles was in FHEMApp angezeigt wird, kommt letztlich aus FHEM und kann auch von dort aus konfiguriert werden. Ich hoffe das beantwortet deine Frage? Wenn nicht melde dich gern noch mal.  :)

tomspatz

ZitatACHTUNG: sichert bitte euren Ordner ../fhemapp/cfg/ bevor ihr das neue Release auf euren Web-Server kopiert und fügt das danach dort wieder ein. Ansonsten geht eure Grundkonfiguration und eigene Templates verloren.

Die eigenen Tempates werden doch nicht überschrieben ??

tomspatz

#227
ZitatZusammengefasst: Alles was in FHEMApp angezeigt wird, kommt letztlich aus FHEM und kann auch von dort aus konfiguriert werden. Ich hoffe das beantwortet deine Frage? Wenn nicht melde dich gern noch mal. 

Den Ansatz finde ich ja auch TOP, es lässt sich ja auch schon vieles umsetzten, dafür das das Projekt noch recht frisch ist RESPEKT.

Was ich meine ist, lasse das "fertige" fhem vorweg und nutze FHEM App als frontend für beobachten und "einfache" Sachen schalten regeln. Halt Licht und Rollo und Thermostate bei Bedarf.
Es erscheinen dabei allerdings in FHEM App alle Raüme die schon unter fhem eingerichtet sind.
Beispiel, ich lege mit einen Raum an wo alle Lampen drin sind "Licht alle". Jetzt nehme ich eine davon ins FHEM App und zwar die aus dem "Kinderzimmer". Dann ergiben sich unter FHEM App zwei Räume, Bereiche, (wobei ich direkt hier fragen kann mann die Vorgegebenen "Gruppen" und "Bereiche" in FHEM App umbenennen kann?)
Eigentlich ist aber nur das "Kinderzimmer" nötig. Somit würde ich unter FHEM App "Licht alle" verstecken wollen.

Ich hoffe das ich das einigermasen verständlich erörtert habe  :-\

gvzdus

Eine Frage zum Bauen (hatte ich ja kurz oben beschrieben)

Compiled successfully in 2575780ms

Äh. Gemessen auf einem einjährigen Macbook. Gibt es so was wie "TurboVUE von Borland" oder einen Trick?

jemu75

Zitat von: tomspatz am 28 März 2021, 16:47:49
Den Ansatz finde ich ja auch TOP, es lässt sich ja auch schon vieles umsetzten, dafür das das Projekt noch recht frisch ist RESPEKT.

Was ich meine ist, lasse das "fertige" fhem vorweg und nutze FHEM App als frontend für beobachten und "einfache" Sachen schalten regeln. Halt Licht und Rollo und Thermostate bei Bedarf.
Es erscheinen dabei allerdings in FHEM App alle Raüme die schon unter fhem eingerichtet sind.
Beispiel, ich lege mit einen Raum an wo alle Lampen drin sind "Licht alle". Jetzt nehme ich eine davon ins FHEM App und zwar die aus dem "Kinderzimmer". Dann ergiben sich unter FHEM App zwei Räume, Bereiche, (wobei ich direkt hier fragen kann mann die Vorgegebenen "Gruppen" und "Bereiche" in FHEM App umbenennen kann?)
Eigentlich ist aber nur das "Kinderzimmer" nötig. Somit würde ich unter FHEM App "Licht alle" verstecken wollen.

Ich hoffe das ich das einigermasen verständlich erörtert habe  :-\

Ja, deinen Ansatz kann ich nachvollziehen. Ich glaube jetzt sogar noch einen "Bug" gefunden zu haben. Meine Vermutung ist, dass FHEMApp bei Verwendung der Parameter room bzw. group in appOptions zusätzlich noch die FHEM Attribute room bzw. group mit in die Navigation übernimmt. Ich glaube das meinst du - richtig? Das kann ich lösen. ;)

jemu75

#230
Zitat von: gvzdus am 28 März 2021, 17:34:55
Eine Frage zum Bauen (hatte ich ja kurz oben beschrieben)

Compiled successfully in 2575780ms

Äh. Gemessen auf einem einjährigen Macbook. Gibt es so was wie "TurboVUE von Borland" oder einen Trick?

Opps, das ist aber extrem lang. Ich habe zum Entwickeln die vue cli installiert. Das build dauert ca. 30sek. auf einem Huawei Matebook (also keine große Maschine)
Die Installation der benötigen Programme nimmt einmalig aber sicher mal etwas Zeit in Anspruch. (nodejs, vue, vue cli, vuetify, vue router, apex charts) Aber mehr als 5 Minuten hat das (soweit ich mich erinnere) unter Ubuntu 20 auf dem Matebook auch nicht gedauert. Und das macht man ja auch nur einmal.

jemu75

Zitat von: tomspatz am 28 März 2021, 16:38:08
Die eigenen Tempates werden doch nicht überschrieben ??

Kommt darauf an, wo du die abgelegt hast. (alt in der config.json oder neu in Form separater Dateien im Ordner cfg)

tomspatz

ZitatMeine Vermutung ist, dass FHEMApp bei Verwendung der Parameter room bzw. group in appOptions zusätzlich noch die FHEM Attribute room bzw. group mit in die Navigation übernimmt. Ich glaube das meinst du - richtig? Das kann ich lösen.

neeeee,wir nehmen mal  ein zWave device welches im fhem, im "Kinderzimmer" ist. fhem macht AUTOMATISCH für z.B. Zwave devices eine Raum ZWave.

Letzt konfiguriere ich das device für FHEMApp. Das Device ist dann unter Bereiche -> Kinderzimmer UND ZWave zu finden. SO wiet ist es OK genauso wie du es programmiert hast.
In der fhemweb finde ich das auch TOLL einfach für die Übersicht und zum suchen etc.
FHEMApp soll aber NUR anschauen und Schalten sein, halt für "Benutzer" die nicht mehr machen sollen sehen sollen die es nicht interresiert.
Deshalb würde ich gerne diesen Raum im FHEMApp "verstecken".

Ähnlich ist es bei den Gruppen auch.



jemu75

Zitat von: Risiko am 28 März 2021, 09:16:24
Hallo jemu75,

kein Problem. Nochmal Respekt für das Engagement und tolle Leistung.
Ich habe noch ein paar generelle doofe Fragen:


  • Was waren deine Einschränkungen bei FTUI (V 2 oder 3) und was hat dich bewegt dieses Projekt zu starten (kam im ersten Post bei mit nicht an)?
  • Wieso stellst du den Quellcode nur in so einer vercrypteten Version zur Verfügung? Da kann dir fast keiner helfen.
  • Kannst du schon grob abschätzen, wo die Reise hingeht - Stichwort Flexibilität in der Gestaltung
  • Wegen der Komplexität und der nicht einheitlichen Namensgebung in FHEM, wird man für jedes Gerät ein eigenes Template benötigen (konnte kein vorhandenes nehmen) - oder siehst du das perspektivisch anders?

Danke Risiko

Hi,

hier meine Antworten zu deinen Fragen.
zu1) Ich habe FTUI schon sehr lang im Einsatz. Mit Version 2 hatte ich mich schon mal an einem Responsive Design versucht (siehe https://forum.fhem.de/index.php/topic,76306.0.html) und eine für meine Bedürfnisse recht schöne Oberfläche gebaut. Zwei Punkte haben mich über die Zeit immer etwas gestört. Zum Einen musste ich jedes Mal in meine HTML-Seiten wenn sich was geändert hat. Weiterhin war ich schon drauf und dran mir große Stylesheets zu bauen, damit die Oberfläche etwas moderner wirkt, habe aber auch gesehen, dass es bereits fertige Frameworks für moderne UIs gibt.
Meiner Meinung nach stecken hinter FTUI und FHEMApp zwei verschiedene Ansätze. Bei FHEMApp habe ich mich von klassischen Schaltersystemen (Gira, BuschJäger, Jung) inspirieren lassen, was die Bedienung anbetrifft. Also ein klare Linie im Design, Inhalte auf das Wesentliche reduziert und nicht zu viel "technisches" auf der Oberfläche. Ich habe die App meinen Kids und den Großeltern (Ü70) komentarlos hingegeben und siehe da, sie haben es sofort begriffen, weil es genau so aussah wie die klassischen Schalter. Für die Admin-Seite war es mir wichtig, dass man für das Einbinden neuer Devices oder bein Änderungen FHEM nicht verlassen muss. In FTUI kann man sich bzgl. der Gestaltung komplett frei bewegen. Das hat meiner Meinung nach den Vorteil, dass man eine Oberfläche komplett nach den eigenen Bedürfnissen aufbauen kann. Man muss sich aber sehr genau überlegen, wie man eine Oberfläche aufbaut, dass sie für jeden Anwender bedienbar bleibt. Zudem muss man als Admin beim Einbinden neuer Devices FHEM "verlassen" und HTML Seiten programmieren.
mein Fazit: zum Glück gibt es beide Frontends - damit ist für (fast) jeden die passende Lösung umsetzbar  ;)

zu 2) wie heute schon kurz geschrieben, liegt der komplette Quellcode im Git-Repository unter dem Verzeichnis "scr". Die App selbst besteht aus mehreren Bausteinen. Die wichtigsten sind App.vue und main.js Diese beiden Dateien bilden das Grundgerüst der App. Weiterhin die fhem.js im Verzeichnis "plugins". Diese kann man als "core" der App betrachten. Sie beinhaltet die Kommunikationsebene zwischen FHEM und FHEMApp und Funktionen, die alle Templates benötigen. Dann gibt es die Datei Devices.vue im Verzeichnis "views". Diese übernimmt die Anzeige der Templates, wenn man in der App navigiert. Letztlich gibt es die Templates, welche sich im Verzeichnis "components" befinden. Hier liegt u.a. die Datei TemplDefault.vue ( die "Allzweck-Waffe"  ;) ) weiterhin befinden sich in dem Verzeichnis auch spezielle Templates, die aus dem Standard-Raster fallen. Also z.B. das Panel-Template, das Weather-Template, das Sonos-Template, das sysmon-Template usw. - Soweit eine erste kurze Orientierungshilfe für das Verzeichnis "src".  :D

zu3) Wie oben schon geschrieben, ist mir bei FHEMApp wichtig, dass das Grundlayout nicht zu stark verwässert wird. Deshalb habe ich aktuell nicht vor, weitere "Freiheitsgrade" zur Veränderung des Grundlayouts einzubauen. Wenn man hohen Wert auf komplette Gestaltungsfreiheit legt, dann würde ich eher FTUI empfehlen.  (Hoffentlich habe ich jetzt niemanden enttäuscht...  ::) )

zu4) Sehr berechtigte Frage und eine kurze Historie zu dem Thema. Ich habe FHEMApp ursprünglich mit festen Templates für Devices gebaut, die ich selbst im Einsatz habe (hauptsächlich Homematic) Nachdem ich die App hier vorstellt habe, kamen sofort Anfragen zu Anpassungen (...hätte ich mir bei der Masse an Smarthomeherstellern/Geräten eigentlich denken können...  ;D ;D ;D)  Die vielen Anpassungen wären sicher schnell aus dem Ruder gelaufen und so ist das "Standard-Template" entstanden. Vorteil: Der Grundrahmen bleibt erhalten und das Template kann für nahezu jedes beliebige Device konfiguriert werden. Nachteil: man muss seine Devices selbst konfigurieren und im Zweifel bauen 10 Leute immer das gleiche Template. Zudem werde ich es auf Dauer nicht leisten können, Templatewünsche zu erfüllen. ;)
Deshalb müssen wir auf dem Thema der Templates noch mal genauer rumdenken und eine schlaue Strategie entwickeln. Es gab ja schon Vorschläge eine Art Mapping aufzubauen, damit beispielsweise ein "Dimmer" für alle möglichen Hersteller funktioniert. Das könnte ein Ansatz sein. Aber dazu benötige ich Unterstüzung.

Soweit zu Deinen Fragen - melde dich gern, wenn was offen geblieben ist.  :)

jemu75

Zitat von: tomspatz am 28 März 2021, 20:48:54
neeeee,wir nehmen mal  ein zWave device welches im fhem, im "Kinderzimmer" ist. fhem macht AUTOMATISCH für z.B. Zwave devices eine Raum ZWave.

Letzt konfiguriere ich das device für FHEMApp. Das Device ist dann unter Bereiche -> Kinderzimmer UND ZWave zu finden. SO wiet ist es OK genauso wie du es programmiert hast.
In der fhemweb finde ich das auch TOLL einfach für die Übersicht und zum suchen etc.
FHEMApp soll aber NUR anschauen und Schalten sein, halt für "Benutzer" die nicht mehr machen sollen sehen sollen die es nicht interresiert.
Deshalb würde ich gerne diesen Raum im FHEMApp "verstecken".

Ähnlich ist es bei den Gruppen auch.

Na dann sind wir uns ja einig.  :D
Folgender Lösungsansatz: Sobald man in einem Device unter appOptions den Parameter room oder group setzt, dann werden für das Device die FHEM-Attribute room bzw. group ignoriert. Wenn man nun konsequent für alle Devices room und/oder group in appOptions definiert dann wird kein room oder group mehr aus FHEM in der App angezeigt -> also "versteckt"
Richtig? - Wenn ja, dann wird es so gebaut.

gvzdus

ZitatOpps, das ist aber extrem lang.

Ich hatte node unter /opt/local/bin in Version 8 mit MacPorts installiert, und node 14 als Download unter /usr/local/bin. Jetzt habe ich die Präferenz im PATH auf /usr/local/bin umgestellt, und
time npm run build
...
real 0m13.254s
user 0m17.660s
sys 0m1.762s


Das passt doch! :-)

Bitte guck' Dir doch noch meine anderen Postings an, vor allem zum Mapper - das deckt sich ja mit Punkt 4. Welche Hilfe brauchst Du? Konzeption oder die "Device-Maloche"?
Und zu meinen Anregungen bei Doku und Filter: Möchtest Du einen pull-Request?

jemu75

Zitat von: gvzdus am 27 März 2021, 08:21:53
Moin, ich sehe diesen Thread aus dem Augenwinkel und habe zwar keinen hohen WAF-Druck, aber andererseits meine abgebrochenen Versuche mit smartVISU und Co. Und da finde ich das, was Du hier auf die Beine gestellt hast, wirklich sehr beeindruckend!
Es erscheint mir - beginnend von der Lizenz über Vue bis zu github - auch durchgängig richtig konzipiert, und sehr gut, dass nicht noch ein PHP-Server o.ä. nötig ist. Wirklich vielen Dank dafür - m.E. ist Deine Arbeit sehr hilfreich für FHEM.

An 3 Stellen sehe ich "Low-Hanging-Fruit"-Verbesserungsbedarf:

  • Das README.md sollte die Startseite der FHEM-App beschreiben: http://<deine-raspi-ip>:8083/fhem/fhemapp/index.html
  • Böse Falle: Wer schnell liest mit wenig Vollahnung, tippert einfach brav "attr global userattr appOptions:textField-long" ein. Habe ich gemacht, zunächst alles gut. Dann ein FHEM-Restart und Alexa ging nicht mehr. Geflucht, festgestellt, dass das Logfile voll mit "unknown attribute alexaName"-Meldungen ist. Bis ich verstanden habe, warum, habe ich verschiedene Backups eingespielt, während die Ehefrau tobte. Dann das Attribut richtig gesetzt (also attr global <dein Teil UND das vorherige>), gespeichert und restartet. Ergebnis: alle alexaNames beim Speichern gelöscht. Zum Glück hatte ich gerade eine neue SD-Karte bespielt und noch ein Backup
  • Wer denkt, er könnte JSON, tippert das appOptions aus dem Kopf. Dein "JsonParser" für das Listen von rooms ist aber in Sachen Leerzeichen sehr eigenwillig :-)

Du kannst gerne sagen: "Hey, dann begeistere mich mal mit einem Pull-Request". Oder - weil es ja zweimal um Text geht, der eine persönliche Note hat, es lieber selber formulieren.

Hi, zunächst einmal Sorry, dass ich deine Frau zum Toben gebracht habe.  8)  Aber auf jeden Fall vielen Dank für Dein Feedback. Die README.md habe ich zu Pkt. 1 schon erweitert. Zu Pkt. 2 benötige ich bitte noch mal etwas Input von Dir. Was genau muss man in der FHEM Kommandozeile eintippen, damit appOptions richtig angelegt wird? Ich habe das damals direkt im Device "global" unter den Attributen erweitert.
Zu Pkt. 3) Das ist nicht "mein" JSON-Parser sondern die Javascript Funktion JSON.parse()  ;) Das JSON-Format wird genau so verarbeitet, wie hier beschrieben. Jedoch validiere ich die "JSON-Pakete" im Moment noch nicht. Andere User sind auch schon über diesen Punkt "gestolpert". Ich werde deshalb eine grobe Validierung einbauen.  :)

Ps.: Bin deiner Meinung - wir müssen uns nicht über "Pull-Request" unterhalten. Mir ist der Austausch hier im Forum auch lieber.  :) :)

Jamo

ZitatFolgender Lösungsansatz: Sobald man in einem Device unter appOptions den Parameter room oder group setzt, dann werden für das Device die FHEM-Attribute room bzw. group ignoriert. Wenn man nun konsequent für alle Devices room und/oder group in appOptions definiert dann wird kein room oder group mehr aus FHEM in der App angezeigt -> also "versteckt"
Richtig? - Wenn ja, dann wird es so gebaut.

Ja, das wäre auch mein Wunsch/Vorschlag! Danke!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

jemu75

Zitat von: NecDd am 28 März 2021, 13:53:28
Hello,

Congratulations for the really nice APP.
One question... Is any posiibility to change the language in to English?

Regards Nec

Hello Nec,

thanks for your feedback and sorry that all discussions and explanations for the app are in german ;)
At the Moment it isn't possible to change the language in the App. But it is a important feature and with "i18n" a solution is possible.

best regards Jens

jemu75

Zitat von: Jamo am 28 März 2021, 21:53:51
Ja, das wäre auch mein Wunsch/Vorschlag! Danke!

Ich habe mir eben noch mal den Sourcecode angesehen. Meiner Meinung nach müsste das bereits so funktionieren.
Wenn Räume oder Gruppen aus FHEM auftauchen, dann gibt es meiner Meinung nach Devices, bei denen in appOptions die Parameter room bzw. group fehlen.
In dem Fall greift FHEMApp dann auf die besagten FHEM Attribute zurück.