NEWS
Erstes Blockly und ich bin am scheitern!?
-
@ub-privat
Nein, sonst wird jede Sekunde berechnet. Nimm einfach einen der Werte der sich ändert, so hast eine neue Berechnung sobald sich dieser ändert. -
@ub-privat ich würde Dir empfehlen, Dich erst einmal mit den Grundlagen von Blockly zu beschäftigen (z.B. in der Doku), denn auf den ersten Blick sehe ich 1 grundlegenden Fehler:
- Jedes Script muss einen Trigger beinhalten, der seine Ausführung bewirkt. Das kann entweder die Änderung/Aktualisierung eines oder mehrerer Datenpunkte sein oder ein zyklische Ausführung (jeden Tag, alle x Minuten etc)
Gruß
Thomas
-
@ahnungsbefreit
Falsch, genau da sollen sie rein. Du meist global. Steht aber auch in der Doku. -
@jan1 Jep, korrigiert!
-
@ahnungsbefreit
eigentlich ist es sogar egal wo sie liegen, Hauptsache nicht in global
Was für Scripte in global sollten entzieht sich auch meiner Vorstellungskraft, da mir nicht in den Sinn kommt, was ich an jedes Script automatisch anhängen könnte. -
Ihr habt sicherlich Recht, dass die Anleitung zu studieren hilfreich ist. Doch nach langem Lesen wird man scheinbar blind und versteht noch weniger.
Das mit dem Trigger ist einleuchtend.Sobald sich der Wert ändert, sollen die Rechenoperationen ausgeführt werden.
Sieht für mich schlüssig aus!
Doch der Fehlerlog besagt etwas anderes!
1.3.2021, 13:09:08.305 [info ]: javascript.0 (16117) Stop script script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:09:08.367 [info ]: javascript.0 (16117) Start javascript script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:09:08.384 [warn ]: javascript.0 (16117) at script.js.common.PV_GESAMTVERBRAUCH:7:1 1.3.2021, 13:09:08.386 [error]: javascript.0 (16117) script.js.common.PV_GESAMTVERBRAUCH: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330 1.3.2021, 13:09:08.387 [error]: javascript.0 (16117) at script.js.common.PV_GESAMTVERBRAUCH:18:1
... und das verstehe ich nicht - wo muss ich den Fehler suchen!?
-
@ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:
wo muss ich den Fehler suchen!?
rechts oben die Ansicht von Blockly in javascript umstellen (nicht die Konvertierung!) und an den angegebenen Stellen suchen:
- PV_GESAMTVERBRAUCH:7:1 Zeile 7, Position 1
- PV_GESAMTVERBRAUCH:18:1 Zeile 18, Position 1
Im zweiten Blockly steht in steuere keine ID
-
@ub-privat
und wenn zwei mal mit dem selben DP getriggert werden soll, kannst auch ein einzigen trigger nehmen, dann auf wurde geändert, könnte auch besser sein. -
Vielen Dank für die guten Hinweise:
Wenn ich entsprechend umstelle:// Berechnung Gesamtverbrauch - Überschuss on({id: "sma-speedwire.0.SPOT_PACTOT"/*SPOT_PACTOT*/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("javascript.0.PV_GESAMTVERBRAUCH.PV_UEBERSCHUSS"/*PV_UEBERSCHUSS*/, (getState("sma-speedwire.0.SPOT_PACTOT").val - getState("sma-em.0.3006123832.psurplus").val * 0.001)); }); // Berechnung Gesamtverbrauch - Bezug on({id: "sma-speedwire.0.SPOT_PACTOT"/*SPOT_PACTOT*/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("javascript.0.PV_GESAMTVERBRAUCH.PV_BEZUG"/*PV_BEZUG*/, (getState("sma-speedwire.0.SPOT_PACTOT").val + getState("sma-em.0.3006123832.pregard").val * 0.001)); });
wede ich nicht wirklich schlauer. Die Datenpunkte habe ich überprüft.
Übersehe ich noch etwas? -
Du meinst so!?
Aber das Fehlerlog wird nicht besser...
1.3.2021, 13:27:20.952 [info ]: javascript.0 (16117) Stop script script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:27:20.969 [info ]: javascript.0 (16117) Start javascript script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:27:20.980 [warn ]: javascript.0 (16117) at script.js.common.PV_GESAMTVERBRAUCH:7:1 1.3.2021, 13:27:20.983 [error]: javascript.0 (16117) script.js.common.PV_GESAMTVERBRAUCH: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330 1.3.2021, 13:27:20.985 [error]: javascript.0 (16117) at script.js.common.PV_GESAMTVERBRAUCH:18:1
-
@ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:
script.js.common.PV_GESAMTVERBRAUCH:
ist das überhaupt das gepostete Script?
Stimmen die Zeilennummern im Code?
In Zeile 7 ist der Kommentar, und Zeile 18 gibt es gar nichtStarte mal die Instanz neu
-
Der Neustart der Instanz scheint des Rätsels Lösung...
// Berechnung Gesamtverbrauch on({id: "sma-speedwire.0.SPOT_PACTOT"/*SPOT_PACTOT*/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; // Berechnung - Überschuss setState("javascript.0.PV_GESAMTVERBRAUCH.PV_UEBERSCHUSS"/*PV_UEBERSCHUSS*/, (getState("sma-speedwire.0.SPOT_PACTOT").val - getState("sma-em.0.3006123832.psurplus").val * 0.001)); // Berechnung - Bezug setState("javascript.0.PV_GESAMTVERBRAUCH.PV_BEZUG"/*PV_BEZUG*/, (getState("sma-speedwire.0.SPOT_PACTOT").val + getState("sma-em.0.3006123832.pregard").val * 0.001)); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJBJTQwMldoJTIzU2lObVh4dENEJTIzcENTMiUyMiUyMHglM0QlMjIxODglMjIlMjB5JTNEJTIyMjEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUJlcmVjaG51bmclMjBHZXNhbXR2ZXJicmF1Y2glM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyUSU3QyU2MG53UHBDVCUyNVJCfjk3VmglMjQlM0Z6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFc21hLXNwZWVkd2lyZS4wLlNQT1RfUEFDVE9UJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJjNXhITSUzQi1IKV9NcyUzQmZ+cnF3MyU0MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VCZXJlY2hudW5nJTIwLSUyMCVDMyU5Q2JlcnNjaHVzcyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyQiUyNXQpSSU2MGlXdXZFRHd0RWp0SlJYJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlBWX0dFU0FNVFZFUkJSQVVDSC5QVl9VRUJFUlNDSFVTUyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdEVSlHZiUyQiUyRkY0TXQ2JTdCVHdabiUyM0NLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyKWIlMkJRTCU0MDYwZGhvZmsweVh6JTNBRzYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMk0zJTIzcjVaRCU1RFQlMjNlTy0tJTI1LTQuMnMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VzbWEtc3BlZWR3aXJlLjAuU1BPVF9QQUNUT1QlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjI1ZjElN0RSbG9zUm5PeF9ZKExRTiglM0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMjVJJTdDa2h0ZEcqMFp2dFQlNDAlNUIwTG1oJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNVUxUSVBMWSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNBS2QlN0MlM0FVJTI0JTNCR2paJTNEZ0lHTFNKYnglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlAlMkJLZ196SWlhJTI0QSglMkYlN0Rfc05YaiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNtYS1lbS4wLjMwMDYxMjM4MzIucHN1cnBsdXMlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKbHNINHh5YSU1REtrYWZEQzhTcVUlN0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwLjAwMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIlNUQ5OCUzQU1CQnpzJTYwMSU1RWhBc3BVY2txJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUJlcmVjaG51bmclMjAtJTIwQmV6dWclM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJ4JTNGJTdEJTdDJTNEJTYwMHc0JTNBUHc5b29WQmYlN0RLJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlBWX0dFU0FNVFZFUkJSQVVDSC5QVl9CRVpVRyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIybzBfMyUzQVNnaWRhbXJOZCU2MFhaWUhwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBREQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjdqJTVCdTElNURSTlpRMi5mcG4tMXNvNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyam13ekFPc1NqVSU0MHMpcyUyRkxVYmVkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFc21hLXNwZWVkd2lyZS4wLlNQT1RfUEFDVE9UJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyMmslMjRWJTVCdXhZJTI1akslM0YlMkIlMkMlMjVSJTNBWlglNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMmFkRUxsVyU1RC1TJTQwJTVEcCU1QldPZ0clNUV+KCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTVVMVElQTFklM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjclNjB1X19BJTdCdUglNUUpNDNlNWIlMjUlMjNOdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyUVZqUGV0bmN+QSpUJTQwfm9MWiU3Q2UwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFc21hLWVtLjAuMzAwNjEyMzgzMi5wcmVnYXJkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIySms3TW8lNUUzWktVQk4lNjBzKiUyM21XU3ElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwLjAwMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
Logeintrag:
1.3.2021, 13:31:46.861 [info ]: javascript.0 (18061) Stop script script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:31:46.869 [info ]: javascript.0 (18061) Start javascript script.js.common.PV_GESAMTVERBRAUCH 1.3.2021, 13:31:46.873 [info ]: javascript.0 (18061) script.js.common.PV_GESAMTVERBRAUCH: registered 1 subscription and 0 schedules
Änderung der Datenpunkte erfolgt:
Es funktioniert!!!
Ich danke euch!!!
-
@ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:
Der Neustart der Instanz scheint des Rätsels Lösung...
Dann lief noch was im Hintergrund
Wenn das keine Adapterdatenpunkte sind, sondern selbst erstellte, bitte aktualisiere und nicht steuere nehmen.
-
@jan1 Wie gesagt, ich habe etwas zu schnell abgeschickt - ich meinte GLOBAL.
-
-
@homoran
Ist das wirklich relevant, ob man hier aktualisiere oder steure nimmt? So wie ich den Unterschied verstanden habe, gibts bei steuere noch quasi ein Enter hinterher und aktualisiere schreibt nur.@Ahnungsbefreit
war auch kein Vorwurf -
@jan1 sagte in Erstes Blockly und ich bin am scheitern!?:
Ist das wirklich relevant, ob man hier aktualisiere oder steure nimmt?
Hier nur kosmetisch. Dann gibt es keine roten Werte
bei Steuerung von Adaptern über deren Datenpunkte muss steuere genommen werden um dem Adapter zu sagen, dass dieser etwas tun soll.
Nach getaner Arbeit setzt dieser dann das ACK-Flag auf true (was beim aktualisiere von vornherein gesetzt wird) -
@homoran
Ok, so gesehen kommt das auf das Selbe raus wie ich es verstanden hatte, aber schön wenn mans dann doch genau weiß -
Moin,moin! Da alles gestern so gut funktioniert hat, muss ich heute nochmals nachfragen.
Bei einem weiteren Skript// VD_IMPULS - täglich 00:01Uhr schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"days":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tageszähler"/*VD_IMPULS_Tageszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tagesvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"days":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Tagesvariable"/*VD_IMPULS_Tagesvariable*/, getState("hpcontrol.0.values.057").val, true); }); // PV_Monatsertrag - monatlich letzter Tag schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"months":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatszähler"/*VD_IMPULS_Monatszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatsvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"months":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Monatsvariable"/*VD_IMPULS_Monatsvariable*/, getState("hpcontrol.0.values.057").val, true); }); // PV_Jahresertrag - jährlich letzter Monat schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahreszähler"/*VD_IMPULS_Jahreszähler*/, (getState("hpcontrol.0.values.057").val - getState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahresvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"00:02"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.005_VD_IMPULSE.VD_IMPULS_Jahresvariable"/*VD_IMPULS_Jahresvariable*/, getState("hpcontrol.0.values.057").val, true); });
Bekomme ich folgende Fehlermeldung:
3.3.2021, 08:54:37.026 [info ]: javascript.0 (19908) Stop script script.js.common.PV_ERZEUGUNG 3.3.2021, 08:54:37.086 [info ]: javascript.0 (19908) Start javascript script.js.common.PV_ERZEUGUNG 3.3.2021, 08:54:37.104 [error]: javascript.0 (19908) script.js.common.PV_ERZEUGUNG: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330 3.3.2021, 08:54:37.105 [error]: javascript.0 (19908) at script.js.common.PV_ERZEUGUNG:9:1
In Zeile 9 ist aber nichts anders als in den vorherigen Zeilen!?
Wo und nach was muss ich suchen?
-
Guten Morgen, ich muss nochmals um eure fachliche Hilfe bitten.
Das mit "Blockly" wird so langsam. Die Logiken sind soweit verständlich, jedoch die Fehlermeldungen bereiten mir Kopfzerbrechen.Folgendes Script zeigt beim Speichern keinen Fehler:
Es sollen die Tages-, Monats- und Jahreswerte ermittelt werden./ PV_Tagesertag - Tageswechsel schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tageszähler"/*PV_Tageszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Tagesvariable"/*PV_Tagesvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true); }); // PV_Monatsertrag - monatlich letzter Tag schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"months":1},"valid":{"from":"05.03.2021","to":""}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatszähler"/*PV_Monatszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"months":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Monatsvariable"/*PV_Monatsvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true); }); // PV_Jahresertrag - jährlich letzter Monat schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"years":1,"yearDate":31,"yearMonth":12}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahreszähler"/*PV_Jahreszähler*/, (getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val - getState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable").val), true); }); schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"years":1,"yearDate":1,"yearMonth":1}}', function () { setState("javascript.0.VERBRAUCHSWERTE.004_PV_ERZEUGUNG.PV_Jahresvariable"/*PV_Jahresvariable*/, getState("modbus.0.inputRegisters.3.30537_Tagesertrag_kWh").val, true); });
Doch das Fehlerlog bringt folgende Meldung:
javascript.0 2021-03-05 08:10:38.797 error (2079) at Script.runInContext (vm.js:130:18) javascript.0 2021-03-05 08:10:38.797 error (2079) at script.js.common.PV_ERZEUGUNG:9:1 javascript.0 2021-03-05 08:10:38.796 error (2079) at schedule (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1183:52) javascript.0 2021-03-05 08:10:38.796 error (2079) at Scheduler.add (/opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330:51) javascript.0 2021-03-05 08:10:38.796 error (2079) TypeError: sch.period.months.map is not a function javascript.0 2021-03-05 08:10:38.796 error (2079) ^ javascript.0 2021-03-05 08:10:38.796 error (2079) sch.period.months = sch.period.months.map(m => m - 1); javascript.0 2021-03-05 08:10:38.795 error (2079) script.js.common.PV_ERZEUGUNG: /opt/iobroker/node_modules/iobroker.javascript/lib/scheduler.js:330
In Zeile 5 wird der Fehler ausgewiesen, doch was mache ich hier verkehrt?