Hauptmenü

neue svg-Funktion: card

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

Vorheriges Thema - Nächstes Thema

Bartimaus

Moin,

nach 5 Tagen bekomme ich wieder Timeouts. Heisst, ich sehe wieder viele FHEM-Instanzen(PIDs) in HTOP, die sich wirklich nur sehr langsam wieder abbauen. Das Problem lässt sich temporär über einen FHEM-Neustart beheben.
Komisch alles. Habe in "WEB" nun das Attribut "plotEmbed" auf 1 gesetzt, leider auch ohne Auswirkung. Vielleicht kann Rudi dazu was sagen...

LG
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 21 März 2022, 09:45:06
Moin,

nach 5 Tagen bekomme ich wieder Timeouts. Heisst, ich sehe wieder viele FHEM-Instanzen(PIDs) in HTOP, die sich wirklich nur sehr langsam wieder abbauen. Das Problem lässt sich temporär über einen FHEM-Neustart beheben.
Komisch alles. Habe in "WEB" nun das Attribut "plotEmbed" auf 1 gesetzt, leider auch ohne Auswirkung. Vielleicht kann Rudi dazu was sagen...

LG

Dann musst du im entsprechenden Board das Problem schildern. Ich gehe davon aus, dass es nicht mit card zusammenhängt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

cards ohne Animation

Leider frisst die Animation des aktuellen Wertes als blinkender Punkt in der Grafik recht viel Performance im Browser. Bei vielen cards in einer Tabelle läuft der Browser "heiß".

In der kommenden Version wird die Animation per default ausgeschaltet sein. Falls man sie in einem DOIF-Device weiterhin haben möchte, so muss sie in der Tabellendefinition des jeweiligen DOIF-Devices freigeschaltet werden:

attr uiTable {
package ui_Table;
$ANIMATE=1;
}
...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 03 April 2022, 12:12:13
cards ohne Animation

Leider frisst die Animation des aktuellen Wertes als blinkender Punkt in der Grafik recht viel Performance im Browser. Bei vielen cards in einer Tabelle läuft der Browser "heiß".

In der kommenden Version wird die Animation per default ausgeschaltet sein. Falls man sie in einem DOIF-Device weiterhin haben möchte, so muss sie in der Tabellendefinition des jeweiligen DOIF-Devices freigeschaltet werden:

attr uiTable {
package ui_Table;
$ANIMATE=1;
}
...


Neue Version ohne Animation eingecheckt. Min-, Max-Punkte werden jetzt zur Unterscheidung mit Dreieckssymbolen dargestellt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

Hi,
ich nutze die Card funktion analog dem Wiki Beispiel für PV. (https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler)
U.a. möchte ich den den täglichen (der letzten 10 Tage) und monatlichen Ertrag (letzte 12 Monate) anzeigen. Ein Reading für die Aggregate day, month, year habe ich schon erzeugt.
Mit dem standard card aus dem Beispiel funktioniert alles bestens. Bekomme ich aber für die tägliche und monatliche Statitsik anstatt einer Linie auch cylinder hin? Gibt es da ev. einen schalter der im Wiki noch nicht beschrieben ist?
Die widgets cylinder und cylinder_bars passen nicht.
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

Damian

#275
Zitat von: Tobias am 04 Mai 2022, 16:43:45
Hi,
ich nutze die Card funktion analog dem Wiki Beispiel für PV. (https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler)
U.a. möchte ich den den täglichen (der letzten 10 Tage) und monatlichen Ertrag (letzte 12 Monate) anzeigen. Ein Reading für die Aggregate day, month, year habe ich schon erzeugt.
Mit dem standard card aus dem Beispiel funktioniert alles bestens. Bekomme ich aber für die tägliche und monatliche Statitsik anstatt einer Linie auch cylinder hin? Gibt es da ev. einen schalter der im Wiki noch nicht beschrieben ist?
Die widgets cylinder und cylinder_bars passen nicht.

Nein, geht z. Zt. leider nicht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

#276
Hi,
ich nutze fleißig die card Funktion für die Visualisierung meiner PV Anlage:)
Nun möchte ich eine einfache Berechnung integrieren, also anstatt in Watt soll es in kw anzeigen. Leider funktioniert es nicht. Sieht jemand was ich falsch mache?

