[FUIP] Frontend-Integration: Mehrere FHEMs auf einer FUIP-Seite

Begonnen von Thorsten Pferdekaemper, 06 März 2021, 22:19:51

Vorheriges Thema - Nächstes Thema

TL60

Hallo Thorsten,
erste Tests nach einem Update sehen nicht gut aus, ich kann nur Geräte aus der defaulBackend Instanz schalten und habe das ganze log voller Fehlermeldungen, teilweise perl warnungs, teilweise crsf token warnings,  CFRS error Meldungen, ungefähr im Minutentakt die Meldung Determined new csrfToken: csrf_XXXXXXXXX. Ich denke, ich habe das Testsystem total verbastelt. Ich werde das ganze mal komplett neu aufsetzen, dazu komme ich aber leider frühestens morgen.
Bis dahin Thomas

Thorsten Pferdekaemper

Hi,
kannst Du mir mal ein Auszug aus Deinem Log hier reinstellen? Vielleicht ist da doch noch was faul.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
zu den csrf-Meldungen habe ich vielleicht was gefunden. Insbesondere bei den Werthilfen wurde das csrf-Token nicht pro System-Id geführt. Das ergibt dann natürlich Probleme, wenn man eine Seite mit unterschiedlichen Systemen hat.
Ich habe gerade eben ein Update hochgeladen, welches das beheben sollte.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
Views anlegen "by device" sollte jetzt auch gehen.
Dabei wird die System-Id der Zelle (bzw. von "weiter oben", falls da <inherit> steht) benutzt. Die erzeugten Views haben dann auch alle diese System-Id eingetragen. Ich habe mir überlegt, ob da <inherit> besser wäre, aber dann müsste man alles wieder anfassen, wenn man noch Devices aus anderen Systemen in dieselbe Zelle eintragen will. Ich glaube, so herum ist es weniger fehleranfällig.
Gruß,
   Thorsten
FUIP

TL60

Guten Morgen,
ZitatHi,
kannst Du mir mal ein Auszug aus Deinem Log hier reinstellen? Vielleicht ist da doch noch was faul.
Tut mir leid, dazu war es zu dem Zeitpunkt schon zu spät, ich hatte da die Testinstanz schon komplett gelöscht  :'( , dafür gibt es nachher eine frische aktuelle FHEM Installation von heute  ;). Ich melde mich
Gruß Thomas

TL60

