Hauptmenü

neue svg-Funktion: card

Begonnen von Damian, 04 April 2021, 12:58:15

Vorheriges Thema - Nächstes Thema

Damian

Wie heißen deine WEB-Instanzen vom TYPE FHEMWEB?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Die heißen WEB,WEBphone und WEBtablet.

Gruß schwatter

Damian

Beispiel

Wenn im Dummy size die Größe gespeichert ist dann kannst du beim card-Aufruf beim prop-Parameter diese wie folgt angeben:

card([bla:day:bar2day],[$SELF:avg]."Gasverbrauch in m³",undef,0,10,undef,undef,"m³",undef,"1",[?size].",fixedscaling,,,,halfring")
Du kannst auch irgendeine Perlfunktion statt [size] angeben, die dir die Größe der Grafik definiert.

Jetzt musst du noch herausfinden, wie man herausbekommt, welche aktive WEB-Instanz man gerade ist um size entsprechend zu belegen.

Wenn eine Perlfunktion z. B. aktuelle_Webinstanz die aktuelle Instanz liefert, dann könntest du es so angeben:


card([bla:day:bar2day],[$SELF:avg]."Gasverbrauch in m³",undef,0,10,undef,undef,"m³",undef,"1",(::aktuelle_Webinstanz() eq "WEB" ? 150: ::aktuelle_Webinstanz() eq "WEBphone"? 200 : 100).",fixedscaling,,,,halfring")

Beim Parameter size bleiben die Proportionen der Grafik erhalten.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Super,

das ist der richtige Hinweis. Ich habe in 01_FHEMWEB.pm geschmöckert und $FW_wname gefunden.

{ $FW_wname }
liefert sicher den Instanznamen.
Nur beim Einbau haperts noch bei mir. Klammerproblem? []

{package ui_Table;}
card([Pv_Total:SummPower:col12],undef,[Pv_Total:SummPower] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,2100,0,120,"PV W",undef,"1,font-size:50%",(::$FW_wname eq "WEB" ? 150: ::$FW_wname eq "WEBphone"? 200 : 100).",fixedscaling,,,,halfring")

Gruß schwatter

Damian

Du musst statt ::$FW_wname angeben $::FW_wname - das ist die korrekte Perlsyntax für Variablen aus dem package main.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Morgen,

super danke! Jetzt funktioniert es. Width hab ich auch mit angepasst. So bekomme ich endlich
auf allen Displays mein gewünschtes Format.

{package ui_Table;}
card([Pv_Total:SummPower:col12],undef,[Pv_Total:SummPower] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,2100,0,120,"PV W",undef,"1,font-size:50%",($::FW_wname eq "WEB" ? 200: $::FW_wname eq "WEBphone"? 140 : 300).",,,,,,".($::FW_wname eq "WEB" ? 480: $::FW_wname eq "WEBphone"? 260: 430))

Gruß schwatter

Damian

Zitat von: schwatter am 07 Mai 2023, 09:48:08Morgen,

super danke! Jetzt funktioniert es. Width hab ich auch mit angepasst. So bekomme ich endlich
auf allen Displays mein gewünschtes Format.

{package ui_Table;}
card([Pv_Total:SummPower:col12],undef,[Pv_Total:SummPower] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,2100,0,120,"PV W",undef,"1,font-size:50%",($::FW_wname eq "WEB" ? 200: $::FW_wname eq "WEBphone"? 140 : 300).",,,,,,".($::FW_wname eq "WEB" ? 480: $::FW_wname eq "WEBphone"? 260: 430))

Gruß schwatter

Schön, dass es wie gewünscht funktioniert. Vielleicht kann es der eine oder andere gebrauchen. Und das Beste ist, dass es mit bisherigen Mitteln klappt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Statusbildschirm (erstes Bild rechts in der Einleitung) mit aktuellen card-Optionen aktualisiert:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Nabend,

heute ist mir aufgefallen, das es eine Wechselwirkung gibt. Problem zeigt sich, wenn mehr als ein Device gleichzeitig
auf verschiedene FHEMWEB's zugreift. At Home habe ich ein Tablet, welches per Fully Kiosk Browser auf Webtablet
eingeloggt ist. Logge ich mich von Unterwegs auf meinem Handy per Webphone ein, ist erst alles ok, dann aber nach dem
4 bis 5 poll springt die Anzeige auf verschiedene Größen. Vermutung, die Größen der 2 eingeloggten Devices kollidieren.
Nachdem ich beide Geräte direkt nebeneinander platziert habe, konnte ich es dann 100% bestätigen. Die Werte werden per
"longpoll" auf beiden FHEMWEB's aktualisiert. Ohne, passiert es nicht. Vielleicht hast du noch eine Idee, wie das
zu lösen wäre. Longpoll würde ich gerne beibehalten.

Gruß schwatter

Damian

Zitat von: schwatter am 31 Mai 2023, 19:55:15Nabend,

heute ist mir aufgefallen, das es eine Wechselwirkung gibt. Problem zeigt sich, wenn mehr als ein Device gleichzeitig
auf verschiedene FHEMWEB's zugreift. At Home habe ich ein Tablet, welches per Fully Kiosk Browser auf Webtablet
eingeloggt ist. Logge ich mich von Unterwegs auf meinem Handy per Webphone ein, ist erst alles ok, dann aber nach dem
4 bis 5 poll springt die Anzeige auf verschiedene Größen. Vermutung, die Größen der 2 eingeloggten Devices kollidieren.
Nachdem ich beide Geräte direkt nebeneinander platziert habe, konnte ich es dann 100% bestätigen. Die Werte werden per
"longpoll" auf beiden FHEMWEB's aktualisiert. Ohne, passiert es nicht. Vielleicht hast du noch eine Idee, wie das
zu lösen wäre. Longpoll würde ich gerne beibehalten.

Gruß schwatter

ja, ich konnte es nachvollziehen, die Aktualisierung über Websocket funktioniert nicht sauber, weil es keine eindeutige Zuordnung der spezifischen größenabhängigen Card zu WEB-Instanz gibt. Das muss ich mir genauer anschauen. Es erfordert auf jeden Fall eine Erweiterung der bisherigen der uiTable-Funktionalität.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF