smarthome-tricks.de

ioBroker ECharts – 0-Werte ignorieren über Blockly-Script

In diesem Artikel zeige ich Dir, wie Du mit einem Blockly-Script Werte für die History ignorieren kannst.

Bei der Erstellung meiner letzten E-Chart Auswertung hatte ich leider das Problem, das die Werte des Datenpunkts vor der eigentlichen Aktualisierung häufig auf 0 gesetzt wurden. Diese 0-Werte wollte ich aber nicht in der Auswertung sehen. Im folgenden Screenshot zeige ich Dir die Auswertung mit den 0-Werten.

Meine erste Idee war nun in den Datenpunkt-History Einstellungen die Werte zu ignorieren. Leider ist das aber nicht möglich. Auch im ECharts Adapter können aktuell 0-Werte nicht ignoriert werden. Also musste ich diese Steuerung mittels einem eigenen Script implementieren. In der folgenden Grafik zeige ich Dir meinen Ansatz.

Über einen Trigger auf den ursprünglichen Datenpunkt wird der neue Wert des Datenpunkts so validiert und nur bei bei einem „gültigen“ Wert in einen eigenen Datenpunkt übernommen. In den Einstellungen des eigenen Datenpunkt im Bereich 0_userdata wird dann die History aktiviert.

Im ersten Schritt habe ich mir dazu im Bereich 0_userdata einen eigenen Ordner und Datenpunkt angelegt. Als Datentyp hab ich hier Number gewählt.

Im nächsten Schritt habe ich über die Einstellungen des Datenpunkts direkt die History aktiviert. Damit sollen Veränderungen des Datenpunkts aufgezeichnet werden.

Im letzten Schritt kümmern wir uns nun um die Befüllung des eigenen Datenpunktes. Hierzu habe ich mir ein kleines Blockly-Script angelegt, welches einen Trigger auf den ursprünglichen Datenpunkt beinhaltet. Die Trigger-Auswertung erfolgt nur bei einer Veränderung des Datenpunkts. Im Trigger frage ich dann mit einem Falls-Block den Wert auf größer 0 ab. Wenn der Wert größer 0 ist, dann wird der geänderte Wert des Datenpunkts in den eigenen Datenpunkt übernommen.

Im folgenden Screenshot siehst Du dann die Auswertung des eigenen Datenpunktes.

Ich hoffe Dir gefällt der Artikel. Über Kommentare, Anregungen oder Ideen freue ich mich wie immer 🙂

Die mobile Version verlassen