NEWS
Erstes Blockly und ich bin am scheitern!?
-
-
@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?
-
@ub-privat
Poste mal den Blockly Export -
Blockly:
Export:
// 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); });
-
@ub-privat
Ok, dann kann ich nur vermuten, dass sich die DPs im Format beißen. Schau mal in den DPs mit denen Du rechnest, ob auch wirklich alle als Zahl deklariert sind.
Dann verwende ich beim Triggee wesentlich lieber CRON als diesen Zeitplan. Da gabs auch schon Probleme. -
@ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:
was mache ich hier verkehrt?
@ub-privat sagte in Erstes Blockly und ich bin am scheitern!?:
sch.period.months = sch.period.months.map(m => m - 1)
was bitte ist
sch.period.months
?