ioBroker Script

Fragen zur Anbindung / Integration von VIOLET an Hausautomationssysteme.
soki
Beiträge: 12
Registriert: 13. Mai 2021, 20:52

ioBroker Script

Beitrag von soki »

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 violet typescript.txt
(29.3 KiB) 223-mal heruntergeladen
getReadings.xlsx
(35.91 KiB) 204-mal heruntergeladen
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10168
Registriert: 28. Mai 2014, 23:00

Re: ioBroker Script

Beitrag von Alex »

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:

Code: Alles auswählen

let violetIntervalHandle = null;
letzte Zeile ändern:

Code: Alles auswählen

violetIntervalHandle = setInterval(fetchData, 10000);
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.
 

Alle Reaktionen


soki
Beiträge: 12
Registriert: 13. Mai 2021, 20:52

Re: ioBroker Script

Beitrag von soki »

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 :-)
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10168
Registriert: 28. Mai 2014, 23:00

Re: ioBroker Script

Beitrag von Alex »

>>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).
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10168
Registriert: 28. Mai 2014, 23:00

Re: ioBroker Script

Beitrag von Alex »

...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.
 

Alle Reaktionen