NEWS
[gelöst] Veränderung eines JSON Datenpunkte als Logik nutzen
-
Ich habe eine Schnittstellenelektronik, die sich leider ab und zu aufhängt. Nun möchte ich mir ein Blockly schreiben das mir ermittelt wenn dieser Fall auftritt.
Das einzige was ich von der Elektronik nicht mehr erhalte wenn er sich aufhängt, ist ein JSON String (AllJsonData). Wie kann man diesen Datenpunkt so umwandeln, dass daraus ein true/false Wert wird? -
@peter-c sagte in Veränderung eines JSON Datenpunkte als Logik nutzen:
Wie kann man diesen Datenpunkt so umwandeln, dass daraus ein true/false Wert wird?
warum?
wie schnell kommen üblicherweise die Daten und wie schnell brauchst du bescheid?
-
@homoran Die Daten kommen je nach Verbrauch rüber. Trigger ist der Stromverbrauch am Zähler. Diese Elektronik sendet diese Signale an einen Inverter, der dann versucht den Verbrauch aus einer Batterie zu kompensieren.
Geschwindigkeit ist nicht das Problem nur wenn gar keine Daten mehr kommen passiert halt nichts.
Wenn ich diesen true/false Wert erzeugen kann würde ich eine RESET erzeugen indem ich die Elektronik aus und einschalte. -
@peter-c sagte in Veränderung eines JSON Datenpunkte als Logik nutzen:
Die Daten kommen je nach Verbrauch rüber.
heisst in Zahlen mit denen man rechnen kann?
Der Rest war klar.
-
@homoran Denke schon. Wenn man Wertveränderung oder Nichtveränderung über Zeit ermittelt.
Kann man feststellen, dass sich so eine Datenpunkt nicht bewegt?
L1L2L3 kommt immer und wird über AllJsonData wiederholt. Wenn diese beiden Werte über lange Zeit unverändert sind könnte die Elektronik sich aufgehängt haben. -
@peter-c
Das datenpunktobjekt enthält nicht nur den Wert an sich, sondern auch wann er zuletzt aktualisiert wurde.
Das müsstest du zyklisch prüfen, ob er nicht mittlerweile aktualisiert werden hätte müssen
Alternativ könnte man auch noch eine andere Methode überlegen. Wenn das Gerät eine ip hat es auch regelmäßig anfingen -
@oliverio Ja es hat eine IP Adresse. Wenn er tot ist reagiert er auf einen Ping nicht mehr. Wie sollte man so einen Ping in ein Blockly schreiben?
-
https://forum.iobroker.net/topic/19554/ping-in-blockly
Ping ist weniger ressourcenintensiv wie datenpunkte abfragen
-
@oliverio Der Link im Link ist schon tot. Aber ich versuche es mal mit dieser PING funktion
-
@peter-c
Ja, die im thread hatten Schwierigkeiten das Ergebnis vom Ping auszuwerten, müsste aber funktionieren. Ich glaub du musst exec mit Ergebnissen auswählen. Hab aber selbst noch nicht ausprobiert.Alternativ kannst du auch mal den Adapter device reminder anschauen
-
@oliverio Wie sollte den der gehen? Da brauch ich doch in der Regel einen Power Wert eines Devices. Den hab ich aber nicht.
-
@peter-c
Ah sorry, da geht es speziell um Strom Steckdosen.
Es war hier im Forum mal die Sprache über so ein alarming Adapter um herauszufinden wenn etwas nicht mehr richtig daten meldet.
Der kam bei der Suche heraus, ein kurzer Scan der Beschreibung sah für mich danach aus. -
@peter-c sagte in Veränderung eines JSON Datenpunkte als Logik nutzen:
Denke schon
ist das die Antwort auf
@homoran sagte in Veränderung eines JSON Datenpunkte als Logik nutzen:
heisst in Zahlen mit denen man rechnen kann?
???
@peter-c sagte in Veränderung eines JSON Datenpunkte als Logik nutzen:
Wenn man Wertveränderung oder Nichtveränderung über Zeit ermittelt.
Kann man feststellen, dass sich so eine Datenpunkt nicht bewegt?da will ich mit dir hin
-
@homoran Habe die Anregung von Oliver aufgegriffen und ein Blockly basierend auf einer Abfrage über den Ping adapter gemacht. Das erschien mir der schnellste Weg. Probiere das jetzt mal aus.
Soyo_Shelly_schalten ist eine Steckdose über die ich den Inverter und den ESP schalten kann.
Soyo_ESP_Status ist vom Ping Adapter (der prüft alle 60000 ms) daher die Pause von 10 sec..