Hallo Thorsten,
ich habe nochmal ein wenig getestet. Zunächst zum Aufbau: frisches fhem mit allen updates von heute morgen in einem Docker-Container. FTUI gemäss Wiki installiert (nur der der erste Schritt) FUIP gemäß deinem Post hier frisch installiert. Ein FUIP device angelegt. define uiflex11test FUIP Folgende Attribute über das +Zeichen an der Eingabeaufforderung gesetzt. attr uiflex11test backend_fhem138 http://192.168.178.138:8083/fhem
attr uiflex11test backend_fhem29 http://192.168.178.29:8083/fhem
attr uiflex11test backend_home http://192.168.178.137:8083/fhem
Im device uiflex11test per  Menüauswahl gesetzt.attr uiflex11test baseHeight 108
attr uiflex11test baseWidth 142
attr uiflex11test cellMargin 1
attr uiflex11test defaultBackend home
attr uiflex11test layout gridster
attr uiflex11test room UIFLEX
Die Seite das erstemal aufgerufen, folgende Meldungen im Logfile:
Zitat2021.03.12 10:39:02.767 3: FUIP: Creating page home
2021.03.12 10:39:02.773 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/lib/FUIP/View.pm line 278.
2021.03.12 10:39:02.774 1: undefined parent:
2021.03.12 10:39:02.774 1: undefined parent: FUIP::Page
2021.03.12 10:39:02.774 1: undefined parent:
2021.03.12 10:39:02.782 1: undefined parent:
2021.03.12 10:39:02.782 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:02.782 1: undefined parent: fhem138
2021.03.12 10:39:02.783 1: undefined parent:
2021.03.12 10:39:02.783 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:02.783 1: undefined parent: fhem29
2021.03.12 10:39:02.784 1: undefined parent:
2021.03.12 10:39:02.784 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:02.784 1: undefined parent: home
2021.03.12 10:39:57.298 1: undefined parent:
2021.03.12 10:39:57.298 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:57.298 1: undefined parent: fhem138
2021.03.12 10:39:57.299 1: undefined parent:
2021.03.12 10:39:57.299 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:57.299 1: undefined parent: fhem29
2021.03.12 10:39:57.299 1: undefined parent:
2021.03.12 10:39:57.299 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:39:57.299 1: undefined parent: home
2021.03.12 10:40:06.704 1: undefined parent:
2021.03.12 10:40:06.704 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:40:06.704 1: undefined parent: fhem138
2021.03.12 10:40:06.705 1: undefined parent:
2021.03.12 10:40:06.705 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:40:06.705 1: undefined parent: fhem29
2021.03.12 10:40:06.706 1: undefined parent:
2021.03.12 10:40:06.706 1: undefined parent: FUIP::View::MenuItem
2021.03.12 10:40:06.706 1: undefined parent: home
Diese Meldungen wiederholten sich beim Aufrufen einzelner Zellen. Abhilfe: in allen Zellen die System Id von inherit auf home gesetzt und auch für page. Danach kamen die undefined  Meldungen nicht mehr. Irgendwann kurz danach kamen folgende Perl Warnungen
Zitat2021.03.12 10:43:26.002 1: PERL WARNING: Argument "auto" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3157.
2021.03.12 10:43:26.002 1: PERL WARNING: Argument "auto" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3158.
Über das Zahnrad-Symbol eine neue Zelle angelegt und die System ID auf home (FhemInstanz 192.168.178.137:8083) gesetzt. Per +view einen neuen View angelegt, System Id auf inherit belassen. In der Auswahlbox für das device wird die richtige Fhem Instanz rangezogen Device ausgewählt, angelegt und es funktioniert. Meldungen im Log:
Zitat2021.03.12 10:51:01.036 1: PERL WARNING: Use of uninitialized value $viewname in concatenation (.) or string at ./FHEM/42_FUIP.pm line 3913.
2021.03.12 10:51:01.036 1: PERL WARNING: Use of uninitialized value $viewname in concatenation (.) or string at ./FHEM/42_FUIP.pm line 3949.
2021.03.12 10:51:14.830 3: Determined new csrfToken for home: csrf_355262004512685
Das Ganze wiederholt für ein device  aus den anderen beiden Fhem Instanzen, funktioniert, inklusive des jeweilig richten Anziehen der Fhem Instanz in der Device Auswahl. nurMeldungen bezüglich CRSF token im Log. In einer Zelle mit +view ein weiters device hinzugefügt dieses Mal die System Id von inherit auf fhem29 gestellt (per dropdown) device ausgewählt angelegt und funktioniert. Keine Meldungen im Log. Anlegen eines Devices über die by device Funktion funktioniert, inklusive  Auswahl aus der richtigen FHEM Instanz. Meldungen im Log:
Zitat2021.03.12 11:44:06.145 1: PERL WARNING: Argument "" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3170.
2021.03.12 11:44:06.145 1: PERL WARNING: Argument "" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3182.
Anmerkung von mir dazu: So wie du das implementiert hast, halte ich persönlich das für die einzig sinnvolle Art.
Ganz zum Schluss bin ich übermütig geworden und habe ein device von einer Zelle in eine andere verschoben, selbst das funktionierte, wenn nicht in der System Id inherit gesetzt war.
Da muss man dann halt etwas aufpassen und die System Id wieder anpassen.
Alles in allem muss ich sagen Riesenrespekt, das ganze funktioniert jetzt richtig gut, einzig und alleine zum Start die undefined parent: Meldungen sind nicht schön, da sie immer wieder kommen bis man in allen Zellen und in Page die System Id nicht mehr auf inherit stehen hat, da habe ich vielleicht auch noch was beim Anlegen falsch gemacht.
Gruß Thomas

TL60