funktioniert in Watt
card([PlenticorePlus8:Daily_Yield:100col1w],"Solarenergie in W pro Tag","solar_icon",0,15,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")
funktioniert nicht, das ganze widget wird damit nicht angezeigt
card([PlenticorePlus8:Daily_Yield:100col1w]/1000,"Solarenergie in kWh pro Tag","solar_icon",0,15,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")
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

Damian

#277
Zitat von: Tobias am 17 Mai 2022, 11:19:30
Hi,
ich nutze fleißig die card Funktion für die Visualisierung meiner PV Anlage:)
Nun möchte ich eine einfache Berechnung integrieren, also anstatt in Watt soll es in kw anzeigen. Leider funktioniert es nicht. Sieht jemand was ich falsch mache?

funktioniert in Watt
card([PlenticorePlus8:Daily_Yield:100col1w],"Solarenergie in W pro Tag","solar_icon",0,15,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")
funktioniert nicht, das ganze widget wird damit nicht angezeigt
card([PlenticorePlus8:Daily_Yield:100col1w]/1000,"Solarenergie in kWh pro Tag","solar_icon",0,15,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")

Berechnungen in DOIF-spezifischen Angaben (Angaben in eckigen Klammern) sind nicht möglich, du musst über ein Zwischenreading gehen. Das kann man direkt im Zählerdevice über userreadings machen oder im jeweiligen DOIF z. B. über DOIF_Readings realisieren. Der Vorteil von DOIF_Readings ist, dass sie keine zusätzlichen Events nach außen produzieren, aber das eigene Device triggern.

Edit: Bei Collector-Angaben, wie bei Card, geht es auch nicht außerhalb, sondern nur wie oben beschrieben
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

Ich habe es hinbekommen, etwas versteckt im Wiki :)

card([PlenticorePlus8:Daily_Yield:100col1w:$_ / 1000],"Solarenergie in kWh pro Tag","solar_icon",0,42,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")
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

Damian

Zitat von: Tobias am 18 Mai 2022, 08:38:19
Ich habe es hinbekommen, etwas versteckt im Wiki :)

card([PlenticorePlus8:Daily_Yield:100col1w:$_ / 1000],"Solarenergie in kWh pro Tag","solar_icon",0,42,0,90,"PV",undef,"1","130,,,,1,,200","0,0,0,0")

ja, du hast Recht, die Option habe ich neulich eingebaut um z. B. von on/off auf Zahlen zu kommen. Das habe ich schon verdrängt. :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

#280
Ich habe das di_counter-Beispiel aus dem Wiki für mich etwas erweitert.

Pro Sensor habe ich jetzt eine Tages-, Monats- und Jahresdarstellung definiert (siehe Anhang).

Am Wochenende habe ich noch das Messen des Zisternenwasserverbrauchs eingebaut (siehe Foto im Anhang)

An einem esp8266 mit Tasmota hängen jetzt zwei Wasserzähler, zwei Stromzähler und ein Gaszähler.

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

Tobias

Hi,
ich habe nochmal eine frage zur col definition.

Irgendwo hatte ich mal gelesen,das man mit der Zahl vor(!) col die Anzahl der zu sammelnden Werte einstellen kann, anstatt default 72 Werte.
In Zusammenhang mit den steps kann man dann nämlich bars bauen.

card([DOIF_counter:SEN_EM_Elektro.000_EM_All.day:7col1w],"Verbrauch in kWh pro Tag","fa_bolt",0,12,0,90,"kw",undef,"1","130,,1,,1,,200","0,0,0,0")

Hier sollen genau 7 Werte über einen Zeitraum der letzten 7 Tage gesammelt werden. Also pro Tage genau ein Wert Damit wird dann pro Tag der Stromverbrauch angezeigt. Der aktuelle Tag zählt immer von 0 hoch bis Mitternacht.
Jetzt habe ich das Gefühl das nicht richtig gezählt wird. Finde aber auch diese Definition nicht im Wiki. Gibt es dieses Feature wirklich und ist nur im Wiki nicht beschrieben?



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

Damian

Zitat von: Tobias am 21 Mai 2022, 06:07:34
Hi,
ich habe nochmal eine frage zur col definition.

Irgendwo hatte ich mal gelesen,das man mit der Zahl vor(!) col die Anzahl der zu sammelnden Werte einstellen kann, anstatt default 72 Werte.
In Zusammenhang mit den steps kann man dann nämlich bars bauen.

card([DOIF_counter:SEN_EM_Elektro.000_EM_All.day:7col1w],"Verbrauch in kWh pro Tag","fa_bolt",0,12,0,90,"kw",undef,"1","130,,1,,1,,200","0,0,0,0")

Hier sollen genau 7 Werte über einen Zeitraum der letzten 7 Tage gesammelt werden. Also pro Tage genau ein Wert Damit wird dann pro Tag der Stromverbrauch angezeigt. Der aktuelle Tag zählt immer von 0 hoch bis Mitternacht.
Jetzt habe ich das Gefühl das nicht richtig gezählt wird. Finde aber auch diese Definition nicht im Wiki. Gibt es dieses Feature wirklich und ist nur im Wiki nicht beschrieben?

Das Feature ist aktiv und kann genutzt werden. Man muss aber wissen, was man tut, daher habe ich es noch nicht dokumentiert. 7 Zeitfenster sollten 7 Werte aufnehmen, wenn es aber nur eine Sekunde Ungenauigkeit gibt, dann können zwei Werte in einem Timeslot landen und im nächsten keiner. Dabei habe ich einen Algorithmus eingebaut, so dass nach Möglichkeit nur unwichtige Werte untergehen, der kann zu Ergebnissen führen, mit denen du nicht rechnest.

Card-Plots sind nicht auf Genauigkeit ausgelegt, sondern auf Geschwindigkeit und die soll noch gegeben sein, wenn jemand über einen langen Zeitraum häufig Daten liefert. So kann die Darstellung bei SVG-Plots Minuten dauern, bei Card-Plots sind es Millisekunden.

Ich habe im Wiki die Definition der Cards geändert, jetzt wird auch ein ganzes Jahr dargestellt.

Hier ist die Auflösung höher ist als die Anzahl der Werte.

Bei 72/12=6 ist das mehr als genug, ob 12 gut funktioniert, weiß ich nicht. Mit 24 z. B. ist man auf der sicheren Seite.

Bei der Monatsübersicht, kann auch nichts passieren:

72/31=2,31

es kann kein Wert verloren gehen.

Bei der Darstellung des Tagesverlaufs dagegen reicht die Anzahl der Slots natürlich nicht aus.

Bei mir wird im Minutentakt gesendet.

Es gibt also pro Tag  24*60=1440 Werte.

Pro Slot kommen 1440/72=20 Werte, 19 werden verworfen. Es wird jeweils der höchste übernommen. Bei einem aufsteigenden Zähler ist es dann immer der letzte.

Mir reicht die Stufenform (Steps) aus. Selbst bei 30 Werten (siehe neue Monatsübersicht im Wiki) kann ich ziemlich genau erkennen, wie hoch der Verbrauch an einem bestimmten Tag war.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

Danke für die doch sehr ausführliche Erklärung.
Zitat7 Zeitfenster sollten 7 Werte aufnehmen, wenn es aber nur eine Sekunde Ungenauigkeit gibt, dann können zwei Werte in einem Timeslot landen und im nächsten keiner.

Ich denke du gehst davon aus das der Tageswert nur einmal genau zu Mitternacht kommt, oder? Die Werte kommen bei mir aber alle 60sek. Ich hatte es so verstanden das im aktuellen (Tages-)Wert der letzte immer durch den neuen (alle 60sek) ersetzt wird. Wenn das Datum auf den nächsten Tag wechselt bleibt der Wert zum gestrigen Tag stehen und es wird dann hochlaufend für den neuen Tag gezählt.
Funktioniert das so?
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

Damian

Zitat von: Tobias am 21 Mai 2022, 14:35:22
Danke für die doch sehr ausführliche Erklärung.
Ich denke du gehst davon aus das der Tageswert nur einmal genau zu Mitternacht kommt, oder? Die Werte kommen bei mir aber alle 60sek. Ich hatte es so verstanden das im aktuellen (Tages-)Wert der letzte immer durch den neuen (alle 60sek) ersetzt wird. Wenn das Datum auf den nächsten Tag wechselt bleibt der Wert zum gestrigen Tag stehen und es wird dann hochlaufend für den neuen Tag gezählt.
Funktioniert das so?
Der date-Wert wird solange erhöht, solange der Zählerwert steigt. Um 00:01 wird er in last_date übernommen und auf Null zurückgesetzt. Ob dann in 7 Slots immer die richtigen Tageswerte landen, kann ich - wie schon beschrieben - nicht vorhersagen.

Ich hatte ja eher an last_date gedacht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF