- ioBroker Community Home
- Deutsch
- Skripten / Logik
- Blockly Zeitplan error
NEWS
Blockly Zeitplan error
-
@Homoran sagte in Blockly Zeitplan error:
Du hast Datenpunkte mit Werten angelegt. Du rechnest ja damit.
Ich glaube das sind nur die angelegten Scripte mit denen er dann versucht zu rechnen. Ich habe gerade mal ein Script im root Verzeichnis angelegt, schau mal....

Und wenn er dann mit verschiedenen scriptEnabled untereinander versucht zu rechnen sieht das dann wohl so aus. (das da überhaupt Werte stehen...)
Ich denke es gibt gar keine eigenen Datenpunkte.@Homoran
das einzige was mich wundert, das er value als role hat (die erscheint da nicht automatisch, die muß verändert worden sein)Aber hier mal, was er wahrscheinlich gemacht hat.
Script angelegt und dann mit dem Script selbst gerechnet.
steht dann tatsächlich ein Wert drinn

Das das überhaupt so geht.........
@xxx_turbo_xxx
ich habe jetzt leider keine Zeit es zu erklären.
(Du mußt auf jeden Fall eigene Datenpunkte anlegen, oder mit Werten rechnen die Dir ein anderer Adapter zur Verfügung stellt)So sieht es bei @xxx_turbo_xxx jedenfalls aus
das ist aus dem ersten Beitrag (das sind keine eigenen DP, das sind die Blockly selbst)

-
@Homoran sagte in Blockly Zeitplan error:
Du hast Datenpunkte mit Werten angelegt. Du rechnest ja damit.
Ich glaube das sind nur die angelegten Scripte mit denen er dann versucht zu rechnen. Ich habe gerade mal ein Script im root Verzeichnis angelegt, schau mal....

Und wenn er dann mit verschiedenen scriptEnabled untereinander versucht zu rechnen sieht das dann wohl so aus. (das da überhaupt Werte stehen...)
Ich denke es gibt gar keine eigenen Datenpunkte.@dslraser sagte in Blockly Zeitplan error:
schau mal....
das ist ein switch für enabled oder nicht - der DP ist ok
kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
@Homoran
das einzige was mich wundert, das er value als role hat (die erscheint da nicht automatisch, die muß verändert worden sein)Aber hier mal, was er wahrscheinlich gemacht hat.
Script angelegt und dann mit dem Script selbst gerechnet.
steht dann tatsächlich ein Wert drinn

Das das überhaupt so geht.........
@xxx_turbo_xxx
ich habe jetzt leider keine Zeit es zu erklären.
(Du mußt auf jeden Fall eigene Datenpunkte anlegen, oder mit Werten rechnen die Dir ein anderer Adapter zur Verfügung stellt)So sieht es bei @xxx_turbo_xxx jedenfalls aus
das ist aus dem ersten Beitrag (das sind keine eigenen DP, das sind die Blockly selbst)

@dslraser sagte in Blockly Zeitplan error:
Script angelegt und dann mit dem Script selbst gerechnet.
nein, er hat zwei verschieden "Blöcke"

Rot umrandet: selbst angelegte DPs mit denen er rechnet = böse!
Grün umrandet: echte Script.enabled Datenpunkte = System-DPs
kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
@dslraser sagte in Blockly Zeitplan error:
Script angelegt und dann mit dem Script selbst gerechnet.
nein, er hat zwei verschieden "Blöcke"

Rot umrandet: selbst angelegte DPs mit denen er rechnet = böse!
Grün umrandet: echte Script.enabled Datenpunkte = System-DPs
@Homoran sagte in Blockly Zeitplan error:
nein, er hat zwei verschieden "Blöcke"
nein
scripts.js (da hat er gar nix zu suchen)
und das andere sind keine DP
schau noch mal in meinen Beitrag, da habe ich noch was eingefügt
https://forum.iobroker.net/post/375681
das ist aus scriptEnabled

das wäre ein eigener DP (Badezimmer)

bei eigenen DP steht nix von scriptEnabled
-
@Homoran sagte in Blockly Zeitplan error:
nein, er hat zwei verschieden "Blöcke"
nein
scripts.js (da hat er gar nix zu suchen)
und das andere sind keine DP
schau noch mal in meinen Beitrag, da habe ich noch was eingefügt
https://forum.iobroker.net/post/375681
das ist aus scriptEnabled

das wäre ein eigener DP (Badezimmer)

bei eigenen DP steht nix von scriptEnabled
@dslraser sagte in Blockly Zeitplan error:
scripts.js (da hat er gar nix zu suchen)
wo kommt die Struktur denn her?
Habe ich überhaupt nicht - auch nicht im extended modeEDIT: unter controller v2 ist der Punkt da.
sieht exakt so aus wie bei ihm.
zu jedem Skript ein Datenpunkt und wenn es im js-Editor Verzeichnisse gibt, gibt es die hier auch@dslraser sagte in Blockly Zeitplan error:
bei eigenen DP steht nix von scriptEnabled
gebe ich dir vollkommen recht.
DEIN(E) Datenpunkt(e) stehen ja auch direkt unter javascript.xkein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
@dslraser sagte in Blockly Zeitplan error:
scripts.js (da hat er gar nix zu suchen)
wo kommt die Struktur denn her?
Habe ich überhaupt nicht - auch nicht im extended modeEDIT: unter controller v2 ist der Punkt da.
sieht exakt so aus wie bei ihm.
zu jedem Skript ein Datenpunkt und wenn es im js-Editor Verzeichnisse gibt, gibt es die hier auch@dslraser sagte in Blockly Zeitplan error:
bei eigenen DP steht nix von scriptEnabled
gebe ich dir vollkommen recht.
DEIN(E) Datenpunkt(e) stehen ja auch direkt unter javascript.x@Homoran sagte in Blockly Zeitplan error:
wo kommt die Struktur denn her?
stelle mal in den Objekten auf Expertenmodus und alle Filter raus(also auch state usw raus)
dann erscheint auch scripts.js, aber damit hat er ja gar nix gemacht.
Erstelle Dir einfach mal ein neues Blockly im root Verzeichnis, dann erscheint es ja unter scriptEnabled, aber eigentlich als switch(da ist bei Ihm value) Dann mach mal aus diesem neuen Blockly den switch zu value, dann sieht es so aus wie bei Ihm.
Und im ersten Post siehst Du, das er genau mit diesem scriptEnabled selbst "gerechnet" hat.... -
@Homoran sagte in Blockly Zeitplan error:
wo kommt die Struktur denn her?
stelle mal in den Objekten auf Expertenmodus und alle Filter raus(also auch state usw raus)
dann erscheint auch scripts.js, aber damit hat er ja gar nix gemacht.
Erstelle Dir einfach mal ein neues Blockly im root Verzeichnis, dann erscheint es ja unter scriptEnabled, aber eigentlich als switch(da ist bei Ihm value) Dann mach mal aus diesem neuen Blockly den switch zu value, dann sieht es so aus wie bei Ihm.
Und im ersten Post siehst Du, das er genau mit diesem scriptEnabled selbst "gerechnet" hat....@dslraser sagte in Blockly Zeitplan error:
dann erscheint auch scripts.js,
nope - nicht unter controller v1x - schrieb ich ja ;-)
@dslraser sagte in Blockly Zeitplan error:
Erstelle Dir einfach mal ein neues Blockly im root Verzeichnis, dann erscheint es ja unter scriptEnabled, aber eigentlich als switch
ist ebenfalls absolut unstrittig
Meinst du er hat die DPs zweckentfremdet? und umkonfiguriert?So weit ging meine Fantasie gar nicht.
Deswegen ja meine Frage
@Homoran sagte in Blockly Zeitplan error:
Abschlag_2020 als Datenpunkt number gehört da nicht rein.
Wo kommt der her?@dslraser sagte in Blockly Zeitplan error:
Und im ersten Post siehst Du, das er genau mit diesem scriptEnabled selbst "gerechnet" hat....
Ja, aber dem type number, role value DP ;-)
Dass das mal der alte switch war kam mir überhaupt nicht in den Sinn.Dann warten wir mal auf Aufklärung
kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
Ich hab in der Tat die Rolle auf Value geändert. Wie gesagt, hab keinen Schimmer von Java Skripten aber zumindest funktionieren Sie.
Wenn ich ein neues Skript im Root Verzeichnis erstelle sieht das so aus...

