FHEM User Interface Painter: Unterschied zwischen den Versionen
Zeile 45: | Zeile 45: | ||
;Zelle exportieren: Dies erlaubt die Definition der Zelle herunterzuladen und auf dem Client (also dem Rechner, auf dem der Browser läuft) zu speichern. | ;Zelle exportieren: Dies erlaubt die Definition der Zelle herunterzuladen und auf dem Client (also dem Rechner, auf dem der Browser läuft) zu speichern. | ||
;Zelle importieren: Damit lädt man eine exportierte Zelle wieder hoch. FUIP erzeugt dann auf der aktuellen Seite eine neue Zelle mit dem entsprechenden Inhalt. Das funktioniert auch mit Zellen, die von einer anderen FUIP-Seite, einem anderen FUIP-Device oder von einer anderen FHEM-Installation kommen. | ;Zelle importieren: Damit lädt man eine exportierte Zelle wieder hoch. FUIP erzeugt dann auf der aktuellen Seite eine neue Zelle mit dem entsprechenden Inhalt. Das funktioniert auch mit Zellen, die von einer anderen FUIP-Seite, einem anderen FUIP-Device oder von einer anderen FHEM-Installation kommen. | ||
;Zelle löschen: Damit löscht man die aktuelle Zelle. Sie verschwindet dann von der aktuellen Seite. | |||
;Toggle editOnly: Bei manchen Views ist es schwierig, sie mit der Maus "anzufassen", da sie sofort eine Aktion auslösen (z.B. bei Links). Mit "Toggle editOnly" wird eine graue "Schicht" über die Views gelegt. Dadurch weiß man besser, wo man den View anfassen kann und Mausklicks haben keine Wirkung mehr, außer Drag&Drop. | |||
== Links == | == Links == |
Version vom 6. Juli 2018, 14:36 Uhr
Der FHEM User Interface Painter (FUIP) ist ein FHEM-Modul, mit dem man FHEM Tablet UI (FTUI) Seiten graphisch ("klickibunti") erstellen kann. D.h. man kann sich ein UI zusammenklicken, welches die Tablet UI Technik verwendet, aber ohne sich selbst unbedingt mit HTML und CSS herumschlagen zu müssen. Hier ist ein kurzes Video, welches FUIP in Aktion zeigt:
(Das Video zeigt nicht unbedingt den neusten Stand, aber es dürfte klar werden, wofür FUIP gut sein soll.)
Installation und Upgrade in FHEM
Genau wie FTUI ist auch FUIP nicht automatisch Teil von FHEM. Es muss explizit installiert bzw. hinzugefügt werden. Die Installation funktioniert folgendermaßen:
- FUIP verwendet FTUI. D.h. man sollte zuerst einmal FTUI installieren, falls noch nicht passiert. Wie das geht steht bei FHEM Tablet UI. Dabei reicht der erste Schritt aus, da lediglich die FTUI-Dateien von FUIP benötigt werden.
- FUIP benötigt die Perl-Module URI::Escape::XS und JSON::Parse. Oft fehlt mindestens eins dieser Module in einer normalen FHEM-Installation. Unter Debian (inklusive normaler Raspberry-Installationen) ist zumindest URI::Escape::XS im Paket liburi-escape-xs-perl enthalten, es kann also mittels
apt-get install liburi-escape-xs-perl
(auf Betriebssystemebene als root) installiert werden. Ansonsten kann es z.B. über Cpan installiert werden, also etwacpan URI::Escape::XS
. Zu JSON::Parse scheint es kein Debian-Paket zu geben, also am besten installieren percpan JSON::Parse
. - Dann das FUIP-Repository zum FHEM Update hinzufügen:
- Jetzt
update all fuip
undshutdown restart
. FUIP sollte jetzt installiert sein.
Zum Upgrade reicht ein update
, wenn man FUIP wie oben beschrieben installiert hat. Will man nur den FUIP-Teil aktualisieren und nicht alles in FHEM, dann geht das mit update all fuip
.
Falls es insbesondere beim Upgrade oder nach einem Upgrade Probleme gibt (welcher Art auch immer), sollten die folgenden Punkte geprüft werden:
- Wird das richtige Repository benutzt? Man kann das mit
update list
überprüfen. Wenn der Eintrag für fuip nicht genau so aussieht wie oben beschrieben, dann sollte er perupdate delete
gelöscht werden und dann genau so eingetragen werden wie oben beschrieben. - Sind die Abhängigkeiten (Perl Module) installiert? Siehe die Installationanleitung weiter oben für Details.
- FHEM braucht Schreibrechte im Verzeichnis <fhem>/FHEM/lib/FUIP/config (<fhem> steht meistens für /opt/fhem) und allen enthaltenen Dateien. Auf Betriebssystemebene (Linux) kann man das mit
ls -ls
überprüfen. Meistens kann es mit folgendem Befehl repariert werden:chown -R fhem:dialout /opt/fhem/FHEM/lib/FUIP/config
. (Dieser Punkt gilt nicht bzw. nicht genau so, wenn man die configDB benutzt.)
Erste Schritte
Zuerst legt man ein "FUIP Device" an, also etwa define ui FUIP
. Dieses Device meldet sich sozusagen als Webserver bei FHEM an (wie z.B. auch HTTPSRV), d.h. es erscheint im Menu oben links (über den Räumen) ein Link "ui". Beim Klick auf diesen Link generiert FUIP eine FTUI Übersichtsseite aus den Räumen im FHEM System. Nun kann man durch Verschieben und größer/kleiner-Ziehen der einzelnen Zellen bzw. durch Verschieben des Zelleninhalts die Gestaltung ändern. Außerdem kann man über das Zahnrad rechts oben in den Zellen neuen Inhalt hinzufügen, den bestehenden Inhalt ändern und vieles mehr.
Durch Klicken auf die Räume im Menu der Übersichtsseite werden einzelne Raum-Seiten generiert. Diese kann man ebenfalls entsprechend bearbeiten. Natürlich können auch eigene Seiten hinzugefügt werden. Wie das geht sieht man im Video, welches oben verlinkt ist.
Nachdem man die Seiten entsprechend bearbeitet hat sollte man ein set ui save
machen. Ansonsten gehen die Änderungen beim nächsten FHEM-Neustart verloren. Ein normales save config
reicht nicht aus und ist auch nicht notwendig.
Die folgenden detaillierten Informationen können zum Teil veraltet sein, da FUIP noch weitereintwickelt wird. Es sollten allerdings keine Funktionen verschwinden.
Das Konfigurations-Popup
Beim Klick auf das Zahnrad rechts oben in einer Zelle wird der Konfigurations-Dialog für diese Zelle geöffnet. Im folgenden werden die Funktionen der einzelnen Elemente erklärt.
- Zur Seiten-Konfiguration
- Damit kann man zum Konfig-Dialog für die ganze Seite wechseln.
- Zellen-Überschrift
- Hier wird die Überschrift der Zelle festgelegt. Eine Zelle muss keine Überschrift haben. (Die Zahlen hinter der Überschrift in der Zelle selbst verschwinden, wenn man das Attribut locked setzt.)
- Neuer View
- Hiermit fügt man einen neuen View, also neuen Inhalt, zu einer Zelle hinzu. Man wählt dann aus, welcher Art View angelegt werden soll und füllt die Details, wie z.B. das zugehörige Device. Der neue View wird an einer freien Stelle (falls möglich) in der Zelle eingefügt. Nach schließen des Konfig-Dialogs kann man den View dann per Drag&Drop geeignet positionieren.
- Neuer View (Device)
- Dies dient ebenfalls dazu, neue Views in die Zelle zu packen. Allerdings wählt man nicht die Art des Views aus, sondern die FHEM-Devices, die dargestellt werden sollen. Das System sucht dann jeweils einen geeigneten View aus. Bisher funktioniert das nur sehr eingeschränkt, hat aber den Vorteil, dass man gleich mehrere Devices auswählen kann.
- Abbrechen
- Damit schließt man den Dialog ohne die Änderungen zu übernehmen.
- Details zum View
- Hier klappt man die Details zum View aus und kann diese ändern. Was man damit genau machen kann kommt auf die Art des View an. Per Drag&Drop kann man auch die Reihenfolge der Views im Konfig-Dialog ändern. Das hat allerdings keinen Effekt auf die Positonierung bereits existierender Views in der Zelle.
- View löschen
- Das löscht den View aus der Zelle. Wenn man den View eigentlich nicht löschen, sondern in einer anderen Zelle haben will, dann kann man ihn auch per Drag&Drop in die andere Zelle verschieben. Lässt man einen View in einer anderen Zelle "fallen", dann wird dieser automatisch der neuen Zelle zugeordnet.
- Übernehmen
- Das schließt den Dialog und übernimmt die Änderungen. Dadurch kann man die Auswirkungen auf dem UI selbst sehen. Um die Änderungen allerdings den nächsten FHEM Neustart überleben zu lassen muss man noch ein
set ui save
machen. - Auto-Anordnen
- Hiermit kann man die einzelnen Views in der Zelle automatisch anordnen. Es kann momentan sein, dass dadurch Änderungen verloren gehen. D.h. dieser Button sollte nur benutzt werden, wenn man seit dem Öffnen des Dialogs keine Änderungen gemacht hat. Außerdem schließt der Button dan Dialog. FUIP ordnet die Views in der Reihenfolge an, in der sie im Konfig-Popup erscheinen. Das zugrunde liegende Layout ist sehr einfach gehalten und kann sich auch noch ändern. Diese Funktion ist vor Allem brauchbar für mehrere gleichartige Views in derselben Zelle, wie z.B. bei Menus.
- Neue Zelle
- Legt eine neue (leere) Zelle auf der aktuellen Seite an. Der Konfig-Dialog wird dabei geschlossen und Änderungen gehen verloren.
- Zelle kopieren
- Kopiert die aktuelle Zelle. Man muss eine Seite angeben, zu der die kopierte Zelle gehören soll. Das entsprechende Feld ist mit der aktuellen Seite vorbelegt. Falls man dies nicht ändert, wird einfach eine Kopie der Zelle auf derselben Seite erzeugt. Ansonsten wird die Zelle auf die angegebene Seite kopiert. Die Funktion schließt den Konfig-Dialog und Änderungen gehen verloren. Falls man eine andere Seite angegeben hat, wird zu dieser gewechselt.
- Zelle exportieren
- Dies erlaubt die Definition der Zelle herunterzuladen und auf dem Client (also dem Rechner, auf dem der Browser läuft) zu speichern.
- Zelle importieren
- Damit lädt man eine exportierte Zelle wieder hoch. FUIP erzeugt dann auf der aktuellen Seite eine neue Zelle mit dem entsprechenden Inhalt. Das funktioniert auch mit Zellen, die von einer anderen FUIP-Seite, einem anderen FUIP-Device oder von einer anderen FHEM-Installation kommen.
- Zelle löschen
- Damit löscht man die aktuelle Zelle. Sie verschwindet dann von der aktuellen Seite.
- Toggle editOnly
- Bei manchen Views ist es schwierig, sie mit der Maus "anzufassen", da sie sofort eine Aktion auslösen (z.B. bei Links). Mit "Toggle editOnly" wird eine graue "Schicht" über die Views gelegt. Dadurch weiß man besser, wo man den View anfassen kann und Mausklicks haben keine Wirkung mehr, außer Drag&Drop.