Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly Hilfe, PV-Leistung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    925

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Blockly Hilfe, PV-Leistung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
84 Beiträge 9 Kommentatoren 12.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • rantanplanR Offline
    rantanplanR Offline
    rantanplan
    schrieb am zuletzt editiert von
    #57

    @Steffi81:

    So, es scheint zu klappen. VorTag wurde geschrieben. Das kommt auch hin, der Wert. `
    Hast Du jetzt die Triggerzeit geändert, den Timeout gesetzt oder beides?

    @Steffi81:

    Das kann jetzt aber auch mit dem ganzen hin und her probieren zu tun haben, werde das mal beobachten. `
    Gehe ich auch von aus.
    @Steffi81:

    Werde berichten :D `
    Wir warten auch :lol:

    Grüße

    Rantanplan

    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #58

      Hallo,

      ich habe sowas mal für meine Homematic-Zähler und EM1000 FS20 Zähler in Javascript geschrieben:

      http://forum.iobroker.net/viewtopic.php?f=21&t=2262

      Die größte Herausforderung bestand darin zu erkennen, wenn die Geräte nach dem Abschalten oder Stromausfall/Abziehen von Steckdose

      den fortlaufenden Zähler zurückgesetzt haben. Daher habe ich einen Virtuellen Zähler (Backup) mitlaufen lassen.

      Bei mir läuft das Skript noch, fast fehlerfrei. 8-)

      Da dein Zählerstand immer wächst und sich nie zurücksetzt, ist die ganz Sache viel leichter. Im geposteten Skript sind ein paar Trigger für die Umschalt-/Speicherzeiten (Tag, Woche,Monat und Jahr sind klar, Quartal muss man etwas basteln).

      Es wird mit jeder Änderung des Zählers ein Differenz zu den bisherigen Zählerständen von Jahr, Quartal, Monat, Woche, Tag (theoretisch auch Stunde oder gar Minute möglich) gebildet.

      Schau mal rein.

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Steffi81
        schrieb am zuletzt editiert von
        #59

        Mahlzeit

        Habe beides gemacht. Die Zeit auf 00:10 Uhr geändert und das Timeout auf 2000 ms. Denke 1000 ms hätten auch gereicht, aber sicher ist sicher :)

        Denke auch nicht das es an der Zeit gelegen hat, hatte das mit verschieden Zeiten ausprobiert und es klappte nicht.

        Aber dennoch habe ich die Zeit geändert, um diese Möglichkeit auszuschließen.

        Mfg

        1 Antwort Letzte Antwort
        0
        • rantanplanR Offline
          rantanplanR Offline
          rantanplan
          schrieb am zuletzt editiert von
          #60

          @Steffi81:

          Habe beides gemacht. `
          Hmm. Ich kann mir gar nicht vorstellen, dass Dein System so träge ist, das es sich bei normalen Rechen- und Variablenoperationen "verschluckt".

          Ist schon Merkwürdig.

          Grüße

          Rantanplan

          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Steffi81
            schrieb am zuletzt editiert von
            #61

            Tja, keine Ahnung. Aber wenn es so geht, dann bin ich damit sehr zufrieden :D

            Wenn es geht :D

            Mfg

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Steffi81
              schrieb am zuletzt editiert von
              #62

              Nabend

              So, es ist so wie gehabt. Der VorTag Wert wird geschrieben, Woche/Monat/Jahr auch. Nur passen die Werte von den dreien nicht. Sie erhöhen sich zwar jedesmal, aber nicht um den Wert vom VorTag, was sie ja sollten, oder? Also ich mein um den Wert von VorTag erhöhen, oder?

              Werd mir das wohl noch mal an schauen. Kann ich das Skript "reseten", also so, dass alles von 0 anfängt? Ansonsten lösch ich das mal und mach es nochmal komplett neu.

              Mal sehen wann ich das schaffe, liege momentan dank einer Erkältung flach.

              Mfg

              1 Antwort Letzte Antwort
              0
              • rantanplanR Offline
                rantanplanR Offline
                rantanplan
                schrieb am zuletzt editiert von
                #63

                @Steffi81:

                So, es ist so wie gehabt. Der VorTag Wert wird geschrieben, Woche/Monat/Jahr auch. Nur passen die Werte von den dreien nicht. Sie erhöhen sich zwar jedesmal, aber nicht um den Wert vom VorTag, was sie ja sollten, oder? Also ich mein um den Wert von VorTag erhöhen, oder? `
                Ja, so kann man es ja auch im Blockly lesen.

                Wertebeisiele:

                Bezug_Gesamt= 5000

                Bezug_VorGesamt =4500

                Bezug_VorTag = Bezug_Gesamt (5000) - Bezug_VorGesamt (4500)

                Bezug_Woche = Bezug_Woche + Bezug_Vortag (500)

                usw.
                @Steffi81:

                Kann ich das Skript "reseten", also so, dass alles von 0 anfängt? `
                Na klar. Einfach unter Objekte die Variablen auf 0 setzen.

                Dann wird wieder beim 1. Ausführen NUR der Wert "Bezug_Gesamt" gefüllt.

                Außer Du schreibst 5 vor 12 den aktuellen Wert Deines Zählers da rein.

                Den Timer würde ich wieder aus dem Blockly nehmen.

                Das muss auch ohne gehen.

                Noch etwas zu Deinem Trigger! Habe ich gerade erst gesehen.

                Bei Dir steht "5 10 ***" das bedeutet 10:05 Uhr jeden Tag!!!???

                Da müsste stehen"5 0 * * *" entspricht 00:05 Uhr jeden Tag

                oder "10 0 * * *" entspricht 00:10 Uhr Jeden Tag.

                Die Werte kannst Du auch direkt oben in das Feld eingeben.

                Grüße und Gute Besserung

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • rantanplanR Offline
                  rantanplanR Offline
                  rantanplan
                  schrieb am zuletzt editiert von
                  #64

                  Hallo Steffi81

                  Mach mal Pause und werde gesund. ;)

                  Ich habe mal einen "Stresstest" mit dem Blockly gemacht.

                  ES FUNKTIONIERT NICHT!

                  Oder nur manchmal :roll:

                  Die Zahlen werden nur sporadisch und unterschiedlich aktualisiert.

                  Muss ich mal genauer anschauen.

                  Melde mich.

                  Grüße

                  Rantanplan

                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Steffi81
                    schrieb am zuletzt editiert von
                    #65

                    Guten Morgen

                    Das mit dem Timer in dem Screenshot, da hatte ich was ausprobiert um nicht immer 24 std warten zu müssen :) Ist mir dann nach dem hochladen aufgefallen, sorry. In dem aktuellen ist die Zeit auf 00:10 Uhr geändert.

                    Ok, wenn da anscheinend was nicht mit stimmt, dann warte ich ab. Dann lass ich den Timer erstmal, bis es eine Lösung gibt. Ändere das dann alles in einem ab, dann brauch ich mich nicht mit der Erkältung vorn PC setzten.

                    Danke für die Genesungsgrüße.

                    Mfg

                    1 Antwort Letzte Antwort
                    0
                    • rantanplanR Offline
                      rantanplanR Offline
                      rantanplan
                      schrieb am zuletzt editiert von
                      #66

                      Hallo Steffi81

                      Und weiter geht’s ;)

                      (Ich hoffe Du bist wieder gesund)

                      Ein Versuch der Erklärung.

                      Wie vorherigen Beispiele haben nicht geklappt, weil nicht unbedingt auf die komplette Abarbeitung eines Befehls gewartet wird.

                      In JavaSript kann man dies erzwingen, in Blockly leider (noch) nicht.

                      Beispiel:

                      Zeile 1: A=10

                      Zeile 2: B=A +10

                      Bei der asynchronen Abarbeitung kann es passieren, dass Zeile 2 ausgeführt wird obwohl Zeile 1 noch nicht fertig ist.

                      Somit kann es passieren, das B den Wert 10 erhält und nicht 20.

                      Ich hoffe das dieses Verhalten auch mal in Blockly abzustellen ist.

                      Über den Umweg von lokalen Variablen geht es dann aber doch (hoffentlich).
                      147_beispiel.png

                      Hier der Export:

                      ! <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="{V=mo]DNu%KS;AK8=LrK" x="-87" y="-338"><field name="COMMENT">Jeden Tag um 00:01 Uhr</field> <next><block type="schedule" id="jL4.SW:PoWw-q.KKR%DH"><field name="SCHEDULE">1 0 * * *</field> <statement name="STATEMENT"><block type="comment" id="Ahww~9VX=GWWlB(9aqsP"><field name="COMMENT">aktueller Gesamtwert</field> <next><block type="variables_set" id="|gPu3??__,N,nK__0J=l"><field name="VAR">myPV_Gesamt</field> <value name="VALUE"><block type="get_value" id="t6,+![3-3ICXbUp)Bj_]"><field name="ATTR">val</field> <field name="OID">ID auswählen</field></block></value> <next><block type="comment" id="D=qb+T%qkgL9r4}{nMDL"><field name="COMMENT">Lokale Variablen initialisieren</field> <next><block type="procedures_callnoreturn" id="07|jy%Q,[R0i?(RhdpB*"><mutation name="initialisieren"></mutation> <next><block type="comment" id="hYf:+t,c#(`I#;X8vbAA"><field name="COMMENT">Hier geht's los</field> <next><block type="controls_if" id="X2JIk;bXE/pvC5.dNX8Z"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="w}1)G@BCCc-1j|fhXf))"><field name="OP">GT</field> <value name="A"><block type="variables_get" id="E2@%eMh.`bU{vtj7JOGj"><field name="VAR">myPV_VorGesamt</field></block></value> <value name="B"><block type="math_number" id="_Czl-/turH@g=rB:]Mwz"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="comment" id="chjFF9Hm#IP?dmv%G^Ie"><field name="COMMENT">Nur wenn PV_VorGesamt schon einen Wert hat</field> <next><block type="variables_set" id="p96OaTc!^)mA/tjgD5uQ"><field name="VAR">myPV_VorTag</field> <value name="VALUE"><block type="math_arithmetic" id="/GPT5Et;Ue`4Z(`%K{Fj"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="j_!M*xfzb-4EGawO3Kw3"><field name="NUM">1</field></shadow> <block type="variables_get" id="WC6yZ)@;%1]JB0Ti1aUR"><field name="VAR">myPV_Gesamt</field></block></value> <value name="B"><shadow type="math_number" id="45m?:J{?vw}#2BT[Y^0a"><field name="NUM">1</field></shadow> <block type="variables_get" id="ZZ32i3yLk-j3yOQ5xj(x"><field name="VAR">myPV_VorGesamt</field></block></value></block></value> <next><block type="comment" id="?mSu7`rmS[]{=^hR(|h-"><field name="COMMENT">Aktuellen Wert für morgen sichern</field> <next><block type="variables_set" id=")x-.3)xmjybq`R:orRZ="><field name="VAR">myPV_VorGesamt</field> <value name="VALUE"><block type="variables_get" id="IqO/!sl|9|zmh3rCE^SE"><field name="VAR">myPV_Gesamt</field></block></value> <next><block type="comment" id="MMZP1xTG9f/G)nsJIf`7"><field name="COMMENT">Werte für Woche/Monat/Jahr</field> <next><block type="variables_set" id="%o+{n]i=Wqa#H9,S!X9d"><field name="VAR">myPV_Woche</field> <value name="VALUE"><block type="math_arithmetic" id="x;b^MQtzktn(cV1Sx=E?"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="`OR^Z3:8=MdvdR-QK]%Y"><field name="NUM">1</field></shadow> <block type="variables_get" id="Y/(ZV.dTiQm8xA_MOli["><field name="VAR">myPV_Woche</field></block></value> <value name="B"><shadow type="math_number" id="KO1?Fi}rrj`ILzyQO/f2"><field name="NUM">1</field></shadow> <block type="variables_get" id="a2^VRT/CpN2*0VQa~k=f"><field name="VAR">myPV_VorTag</field></block></value></block></value> <next><block type="variables_set" id="F0oQoIL++GTCL:0yv63{"><field name="VAR">myPV_Monat</field> <value name="VALUE"><block type="math_arithmetic" id="~X9=Wdf3qIVL:E1p{P%x"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="`OR^Z3:8=MdvdR-QK]%Y"><field name="NUM">1</field></shadow> <block type="variables_get" id="Mi:WD3aso@t[BVh;y`d%"><field name="VAR">myPV_Monat</field></block></value> <value name="B"><shadow type="math_number" id="KO1?Fi}rrj`ILzyQO/f2"><field name="NUM">1</field></shadow> <block type="variables_get" id=")Ejtg8|l0,Y[N2cUpPxQ"><field name="VAR">myPV_VorTag</field></block></value></block></value> <next><block type="variables_set" id="uL2AXiPO-(or0%WZ#C[K"><field name="VAR">myPV_Jahr</field> <value name="VALUE"><block type="math_arithmetic" id="1rFZAmThK#{DGuv%kb@g"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="`OR^Z3:8=MdvdR-QK]%Y"><field name="NUM">1</field></shadow> <block type="variables_get" id="Gb/2[Ky0jCH+dGoHX]Yw"><field name="VAR">myPV_Jahr</field></block></value> <value name="B"><shadow type="math_number" id="KO1?Fi}rrj`ILzyQO/f2"><field name="NUM">1</field></shadow> <block type="variables_get" id="s7(DDUv9g.FwMjW6wGDg"><field name="VAR">myPV_VorTag</field></block></value></block></value> <next><block type="comment" id="u?e=^OoHZTOPnUj(=`)m"><field name="COMMENT">Wochen-/Monat- und Jahreswechsel</field> <next><block type="controls_if" id=".*Ut:*R-,h7mCTOP`:-K"><value name="IF0"><block type="logic_compare" id="m)YlVQQb`L4=y{h9(ch:"><field name="OP">EQ</field> <value name="A"><block type="time_get" id=")JUH+iyy,,KZ}dP6`xux"><mutation format="false" language="false"></mutation> <field name="OPTION">wd</field></block></value> <value name="B"><block type="math_number" id=";{)kq0labRr%?rY8,,A@"><field name="NUM">1</field></block></value></block></value> <statement name="DO0"><block type="comment" id="q/-:jN?6f%X.b`3I)31t"><field name="COMMENT">es ist Montag</field> <next><block type="variables_set" id=":N*}w+4l)FMu+^c`?-HZ"><field name="VAR">myPV_VorWoche</field> <value name="VALUE"><block type="variables_get" id="P2UVICSI+(TOJy/wD|^S"><field name="VAR">myPV_Woche</field></block></value> <next><block type="variables_set" id="OpZ)3jky+0TlB}v[6/X6"><field name="VAR">myPV_Woche</field> <value name="VALUE"><block type="math_number" id="_?yeX[pAh9a{U50(~F,6"><field name="NUM">0</field></block></value></block></next></block></next></block></statement> <next><block type="controls_if" id="C?T5,x)9U#+*5`!/%Xvq"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="QnsuC*,mT8@{/VAV0#;3"><field name="OP">EQ</field> <value name="A"><block type="time_get" id="w]l0YjizLVHO+kXh~+pA"><mutation format="false" language="false"></mutation> <field name="OPTION">DD.MM.</field></block></value> <value name="B"><block type="text" id="Js3Du,fIBC4,!;Vr],3X"><field name="TEXT">01.01.</field></block></value></block></value> <statement name="DO0"><block type="comment" id="4),8Xviy{qF^*:)E6iM^"><field name="COMMENT">Neues Jahr</field> <next><block type="procedures_callnoreturn" id="-J|MYf4EIn`F|a5qkq:9"><mutation name="MonatsWechsel"></mutation> <next><block type="procedures_callnoreturn" id="!jD{/7{BdxYQ_}-|%eTH"><mutation name="JahresWechsel"></mutation></block></next></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="=KSw2QKkWEYy2LAu|5F%"><field name="OP">EQ</field> <value name="A"><block type="convert_tonumber" id="Pqs^d)[+FGyDP)EIQinu"><value name="VALUE"><block type="time_get" id="j:O*7i=%dQ0EY]1wI`Lu"><mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT</field></block></value></block></value> <value name="B"><block type="math_number" id="~DXlaOKTAggAN-WTk[yE"><field name="NUM">1</field></block></value></block></value> <statement name="DO1"><block type="comment" id="Rtl!ROra;5ug|YC6UHIV"><field name="COMMENT">1\. eines Monats</field> <next><block type="procedures_callnoreturn" id="juyZg(NRvnJ1)=cNx128"><mutation name="MonatsWechsel"></mutation></block></next></block></statement> <next><block type="comment" id="JIon5Y!#n[0RPp*UN:CQ"><field name="COMMENT">Werte speichern</field> <next><block type="procedures_callnoreturn" id="%@{w;T;4mq~U(DJKpWX_"><mutation name="speichern"></mutation></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> <statement name="ELSE"><block type="comment" id="Vn@Z9!vf0(iDyIXzSyWG"><field name="COMMENT">1x PV_VorGesamt initialisieren</field> <next><block type="control" id="DIp{:oz5KBZ7#TQ,ridU"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorGesamt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="J[CBnbIiH1v}f8mk@Z9P"><field name="VAR">myPV_Gesamt</field></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block> <block type="procedures_defnoreturn" id="JSk?u;dAq?gd3/1%s``(" x="712" y="-288"><field name="NAME">initialisieren</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="variables_set" id="mwjxhBUNVSY+;mhvE*ad"><field name="VAR">myPV_VorGesamt</field> <value name="VALUE"><block type="get_value" id="M[E;e2v#lO?lGiW6)z7d"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_VorGesamt</field></block></value> <next><block type="variables_set" id="pP?#U]0|y(@:kJP,#Ndg"><field name="VAR">myPV_VorTag</field> <value name="VALUE"><block type="get_value" id="lFX7`C8786JQ#?Gk!7o["><field name="ATTR">val</field> <field name="OID">javascript.0.PV_VorTag</field></block></value> <next><block type="variables_set" id="njYq9T,XzJ[04HDKC`}3"><field name="VAR">myPV_Woche</field> <value name="VALUE"><block type="get_value" id="w+So?^|EDK^FHp})lO^#"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Woche</field></block></value> <next><block type="variables_set" id="8j^N~[%a^,]ihudH9l(B"><field name="VAR">myPV_VorWoche</field> <value name="VALUE"><block type="get_value" id="7-t#.`e0yX+(XJN.vdm9"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_VorWoche</field></block></value> <next><block type="variables_set" id="XaHCOuq-+oHk;(kLE:FJ"><field name="VAR">myPV_Monat</field> <value name="VALUE"><block type="get_value" id="u({p4TdvN3_y]t1~u7KV"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Monat</field></block></value> <next><block type="variables_set" id="vnn^[6,J=4.QtD{J9]`_"><field name="VAR">myPV_VorMonat</field> <value name="VALUE"><block type="get_value" id="Tz7RcjUQ8F,%;|zQ41]2"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_VorMonat</field></block></value> <next><block type="variables_set" id="Kqt%+w,vH`uBw)N7mv=n"><field name="VAR">myPV_Jahr</field> <value name="VALUE"><block type="get_value" id="e-Q[Hgz1mec:+Q43,wcL"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Jahr</field></block></value> <next><block type="variables_set" id=";T]s2Zp(idQ8uQuwJO/0"><field name="VAR">myPV_VorJahr</field> <value name="VALUE"><block type="get_value" id="y,PW|Jo*hC._sqM.noH^"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_VorJahr</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block> <block type="procedures_defnoreturn" id="}eOpEjI/PHP)t8N/XG*H" x="713" y="-12"><field name="NAME">speichern</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="control" id="(hKb[IU*J#9gOdoTCOgx"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorGesamt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="E/~{zUUj}nLAipOoWX/("><field name="VAR">myPV_VorGesamt</field></block></value> <next><block type="control" id="C~rQ.Kcq!o(hZ[}8WjYR"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorTag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="-%2KEL(X7MLfMP@w-lk2"><field name="VAR">myPV_VorTag</field></block></value> <next><block type="control" id="@yfkY/?=G_vB47NN*{89"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="6Fqk/;jmAFx@3[liPO@L"><field name="VAR">myPV_Woche</field></block></value> <next><block type="control" id="aGCnm?E-0-ap}@urc9w0"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorWoche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="D;w=^UhTvi)B.xUW-{n8"><field name="VAR">myPV_VorWoche</field></block></value> <next><block type="control" id="mffNKRglL,5%CHCa]X:2"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="B9QTrl?)vG9qAyZ,:(I*"><field name="VAR">myPV_Monat</field></block></value> <next><block type="control" id=",o?{1%~WL/UJMZ}?)r`z"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorMonat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="@XqUm{;z;@G%uXfqYt5C"><field name="VAR">myPV_VorMonat</field></block></value> <next><block type="control" id="x~rCmSC)JKOPtY(t?LMQ"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*yLY*K^nc5h{h/)Clcx~"><field name="VAR">myPV_Jahr</field></block></value> <next><block type="control" id="Em@:KxA?^xgjn-lTfj?Y"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_VorJahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="b,Vt|I3,~4xd(hNVHZHh"><field name="VAR">myPV_VorJahr</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block> <block type="procedures_defnoreturn" id="nO8WoL:p/oR%-9XA~IJe" x="713" y="362"><field name="NAME">MonatsWechsel</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="variables_set" id="{OqW((cfZHZnXh*%6Efi"><field name="VAR">myPV_VorMonat</field> <value name="VALUE"><block type="variables_get" id="4J]^Pq?;89-(Pr949~7L"><field name="VAR">myPV_Monat</field></block></value> <next><block type="variables_set" id="Me*Hni/xE)OB[Hew5cd("><field name="VAR">myPV_Monat</field> <value name="VALUE"><block type="math_number" id="B}|~*)%A3.yjI84v*eK("><field name="NUM">0</field></block></value></block></next></block></statement></block> <block type="procedures_defnoreturn" id=")fw?y^4RO%x]?;0jBas9" x="713" y="463"><field name="NAME">JahresWechsel</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="variables_set" id="n@Jr3{]|J/}K/q,)[*o|"><field name="VAR">myPV_VorJahr</field> <value name="VALUE"><block type="variables_get" id="+_s%NbnI1Z@Q8)D;)R^@"><field name="VAR">myPV_Jahr</field></block></value> <next><block type="variables_set" id="gP3iNAT4o2^1S1Rcl2n%"><field name="VAR">myPV_Jahr</field> <value name="VALUE"><block type="math_number" id="5*DJ#(2ohT.33sjheP^="><field name="NUM">0</field></block></value></block></next></block></statement></block></xml> !

                      Grüße

                      Rantanplan

                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        RappiRN
                        Most Active
                        schrieb am zuletzt editiert von
                        #67

                        @rantanplan:

                        Bei der asynchronen Abarbeitung kann es passieren, dass Zeile 2 ausgeführt wird obwohl Zeile 1 noch nicht fertig ist. `

                        Und genau dieses Verhalten war der Grund für mich diese Timeoutvariante vorzuschlagen, ich sagte ja bereits, dass ich das auch so drin habe in meiner Berechnung.

                        Ob das allerdings so richtig sauber programmiert ist, oder es vielleicht noch besser gemacht werden kann, das zeigt ja dein Beispiel. :)

                        Enrico

                        1 Antwort Letzte Antwort
                        0
                        • rantanplanR Offline
                          rantanplanR Offline
                          rantanplan
                          schrieb am zuletzt editiert von
                          #68

                          @RappiRN:

                          Und genau dieses Verhalten war der Grund für mich diese Timeoutvariante vorzuschlagen, ich sagte ja bereits, dass ich das auch so drin habe in meiner Berechnung.

                          Ob das allerdings so richtig sauber programmiert ist, oder es vielleicht noch besser gemacht werden kann, das zeigt ja dein Beispiel. :) `

                          Die "Timeoiutvariante" kann aber noch mehr Durcheinander in der asynchronen Abarbeitung bringen.

                          Probiere mal dieses Beispiel.
                          147_beispiel.png

                          Grüße

                          Rantanplan

                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Steffi81
                            schrieb am zuletzt editiert von
                            #69

                            Hallo zusammen

                            Juhu, es gibt wieder was zu tun :D :D :D

                            Ja soweit bin ich wieder gesund, hoffe das bleibt auch so :D

                            Wow, dass ist ja mal ne Erweiterung zu dem anderen Skript, da hast du dir aber richtig Arbeit gemacht. Das es da so gravierende Unterschiede zwischen Java und Blockly gibt, wusste ich nicht.

                            Das erklärt auch, warum VorTag nur mit dem Timeout geschrieben wurde und ohne nicht. Werde das bei mir mal testen und dann mal schauen.

                            Mfg.

                            1 Antwort Letzte Antwort
                            0
                            • rantanplanR Offline
                              rantanplanR Offline
                              rantanplan
                              schrieb am zuletzt editiert von
                              #70

                              @Steffi81:

                              Java und Blockly `
                              JavaScript nicht Java ;)

                              Rantanplan

                              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Steffi81
                                schrieb am zuletzt editiert von
                                #71

                                OK, sorry :D

                                Meinte JavaScript :D

                                1 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  RappiRN
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #72

                                  @rantanplan:

                                  Probiere mal dieses Beispiel. `

                                  Habe ich gemacht! :D Dieses Durcheinander habe ich erwartet, wir hatten ja auch bei Steffi81 bisher nur einen Wert mit einem Timeout, ich weiß jetzt nicht mehr genau, ob ich dazu was genaueres geschrieben hatte, aber natürlich hätte unser erster Versuch noch mit weiteren Timeouts erweitert werden müssen.

                                  Was ich aber inzwischen dazu gelernt habe ist, dass Timeouts ja auch Probleme machen können!

                                  Hier mal ein kleiner Ausschnitt aus meiner Verbrauchsberechnung. Das ganze Ding ist noch nicht komplett funktionstüchtig und auch nicht vorzeigefähig, aber die wichtigsten Werte für gestern und vorgestern sowie dem Vormonat kommen. Ich arbeite halt noch dran. Ich lese immer sehr viel mit und versuche dann das Gelesene anzuwenden, daher kommen auch relativ wenig Fragen von mir! ;)

                                  ! filename="Zähler.JPG" index="0">~~

                                  Enrico

                                  1 Antwort Letzte Antwort
                                  0
                                  • rantanplanR Offline
                                    rantanplanR Offline
                                    rantanplan
                                    schrieb am zuletzt editiert von
                                    #73

                                    Leider kann man in dem kleinen Ausschnitt nicht viel erkennen.

                                    Wenn Du aber innerhalb der Timer Berechnungen mit Variablen/States durchführst, kannst Du in die gleiche Falle laufen.

                                    Momentan ist der Umweg über lokale Variablen der sichere Weg.

                                    Nicht schön (jetzt hauen mir die JavaScriptler wieder was um die Ohren :) ) aber sicherer.

                                    Grüße

                                    Rantanplan

                                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                    1 Antwort Letzte Antwort
                                    0
                                    • R Offline
                                      R Offline
                                      RappiRN
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #74

                                      @rantanplan:

                                      Leider kann man in dem kleinen Ausschnitt nicht viel erkennen. `

                                      Das ist auch erstmal so gewollt! :D

                                      Wie oben geschrieben, noch nicht vorzeigbar. Ich weiß ja inzwischen auch, dass es sicherer ist, alle Timeouts auch wieder zu beenden, nicht dass da irgendwelche Reste bleiben.

                                      @rantanplan:

                                      Nicht schön (jetzt hauen mir die JavaScriptler wieder was um die Ohren :) ) aber sicherer. `

                                      Gewalt ist keine Lösung!! :lol: :lol:

                                      Enrico

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        Steffi81
                                        schrieb am zuletzt editiert von
                                        #75

                                        So, ich habe das ganze mal aus probiert.

                                        Damit ich nicht bis 00:01 warten muss, habe ich, zum testen, einen festen Zeitpunkt ausprobiert, v.B. 17.00 Uhr. Damit das ganze auch geht, habe ich von Hand den Wert PV_VorGesamt kleiner als den Rechenwert (PV Gesamt ) eingetragen. Das ganze habe ich mehrmals so ausprobiert zu verschieden Zeitpunkten.

                                        Ergebnis, zum Zeitpunkt wurde das Script ausgeführt, die Werte Jahr/Monat/Woche wurde jetzt alle richtig geschrieben, VorGesamt wurde auch richtig gesetzt. Der Wert VorTag macht aber immer noch Probleme. Er wird zwar zusammen mit den anderen Werten geschrieben, aber kurz darauf wird der Wert wieder auf 0 gesetzt. Die anderen Werte bleiben alle so erhalten, wie sie gesetzt wurden.

                                        Habe das ganze mehrmals durch laufen lassen, jedes mal das selbe. VorTag wird geschrieben, danach gleich wieder auch 0 gesetzt.

                                        Sorry für die schlechte Nachricht :(

                                        1 Antwort Letzte Antwort
                                        0
                                        • rantanplanR Offline
                                          rantanplanR Offline
                                          rantanplan
                                          schrieb am zuletzt editiert von
                                          #76

                                          @Steffi81:

                                          So, ich habe das ganze mal aus probiert.

                                          Damit ich nicht bis 00:01 warten muss, habe ich, zum testen, einen festen Zeitpunkt ausprobiert, v.B. 17.00 Uhr. Damit das ganze auch geht, habe ich von Hand den Wert PV_VorGesamt kleiner als den Rechenwert (PV Gesamt ) eingetragen. Das ganze habe ich mehrmals so ausprobiert zu verschieden Zeitpunkten.

                                          Ergebnis, zum Zeitpunkt wurde das Script ausgeführt, die Werte Jahr/Monat/Woche wurde jetzt alle richtig geschrieben, VorGesamt wurde auch richtig gesetzt. Der Wert VorTag macht aber immer noch Probleme. Er wird zwar zusammen mit den anderen Werten geschrieben, aber kurz darauf wird der Wert wieder auf 0 gesetzt. Die anderen Werte bleiben alle so erhalten, wie sie gesetzt wurden.

                                          Habe das ganze mehrmals durch laufen lassen, jedes mal das selbe. VorTag wird geschrieben, danach gleich wieder auch 0 gesetzt.

                                          Sorry für die schlechte Nachricht :( `
                                          :shock: :shock: :shock:

                                          Erhöhst Du den PV_Gesamt bei jedem Durchgang neu?

                                          Läuft da noch etwas anderes?

                                          Ich habe hier etliche "Stresstests" durchgeführt. Keine Probleme.

                                          Setze mal für die ID Deines Aktors eine Variable ein z.B. "PV_Counter"

                                          Also 1. Baustein "setze PV_Gesamt Wert von PV_counter"

                                          Setze den Cron auf 2 bis 3 Minuten. und erhöhe den "PV_Counter" unter Objekte manuell.

                                          Rantanplan

                                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          792

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe