NEWS
JavaScript Adapter startet ständig neu
-
@mike2712 sagte in JavaScript Adapter startet ständig neu:
@ticaki
Folgende Geräte habe ich in die Funktion gezogen denke gerade drüber nach ob das überhaupt richtig ist, hätte ich das in einer Aufzählung anstatt Funktion machen müssen?Aufzählung würde aber dann nie aktuell sein.
Das Problem ist das für jeden Wert, der sich in einer dieser Lampen ändert das Skript triggert, also auch für "Online seit" und "Volt"
Kopiere lieber die Zählselektoren und hefte sie an den Triggerblock, dann reagiert das Skript nur noch bei an/aus. Kannst den Triggerblock vergrößen so das mehr dran passt.
-
@ticaki meinst du das so?
Aber dann wäre der ganze Vorteil der Funktion weg, dann müsste ich jeweils an die Trigger anpassen wenn ich etwas in den Aufzählungen ändere, wenn steckdose 36 oder was auch immer zu DekoBeleuchtung gehören soll.
Update
so meinst du es, oder ?
-
- Version ja, genau
Edit: wenn du aber was an der Beleuchtungsdeko änderst musst du das Skript neustartet. Die listen aktualisieren sich nicht wärend des betriebs
-
@ticaki super danke, ja das funktioniert auch, CPU Last bleibt nahezu konstant, puh ob man dann daran denkt das script neuzustarten, okay, wenns nicht funktioniert wird es mir bestimmt einfallen
Noch 2 kurze Fragen, bin gerade dabei alles ein wenig zu optimieren, weil iobroker meine QNAP CPU schon massiv auslastet mittlerweile, es ist ja in den Jahren auch immer mehr und mehr dazugekommen. aber alleine dieses fehlerhafte Script hatte schon massive auswirkungen auf den QNAP, ist das normal, vermutlich ja.
- ist es sinnvoller die scripte in 2 Instanzen aufzuteilen oder ist das Resourcen mässig ehr vom Nachteil, für die Fehlersuche war es jetzt hilfreich
- ich habe extrem viele anlage Werte (Stromverbrauch, PV Werte, Batterieladung / Batterentladung, etc.) die als Trigger benutzt werden zum Teil der selbe Datenpunkt an vielen verschiedenen Trigger, weil das Aufgeteilt ist zum Beispiel in verschiedenen Gruppen, PV-Erzeugung, Eigenverbrauch, Netzrückspeisung, da wird als Beispiel immer die aktuelle PV leistung benötigt, wie auch immer, kann man wie bei Aufzeichnungen eine Art Blockzeit mit angeben wie z.B. für die Trends? Oder welche Möglichkeiten der Optimierung gäbe an dieser Stelle, denke das benötigt schon viel Leistung aktuell in meinem System.
-
@mike2712
Wenn du terminal zugriff auf das QNAP hast und darauf linux läuft installiere dir htop und schaue es dir anBei mir hat der shelly adapter rund das 4-fache der CPUzeit belegt im bezug auf den rest und der redis 4 mal mehr als shelly.
optimierungen an Skripten bringen nicht soviel, ausser bei einem wie diesem.
Ich würde Lesbarkeit der Optimierung vorziehen.
Du könntest dir über eine simple Javascriptfunktion ein Blockly bauen das dir Skripte restartet
startScript(varname)
und bevor die Funktion aufrufst schreibst du den Skriptnamen in die Variable varname, die du zuvor angelegt hast
-
@ticaki danke, aber so tief stecke ich nicht in der Materie, bin eigentlich nur froh das alles doch relativ gut läuft bei den Mengen an Geräten, Adaptern und scripten. QNAP analysiere ich nur ein wenig wie folgen screenshot.
Aktuell läuft es auch wieder deutlich besser, nur sind in der CPU Last extreme Schwankungen, von 40 -> 98 ohne für mich ersichtlichen Grund, ich beobachte das dann erstal weiter. Ja Lesbarkeit ist schon wichtig, ich habe eihentlich auch in allen Scripten Kommentare, von Beruf bin ich SPS Automatisierer, aus diesem Grund achte ich auch schon auf so etwas. Vielen dank für die Hilfe, der Übeltäter wurde ja schnell gefunden und entsprechend abgeändert. -
@ticaki sagte in JavaScript Adapter startet ständig neu:
Du könntest dir über eine simple Javascriptfunktion ein Blockly bauen das dir Skripte restartet
startScript(varname)
und bevor die Funktion aufrufst schreibst du den Skriptnamen in die Variable varname, die du zuvor angelegt hast
Du meintest so was, ja das habe ich schon mit meinen problem Adaptern gemacht, sieht anders aus als bei Dir, aber denke das war gemeint,oder?
-
@mike2712
Für Adapter muss man mit Objekten spielen, für ein Script gibts fertige Befehle.btw. lt. deiner Grafik könntest du mit vielen Optimierungen wohl 1% CPU leistung sparen... geh die Zeit lieber arbeiten und kauf dir von dem Geld ne schneller NAS
IMHO lohnt nicht.
-
@ticaki okay, ja mit den Gedanken hatte ich auch schon gespielt, habe ein 453a, hatte auch schon mal ein wenig geschaut was in Frage kommen könnte, weil auch Kameras mit eingebunden werden sollen, aber noch nicht so intensiv. Danke
-
@mike2712
war mehr ein Joke, weil es sich nicht wirklich lohn wegen 3%