NEWS
Skript zur dynamischen Generierung Batterie/Akku Symbol
-
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.
-
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
@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.
Sorry, das " war fehl am Platz. Läuft.

Danke Dir
-
@maxtor62 Super, freut mich.
Ro75.
-
@ro75 Ich stoße auf einen Fehler, wenn ich ein SVG generiere mit "showBolt = true;".
XML-Verarbeitungsfehler: Präfix nicht an einen Namespace gebunden Adresse: file:///Z:/Dokumentationen/ioBroker/ro75_BattSymb2a.svg Zeile Nr. 49, Spalte 7: <use xlink:href="#boltSymbol-b-arf2f44" class="" transform="translate(184, 90) ------^ -
@rene55 funktioniert nur via Datenpunkt. Als Datei speichern und dann öffnen geht nicht, da bekomme ich auch nur Meldungen.
Zeige mal bitte den dazugehörigen Code, also den von der Funktion.Ro75.
-
Noch ne Frage: wie wird das Skript getriggert? Mein Datenpunkt hat sich geändert, das tolle Bild leider nicht.
Grüße -
@maxtor62 schaue bitte Post #20.
Ro75.
-
@ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:
@maxtor62 schaue bitte Post #20.
Ro75.
Ok, habe wie im Post #20 die Zeile
on({ id: dValue, change: 'ne' }, dp => { setState(ZielDP, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true); });noch eingebaut.
script.js.Test.Batterie: Error by subscription (trigger): Wrong ID of type boolean or number.Sorry, ich bin halt kein Coder.