NEWS
Script lässt Instanz abstürzen
-
Hallo zusammen,
ich versuche mich gerade daran einen Mittelwert des PV-Überschusses in eine Variable zu speichern, damit ich anhand dieser dann im Nachgang mein Auto laden kann.
Aktuell funktioniert es nicht. Ich könnte mir vorstellen, dass es an diesem Part liegt:
Passen hier die Typen zusammen?
Unter Objekte finde ich bei Startup_timeAls Auswahl finde ich aber keine Zeichenkette:
Der Wert des Objektes wird so angezeigt:
Aber auch
funktioniert nicht.
Oder liegt der Fehler woanders?
Habe auch schon das versucht
um die Zeit als Fehlerquelle rauszunehmen, aber dann stürzt Javascript ab.
Für einen Hinweis wäre ich dankebar.
Grüße
-
@benutzer0815 sagte: vorstellen, dass es an diesem Part liegt:
Richtig. "wiederhole solange" erzeugt regelmäßig eine Endlosschleife.
-
@paul53 Naja während der Betriebszeit des Wechselrichters soll die Schleife ja auch durchgehend laufen und alle 10 Sekunden die Werte aktualisieren.
Ich dachte übersetzt heißt das: Solange die aktuelle Uhrzeit zwischen der Startzeit des Wechselrichters und der Abschaltzeit des Wechselrichters liegt mache alle 10 Sekunden ....
Verstehe ich das falsch?
-
@benutzer0815 sagte: Verstehe ich das falsch?
Ja. Die Abfrage der Uhrzeit muss innerhalb des 10-s-Triggers erfolgen. In welchem Format liegen die beiden Zeiten vor?
Die Schleife erzeugt tausende neue Trigger, wenn die Zeitbedingung erfüllt ist - bis die JS-Instanz abstürzt. -
@benutzer0815 sagte in Script lässt Instanz abstürzen:
die Schleife ja auch durchgehend laufen und alle 10 Sekunden die Werte aktualisieren.
das macht sie allerdings nicht alle 10 Sekunden, sondern im Millisekundentakt
-
@paul53 Ah ok. Aber wenn ich das so rum mache, dann wird ja auch nachts alle 10 Sekunden die Uhrzeit mit der Start- und Abschatzeit des Wechselrichters verglichen. Mein Anliegen war das nachts das Skript garnichts macht.
Bzgl. Format habe ich ja oben schon geschrieben was ich gefunden habe. Hast du noch einen anderen Tipp wo ich nachschauen kann? Es handelt sich übrigens um einen Huawei Smartmeter und Wechselrichter (SUN2000)
-
@benutzer0815
So macht das ja dann auch keinen Sinn. Dann wird ja wieder das Skript ewig ausgeführt.
Ah jetzt verstehe ich so muss ich das machen oder:Beim ersten Zeitplan sind es 10 Minuten und beim zweiten 10 Sekunden.
So aktualisiere ich alle 10 Sekunden den Wert und wenn die Abschaltzeit erreicht wurde, prüfe ich alle 10 Minuten ob die Startzeit wieder erreicht wurde, oder?
-
@benutzer0815 sagte: Mein Anliegen war das nachts das Skript garnichts macht.
So funktioniert Javascript nicht, denn es arbeitet Ereignis gesteuert (in dem Fall alle 10 s).
Vorschlag:Außerhalb des Zeitraums wird halt keine Aktion ausgeführt.
Was enthält der Datenpunkt "Active_power"? -
@paul53 said in Script lässt Instanz abstürzen:
Was enthält der Datenpunkt "Active_power"?
Das ist die aktuelle Erzeugungsleistung der PV-Anlage.
Das mit dem Textbaustein sieht etwas umständlich aus. Scheint aber auch nicht zu funktionieren, den ich bekomme ganz viel hiervon:
So sah es nun bei mir aus: -
@benutzer0815 Irgendetwas anderes stimmt bei mir nicht.
Ich habe es jetzt mal komplett reduziert auf:In der Objektansicht steht immernoch nichts:
Das Objekt ActivePower zeigt aber:
Beide Objekte sind eine Zahl und beide sind les- und schreibbar.
Wo kann der Fehler liegen? -
@benutzer0815
Du musst auch den Wert nehmen und nicht das ganze Objekt. -
@codierknecht Ah ok. Also so:
Bei der ersten ObjectID kann ich das so aber nicht machen. Also aktualisiere Wert von ÜberschussZurVerfügung.
So funktiniert es nu so halb. Also ich habe jetzt im Objekt nicht mehr (null) stehen sondern es wird tatsächlich ein Wert geschrieben. Allerdings immer nur 0.
Aktuell müsste der Wert negativ sein. Gibt es dahingehend etwas zu beachten? Kann der Zustandstyp Zahl des Objekts negativ sein? Testweise habe ich mal als Min -10000 und Max 50000 festgelegt. Aber hilft auch nichts.
Kann die Funktion runde negative Werte? -
@benutzer0815 sagte in Script lässt Instanz abstürzen:
Kann die Funktion runde negative Werte?
Selbstverständlich.
Lass Dir doch erstmal mit 'nem Debug-Block ausgeben, was da drinsteht.
-
@codierknecht Ohne was geändert zu haben geht es nun. Zumindest zeigt er mir Werte an.
Seltsamerweise aber nicht die aus dem anderen Objekt.Im Grunde kopiert doch mein aktuelles Skript den Wert aus ActivePower nur. Von den Werten her sieht es aber eher so aus als wenn in meiner Variablen die PV-Erzeugungsleistung gespeichert wird. Obwohl das Objek aus dem ich kopiere ja die Differenz anzeigt. Also Erzeugung-Verbrauch. Sehr interessant.
-
@benutzer0815 Jetzt wirds richtig verrückt.
Ich habe das Skript "test" in dem ich nur das habe:
Und nun habe ich mal im ursprünglichen Skript "Berechnung PV-Überschuss" auch dieses debug eingefügt um zu sehen was da passiert:
Der gibt mir jetzt den Namen des anderen Skripts aus?!
-
@benutzer0815
Starte mal die JS-Instanz neu ... -
@codierknecht Hilft leider auch nicht.
-
Liegen da Skripte im Verzeichnis 'global'?
-
-
@benutzer0815 Ich wollte gestern parallel noch die vis 2 ausprobieren. Dazu musste ich im Repository auf Beta umstellen und habe auch bei den Adaptern alles aktualisiert. Vis 2 ging dann aber nicht zu installieren Irgendwas mit JS controller 4.2.2 statt 5.0.0 oder so. Da habe ich dann abgebrochen und wieder auf stable zurück gestellt. Nun habe ich bei einigen Adaptern höhere installierte Versionen als verfügbar ist.
Kann die Problematik daher rühren?