Hi,
anbei ein Script (von ChatGPT erstellt), welches Violet alle 10 Sekunden abfragt und alle Werte nach "0_userdata.0.Pool.Violet" schreibt.
Die IP Adresse muss in Zeile 2 angepasst werden.
Die Gruppierungen basieren auf getReadings.xlsx, wurden von mir aber etwas anders gruppiert, sowie Gruppierungs-Namen geändert. Excel ist auch anbei.
Für die Visualisierung mache ich es einfach und verwende einen iFrame, indem das Violet Dashboard gezeigt wird.
Ich habe festgestellt, dass im Excel nicht alle Werte enthalten sind. Wo ich eine gute Vermutung hatte was sie bedeuten, habe ich sie hinzugefügt, mit einem "tbd" in der Description Spalte.
Wenn jemand Ideen/Vorschläge hat, wie das verbessert werden kann... Gerne!
Ob meine Gruppierungen sinnvoll sind, wird sich zeigen. Vielleicht wäre es einfacher die Gruppierungen komplett wegzulassen.
Schöne Grüße
Robert
ioBroker Script
-
Alex
- Administrator
- Beiträge: 10168
- Registriert: 28. Mai 2014, 23:00
Re: ioBroker Script
Und das funktioniert so im ioBroker, was ChatGPT da rausgeschmissen hat?
Die "Gruppierungen" hast Du aber selber angelegt?
ein Vorschlag vielleicht:
1. Zeile hinzufügen:
letzte Zeile ändern:
Ein nackiges "setInterval()" läuft in JS im global scope. Wenn das Script mal crasht und der ioBroker startet es neu (keine Ahnung wie der das handhabt), läuft das setInterval() im Hintergrund typischerweise weiter. Wenn das mal über Tage/Wochen 20..30..50 mal passiert ist, laufen entsprechend 20..30..50 Instanzen davon und fressen Dir RAM und Rechenleistung weg, bis irgendwas crasht.
Die "Gruppierungen" hast Du aber selber angelegt?
ein Vorschlag vielleicht:
1. Zeile hinzufügen:
Code: Alles auswählen
let violetIntervalHandle = null;Code: Alles auswählen
violetIntervalHandle = setInterval(fetchData, 10000);-
soki
- Beiträge: 12
- Registriert: 13. Mai 2021, 20:52
Re: ioBroker Script
das funktioniert tatsächlich. Ich bin auch überrascht.
Eine Änderung gab es noch: ioBroker hat sich beschwert über zu viele setstate Befehle in einer Minute (>1000).
Habe dann eine Prüfung auf Wert-Änderung vorangestellt. Jetzt keine Beschwerden mehr.
Die Gruppierung kommt von deinem Excel Sheet. Hier ist die Frage ob das überhaupt sinnvoll ist.
Wenn sich die Datenelemente noch ändern, müsste man das jedes Mal im Script nachziehen.
Klingt eigentlich, als ob ich die Gruppierung weglassen sollte.
Deine Code-Änderungen habe ich aufgenommen. Funktioniert noch alles
Eine Änderung gab es noch: ioBroker hat sich beschwert über zu viele setstate Befehle in einer Minute (>1000).
Habe dann eine Prüfung auf Wert-Änderung vorangestellt. Jetzt keine Beschwerden mehr.
Die Gruppierung kommt von deinem Excel Sheet. Hier ist die Frage ob das überhaupt sinnvoll ist.
Wenn sich die Datenelemente noch ändern, müsste man das jedes Mal im Script nachziehen.
Klingt eigentlich, als ob ich die Gruppierung weglassen sollte.
Deine Code-Änderungen habe ich aufgenommen. Funktioniert noch alles
-
Alex
- Administrator
- Beiträge: 10168
- Registriert: 28. Mai 2014, 23:00
Re: ioBroker Script
>>Eine Änderung gab es noch: ioBroker hat sich beschwert über zu viele setstate Befehle in einer Minute (>1000).
Denke Du kannst auch alles rausnehmen, was jetzt in der Gruppierung mit "tbd" drin steht. Sind alles interne Geschichten, mit denen man in ioBoroker eigentlich nix anfangen kann (oder können sollte). Wertet auch sicher niemand in dem Umfang aus (deswegen auch nicht dokumentiert).
Denke Du kannst auch alles rausnehmen, was jetzt in der Gruppierung mit "tbd" drin steht. Sind alles interne Geschichten, mit denen man in ioBoroker eigentlich nix anfangen kann (oder können sollte). Wertet auch sicher niemand in dem Umfang aus (deswegen auch nicht dokumentiert).
-
Alex
- Administrator
- Beiträge: 10168
- Registriert: 28. Mai 2014, 23:00
Re: ioBroker Script
...einiges sonstiges vermutlich auch ... /getReadings?ALL liefert 400 Werte zurück und VIOLET arbeitet mit 1584 Variablen (falls man Konfig schreiben will) ... niemand wird das "extern" in dem Umfang nachbilden.