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

Damian

#415
Neue DOIF-Version eingecheckt siehe: https://forum.fhem.de/index.php?topic=134207.0

Mit

.DOIF_card:hover {transition: transform 0.3s ease; transform: scale(2.0); transform-origin: 0 0;z-index: 9999; position:relative}

im Css-Attribut des FHEMWEB-Devices kann man einen Vergrößerungseffekt von card erzielen, wenn man den Mauszeiger über eine card bewegt.

Dokumentation mit Beispielen folgt noch.

Ebenso lässt es sich für ring, bar und cylinder anwenden, dort heißen die Klassen DOIF_ring, DOIF_bar und DOIF_cylinder. Sollen alle DOIF-SVG-Grafiken eine Transformation erfahren, dann reicht die Angabe:

svg:hover {transition: transform 0.3s ease; transform: scale(2.0); transform-origin: 0 0;z-index: 9999; position:relative}

Wie es funktioniert siehe Animation dazu: https://forum.fhem.de/index.php?action=dlattach;attach=172147;image
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mumpitzstuff

Zitat von: Damian am 07 Mai 2023, 09:12:39Du musst statt ::$FW_wname angeben $::FW_wname - das ist die korrekte Perlsyntax für Variablen aus dem package main.
Könntest du das bitte mit dem $::xyz irgendwo an prominenter Stelle in deiner Hilfe platzieren? Ich bin ja auch darüber gestolpert. Vielleicht erspart dir das in Zukunft einige Fragen. 😇

Damian

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

Damian

Zitat von: mumpitzstuff am 10 Juli 2023, 19:20:06
Zitat von: Damian am 07 Mai 2023, 09:12:39Du musst statt ::$FW_wname angeben $::FW_wname - das ist die korrekte Perlsyntax für Variablen aus dem package main.
Könntest du das bitte mit dem $::xyz irgendwo an prominenter Stelle in deiner Hilfe platzieren? Ich bin ja auch darüber gestolpert. Vielleicht erspart dir das in Zukunft einige Fragen. 😇

Ich habe die Syntax für Variablenangaben ergänzt: https://wiki.fhem.de/wiki/DOIF/Perl-Modus#Eigener_Namensraum%3A_DOIF
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

Hi,
ich habe mir einen Chart gebaut der mir die aktuelle PV Leistung von meinem WR anzeigt. Funktioniert!.

{
  package ui_Table;
  $TABLE='text-align:center;;';
}
card([PlenticorePlus8:_Leistung_WR:col],"Solar in kWh Tagesverlauf",[PlenticorePlus8:_Leistung_WR]>0?"sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,7.5,0,90,"kw",undef,"2","130,,,,1,,200","0,0,0,0")

Nun habe ich einen zweiten WR dazu bekommen und ich bekomme es nicht hin das Chart so umzubauen, das es die Summe beider PV-Leistungen zeigt.

PlenticorePlus8:_Leistung_WR
PlenticorePlus10:_Leistung_WR

Kann mir jemand einen Denkanstoss geben oder ein Beispiel zeigen?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter