Hauptmenü

neue svg-Funktion: card

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

Vorheriges Thema - Nächstes Thema

Damian

Stell mal die Sprache im Device global im Attribut language auf de, dann passt das.
Das ist kein Spiegeln, sondern die Beschriftung der Zeile.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Mh, "de" habe ich gesetzt, aber der Text ist noch auf Englisch. Klemmt wohl noch an einer anderen Stelle.
Ok, aber die Beschriftung möchte ich nicht. In deinem Beispiel ist die Zeile auch nicht beschriftet. Das ist dein Original

card([zaehler:l-Produktion:col12],undef,[zaehler:l-Produktion] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,3.6,30,60,"PV kW",undef,"1,,font-size:50%")|\

Da ist die Zeile unten links nicht beschriftet.

Gruß schwatter

Damian

#302
Zitat von: schwatter am 21 September 2022, 23:26:54
Mh, "de" habe ich gesetzt, aber der Text ist noch auf Englisch. Klemmt wohl noch an einer anderen Stelle.
Ok, aber die Beschriftung möchte ich nicht. In deinem Beispiel ist die Zeile auch nicht beschriftet. Das ist dein Original

card([zaehler:l-Produktion:col12],undef,[zaehler:l-Produktion] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,3.6,30,60,"PV kW",undef,"1,,font-size:50%")|\

Da ist die Zeile unten links nicht beschriftet.

Gruß schwatter

Die Beschriftung kann man nicht abschalten, im Wiki ist noch die alte Version. Die Beschriftung ist wichtig, da man inzwischen auch Diagramme ohne Ring erstellen kann, dann wüsste man nicht, um was es sich handelt, vor allem, wenn man zwei Readings darstellt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

Nabend,

ich habe die Sprache in global auf "DE". Kleingeschrieben wäre bei mir falsch.
Jedenfalls funktioniert es noch nicht bei mir.

Was ich zu global und Sprache finde ist, das dies nur für die commandref funktioniert und bis jetzt nicht weiter verfolgt wurde.
https://forum.fhem.de/index.php/topic,110274.15.html

Oder liest dein Modul einfach das gesetzte Attribute aus?

Gruß schwatter

Damian

Du musst vor allem die Spracheinstellung des Systems auf DE vornehmen:

https://www.google.com/search?q=raspberry+pi+sprache+einstellen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

jkriegl

Habe seit dem letzten update einen kleinen Schöheitsfeher bei cylinder. Die Werte (62, 51, 45)  s. beigefügtes png, waren davor verteilt. 
cylinder(undef,30,85,"",75,80,undef,0,[HK.SOL:P.Temp],"0.70.70","",[HK.SOL:P.Temp_m],40,"",[HK.SOL:P.Temp_u],200,"")
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

schwatter

@Damian

Ok, Systemweit hat geholfen. Danke.
Noch eine Frage zur Card. Gibt es ein Autoresize für Card?
Gesetzt hab ich es so:
card([PV_Deye1600_01:Power:col12],undef,[PV_Deye1600_01:Power] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,1200,0,120,"Pv W",undef,"1,font-size:50%"," 130,,,,,,262")

Toll wäre es so:
card([PV_Deye1600_01:Power:col12],undef,[PV_Deye1600_01:Power] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,1200,0,120,"Pv W",undef,"1,font-size:50%"," 130,,,,,,[color=red]auto[/color]")

Wegen verschiedener Devices (Handy,Tablet,Pc,...)


Gruß schwatter

Damian

Zitat von: schwatter am 25 September 2022, 15:48:32
@Damian

Ok, Systemweit hat geholfen. Danke.
Noch eine Frage zur Card. Gibt es ein Autoresize für Card?
Gesetzt hab ich es so:
card([PV_Deye1600_01:Power:col12],undef,[PV_Deye1600_01:Power] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,1200,0,120,"Pv W",undef,"1,font-size:50%"," 130,,,,,,262")

Toll wäre es so:
card([PV_Deye1600_01:Power:col12],undef,[PV_Deye1600_01:Power] > 0 ? "sani_solar\@colorVal1":"fa_bolt\@colorVal2",0,1200,0,120,"Pv W",undef,"1,font-size:50%"," 130,,,,,,[color=red]auto[/color]")

Wegen verschiedener Devices (Handy,Tablet,Pc,...)


Gruß schwatter

Für alle Cards gelten die gleichen Default-Werte - das ist beabsichtigt, damit das Erscheinungsbild bei mehreren Cards einheitlich bleibt. Eine Auto-Funktion würde dazu führen, dass die Skalierungen (Schriftgröße, Höhe, Breite, usw.) unterschiedliche wären.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: jkriegl am 25 September 2022, 13:52:25
Habe seit dem letzten update einen kleinen Schöheitsfeher bei cylinder. Die Werte (62, 51, 45)  s. beigefügtes png, waren davor verteilt. 
cylinder(undef,30,85,"",75,80,undef,0,[HK.SOL:P.Temp],"0.70.70","",[HK.SOL:P.Temp_m],40,"",[HK.SOL:P.Temp_u],200,"")