Nachtrag zum letzten Post. Ruft man eine der autmatisch rechts als Menu angelegten Seiten, der einzelnen FHEM Instanzen (bei mir also fhem138 oder fhem29 oder home auf bekommt man ohne Ende Einträge ins log Nur ein kleiner Ausschnitt
Zitat021.03.12 13:02:43.021 1: undefined parent:
2021.03.12 13:02:43.022 1: undefined parent: FUIP::Page
2021.03.12 13:02:43.022 1: undefined parent:
2021.03.12 13:02:43.039 1: undefined parent:
2021.03.12 13:02:43.040 1: undefined parent: FUIP::View::MenuItem
2021.03.12 13:02:43.040 1: undefined parent: 40_System
2021.03.12 13:02:43.040 1: undefined parent:
2021.03.12 13:02:43.040 1: undefined parent: FUIP::View::MenuItem
2021.03.12 13:02:43.040 1: undefined parent: AMAD
2021.03.12 13:02:43.041 1: undefined parent:
2021.03.12 13:02:43.041 1: undefined parent: FUIP::View::MenuItem
2021.03.12 13:02:43.041 1: undefined parent: Amazon
2021.03.12 13:02:43.041 1: undefined parent:
2021.03.12 13:02:43.041 1: undefined parent: FUIP::View::MenuItem
2021.03.12 13:02:43.041 1: undefined parent: Automatiken
2021.03.12 13:02:43.042 1: undefined parent:
2021.03.12 13:02:43.042 1: undefined parent: FUIP::View::MenuItem
2021.03.12 13:02:43.042 1: undefined parent: Gateway
usw.
Gruß Thomas

Thorsten Pferdekaemper

Hi,
sodele, die heutige neue Version ist hochgeladen.

"undefined parent" Meldungen
Da wurden beim Generieren der Seiten die "Parent"-Beziehungen nicht richtig gesetzt. Dadurch gab es diese Fehlermeldung hauptsächlich bei Views, die sich eigentlich gar nicht auf irgendein Device beziehen. Das sollte jetzt erledigt sein. Zumindest kommen bei mir keine "undefined parent" mehr hoch.

PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/lib/FUIP/View.pm line 278.
Die ist jetzt auch weg. Das war ein Fehler bei der Ausgabe der "undefined parent" Meldung.

PERL WARNING: Argument "auto" isn't numeric in addition...
Das hat was mit der automatischen Positionierung mancher Views zu tun. Es dürfte aber keine Auswirkung haben.
Momentan lasse ich das erstmal so, da es mich daran erinnert, dass ich mir noch überlegen muss, wie die automatische Positionierung bei Views mit Sizing "auto" funktionieren soll.

PERL WARNING: Use of uninitialized value $viewname in concatenation
Das hat was mit der Anzeige der Doku zu tun, wenn man gerade einen neuen View zu einer Zelle hinzufügt. Das war schon lange so, muss ich mir auch mal genauer ansehen.

PERL WARNING: Argument "" isn't numeric in addition
Das hat auch irgendwas mit der automatischen Positionierung zu tun, ich konnte es aber nicht reproduzieren. Was war das denn für ein View bzw. Device?

Verschieben von Views mit <inherit> in Zellen mit anderer System-Id
Da könnte man sich überlegen, ob man in so einem Fall automatisch die System-Id der View setzen sollte. D.h. wenn man einen View mit <inherit> hat und sich durch das Verschieben die (aufgelöste) System-Id ändern würde, dann die System-Id explizit setzen. Ich weiß momentan aber nicht, was intuitiver ist.

Vielen Dank für's ausgiebige Testen!

Gruß,
   Thorsten



FUIP

TL60

Hallo Thorsten,
ZitatVielen Dank für's ausgiebige Testen!
sehr gerne. Ich profitiere ja auch sehr von dieser Entwicklung.
Vielleicht nur mal als Information: Ich habe heute das Update gemacht und dann mal in eine vorhandene Page eine neue Zelle eingebaut. In diese Zelle dann per +view einen neuen View, einen simple switch, angelegt. Vorher hatte ich sowohl in der Zelle als auch im View selber die gleiche system Id (home) eingetragen. Das hat auch alles funktioniert ich hatte nur diese Meldungen im Log
Zitat2021.03.13 20:19:55.217 1: PERL WARNING: Argument "auto" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3166.
2021.03.13 20:19:55.218 1: PERL WARNING: Argument "auto" isn't numeric in addition (+) at ./FHEM/42_FUIP.pm line 3167.
2021.03.13 20:20:24.108 1: PERL WARNING: Use of uninitialized value $viewname in concatenation (.) or string at ./FHEM/42_FUIP.pm line 3921.
2021.03.13 20:20:24.109 1: PERL WARNING: Use of uninitialized value $viewname in concatenation (.) or string at ./FHEM/42_FUIP.pm line 3957.
die sich aber nicht reproduzieren lassen, d.h. in derselben Page wieder eine neue Zelle und einen neuen View angelegt ganz exakt so wie beim erstenmal und keine Meldungen gar nichts und alles funktioniert wie es soll. Ich habe dann noch etwas mehr gemacht, Zellen angelegt und Views angelegt auch mit anderen System Id, aber alles sauber keine Meldungen mehr und alles funktioniert wie es soll.
Gruß und schönes Restwochenende Thomas

Thorsten Pferdekaemper

Hi,
die restlichen Meldungen sollten erst einmal keine Auswirkungen haben.
Allerdings gab es ein paar andere Probleme. Ich habe gerade eine neue Version hochgeladen. Folgende Änderungen gibt es:

  • Ein paar Perl-Warnungen vermieden
    (...aber nicht die mit dem "auto" und $viewname. Die brauche ich noch als Gedächtnisstütze.)
  • Werthilfe z.T. auf Promises umgestellt
    Das dürfte nach außen keine Auswirkungen haben. Falls es die trotzdem hat, bitte Bescheid geben.
  • Bei "undefined parent" wird jetzt auch ein Stacktrace ins Log geschrieben
    ...wobei es jetzt hoffentlich kein "undefined parent" mehr gibt
  • Bei den Views Batteries und Chart sollte jetzt auch <inherit> gehen
    Diese beiden Views greifen beim Seitenaufbau auf das Backend zu. Da wurde zum Teil die falsche Sysid genommen
  • View templates sind jetzt auch Mehrsystem-fähig
    Da war noch ein ganz blöder Fehler drin. Der hat dafür gesorgt, dass View Template Instanzen, die nicht direkt eine System-Id hatten, das ganze FHEM zu abschmieren gebracht hatten. Das ist insbesondere für alle FUIP-Seiten der Fall, die View Templates haben und vor Multifhem angelegt wurden. ...also wahrscheinlich ziemlich viele.
    Das müsste jetzt gelöst sein.

Gruß,
   Thorsten
FUIP

KK

Hallo Thorsten,
tolle Sache, habe bisher mein Tablet im Menü zwischen den FUIP-Instanzen umgeschaltet. Funtioniert ganz gut, aber bei einer Übersicht über alle Raspi-Systemdaten scheitert dieser Ansatz. Kann aber leider Deine Entwicklung nicht sobald testen, da ich mein Produktivsystem mit geschätzt 100 Komponenten so gründlich zerschossen habe, dass weder ein Rasbian-upgrade noch ein FHEM-update läuft >:( >:(. Also erstmal alles neu machen. Dann komme ich auf deine Entwicklung zurück. Hier nur mein Interesse, damit du nicht frustriert aufgibst.

Noch eine andere Frage zu Icons in readingGroups: Ich verwende selbst erstelle SVG-Icons in FHEM-readingGroups, die in einer FHEM Oberfläche auch richtig angezeigt werden. Diese erscheinen aber nicht im FUIP::View::ReadingsGroup-Widget?

Viele Grüsse
Kurt

Thorsten Pferdekaemper

Zitat von: KK am 24 März 2021, 23:24:17
Funtioniert ganz gut, aber bei einer Übersicht über alle Raspi-Systemdaten scheitert dieser Ansatz.
Wieso scheitert da der Ansatz? Hast Du da irgendwas ausprobiert und es hat nicht geklappt? Falls ja, kannst Du das mal genauer ausführen?
...oder sind das prinzipielle Bedenken? Wenn ja, dann was für welche?

Zitat
Noch eine andere Frage zu Icons in readingGroups: Ich verwende selbst erstelle SVG-Icons in FHEM-readingGroups, die in einer FHEM Oberfläche auch richtig angezeigt werden. Diese erscheinen aber nicht im FUIP::View::ReadingsGroup-Widget?
Keine Ahnung. Eigentlich ist für mich das ReadingsGroup-Widget auch eher eine Notlösung, um mal schnell was zu machen, bevor man es ordentlich zusammenklickt.
Aber es sollte ja schon funktionieren. Könntest Du mal dazu einen neuen Thread aufmachen und beschreiben, wie man das reproduzieren kann?

Gruß,
   Thorsten
FUIP

KK

Hallo,
sorry, wenn dies zu kurz war.
Ich habe ein FHEM mit allen lokalen Hausautomationskomponenten (System 1) und ein weiteres FHEM als Dashboard an der Wand (System 2). Beide laufen auf Raspis. Auf dem System 2 läuft auch FUIP mit zwei Instanzen (lokal mit System 2) und remote  SYstem2. Ich wollte nun AUF EINER SEITE die Systemdaten (SYSMON) von Raspi1 und Raspi2 anzeigen. Das geht bei mir nicht. Deshalb finde ich deinen neuen Ansatz attraktiv.

Gruß
Kurt

Thorsten Pferdekaemper

Hi,
ach so, Du meintest, dass Dein bisheriger Ansatz da scheitert. Ich habe jetzt auch mal Deine ursprüngliche Nachricht nochmal gelesen und eigentlich war schon klar, was Du meinst.
Ja, genau dafür ist es gedacht.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ich habe gerade eine neue Version in den Branch multifhem hochgeladen:

  • Die meisten FA-icons sollten jetzt (wieder) funktionieren, wahrscheinlich auch die, die in "reinem" FTUI Probleme machen bzw. gemacht haben.
  • Die Werthilfen sollten jetzt alle auch mit mehreren FHEMs zurechtkommen.
  • Das 7segment-Widget macht jetzt keinen Blödsinn mehr, wenn man ein nicht-numerisches Reading angibt,
  • DwdWebLink und HueSceneSelect sollte jetzt auch mit mehreren FHEMs funktionieren
Gruß,
   Thorsten
FUIP