-
Vielleicht satteln wir den Gaul mal von hinten auf und ihr sagt mir, wie ihr das Problem gelöst hättet... Vielleicht kann ich es dann besser nachvollziehen.
Bsp.
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.
Am Ende habe ich in Grafana ein Diagramm, welches meine Kosten zeigt und wie ich im Vergleich zur Prognose stehe.
Bisher habe ich das mit Excel gemacht, aber es sollte jetzt ja automatisch gehen mit den Skripten.
Danke für euren Support :-)
-
Vielleicht satteln wir den Gaul mal von hinten auf und ihr sagt mir, wie ihr das Problem gelöst hättet... Vielleicht kann ich es dann besser nachvollziehen.
Bsp.
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.
Am Ende habe ich in Grafana ein Diagramm, welches meine Kosten zeigt und wie ich im Vergleich zur Prognose stehe.
Bisher habe ich das mit Excel gemacht, aber es sollte jetzt ja automatisch gehen mit den Skripten.
Danke für euren Support :-)
@xxx_turbo_xxx
Ich bin jetzt unterwegs (nur am Handy)
Später könnte ich Dir helfen, wenn es bis dann noch Niemand getan hat.
Auf jeden Fall geht das was Du vor hast, nur nicht so wie Du es bisher umgesetzt hast. -
@xxx_turbo_xxx
Ich bin jetzt unterwegs (nur am Handy)
Später könnte ich Dir helfen, wenn es bis dann noch Niemand getan hat.
Auf jeden Fall geht das was Du vor hast, nur nicht so wie Du es bisher umgesetzt hast.@dslraser Eilt ja nicht!
Danke
-
Ich hab in der Tat die Rolle auf Value geändert. Wie gesagt, hab keinen Schimmer von Java Skripten aber zumindest funktionieren Sie.
Wenn ich ein neues Skript im Root Verzeichnis erstelle sieht das so aus...

@xxx_turbo_xxx sagte in Blockly Zeitplan error:
Wie gesagt, hab keinen Schimmer von Java Skripten
Das hat nichts mit js zu tun,
du hast notwendige Systemdateien umkonfiguriert.@xxx_turbo_xxx sagte in Blockly Zeitplan error:
Wenn ich ein neues Skript im Root Verzeichnis erstelle sieht das so aus...
Das ist so richtig. Das sind Steuerdatenpunkte vom System für das Skript.
kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
Vielleicht satteln wir den Gaul mal von hinten auf und ihr sagt mir, wie ihr das Problem gelöst hättet... Vielleicht kann ich es dann besser nachvollziehen.
Bsp.
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.
Am Ende habe ich in Grafana ein Diagramm, welches meine Kosten zeigt und wie ich im Vergleich zur Prognose stehe.
Bisher habe ich das mit Excel gemacht, aber es sollte jetzt ja automatisch gehen mit den Skripten.
Danke für euren Support :-)
@xxx_turbo_xxx sagte in Blockly Zeitplan error:
aber es sollte jetzt ja automatisch gehen mit den Skripten.
Alles von der Idee her richtig.
Aber du musst dafür eigene Datenpunkte anlegen , nicht Systemdatenpunkte missbrauchen ;-)Das offizielle Verzeichnis dazu ist 0_userdata.0 oder direkt in javascript.0
kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.
Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -
-
Vielleicht satteln wir den Gaul mal von hinten auf und ihr sagt mir, wie ihr das Problem gelöst hättet... Vielleicht kann ich es dann besser nachvollziehen.
Bsp.
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.
Am Ende habe ich in Grafana ein Diagramm, welches meine Kosten zeigt und wie ich im Vergleich zur Prognose stehe.
Bisher habe ich das mit Excel gemacht, aber es sollte jetzt ja automatisch gehen mit den Skripten.
Danke für euren Support :-)
@xxx_turbo_xxx
welche Datenpunkte brauchst Du und wo möchtest Du die gern haben ? (unter 0_userdata.0 oder javascript.0)
Was sollen diese Datenpunkte dann enthalten ? (Zahlen oder Text oder sollen das auch Schalter sein usw...)
Wenn ich Dich richtig verstanden haben, dann gibt es Werte (Zahlen ? Text ?) aus einem anderem Adapter. Diese Werte würdest Du gern an bestimmten Tagen (Zeitplan) auslesen und in eigene Datenpunkte weg schreiben und Summieren/addieren ? -
Vielleicht satteln wir den Gaul mal von hinten auf und ihr sagt mir, wie ihr das Problem gelöst hättet... Vielleicht kann ich es dann besser nachvollziehen.
Bsp.
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.
Am Ende habe ich in Grafana ein Diagramm, welches meine Kosten zeigt und wie ich im Vergleich zur Prognose stehe.
Bisher habe ich das mit Excel gemacht, aber es sollte jetzt ja automatisch gehen mit den Skripten.
Danke für euren Support :-)
@xxx_turbo_xxx sagte in Blockly Zeitplan error:
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.
Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.Ich habe Dir mal ein "Grundgerüst" gemacht. Die Datenpunkte werden in diesem Blockly (macht das Blockly selbst mit der Funktion Datenpunkte_anlegen) erstellt. (ich habe 0_userdata.0 als Ort gewählt) Damit die Funktion funktioniert, muß in den Haupteinstellungen vom Java Script Adapter dieser Haken drinn sein. (erlaube das Kommando "setObject")

Die erstellten Datenpunkte sehen dann so aus. (kann man natürlich alles ändern)

Im Blockly selbst mußt Du noch einige Dinge erledigen. Hier trägst Du Deine Daten ein.

Und hier muß noch überall die "Verknüpfung" zu Deinem geloggten Zähler Wert aus dem anderen Adapter hergestellt werden. Ich habe die Datenpunkte als Zahl erstellt, keine Ahnung welchen Wert (ob als Zahl oder Text) der Adapter liefert, das müsste man noch prüfen.

