NEWS
Trigger mit Strings
-
@asgothian ok, verstanden, aber wieso wird die Abfolge dann nicht berechnet, z.B. bei einem SOC von 60 (%), dann rechnet er also nicht (60/10)*10, sondern macht mit "Limit" was?
Und warum erst dividieren und dann wieder mit dem selben Wert multiplizieren?
die Funktion roundDown rundet den erhaltenen Wert auf die ganze Zahl näher 0
die Funktion roundUp macht es in die andere Richtung (ganze zahl von 0 weg)bei 60 lohnt das nicht, aber.. wenn es eine Aktualisierung mit 56 gibt, dann liefert
roundup(56/10) * 10 die Zahl 60, während rounddown(65/10)*10 die Zahl 50 liefertdas ganze funktioniert letztendlich so das erst dann eine Nachricht geschickt wird wenn der aktuell vom Adapter gemeldete Wert das Limit übersteigt.
Ein wert von 60 erzeugt also noch keine Meldung, die Meldung kommt erst wenn 61 gemeldet wird. (oder 60.00000001)
Dann wird durch rounddown(61/10)*10 die Meldung "zu 60% geladen" ausgegeben, und durch roundup(61/10)*10 wird das Limit auf 70 angehoben. Die nächste Meldung kommt also erst wenn 70% überschritten wirdA.
-
die Funktion roundDown rundet den erhaltenen Wert auf die ganze Zahl näher 0
die Funktion roundUp macht es in die andere Richtung (ganze zahl von 0 weg)bei 60 lohnt das nicht, aber.. wenn es eine Aktualisierung mit 56 gibt, dann liefert
roundup(56/10) * 10 die Zahl 60, während rounddown(65/10)*10 die Zahl 50 liefertdas ganze funktioniert letztendlich so das erst dann eine Nachricht geschickt wird wenn der aktuell vom Adapter gemeldete Wert das Limit übersteigt.
Ein wert von 60 erzeugt also noch keine Meldung, die Meldung kommt erst wenn 61 gemeldet wird. (oder 60.00000001)
Dann wird durch rounddown(61/10)*10 die Meldung "zu 60% geladen" ausgegeben, und durch roundup(61/10)*10 wird das Limit auf 70 angehoben. Die nächste Meldung kommt also erst wenn 70% überschritten wirdA.
@asgothian dann funktioniert es in dem Fall aber nicht, weil bei mir auch Werte dazwischen gemeldet wurden

-
@asgothian dann funktioniert es in dem Fall aber nicht, weil bei mir auch Werte dazwischen gemeldet wurden

-
@fir3drag0n zeig mal genau das was du zusammen gebaut hast
-
du hast den Runden Baustein an der falschen Stelle eingehängt.
Anstatt "runde ab (wert / 10) * 10" machst du
"runde ab (wert / 10 * 10)das gleiche beim aufrunden
Vergleich mal:
Deins:
Meins:

So wie du es gemacht hast liefert es alle 1 % eine Nachricht
A.
Nachtrag: der gleiche Fehler natürlich auf bei der Berechnung des Limit

