Mehrere Werte in einer Variable

Das was ich hier gebastelt habe funktioniert nicht.
Bildschirmfoto vom 2023-08-05 11-32-25

Der Flow soll durchlaufen wenn die Batterie einer der Werte erreicht aber er tut es nicht, ich denke da soll nicht ein Komma dazwischen sondern etwas anderes?
Wenn es nichts gibt dann muss ich wohl mit 21 Kacheln arbeiten.
Habe es auch mit den Werten in runde Klammern versucht, funktioniert nicht.

Ich benutze dafur diesen kleinen Homeyscript in einen Flow, die einmal pro Woche alle Batterie nivo’s im Haus messen, und alle unterhalb 20% am Smartphone Weitergeben.

let batteryThreshold =20;
let lowBattery = ;
await Homey.devices.getDevices()
.then(result => {
Object.keys(result).forEach(function(key) {
let d = result[key];
if(d.capabilities.includes(“measure_battery”) && d.capabilitiesObj[“measure_battery”].value <= batteryThreshold){
lowBattery.push(d.name + " heeft " + d.capabilitiesObj[“measure_battery”].value + “% batterij over”);
}
});
});
return lowBattery.join(", ");

Wie soll der Flow funktionieren, wenn die Logik-Karte doch besagt, dass der zu vergleichende Werte exakt identisch sein muss, Du aber eine Auswahl an Ladezuständen abfragen möchtest.
Sollte der Batterie-Ladezustand z.B. 10 % entsprechen, dann wäre der zu vergleichende Wert 10 zwar korrekt, aber alle anderen Werte nicht. Eigentlich eine ganz logische Sache.

Was willst Du mit solch einem Flow erreichen? Macht es nicht mehr Sinn eine Info zu erhalten, wenn der Batterie-Ladezustand einen bestimmten Wert, z.B. 20 %, unterschritten hat? Was vermutlich das Skript von @WimS übrigens macht.

Wenn Du wirklich alle 5er Schritte informiert werden möchtest, bleibt Dir vermutlich keine andere Wahl übrig als entsprechend viele Logikkarten zu nutzen, oder ein entsprechendes Skript zu schreiben.

Der Wert wird minütlich abgefragt und dann möchte ich eine Meldung über den aktuellen Stand der Batterieladung in der Zeitleiste erhalten, es handelt sich nicht um den Batteriestand von Geräten sondern den von Meinem Hausakku, deswegen möchte ich in 5% Schritte informiert bleiben.
Ich dachte es gibt eine Möglichkeit das die Karte durchläuft wenn nicht nur eine, sondern eins der aufgeführten Werte wahr ist.
Dann muss ich wohl mit mehreren Karten arbeiten.

Ok, das ist natürlich ein anderer Anwendungsfall als wenn man alle batteriebetriebenen Geräte abfragt.
Wie gesagt, eventuell ist das tatsächlich mit einem Skript möglich, aber dabei kann ich Dir leider nicht behilflich sein.

Hallo,

Wenn Du eine Textvariable anstelle einer Numerischen Variablen verwendet, wird diese Zahlenreihe einfach in dieser Variablen gespeichert.
→ Eine numerische Variable kann nur aus Zahlen wie 10,4 oder 0,00000000087 oder 188,5 usw. bestehen.

Ein Logikvergleich sollte ausreichen.

Der Gegenwert zu 5 ist 0,2. (5*0.2 = 1)

{{ Wert * 0.2 ]] ist genau {{round Wert * 0.2,0}} ist wahr

Datail 5er Schritte

Wenn du das minütlich laufen lässt, aber in den Abfragen z.B. vorher 49,9 und nachher 50,1 herauskommt und der genaue Wert 50 übersprungen wird, bekommst du keine Meldung.