<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="pj~MXP8)M~PMZ~|xVL6Z">Zaehlerstand_am_01_01</variable> <variable type="" id="%_IRB,rBNDs)ZBa/8C#K">Strompreis</variable> <variable type="" id="dkIfomJEqj382}^/?.y|">Abschlagszahlung_vereinbart</variable> <variable type="" id="-4(1t)srqam3*N$~^7R=">Abschlagszahlung_geleistet</variable> </variables> <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="13" y="13"> <mutation statements="false"></mutation> <field name="NAME">Datenpunkte_anlegen</field> <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjAgKDE3IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZToKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgICAgICBbJ1Rlc3QuVGVzdDEnLCB7J25hbWUnOidUZXN0IDEnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonaW5mbycsICdkZWYnOidIZWxsbycgfV0sCiAgICAgICAgWydUZXN0LlRlc3QyJywgeyduYW1lJzonVGVzdCAyJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J2luZm8nLCAnZGVmJzonSGVsbG8nIH1dLAogICAgXTsKICAgIGNyZWF0ZVVzZXJTdGF0ZXMoJzBfdXNlcmRhdGEuMCcsIGZhbHNlLCBzdGF0ZXNUb0NyZWF0ZSk7CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiBlLmcuICcwX3VzZXJkYXRhLjAnIG9yICdqYXZhc2NyaXB0LngnLgogKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNlICAgICAgICAgRm9yY2Ugc3RhdGUgY3JlYXRpb24gKG92ZXJ3cml0ZSksIGlmIHN0YXRlIGlzIGV4aXN0aW5nLgogKiBAcGFyYW0ge2FycmF5fSBzdGF0ZXNUb0NyZWF0ZSAgU3RhdGUocykgdG8gY3JlYXRlLiBzaW5nbGUgYXJyYXkgb3IgYXJyYXkgb2YgYXJyYXlzCiAqIEBwYXJhbSB7b2JqZWN0fSBbY2FsbGJhY2tdICAgICBPcHRpb25hbDogYSBjYWxsYmFjayBmdW5jdGlvbiAtLSBUaGlzIHByb3ZpZGVkIGZ1bmN0aW9uIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHN0YXRlcyBhcmUgY3JlYXRlZC4KICovCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICAvLyBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKQoKCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eamF2YXNjcmlwdC4oWzAtOV18WzEtOV1bMC05XSkkLykgPT0gbnVsbCkgJiYgKHdoZXJlLm1hdGNoKC9eMF91c2VyZGF0YS4wJC8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgIGxldCBjb3VudGVyID0gLTE7CiAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtKSB7CiAgICAgICAgY291bnRlciArPSAxOwogICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIHBhcmFtWzBdICsgJ10nKTsKCiAgICAgICAgLy8gQ2xlYW4KICAgICAgICBsZXQgc3RhdGVJZCA9IHBhcmFtWzBdOwogICAgICAgIGlmICghIHN0YXRlSWQuc3RhcnRzV2l0aCh3aGVyZSkpIHN0YXRlSWQgPSB3aGVyZSArICcuJyArIHN0YXRlSWQ7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVJZCA9IHN0YXRlSWQucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgY29uc3QgRlVMTF9TVEFURV9JRCA9IHN0YXRlSWQ7CgogICAgICAgIGlmKCAoJChGVUxMX1NUQVRFX0lEKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUoRlVMTF9TVEFURV9JRCkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwoKICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIG91dCBhbmQgY29udGludWUgd2l0aCBuZXh0IGVsZW1lbnQgaW4gbG9vcC4KICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gLy8gaWYoIWZvcmNlKQogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqKioqKgogICAgICAgICAqIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgKioqKioqKioqKioqLwogICAgICAgIGxldCBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIG9iai5jb21tb24gPSBwYXJhbVsxXTsKICAgICAgICBzZXRPYmplY3QoRlVMTF9TVEFURV9JRCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdCBmb3Igc3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgRlVMTF9TVEFURV9JRCArICddJykKICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJyc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGluaXQgPSBwYXJhbVsxXS5kZWY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHNldFN0YXRlKEZVTExfU1RBVEVfSUQsIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gc2V0U3RhdGUgZHVyY2hnZWbDvGhydDogJyArIEZVTExfU1RBVEVfSUQpOwogICAgICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0sIERFTEFZICsgKDIwICogY291bnRlcikgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7Cn0KCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIFsnU3Ryb21rb3N0ZW4uMDAxWmFlaGxlcnN0YW5kX3ZvbV8wMV8wMV8yMDIwJywgeyduYW1lJzonMDAxWmFlaGxlcnN0YW5kX3ZvbV8wMV8wMV8yMDIwJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wMDJaYWVobGVyc3RhbmRfYWt0dWVsbCcsIHsnbmFtZSc6JzAwMlphZWhsZXJzdGFuZF9ha3R1ZWxsJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLCAgICAKICAgIFsnU3Ryb21rb3N0ZW4uMDFaYWVobGVyc3RhbmRfSmFudWFyJywgeyduYW1lJzonMDFaYWVobGVyc3RhbmRfSmFudWFyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wMlphZWhsZXJzdGFuZF9GZWJydWFyJywgeyduYW1lJzonMDJaYWVobGVyc3RhbmRfRmVicnVhcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDNaYWVobGVyc3RhbmRfTWFlcnonLCB7J25hbWUnOicwM1phZWhsZXJzdGFuZF9NYWVyeicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDRaYWVobGVyc3RhbmRfQXByaWwnLCB7J25hbWUnOicwNFphZWhsZXJzdGFuZF9BcHJpbCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDVaYWVobGVyc3RhbmRfTWFpJywgeyduYW1lJzonMDVaYWVobGVyc3RhbmRfTWFpJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wNlphZWhsZXJzdGFuZF9KdW5pJywgeyduYW1lJzonMDZaYWVobGVyc3RhbmRfSnVuaScsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDdaYWVobGVyc3RhbmRfSnVsaScsIHsnbmFtZSc6JzA3WmFlaGxlcnN0YW5kX0p1bGknLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J2tXaCcgfV0sCiAgICBbJ1N0cm9ta29zdGVuLjA4WmFlaGxlcnN0YW5kX0F1Z3VzdCcsIHsnbmFtZSc6JzA4WmFlaGxlcnN0YW5kX0F1Z3VzdCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDlaYWVobGVyc3RhbmRfU2VwdGVtYmVyJywgeyduYW1lJzonMDlaYWVobGVyc3RhbmRfU2VwdGVtYmVyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xMFphZWhsZXJzdGFuZF9Pa3RvYmVyJywgeyduYW1lJzonMTBaYWVobGVyc3RhbmRfT2t0b2JlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTFaYWVobGVyc3RhbmRfTm92ZW1iZXInLCB7J25hbWUnOicxMVphZWhsZXJzdGFuZF9Ob3ZlbWJlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTJaYWVobGVyc3RhbmRfRGV6ZW1iZXInLCB7J25hbWUnOicxMlphZWhsZXJzdGFuZF9EZXplbWJlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTNIb2NocmVjaG51bmdfVmVyYnJhdWNoX0phaHInLCB7J25hbWUnOicxM0hvY2hyZWNobnVuZ19WZXJicmF1Y2hfSmFocicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwgICAgCiAgICBbJ1N0cm9ta29zdGVuLjE0U3Ryb21wcmVpcycsIHsnbmFtZSc6JzE0U3Ryb21wcmVpcycsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCdtaW4nOjAsICdtYXgnOjEwMCwgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xNUFic2NobGFnc3phaGx1bmdfdmVyZWluYmFydCcsIHsnbmFtZSc6JzE1QWJzY2hsYWdzemFobHVuZ192ZXJlaW5iYXJ0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidFdXJvJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTZBYnNjaGxhZ3N6YWhsdW5nX2dlbGVpc3RldCcsIHsnbmFtZSc6JzE2QWJzY2hsYWdzemFobHVuZ19nZWxlaXN0ZXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xN0hvY2hyZWNobnVuZ19aYWhsdW5nZW5fSmFocicsIHsnbmFtZSc6JzE3SG9jaHJlY2hudW5nX1phaGx1bmdlbl9KYWhyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidFdXJvJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMThIb2NocmVjaG51bmdfYmVub2V0aWd0ZV9aYWhsdW5nZW5fSmFocicsIHsnbmFtZSc6JzE4SG9jaHJlY2hudW5nX2Jlbm9ldGlndGVfWmFobHVuZ2VuX0phaHInLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xOUhvY2hyZWNobnVuZ19HdXRoYWJlbl9Tb2xsJywgeyduYW1lJzonMTlIb2NocmVjaG51bmdfR3V0aGFiZW5fU29sbCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0JzonRXVybycgfV0sCgpdOwogICAgY3JlYXRlVXNlclN0YXRlcygnMF91c2VyZGF0YS4wJywgZmFsc2UsIHN0YXRlc1RvQ3JlYXRlKTs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_callcustomnoreturn" id="%FkEGLzrYmEx48`.ierP" x="13" y="63"> <mutation name="Datenpunkte_anlegen"></mutation> <next> <block type="timeouts_settimeout" id="b5`mf?)b6=WS4Hyqhl=M"> <field name="NAME">timeout</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id=")rm[MGH]D)u(`F9yt=WL"> <field name="VAR" id="pj~MXP8)M~PMZ~|xVL6Z" variabletype="">Zaehlerstand_am_01_01</field> <value name="VALUE"> <block type="math_number" id="9!m908l[|9g9gvdNuTME"> <field name="NUM">10000</field> </block> </value> <next> <block type="variables_set" id="x[PJs6hB(1HvWQ5WBpNp"> <field name="VAR" id="%_IRB,rBNDs)ZBa/8C#K" variabletype="">Strompreis</field> <value name="VALUE"> <block type="math_arithmetic" id="fBRiQfhaWg5bVBbEnn(m"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="uH3YMA-Y42Q+eusV8-Jy"> <field name="NUM">1</field> </shadow> <block type="math_number" id="HP_R;FljKwrDPtl@a?.)"> <field name="NUM">35</field> </block> </value> <value name="B"> <shadow type="math_number" id="gxL_*N9O+Bb]5f6IyJnQ"> <field name="NUM">100</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="zaO9f6j%)5Lkj?yn6ttY"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> <value name="VALUE"> <block type="math_number" id="Y~T.+^YZU#khZh49fQB|"> <field name="NUM">100</field> </block> </value> <next> <block type="variables_set" id="dqToIOe3:EP+bGa]-lgf"> <field name="VAR" id="-4(1t)srqam3*N$~^7R=" variabletype="">Abschlagszahlung_geleistet</field> <value name="VALUE"> <block type="math_arithmetic" id="*^qQMhh=ho*[K(7JrrSq"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Q.O1N%;.Q$2GJk~C.V;J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="BZ[BaxbuQ0]a`Ul8+!=7"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <value name="B"> <shadow type="math_number" id="5:kpx5+|X*,Gh0oiq!~P"> <field name="NUM">1</field> </shadow> <block type="time_get" id="IUYn7@lBG?jKsH/2V^Nw"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> </block> </value> <next> <block type="update" id="BiWV#,mI_H^SN[OwiW%*"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.001Zaehlerstand_vom_01_01_2020</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=")3IRjLH,Pvl5FMj`)B%V"> <field name="VAR" id="pj~MXP8)M~PMZ~|xVL6Z" variabletype="">Zaehlerstand_am_01_01</field> </block> </value> <next> <block type="update" id="#R~xBbcvA~zvm+o[dlX3"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.14Strompreis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Rpu7^^-^z=ZFBFb0njSO"> <field name="VAR" id="%_IRB,rBNDs)ZBa/8C#K" variabletype="">Strompreis</field> </block> </value> <next> <block type="update" id="Un$R;q)~$jBACXkX!uuV"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.15Abschlagszahlung_vereinbart</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=":)YFQNwhT05aJ_GEeQTz"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <next> <block type="update" id="qK7l;!I4o3tme#mp#{oQ"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.16Abschlagszahlung_geleistet</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="r(:.l4VgoJP;YO`R8}U2"> <field name="VAR" id="-4(1t)srqam3*N$~^7R=" variabletype="">Abschlagszahlung_geleistet</field> </block> </value> <next> <block type="update" id=":aLhG{C|X|buh]SIv[ot"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.17Hochrechnung_Zahlungen_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="Zlf]|CeQo5=B*dLtdi_l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="_|~5A;]W!E2B:tw;0Gv?"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="a;zl-{6IH0/cv|.DhI/%"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <value name="B"> <shadow type="math_number" id="l*p8g1l[AZz-29)-qm84"> <field name="NUM">12</field> </shadow> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="NFO3e4_u6K.j9cENDwx|"> <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:00"},"period":{"months":"[1,2,3,4,5,6,7,8,9,10,11,12]","dates":"[5]"},"valid":{"from":"11.02.2020"}}</field> <statement name="STATEMENT"> <block type="comment" id="|yM=u@^uZVO62Y`aSncU"> <field name="COMMENT">Werte sollen am 05. des Monats aktualisiert werden</field> <next> <block type="update" id="A5}~PuO0,sX)F]O!VpqC"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="p[p[J*:!-`e}24,uML?X"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="controls_if" id="h{k`3crL-4qQVRzP3A=#"> <value name="IF0"> <block type="logic_compare" id="xePKhJuS2Yb;$5rV@DnZ"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="KLgAx2j-gbPaWO?Q7g3N"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="md|rnY4%ujoO3$R@T?Ow"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="i(^4D_b1(~LQ_N0hZ=`9"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="M*gbU?tJSi@r5G`AG-8R"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="maZkBpD*-HC+IkeUZB6t"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.01Zaehlerstand_Januar</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="VqpP;NM|JD-??1egl}Sq"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="JyWOrKVA?7c27^uilwv+"> <value name="IF0"> <block type="logic_compare" id="g;W61e6SVhTy/8[,8{-o"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="DEo%7,m/[*eJXwd}+1Y8"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="tg5}Fv-+k,;$qY?y*p#A"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="g+%jg[=dZ+6+RWK^r5!5"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="7t`?MV.oo30z/H%d3C,M"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="@LMeHAilOPD)|mQmT-Nx"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.02Zaehlerstand_Februar</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="d=b47GRghZl`uT[86aun"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="g;}nxpaRN3K6$,gWxd3{"> <value name="IF0"> <block type="logic_compare" id="86*)?2cWkYC^s5r7mtSU"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="~J`}21$Pt[tVM.Cj%60d"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="$^s*WqC6EBQ$-[i)vpEp"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="zO9=(9Pkv[jvhGaO?;-v"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="!!)|DOGJrL}swo*!v?s%"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="F{zZ~#oJI{}vhyR//C%t"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.03Zaehlerstand_Maerz</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="xs`|6$D_cQiPC:zuLd)S"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="EI2V_)1,JNmPE)N=,X+p"> <value name="IF0"> <block type="logic_compare" id="|W]}0WU.1MunCy58_M`?"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="~!5aRb(op,,|OI*wo*k."> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id=",aUb9tL2Vs@S18Y%HN{8"> <field name="NUM">4</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Ux?Yi.+5Q3_5{KlW]-mg"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="IO#9]fAfBt$({Jd=-An0"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="sBrU@?r,8Hr#h_m_$DX="> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.04Zaehlerstand_April</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="eC1zuLb[~It/mw=yVz6P"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="k-u@SV9XSz#)+D}S})xV"> <value name="IF0"> <block type="logic_compare" id="4G6b6?SfW]bo9M3d~RX$"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id=":qOfI~0zp[Nns}[BjU(T"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="CPxVISG6}oojEZF(ukqJ"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Wo=.up,#*1ML_$yjsLd+"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="8?13~$hF}~q25E#uR9-^"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="Wp1r?@C+}H50caPCl;K:"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.05Zaehlerstand_Mai</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="bp$R$eBc%v.ahjswJ_:,"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="wOHdBe:+lKv/mtRwW,Av"> <value name="IF0"> <block type="logic_compare" id="6yHJQGts6OA,.7Luy_eK"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="/-/;Mk`lN4u5dFsPOcJw"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="_wtXe-gfy*H|-{cTl^hN"> <field name="NUM">6</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="dm3?b4?1=uEGF0$Ep::m"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="j[be]SuF_C:?Wn#3`gH!"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="k#3v2G_aM~+?;Qje}}XY"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.06Zaehlerstand_Juni</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="/gR$pW..|B4Oh#~qEd)V"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="L2H]n!,DQuq94/GU`?J3"> <value name="IF0"> <block type="logic_compare" id="Xe`-=tpNJ0o6Fc}fQvD7"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="d9!O@qcSDc!Bx$y?t9ds"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="ekJ1*qX=~@;l$-ZlJiEm"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="bWZ=oQXA3mjIS$=s@o^1"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="Vey3VyP/4xBQeO4|(qWw"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="s()S;eFO1M~b)@`-W(*$"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.07Zaehlerstand_Juli</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="!/I/Q_=gu%WtZ0s`}_=g"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="6*#gc+)!DyQG0gc*I35X"> <value name="IF0"> <block type="logic_compare" id="Ub~F]002?DnCSEAn?I4G"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="tZY?pP+mCa]F+f3dZ8(r"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="t3`Z*aP!(_4y]y[A%^D4"> <field name="NUM">8</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="E+n3!6#D~mJe[20WZF^^"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="j1,F2d+3=I(u,4^xl()I"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="H/9JOda77*0VP4?9iMO$"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.08Zaehlerstand_August</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="k0;!HkF:r]77;*j8Y0wW"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="$.%2B2j|H2kZH3H=^PqY"> <value name="IF0"> <block type="logic_compare" id="5?r+gP:i]AB8+fO$A2qn"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="J6h|t0ILSS-~a8Ma9$nb"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="TBnG3bwuf-yK82}Z#b?:"> <field name="NUM">9</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="$L%`HB0no7qX7S;|Dv^/"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="~;cN_N$st0mKizPYqrTM"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="/#FK(I|M1(-fv7pN:6,A"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.09Zaehlerstand_September</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="~S~SGl|5WaTEGN1x_Jl}"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="cUJ.9vEVgrt6rIRqY#(I"> <value name="IF0"> <block type="logic_compare" id="Izc:^_{/K^8MvpiK9;[B"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="KYC]A8).9O0`2@w,?SPU"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="nb@9?,ZJ%%KN5[jeF3l("> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="fhf(Qm;IsC`/}mDF91Gn"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id=")s#NaSQ$b(NjY];2^Az="> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="qhOcMu}OFL2{VF}k8*$p"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.10Zaehlerstand_Oktober</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="`HHTO!^BT{bm@3}#Fc`s"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="H]LlaJIgIV!FQG/X^J)R"> <value name="IF0"> <block type="logic_compare" id="ij`b]jZs3)0,FomvepE1"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="8a?_Y~}=WO{u!U,1lOuu"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="ifmh`Q[vjWGwT|YQgVB%"> <field name="NUM">11</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="RCOXI=AGbsu/`J!D^J8k"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="5Jvi27S6H;,=aPbM$o1O"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id=":.x+6Q6C,Wx$A/47:?K}"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.11Zaehlerstand_November</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="Kz[GpE!51k9.2`5ve5/0"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="#2QfYG7}0D4.SZKNuSif"> <value name="IF0"> <block type="logic_compare" id="38ni3VjM+}?|x^hTZB%G"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="Yftb.*,pLEr^:/r]aK]j"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="0[O_Z[YS/Zl+e8WLvD1r"> <field name="NUM">12</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="jA9bM;/bN)DU_Wh2$[6n"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="x2HlR..PcJh,[~T[,w6R"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="]=2VQVVgX+dn+fDF{jP4"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.12Zaehlerstand_Dezember</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="FO}BdN-!2q^r[koDL8cF"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="17RMP:LCPol0{d{_^C_7"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="VY*rkzTIuNHf[d_tq#dC"> <field name="oid">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Lz4hT357oc96:-0N-oX$"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="dq1O~,WU-T?R~t_X#MoO"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id=":#XNMx:gvGv==l[Z[*9q"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="Ktg93jTCiPK95asU6RX?"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="e{VZv.#fDO;{wk{MN@6f"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=":+vTbrRPayO}ZY].YK~5"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="%I-GYOqR$pzNT~VctVg*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="8`|gV7aM)?Qn*2GhMJyY"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> </block> </value> <value name="B"> <shadow type="math_number" id="GYfmok(I~0!~x/.+7S;Z"> <field name="NUM">1</field> </shadow> <block type="get_value" id="NR{=~*+6poq^SZMYGxA!"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.001Zaehlerstand_vom_01_01_2020</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="P$e[oi5{agvw|%0DI{ML"> <field name="NUM">0</field> </shadow> <block type="time_get" id="4Ryo.TsIC[Cx-.hmZ^UB"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="2OGlMMo[u8}^R8^Ad|0`"> <field name="NUM">12</field> </shadow> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="2Y`ZgO*xSYwcJJEHC6j("> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yBxvGT|.=nu:Ynw$f{=A"> <field name="oid">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="-0Sz;9Af@l4k7nj1{:A,"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="!dQ5c3Vq03Q*YKQ4:3yd"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="?~9RJI=|io^c-7ZC`/S3"> <field name="NUM">1</field> </shadow> <block type="get_value" id="G?RB{8h.70UPoCyV~3Y4"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> </block> </value> <value name="B"> <shadow type="math_number" id="ICC:Wu}nr*7QN72/O|;1"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-XCAZY5CfDXtClYXs^n9"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.14Strompreis</field> </block> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="Rvwe~%I2I)X{b*tQx(P-"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="aaebRHWd2@i.`ls_EKzr"> <field name="oid">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="qKTS=ub)LUC[i_l/=E=2"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.19Hochrechnung_Guthaben_Soll</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="0ln:LX!T3zj,dd4He0cu"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="?~9RJI=|io^c-7ZC`/S3"> <field name="NUM">1</field> </shadow> <block type="get_value" id="W6ipHnRP2;zl}9pNBDgi"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.17Hochrechnung_Zahlungen_Jahr</field> </block> </value> <value name="B"> <shadow type="math_number" id="ICC:Wu}nr*7QN72/O|;1"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!y.e[EC4Rqm54sqh#b9p"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>Du erstellst ein neues leeres Blockly (Name egal). Dann klickst Du (ganz oben rechts zu finden) auf das zweite Symbol von links zum importieren. In das geöffnete Fenster fügst Du den Inhalt aus meinem Export ein. Danach unten auf importieren klicken.

-
@xxx_turbo_xxx sagte in Blockly Zeitplan error:
Ich logge seit längerem meine Smartmeter. Der zeigt aber nur den aktuellen Zählerstand. Ich will jetzt aber den laufenden Verbrauch in 2020 sehen. Deshalb war mein Ansatz, denaktuellen Wert minus den Wert vom 01.01.2020. Somit erhalte ich den aktuellen Verbrauch in 2020.
Im nächsten Schritt multipliziere ich den Wert mit dem Strompreis, wodurch ich die Stromkosten in 2020 erhalte.
Als 3. möchte ich einen 3. Channel, der mir die bereits geleisteten Abschlagszahlungen zeigt. Da ich immer am 5. jedes Monats den Betrag zahle, wollte ich, dass sich dieser Wert auch immer am 5. des Monats um die zu zahlende Abschlagszahlung erhöht.Ich habe Dir mal ein "Grundgerüst" gemacht. Die Datenpunkte werden in diesem Blockly (macht das Blockly selbst mit der Funktion Datenpunkte_anlegen) erstellt. (ich habe 0_userdata.0 als Ort gewählt) Damit die Funktion funktioniert, muß in den Haupteinstellungen vom Java Script Adapter dieser Haken drinn sein. (erlaube das Kommando "setObject")

Die erstellten Datenpunkte sehen dann so aus. (kann man natürlich alles ändern)

Im Blockly selbst mußt Du noch einige Dinge erledigen. Hier trägst Du Deine Daten ein.

Und hier muß noch überall die "Verknüpfung" zu Deinem geloggten Zähler Wert aus dem anderen Adapter hergestellt werden. Ich habe die Datenpunkte als Zahl erstellt, keine Ahnung welchen Wert (ob als Zahl oder Text) der Adapter liefert, das müsste man noch prüfen.

<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="pj~MXP8)M~PMZ~|xVL6Z">Zaehlerstand_am_01_01</variable> <variable type="" id="%_IRB,rBNDs)ZBa/8C#K">Strompreis</variable> <variable type="" id="dkIfomJEqj382}^/?.y|">Abschlagszahlung_vereinbart</variable> <variable type="" id="-4(1t)srqam3*N$~^7R=">Abschlagszahlung_geleistet</variable> </variables> <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="13" y="13"> <mutation statements="false"></mutation> <field name="NAME">Datenpunkte_anlegen</field> <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjAgKDE3IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZToKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgICAgICBbJ1Rlc3QuVGVzdDEnLCB7J25hbWUnOidUZXN0IDEnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonaW5mbycsICdkZWYnOidIZWxsbycgfV0sCiAgICAgICAgWydUZXN0LlRlc3QyJywgeyduYW1lJzonVGVzdCAyJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J2luZm8nLCAnZGVmJzonSGVsbG8nIH1dLAogICAgXTsKICAgIGNyZWF0ZVVzZXJTdGF0ZXMoJzBfdXNlcmRhdGEuMCcsIGZhbHNlLCBzdGF0ZXNUb0NyZWF0ZSk7CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiBlLmcuICcwX3VzZXJkYXRhLjAnIG9yICdqYXZhc2NyaXB0LngnLgogKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNlICAgICAgICAgRm9yY2Ugc3RhdGUgY3JlYXRpb24gKG92ZXJ3cml0ZSksIGlmIHN0YXRlIGlzIGV4aXN0aW5nLgogKiBAcGFyYW0ge2FycmF5fSBzdGF0ZXNUb0NyZWF0ZSAgU3RhdGUocykgdG8gY3JlYXRlLiBzaW5nbGUgYXJyYXkgb3IgYXJyYXkgb2YgYXJyYXlzCiAqIEBwYXJhbSB7b2JqZWN0fSBbY2FsbGJhY2tdICAgICBPcHRpb25hbDogYSBjYWxsYmFjayBmdW5jdGlvbiAtLSBUaGlzIHByb3ZpZGVkIGZ1bmN0aW9uIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHN0YXRlcyBhcmUgY3JlYXRlZC4KICovCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICAvLyBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKQoKCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eamF2YXNjcmlwdC4oWzAtOV18WzEtOV1bMC05XSkkLykgPT0gbnVsbCkgJiYgKHdoZXJlLm1hdGNoKC9eMF91c2VyZGF0YS4wJC8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgIGxldCBjb3VudGVyID0gLTE7CiAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtKSB7CiAgICAgICAgY291bnRlciArPSAxOwogICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIHBhcmFtWzBdICsgJ10nKTsKCiAgICAgICAgLy8gQ2xlYW4KICAgICAgICBsZXQgc3RhdGVJZCA9IHBhcmFtWzBdOwogICAgICAgIGlmICghIHN0YXRlSWQuc3RhcnRzV2l0aCh3aGVyZSkpIHN0YXRlSWQgPSB3aGVyZSArICcuJyArIHN0YXRlSWQ7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVJZCA9IHN0YXRlSWQucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgY29uc3QgRlVMTF9TVEFURV9JRCA9IHN0YXRlSWQ7CgogICAgICAgIGlmKCAoJChGVUxMX1NUQVRFX0lEKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUoRlVMTF9TVEFURV9JRCkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwoKICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIG91dCBhbmQgY29udGludWUgd2l0aCBuZXh0IGVsZW1lbnQgaW4gbG9vcC4KICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gLy8gaWYoIWZvcmNlKQogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqKioqKgogICAgICAgICAqIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgKioqKioqKioqKioqLwogICAgICAgIGxldCBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIG9iai5jb21tb24gPSBwYXJhbVsxXTsKICAgICAgICBzZXRPYmplY3QoRlVMTF9TVEFURV9JRCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdCBmb3Igc3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgRlVMTF9TVEFURV9JRCArICddJykKICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJyc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGluaXQgPSBwYXJhbVsxXS5kZWY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHNldFN0YXRlKEZVTExfU1RBVEVfSUQsIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gc2V0U3RhdGUgZHVyY2hnZWbDvGhydDogJyArIEZVTExfU1RBVEVfSUQpOwogICAgICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0sIERFTEFZICsgKDIwICogY291bnRlcikgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7Cn0KCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIFsnU3Ryb21rb3N0ZW4uMDAxWmFlaGxlcnN0YW5kX3ZvbV8wMV8wMV8yMDIwJywgeyduYW1lJzonMDAxWmFlaGxlcnN0YW5kX3ZvbV8wMV8wMV8yMDIwJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wMDJaYWVobGVyc3RhbmRfYWt0dWVsbCcsIHsnbmFtZSc6JzAwMlphZWhsZXJzdGFuZF9ha3R1ZWxsJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLCAgICAKICAgIFsnU3Ryb21rb3N0ZW4uMDFaYWVobGVyc3RhbmRfSmFudWFyJywgeyduYW1lJzonMDFaYWVobGVyc3RhbmRfSmFudWFyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wMlphZWhsZXJzdGFuZF9GZWJydWFyJywgeyduYW1lJzonMDJaYWVobGVyc3RhbmRfRmVicnVhcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDNaYWVobGVyc3RhbmRfTWFlcnonLCB7J25hbWUnOicwM1phZWhsZXJzdGFuZF9NYWVyeicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDRaYWVobGVyc3RhbmRfQXByaWwnLCB7J25hbWUnOicwNFphZWhsZXJzdGFuZF9BcHJpbCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDVaYWVobGVyc3RhbmRfTWFpJywgeyduYW1lJzonMDVaYWVobGVyc3RhbmRfTWFpJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4wNlphZWhsZXJzdGFuZF9KdW5pJywgeyduYW1lJzonMDZaYWVobGVyc3RhbmRfSnVuaScsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDdaYWVobGVyc3RhbmRfSnVsaScsIHsnbmFtZSc6JzA3WmFlaGxlcnN0YW5kX0p1bGknLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J2tXaCcgfV0sCiAgICBbJ1N0cm9ta29zdGVuLjA4WmFlaGxlcnN0YW5kX0F1Z3VzdCcsIHsnbmFtZSc6JzA4WmFlaGxlcnN0YW5kX0F1Z3VzdCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMDlaYWVobGVyc3RhbmRfU2VwdGVtYmVyJywgeyduYW1lJzonMDlaYWVobGVyc3RhbmRfU2VwdGVtYmVyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidrV2gnIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xMFphZWhsZXJzdGFuZF9Pa3RvYmVyJywgeyduYW1lJzonMTBaYWVobGVyc3RhbmRfT2t0b2JlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTFaYWVobGVyc3RhbmRfTm92ZW1iZXInLCB7J25hbWUnOicxMVphZWhsZXJzdGFuZF9Ob3ZlbWJlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTJaYWVobGVyc3RhbmRfRGV6ZW1iZXInLCB7J25hbWUnOicxMlphZWhsZXJzdGFuZF9EZXplbWJlcicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTNIb2NocmVjaG51bmdfVmVyYnJhdWNoX0phaHInLCB7J25hbWUnOicxM0hvY2hyZWNobnVuZ19WZXJicmF1Y2hfSmFocicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0Jzona1doJyB9XSwgICAgCiAgICBbJ1N0cm9ta29zdGVuLjE0U3Ryb21wcmVpcycsIHsnbmFtZSc6JzE0U3Ryb21wcmVpcycsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCdtaW4nOjAsICdtYXgnOjEwMCwgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xNUFic2NobGFnc3phaGx1bmdfdmVyZWluYmFydCcsIHsnbmFtZSc6JzE1QWJzY2hsYWdzemFobHVuZ192ZXJlaW5iYXJ0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidFdXJvJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMTZBYnNjaGxhZ3N6YWhsdW5nX2dlbGVpc3RldCcsIHsnbmFtZSc6JzE2QWJzY2hsYWdzemFobHVuZ19nZWxlaXN0ZXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xN0hvY2hyZWNobnVuZ19aYWhsdW5nZW5fSmFocicsIHsnbmFtZSc6JzE3SG9jaHJlY2hudW5nX1phaGx1bmdlbl9KYWhyJywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J251bWJlcicsICdkZWYnOjAsJ3VuaXQnOidFdXJvJyB9XSwKICAgIFsnU3Ryb21rb3N0ZW4uMThIb2NocmVjaG51bmdfYmVub2V0aWd0ZV9aYWhsdW5nZW5fSmFocicsIHsnbmFtZSc6JzE4SG9jaHJlY2hudW5nX2Jlbm9ldGlndGVfWmFobHVuZ2VuX0phaHInLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonbnVtYmVyJywgJ2RlZic6MCwndW5pdCc6J0V1cm8nIH1dLAogICAgWydTdHJvbWtvc3Rlbi4xOUhvY2hyZWNobnVuZ19HdXRoYWJlbl9Tb2xsJywgeyduYW1lJzonMTlIb2NocmVjaG51bmdfR3V0aGFiZW5fU29sbCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidudW1iZXInLCAnZGVmJzowLCd1bml0JzonRXVybycgfV0sCgpdOwogICAgY3JlYXRlVXNlclN0YXRlcygnMF91c2VyZGF0YS4wJywgZmFsc2UsIHN0YXRlc1RvQ3JlYXRlKTs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_callcustomnoreturn" id="%FkEGLzrYmEx48`.ierP" x="13" y="63"> <mutation name="Datenpunkte_anlegen"></mutation> <next> <block type="timeouts_settimeout" id="b5`mf?)b6=WS4Hyqhl=M"> <field name="NAME">timeout</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id=")rm[MGH]D)u(`F9yt=WL"> <field name="VAR" id="pj~MXP8)M~PMZ~|xVL6Z" variabletype="">Zaehlerstand_am_01_01</field> <value name="VALUE"> <block type="math_number" id="9!m908l[|9g9gvdNuTME"> <field name="NUM">10000</field> </block> </value> <next> <block type="variables_set" id="x[PJs6hB(1HvWQ5WBpNp"> <field name="VAR" id="%_IRB,rBNDs)ZBa/8C#K" variabletype="">Strompreis</field> <value name="VALUE"> <block type="math_arithmetic" id="fBRiQfhaWg5bVBbEnn(m"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="uH3YMA-Y42Q+eusV8-Jy"> <field name="NUM">1</field> </shadow> <block type="math_number" id="HP_R;FljKwrDPtl@a?.)"> <field name="NUM">35</field> </block> </value> <value name="B"> <shadow type="math_number" id="gxL_*N9O+Bb]5f6IyJnQ"> <field name="NUM">100</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="zaO9f6j%)5Lkj?yn6ttY"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> <value name="VALUE"> <block type="math_number" id="Y~T.+^YZU#khZh49fQB|"> <field name="NUM">100</field> </block> </value> <next> <block type="variables_set" id="dqToIOe3:EP+bGa]-lgf"> <field name="VAR" id="-4(1t)srqam3*N$~^7R=" variabletype="">Abschlagszahlung_geleistet</field> <value name="VALUE"> <block type="math_arithmetic" id="*^qQMhh=ho*[K(7JrrSq"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Q.O1N%;.Q$2GJk~C.V;J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="BZ[BaxbuQ0]a`Ul8+!=7"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <value name="B"> <shadow type="math_number" id="5:kpx5+|X*,Gh0oiq!~P"> <field name="NUM">1</field> </shadow> <block type="time_get" id="IUYn7@lBG?jKsH/2V^Nw"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> </block> </value> <next> <block type="update" id="BiWV#,mI_H^SN[OwiW%*"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.001Zaehlerstand_vom_01_01_2020</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=")3IRjLH,Pvl5FMj`)B%V"> <field name="VAR" id="pj~MXP8)M~PMZ~|xVL6Z" variabletype="">Zaehlerstand_am_01_01</field> </block> </value> <next> <block type="update" id="#R~xBbcvA~zvm+o[dlX3"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.14Strompreis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Rpu7^^-^z=ZFBFb0njSO"> <field name="VAR" id="%_IRB,rBNDs)ZBa/8C#K" variabletype="">Strompreis</field> </block> </value> <next> <block type="update" id="Un$R;q)~$jBACXkX!uuV"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.15Abschlagszahlung_vereinbart</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=":)YFQNwhT05aJ_GEeQTz"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <next> <block type="update" id="qK7l;!I4o3tme#mp#{oQ"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.16Abschlagszahlung_geleistet</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="r(:.l4VgoJP;YO`R8}U2"> <field name="VAR" id="-4(1t)srqam3*N$~^7R=" variabletype="">Abschlagszahlung_geleistet</field> </block> </value> <next> <block type="update" id=":aLhG{C|X|buh]SIv[ot"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.17Hochrechnung_Zahlungen_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="Zlf]|CeQo5=B*dLtdi_l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="_|~5A;]W!E2B:tw;0Gv?"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="a;zl-{6IH0/cv|.DhI/%"> <field name="VAR" id="dkIfomJEqj382}^/?.y|" variabletype="">Abschlagszahlung_vereinbart</field> </block> </value> <value name="B"> <shadow type="math_number" id="l*p8g1l[AZz-29)-qm84"> <field name="NUM">12</field> </shadow> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="NFO3e4_u6K.j9cENDwx|"> <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:00"},"period":{"months":"[1,2,3,4,5,6,7,8,9,10,11,12]","dates":"[5]"},"valid":{"from":"11.02.2020"}}</field> <statement name="STATEMENT"> <block type="comment" id="|yM=u@^uZVO62Y`aSncU"> <field name="COMMENT">Werte sollen am 05. des Monats aktualisiert werden</field> <next> <block type="update" id="A5}~PuO0,sX)F]O!VpqC"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="p[p[J*:!-`e}24,uML?X"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="controls_if" id="h{k`3crL-4qQVRzP3A=#"> <value name="IF0"> <block type="logic_compare" id="xePKhJuS2Yb;$5rV@DnZ"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="KLgAx2j-gbPaWO?Q7g3N"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="md|rnY4%ujoO3$R@T?Ow"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="i(^4D_b1(~LQ_N0hZ=`9"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="M*gbU?tJSi@r5G`AG-8R"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="maZkBpD*-HC+IkeUZB6t"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.01Zaehlerstand_Januar</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="VqpP;NM|JD-??1egl}Sq"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="JyWOrKVA?7c27^uilwv+"> <value name="IF0"> <block type="logic_compare" id="g;W61e6SVhTy/8[,8{-o"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="DEo%7,m/[*eJXwd}+1Y8"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="tg5}Fv-+k,;$qY?y*p#A"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="g+%jg[=dZ+6+RWK^r5!5"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="7t`?MV.oo30z/H%d3C,M"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="@LMeHAilOPD)|mQmT-Nx"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.02Zaehlerstand_Februar</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="d=b47GRghZl`uT[86aun"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="g;}nxpaRN3K6$,gWxd3{"> <value name="IF0"> <block type="logic_compare" id="86*)?2cWkYC^s5r7mtSU"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="~J`}21$Pt[tVM.Cj%60d"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="$^s*WqC6EBQ$-[i)vpEp"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="zO9=(9Pkv[jvhGaO?;-v"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="!!)|DOGJrL}swo*!v?s%"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="F{zZ~#oJI{}vhyR//C%t"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.03Zaehlerstand_Maerz</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="xs`|6$D_cQiPC:zuLd)S"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="EI2V_)1,JNmPE)N=,X+p"> <value name="IF0"> <block type="logic_compare" id="|W]}0WU.1MunCy58_M`?"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="~!5aRb(op,,|OI*wo*k."> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id=",aUb9tL2Vs@S18Y%HN{8"> <field name="NUM">4</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Ux?Yi.+5Q3_5{KlW]-mg"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="IO#9]fAfBt$({Jd=-An0"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="sBrU@?r,8Hr#h_m_$DX="> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.04Zaehlerstand_April</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="eC1zuLb[~It/mw=yVz6P"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="k-u@SV9XSz#)+D}S})xV"> <value name="IF0"> <block type="logic_compare" id="4G6b6?SfW]bo9M3d~RX$"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id=":qOfI~0zp[Nns}[BjU(T"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="CPxVISG6}oojEZF(ukqJ"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Wo=.up,#*1ML_$yjsLd+"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="8?13~$hF}~q25E#uR9-^"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="Wp1r?@C+}H50caPCl;K:"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.05Zaehlerstand_Mai</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="bp$R$eBc%v.ahjswJ_:,"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="wOHdBe:+lKv/mtRwW,Av"> <value name="IF0"> <block type="logic_compare" id="6yHJQGts6OA,.7Luy_eK"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="/-/;Mk`lN4u5dFsPOcJw"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="_wtXe-gfy*H|-{cTl^hN"> <field name="NUM">6</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="dm3?b4?1=uEGF0$Ep::m"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="j[be]SuF_C:?Wn#3`gH!"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="k#3v2G_aM~+?;Qje}}XY"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.06Zaehlerstand_Juni</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="/gR$pW..|B4Oh#~qEd)V"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="L2H]n!,DQuq94/GU`?J3"> <value name="IF0"> <block type="logic_compare" id="Xe`-=tpNJ0o6Fc}fQvD7"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="d9!O@qcSDc!Bx$y?t9ds"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="ekJ1*qX=~@;l$-ZlJiEm"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="bWZ=oQXA3mjIS$=s@o^1"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="Vey3VyP/4xBQeO4|(qWw"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="s()S;eFO1M~b)@`-W(*$"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.07Zaehlerstand_Juli</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="!/I/Q_=gu%WtZ0s`}_=g"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="6*#gc+)!DyQG0gc*I35X"> <value name="IF0"> <block type="logic_compare" id="Ub~F]002?DnCSEAn?I4G"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="tZY?pP+mCa]F+f3dZ8(r"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="t3`Z*aP!(_4y]y[A%^D4"> <field name="NUM">8</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="E+n3!6#D~mJe[20WZF^^"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="j1,F2d+3=I(u,4^xl()I"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="H/9JOda77*0VP4?9iMO$"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.08Zaehlerstand_August</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="k0;!HkF:r]77;*j8Y0wW"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="$.%2B2j|H2kZH3H=^PqY"> <value name="IF0"> <block type="logic_compare" id="5?r+gP:i]AB8+fO$A2qn"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="J6h|t0ILSS-~a8Ma9$nb"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="TBnG3bwuf-yK82}Z#b?:"> <field name="NUM">9</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="$L%`HB0no7qX7S;|Dv^/"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="~;cN_N$st0mKizPYqrTM"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="/#FK(I|M1(-fv7pN:6,A"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.09Zaehlerstand_September</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="~S~SGl|5WaTEGN1x_Jl}"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="cUJ.9vEVgrt6rIRqY#(I"> <value name="IF0"> <block type="logic_compare" id="Izc:^_{/K^8MvpiK9;[B"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="KYC]A8).9O0`2@w,?SPU"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="nb@9?,ZJ%%KN5[jeF3l("> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="fhf(Qm;IsC`/}mDF91Gn"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id=")s#NaSQ$b(NjY];2^Az="> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="qhOcMu}OFL2{VF}k8*$p"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.10Zaehlerstand_Oktober</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="`HHTO!^BT{bm@3}#Fc`s"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="H]LlaJIgIV!FQG/X^J)R"> <value name="IF0"> <block type="logic_compare" id="ij`b]jZs3)0,FomvepE1"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="8a?_Y~}=WO{u!U,1lOuu"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="ifmh`Q[vjWGwT|YQgVB%"> <field name="NUM">11</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="RCOXI=AGbsu/`J!D^J8k"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="5Jvi27S6H;,=aPbM$o1O"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id=":.x+6Q6C,Wx$A/47:?K}"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.11Zaehlerstand_November</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="Kz[GpE!51k9.2`5ve5/0"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="#2QfYG7}0D4.SZKNuSif"> <value name="IF0"> <block type="logic_compare" id="38ni3VjM+}?|x^hTZB%G"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="Yftb.*,pLEr^:/r]aK]j"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="0[O_Z[YS/Zl+e8WLvD1r"> <field name="NUM">12</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="jA9bM;/bN)DU_Wh2$[6n"> <field name="COMMENT">Hier bei Wert von Objekt ID</field> <next> <block type="comment" id="x2HlR..PcJh,[~T[,w6R"> <field name="COMMENT">Deinen Zaehler waehlen</field> <next> <block type="update" id="]=2VQVVgX+dn+fDF{jP4"> <mutation delay_input="true"></mutation> <field name="OID">0_userdata.0.Stromkosten.12Zaehlerstand_Dezember</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="get_value" id="FO}BdN-!2q^r[koDL8cF"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="17RMP:LCPol0{d{_^C_7"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="VY*rkzTIuNHf[d_tq#dC"> <field name="oid">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Lz4hT357oc96:-0N-oX$"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="dq1O~,WU-T?R~t_X#MoO"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id=":#XNMx:gvGv==l[Z[*9q"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="Ktg93jTCiPK95asU6RX?"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="e{VZv.#fDO;{wk{MN@6f"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=":+vTbrRPayO}ZY].YK~5"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="%I-GYOqR$pzNT~VctVg*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="8`|gV7aM)?Qn*2GhMJyY"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.002Zaehlerstand_aktuell</field> </block> </value> <value name="B"> <shadow type="math_number" id="GYfmok(I~0!~x/.+7S;Z"> <field name="NUM">1</field> </shadow> <block type="get_value" id="NR{=~*+6poq^SZMYGxA!"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.001Zaehlerstand_vom_01_01_2020</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="P$e[oi5{agvw|%0DI{ML"> <field name="NUM">0</field> </shadow> <block type="time_get" id="4Ryo.TsIC[Cx-.hmZ^UB"> <mutation format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="2OGlMMo[u8}^R8^Ad|0`"> <field name="NUM">12</field> </shadow> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="2Y`ZgO*xSYwcJJEHC6j("> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yBxvGT|.=nu:Ynw$f{=A"> <field name="oid">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="-0Sz;9Af@l4k7nj1{:A,"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="!dQ5c3Vq03Q*YKQ4:3yd"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="?~9RJI=|io^c-7ZC`/S3"> <field name="NUM">1</field> </shadow> <block type="get_value" id="G?RB{8h.70UPoCyV~3Y4"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.13Hochrechnung_Verbrauch_Jahr</field> </block> </value> <value name="B"> <shadow type="math_number" id="ICC:Wu}nr*7QN72/O|;1"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-XCAZY5CfDXtClYXs^n9"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.14Strompreis</field> </block> </value> </block> </value> </block> </statement> <next> <block type="on_ext" id="Rvwe~%I2I)X{b*tQx(P-"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="aaebRHWd2@i.`ls_EKzr"> <field name="oid">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="qKTS=ub)LUC[i_l/=E=2"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromkosten.19Hochrechnung_Guthaben_Soll</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="0ln:LX!T3zj,dd4He0cu"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="?~9RJI=|io^c-7ZC`/S3"> <field name="NUM">1</field> </shadow> <block type="get_value" id="W6ipHnRP2;zl}9pNBDgi"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.17Hochrechnung_Zahlungen_Jahr</field> </block> </value> <value name="B"> <shadow type="math_number" id="ICC:Wu}nr*7QN72/O|;1"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!y.e[EC4Rqm54sqh#b9p"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromkosten.18Hochrechnung_benoetigte_Zahlungen_Jahr</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>Du erstellst ein neues leeres Blockly (Name egal). Dann klickst Du (ganz oben rechts zu finden) auf das zweite Symbol von links zum importieren. In das geöffnete Fenster fügst Du den Inhalt aus meinem Export ein. Danach unten auf importieren klicken.

Wow,... erstmal vielen, vielen Dank! Da hast du dir aber Zeit genommen!!! Wenn ich das 1 zu 1 so mache, wie du geschrieben hast, funktioniert das!
Ich wollte aber, bevor ich die Daten importiere, noch alle Namen so anpassen, dass sie in meine Nomenklatur passen. Hierfür habe ich die XML in Notepad bearbeitet. Allerdings hat die XML offensichtlich nix mit dem eigentlichen Skript zu tun, denn nachdem ich das Skript ausführe, erscheinen die Datenpunkte in der ursprünglichen Bezeichnung.

Weiter unten im JS stehen die Namen aber so, wie ich sie haben will. Anscheinend sind die beiden nicht verlinkt? Wie kann ich die Zeilen bearbeiten? Wenn ich es ändern will kommt ne Meldung, dass es nur ein read-only-editor ist...

-
Wow,... erstmal vielen, vielen Dank! Da hast du dir aber Zeit genommen!!! Wenn ich das 1 zu 1 so mache, wie du geschrieben hast, funktioniert das!
Ich wollte aber, bevor ich die Daten importiere, noch alle Namen so anpassen, dass sie in meine Nomenklatur passen. Hierfür habe ich die XML in Notepad bearbeitet. Allerdings hat die XML offensichtlich nix mit dem eigentlichen Skript zu tun, denn nachdem ich das Skript ausführe, erscheinen die Datenpunkte in der ursprünglichen Bezeichnung.

Weiter unten im JS stehen die Namen aber so, wie ich sie haben will. Anscheinend sind die beiden nicht verlinkt? Wie kann ich die Zeilen bearbeiten? Wenn ich es ändern will kommt ne Meldung, dass es nur ein read-only-editor ist...

@xxx_turbo_xxx
Du importierst das Blockly so wie es ist.
Dann klickst Du rechts da drauf </>

Dann bist Du im Funktions Editor. Ab Zeile 116 kannst Du die Struktur bestimmen. Wenn Du das änderst, dann mußt Du auch den Rest im Blockly anpassen und auch die alten Datenpunkte löschen, falls schon erstellt.

In der ganz letzten Zeile kannst Du auch anstatt 0_userdata.0
javascript.x nehmen (wobei x gleich Deine Instanznummer von JavaScript wäre, also 0 oder 1 usw.) -
Wow,... erstmal vielen, vielen Dank! Da hast du dir aber Zeit genommen!!! Wenn ich das 1 zu 1 so mache, wie du geschrieben hast, funktioniert das!
Ich wollte aber, bevor ich die Daten importiere, noch alle Namen so anpassen, dass sie in meine Nomenklatur passen. Hierfür habe ich die XML in Notepad bearbeitet. Allerdings hat die XML offensichtlich nix mit dem eigentlichen Skript zu tun, denn nachdem ich das Skript ausführe, erscheinen die Datenpunkte in der ursprünglichen Bezeichnung.

Weiter unten im JS stehen die Namen aber so, wie ich sie haben will. Anscheinend sind die beiden nicht verlinkt? Wie kann ich die Zeilen bearbeiten? Wenn ich es ändern will kommt ne Meldung, dass es nur ein read-only-editor ist...

@xxx_turbo_xxx sagte in Blockly Zeitplan error:
Wenn ich es ändern will kommt ne Meldung, dass es nur ein read-only-editor ist...
Einfach, nach dem die Datenpunkte erstellt sind, in die Blockly Bausteine klicken und Deine selbst erstellten Datenpunkte auswählen.
dass es nur ein read-only-editor ist.
Das ist zur Ansicht, würde sich aber auch in JS umwandeln lassen, dann geht es aber nicht wieder zurück in Blockly.
-
@xxx_turbo_xxx
Du importierst das Blockly so wie es ist.
Dann klickst Du rechts da drauf </>

Dann bist Du im Funktions Editor. Ab Zeile 116 kannst Du die Struktur bestimmen. Wenn Du das änderst, dann mußt Du auch den Rest im Blockly anpassen und auch die alten Datenpunkte löschen, falls schon erstellt.

In der ganz letzten Zeile kannst Du auch anstatt 0_userdata.0
javascript.x nehmen (wobei x gleich Deine Instanznummer von JavaScript wäre, also 0 oder 1 usw.)@dslraser Mega. Danke! Da scheitert es bei mir schon an den Basics :-)
Jetzt werd ich heut Abend mal alles umschreiben und ausprobieren!!!
-
@dslraser Mega. Danke! Da scheitert es bei mir schon an den Basics :-)
Jetzt werd ich heut Abend mal alles umschreiben und ausprobieren!!!
und, läuft ?