NEWS
Skript zur dynamischen Generierung Batterie/Akku Symbol
-
Ich habe eine geänderte / korrigierte Version in den ersten Beitrag gestellt. In manchen Fällen wurde der Rahmen und der Hintergrund der Batterie nicht korrekt oder gar nicht gezeichnet. Das ist damit behoben.
Ro75.
-

Jetzt auch mit Ladesymbol und wahlweise kräftigeren Farben. Einfach den Hauptcode aus erstem Post übernehmen und Beispiel ansehen.
Ro75.
-
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

Jetzt auch mit Ladesymbol und wahlweise kräftigeren Farben. Einfach den Hauptcode aus erstem Post übernehmen und Beispiel ansehen.
Ro75.
Super, Ladesymbol würde eher Links passen?
Warum nimmst du das Beispiel nicht gleich in den Code? -
@sigi234 das Ladesymbol ist im Code - ist bereits integriert. Nur nicht die Option links, rechts - noch nicht
Ro75.
-
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
@sigi234 das Ladesymbol ist im Code - ist bereits integriert. Nur nicht die Option links, rechts - noch nicht
Ro75.
Ja, aber ich meine das:
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
Der eigentliche Aufruf - ein BEISPIEL
-
@sigi234 das Beispiel ist doch auch angepasst.
Ro75.
-
@ro75 Sehr cool, danke für das teilen!
-
Hallo, also brauche ich für jedes Gerät ein Skript?
Kannst du noch die Einheit konfigurierbar machen? (Volt statt %)
Ev. noch die Zahl ohne runden und mit Dezimal?
Die Range einstellbar?
-
@sigi234 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
Hallo, also brauche ich für jedes Gerät ein Skript?
Nein. Du rufst die Funktion nur mit anderen Werten, sprich Datenpunkt (Batteriestand Gerät 2 auf) für Batteriestand und DP für SVG auf.
Ro75.
-
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
@sigi234 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
Hallo, also brauche ich für jedes Gerät ein Skript?
Nein. Du rufst die Funktion nur mit anderen Werten, sprich Datenpunkt (Batteriestand Gerät 2 auf) für Batteriestand und DP für SVG auf.
Ro75.
Ok, begriffen
-
@ro75 Wie kommt man nur auf solche Ideen. Tolle Leistung - bin begeistert.
-

neue Funktionalitäten.
-
Ladesymbol frei beweglich
-
freies Suffix, alternativ komplett freier Text
-
Kommastellen möglich
Funktion und Beispiel im ersten Post aktualisiert. Viel Spaß
Ro75.
-
-

1.0.6: Sortierung der Parameter, Ladesymbol kann auf Wunsch sanft blinken, Dokumentation und Beispiel angepasstWICHTIG: Wird der Code ausgetauscht- MUSS der Aufruf mit geändert werden! - BEISPIEL ansehen!
Ro75.
-
Kannst du mir bitte mal deinen Aufruf mit mehreren Symbolen zeigen?
-
@sigi234 zum Beispiel so. Musst es für dich halt anpassen
Deklaration
const ZielDPHW = '0_userdata.0.Batterie_Heizung_WZ'; const ZielDPHK = '0_userdata.0.Batterie_Heizung_KZ'; const ZielDPHB = '0_userdata.0.Batterie_Heizung_Bad'; const dValueW = 'fritzdect.0.DECT_099950330172.battery'; const dValueK = 'fritzdect.0.DECT_099950346641.battery'; const dValueB = 'fritzdect.0.DECT_099950325774.battery'; const decimalPlaces = 0; // bitte anpassen const labelSuffix = '%'; // bitte anpassen const customLabel = null; // bitte anpassen const showPercent = true; // bitte anpassen const strongColors = true; // bitte anpassen const colorScheme = 'default'; // bitte anpassen const showBolt = false; // bitte anpassen const boltPos = 100; // bitte anpassen const blinkBolt = false; // bitte anpassen//einfacher Funktionsaufruf mit Speicherung der SVG in einen Datenpunkt
setState(ZielDPHW, generateBatterySvg(getState(dValueW).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); setState(ZielDPHK, generateBatterySvg(getState(dValueK).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); setState(ZielDPHB, generateBatterySvg(getState(dValueB).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);//Auf Änderung reagieren und Speicherung der SVG in einen Datenpunkt
on({ id: dValueW, change: 'ne' }, dp => { setState(ZielDPHW, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); }); on({ id: dValueK, change: 'ne' }, dp => { setState(ZielDPHK, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); }); on({ id: dValueB, change: 'ne' }, dp => { setState(ZielDPHB, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); });Ro75.
-

Und es lässt sich auch alles zentral konfigurieren, sodass Änderungen zentral vorgenommen, gespeichert und sofort in Kraft treten.
Ro75.
-
@sigi234
hast Du den Aufruf mit einem extra Skript gestartet?Bei mir wird kein Datenpunkt erstellt.
Grüße -
@maxtor62 in meinem Beispiel (Post 1) wird auch kein Datenpunkt automatisch erstellt. Im Beispiel wird auf einen bereits existierenden Datenpunkt verwiesen.
Ro75.
-
Hi, danke für Deine Hilfe. Bin halt kein Java-Scripter.
Meine Datenpunkte:
const ZielDP = '"0_userdata.0.vis.VIS-Batterie.Batt'; // bitte anpassen const dValue = getState('ecoflow-mqtt.0.D3M1ZE1A9H8G0082.DisplayPropertyUpload.bmsBattSoc').val; // bitte anpassen const decimalPlaces = 0; // bitte anpassen const labelSuffix = '%'; // bitte anpassen const customLabel = null; // bitte anpassen const showPercent = true; // bitte anpassen const strongColors = true; // bitte anpassen const colorScheme = 'default'; // bitte anpassen const showBolt = false; // bitte anpassen const boltPos = 100; // bitte anpassen const blinkBolt = false; // bitte anpassen //Funktionsaufruf mit Speicherung der SVG in einen Datenpunkt setState(ZielDP, generateBatterySvg(dValue, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); -
@maxtor62 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
const ZielDP = '"0_userdata.0.vis.VIS-Batterie.Batt';
da ist ein Fehler drin. Korrekt wäre
const ZielDP = '0_userdata.0.vis.VIS-Batterie.Batt';Und der Datenpunkt (String / Zeichen) muss bereits existieren.
Ro75.