Problem behoben. Neue Version eingecheckt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

jkriegl

Eher ein Wunsch: mit Telegram "set myTelegramBot cmdSend { plotAsPng('SVG_FileLog_Solar') }"
versende ich SVG-Plot SVG_FileLogs.
Gibt es eine Möglichkeit SVG-cards zu verschicken?
Alternativ: ein Bild verschicken
https://wiki.fhem.de/wiki/TelegramBot
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Adimarantis

Mit Signalbot geht das:
set Signalbot send @Empfänger &DI_device
Details: https://wiki.fhem.de/wiki/Signalbot#Details_zum_Versenden_von_Plots

Ist aber zugegeben ein bisschen "hacky" und verwendet Internas von DOIF.
Das könnte der Autor von TelegramBot grundsätzlich aber auch übernehmen.

Eine offizielle API von DOIF wäre natürlich noch schöner.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Damian

Falls man im Status eines Devices eine Card visualisiert haben möchte, dann kann man wie folgt vorgehen.

Man definiert ein DOIF welches die Daten von einem bestimmten Device sammelt. Im ursprünglichen Device werden diese Daten dann über devStateIcon visualisieren.

Dieses DOIF kann auch von mehreren anderen Devices Daten sammeln, die man wo anders visualisieren will.

Beispiel:

Das Device MQTT2_DVES_D90D08 empfängt Co2 Daten, dessen Status wird gar nicht belegt, daher erscheinen dort nur drei Fragezeichen. Im Reading MHZ19B_CarbonDioxide von MQTT2_DVES_D90D08 werden die co2 Werte geliefert.

Zuerst definiert man sich ein DOIF mit dem Attribut event_Readings zum Sammeln der Daten des Readings:

defmod di_collect DOIF ##
attr di_collect event_Readings co2:[MQTT2_DVES_D90D08:MHZ19B_CarbonDioxide:col3d]


dann definiert man im eigentlichen Device ein devStateIcon mit dem Card-Aufruf auf das definierte Reading co2 des DOIFs:

attr MQTT2_DVES_D90D08 devStateIcon {ui_Table::card(ReadingsVal("di_collect","co2",0),undef,"air\@silver",400,1200,120,0,"ppm",[(600,120,1000,60,1200,0)],"0,,fill:silver","130,,1,0,1",'0,,1')}

Und schon wird im Status des MQTT-Devices statt Fragezeichen die card-Grafik dargestellt und diese wird sogar beim Event automatisch aktualisiert.


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

Damian

#312
Neue Features

Man wird in der kommenden Version Readings angeben können, deren Daten nicht gesammelt werden sollen und damit auch nicht geplottet. Im Anhang ist ein Beispiel, wo die aktuelle PV-Leistung sowie und Einspeise/Bezugsleistung im Plot erscheint. Die Gesamtenergie (PV/Bezug/Einspeisung) wird dagegen nur angezeigt, erscheint jedoch nicht im Plot selbst.

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

Damian

Und hier mal ein Beispiel, wo zwei Readings angegeben wurden. PV-Leistung wird geplottet, PV-Energie dagegen nicht, beide Readingwerte werden im Ring angezeigt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

#314
Neue Version wurde eingecheckt.

Neuerung: Der Parameter collect2 kann jetzt, wie der Parameter collect, auch ein Array mit Readings sein. Wird die Collector-Angabe col nicht angegeben, so werden die Daten des Readings nicht gesammelt und nicht geplottet, sondern nur im Ring angezeigt (die erste Readingangabe des ersten collect-Arrays muss col beinhalten). Ein Icon in der Kopfzeile wird jetzt immer links angezeigt.

Hier die Definition der beiden zuletzt geposteten Diagramme:

card([[MQTT2_DVES_C58DCB:power_pv:144col1d],[MQTT2_DVES_C58DCB:power_fc:144col1d]],undef,"fa_bolt\@silver",-3.6,3.6,0,90,["PV","Netz"],[(-1,0,-0.01,30,1,60,3.6,90)],"2,,fill:silver","130,,1,0,1","1,,1,0,1",undef, [[di_counter_new:MQTT2_DVES_C58DCB.total_pv.day],[di_counter_new:MQTT2_DVES_C58DCB.total_c.day],[di_counter_new:MQTT2_DVES_C58DCB.total_f.day]],-25,25,0,90,["PV","Bezug","Einsp."],[(-10,0,-0.01,30,10,60,25,90)],"3,,fill:silver")|
card([MQTT2_DVES_C58DCB:power_pv:144col1d],"","fa_bolt\@silver",-3.6,3.6,0,90,"kW",undef,"2,,fill:silver","130,,1,0,1","1,,1,0,2",undef, [di_counter_new:MQTT2_DVES_C58DCB.total_pv.day],-25,25,0,90,"kWh",undef,"2,,fill:silver")


Die Doku wurde angepasst: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Anzeige_eines_Werteverlaufs_und_des_aktuellen_Wertes_mit_Hilfe_der_SVG-Funktion_card

Verständnisfragen können hier gestellt werden.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF