[FUIP] Neuigkeiten vom Branch "multifhem"

Begonnen von Thorsten Pferdekaemper, 03 Mai 2021, 14:29:53

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
ich habe mal wieder ein bisschen an "multifhem" herumgebastelt. Dadurch sollte man jetzt einfacher vom bisherigen FUIP auf das "Multifhem"-FUIP umstellen können. Im Prinzip sollte das nur diejenigen betreffen, die tatsächlich mehrere FHEMs haben (wollen). Wenn man nur die bisherige Funktionalität benutzen will, also ein FHEM, dann sollte man gar nichts machen müssen.

Das ganze sieht von der Beschreibung her ein bisschen kompliziert aus. In der Anwendung sollte es aber nicht kompliziert sein, da das alles automatisch abläuft und nur dafür sorgen soll, dass man sich nichts kaputt macht.

Hier sind die Details:


  • Die Attribute longPollType und fhemwebUrl gibt es nicht mehr. longPollType hat im Multifhem-Branch sowieso noch nie was gemacht. Zu fhemwebUrl siehe die nächsten Punkte.
    Die Umstellung passiert automatisch beim FHEM-Neustart. D.h. man muss vor dem Update nichts weiter beachten. (Davon ausgehend, dass alles so funktioniert, wie ich mir das vorstelle.) Falls Attribute automatisch umgesetzt wurden erscheinen entsprechende Meldungen auf der FHEM-Einstiegsseite und beim FUIP-Device.

  • Wenn fhemwebUrl beim FHEM-Start gefüllt ist, dann wird nachgesehen, ob die URL bereits in einem backend_.*-Attribut eingetragen ist. Falls ja, dann wird fhemwebUrl einfach gelöscht. Falls nein, dann wird ein neues backend_.*-Attribut angelegt, welches die "alte" fhemwebUrl enthält. Das neue Attribut wird backend_old (bzw. backend_old1,2,3...) oder backend_home genannt, je nachdem, welche backend_.*-Attribute es vorher bereits gibt.

  • Das Attribut defaultBackend wird beim FHEM-Start so gesetzt (bzw. korrigiert), dass etwas sinnvolles enthält. Falls irgendwelche backend_.*-Attribute automatisch gesetzt werden, dann wird defaultBackend so gesetzt, dass sich möglichst nichts ändert. Wenn es z.B. vorher ein fhemwebUrl gibt, aber keine backend_.*-Attribute und kein defaultBackend, dann wird ein backend_home als Ersatz für fhemwebUrl erzeugt und defaultBackend = "home" gesetzt.

  • Die bereits gesetzten backend_.*-Attribute erscheinen in der Attributliste des FUIP-Devices. Außerdem erscheint ein zusätzliches "freies" backend_.*-Attribut. Wenn eines dieser Attribute ausgewählt wird, dann erscheint die Doku zu backend_.*.
    Das mit dem "freien" backend_.*-Attribut bedeutet, dass es normalerweise eines dieser Attribute zur direkten Auswahl gibt. Normalerweise heißt das erste "backend_home". Das nächste dann "backend_trillian". Dann geht es weiter mit anderen weiblichen Namen aus "Per Anhalter....".

  • Es gibt ein Attribut "backendNames", für alle, die keine Befehle eintippen wollen und denen die Namen nicht gefallen. Man kann z.B. sowas machen wie "merkur,venus,erde,mars,jupiter,saturn,uranus,neptun", wenn man lieber die Namen der 8 Planeten haben will. (Get over it...)
    Das muss man nicht machen, da man immer auch "attr ui backend_zaphod http://eccentrica:8083/gallumbits" eingeben kann.

  • Wenn ein backend_.*-Attribut (vom Benutzer) gesetzt wird, und es sind bereits Seiten vorhanden, aber defaultBackend ist nicht gesetzt, dann wird dafür gesorgt, dass defaultBackend so sitzt, dass sich durch das Anlegen des neuen Backends nichts ändert. Normalerweise sollte defaultBackend sowieso schon gesetzt sein, so dass das normalerweise bedeutet, dass ein Attribut "backend_home" mit den Wert "local" angelegt wird und defaultBackend auf "home" gesetzt wird.

  • ...außerdem habe ich angefangen, die Moduldoku anzupassen.

Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Noch ein paar Kleinigkeiten:

  • backend_home wird nicht mehr automatisch als vorhanden betrachtet, was die Attribut-Liste betrifft. D.h. am Anfang wird jetzt nur backend_home "angeboten".
  • Wenn das erste angelegte backend-System "local" ist, dann wird dieses jetzt auch als defaultBackend eingetragen. Vorher war es so, dass trotzdem noch ein backend_home oder backend_local mit der URL "local" angelegt wurde.
  • Es gibt jetzt eine Doku für backendNames und defaultBackend. Die Doku für backend_.* habe ich auch nochmal überarbeitet.

Gruß,   
   Thorsten
FUIP

KK

Prima Arbeit,
hat erstmal meine Probleme auf meinem Testsystem beseitigt.
Gruß
Kurt

Thorsten Pferdekaemper

Hi,

Zitat von: KK am 04 Mai 2021, 18:03:59
hat erstmal meine Probleme auf meinem Testsystem beseitigt.
Das freut mich.

Die Seltsamkeiten rund um die Chart View sollten jetzt auch erledigt sein. stylesheetPrefix sowie die Dateien <prefix>svg_devs.svg und <prefix>svg_style.css werden jetzt immer aus dem defaultBackend geholt.
Damit sollte die Darstellung der Charts einheitlich sein.

Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
beim Übergang von "normal" nach "Multifhem" gab es doch noch ein paar Probleme. Ich dachte, es ist sinnvoll, das erste Backend-System "home" zu nennen, da es implizit "home" heißt, wenn man keines explizit definiert. Es ist aber ungeschickt, das erste "andere" Backend-System "home" zu nennen, da dann die ggf. bereits vorhandenen Seiten zum lokalen Backend nicht mehr funktionieren.
Im Einzelnen:


  • "home" ist nicht mehr in den per Default vorgeschlagenen Systemnamen. Dadurch dürfte es seltener vorkommen, dass jemand ausgerechnet "home" wählt.

  • Die Systemnamen "index" und "overview" sind jetzt verboten. Das liegt daran, dass bei mehreren Systemen jetzt die Einstiegsseite u.U. "overview" heißt. "index" wollte ich mir auch mal freihalten.

  • Die Ermittlung der Default-Seite (also die Seite, die aufgerufen wird, wenn man die FUIP-Seite nicht explizit in der URL angibt) wurde geändert: Es ist "home", wenn bereits eine Seite "home" existiert, aber es keine System-Id "home" gibt. In dem Fall ist es recht wahrscheinlich, dass diese Seite bereits erstellt wurde und so bleiben soll.
    Ansonsten ist es die System-Id, wenn es genau ein System gibt (das ist auch der Fall, wenn man gar kein backend_-Krams verwendet). Bei mehreren Systemen ist die Einstiegsseite "overview". Natürlich kann man wie üblich, die ganzen Seiten auch ändern. Insbesondere kann man eine bereits existierende Seite nach "overview" kopieren.

  • Beim Generieren wird nicht mehr in jede View eine System-Id gesetzt (...aber in die meisten schon noch). Ich will erreichen, dass die für die einzelnen Systeme generierten Seiten nicht überall die System-Id haben, sondern nur in den Daten der Seite selbst. Dadurch wird eine Änderung der System-Id einfacher.

Gruß,
   Thorsten
FUIP