Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. programmieren mit Blockly lernen, benötige Hilfe

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

programmieren mit Blockly lernen, benötige Hilfe

Scheduled Pinned Locked Moved Blockly
46 Posts 7 Posters 4.7k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CodierknechtC Codierknecht

    @woupi sagte in programmieren mit Blockly lernen, benötige Hilfe:

    Dabei soll aber nicht sofort, nur weil mal eine Wolke diesen zu stark reduziert, abgeschaltet werden.

    Sowas macht man üblicherweise mit einem Timeout.
    Nach dem Motto: Wenn PV unter Wert X, starte Timeout von Y Sekunden.
    Wenn PV über Wert X, stoppe diesen Timeout.

    Damit wird dann die WP nur dann abgeschaltet, wenn die Leistung der PV eine gewisse Zeit konstant unter X liegt.

    Vielleicht hilft Dir das:
    https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9

    Edit
    Du musst natürlich darauf achten, dass der Timeout nur beim ersten Fallen der Leistung unter Deine Grenze gestartet wird.

    7a18eaab-1070-4163-a95f-16b5a03ec9f8-image.png

    W Offline
    W Offline
    woupi
    wrote on last edited by
    #41

    @codierknecht sagte in programmieren mit Blockly lernen, benötige Hilfe:

    Vielleicht hilft Dir das:
    https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/

    Das habe ich zwar schon mehrmals gelesen, aber für den Fall so nicht drauf gekommen, das zu nutzen.

    Edit
    Du musst natürlich darauf achten, dass der Timeout nur beim ersten Fallen der Leistung unter Deine Grenze gestartet wird.

    7a18eaab-1070-4163-a95f-16b5a03ec9f8-image.png

    Wenn ich das richtig verstehe wird das 2. Falls nur abgefragt, wenn die PV Leistung unter 1500 gefallen ist.
    Das 2.Falls trifft dann ein wenn die PV Leistung über/gleich 1500 ist. Dabei wird dann die WP nach 300 sek abgeschaltet.

    Das würde aber bedeuten, dass die WP abgeschaltet wird, wenn PV da ist, oder sehe ich da was falsch?

    NUC10i3, Proxmox, VM Ubuntu iobroker, lxc ubuntu influxdb, grafana, lxc ubuntu SAE, lxc ubuntu MotionEye, WP Panasonic Jeisha 5kW mit Heishamon, Shelly 2.5 und 2pm Rolladensteuerung, OpenWB Wallbox

    CodierknechtC 1 Reply Last reply
    0
    • AsgothianA Asgothian

      @woupi Moin

      Die Mittelwertbildung so wie du sie abgebildet hast hat meiner Meinung nach 2 "Auffälligkeiten"

      • Du triggers auf "ist kleiner als vorher", das heisst das je nach dem wie sich die PV Leistung gerade verändert der Zeitraum über den der Mittelwert gebildet wird unterschiedlich ist
      • die von Dir beschriebene Situation bei 0-Werten.

      den 2. Fall kann man relativ leicht "umgehen" ohne sich mit vielen Abfragen zu Beschäftigen:
      Die Berechnung Gleitwert_PV in einen Falls Block, Die abzuprüfende Bedingung ist "Länge von Liste Liste_PV > 0". Im Sonst-Zweig dann einfach Gleitwert_PV=0

      der 1. Fall ist da schon ungünstiger. Ich bin normalerweise kein Freund von Heartbeat-getriebenen Aktionen, aber die einfache Lösung ist hier:

      Statt des Triggers ein Cron-Job, der alle x Sekunden nur deine Gleitwertberechnung durchführt.

      Die elegantere Lösung ist komplexer:

      • du brauchst 2 Listen - eine mit den PV Werten, und eine mit den Timestamps wann die Änderungen aufgetreten sind.
      • An stelle des Einkürzen der Liste auf x einträge kürzt du dann die Liste auf einen festen Zeitraum (z.Bsp. 15 Minuten), und berechnest erst den Mittelwert durch Aufaddieren von ( PV Leistung * Dauer dieser Leistung ) und teilst das Ergebnis durch deinen Zeitraum.

      A.

      W Offline
      W Offline
      woupi
      wrote on last edited by
      #42

      @asgothian sagte in programmieren mit Blockly lernen, benötige Hilfe:

      @woupi Moin

      Die Mittelwertbildung so wie du sie abgebildet hast hat meiner Meinung nach 2 "Auffälligkeiten"

      • Du triggers auf "ist kleiner als vorher", das heisst das je nach dem wie sich die PV Leistung gerade verändert der Zeitraum über den der Mittelwert gebildet wird unterschiedlich ist
      • die von Dir beschriebene Situation bei 0-Werten.

      Das habe ich heute morgen auch erst geändert, sorry habe ich vergessen zu schreiben. Mein Gedanke war, dass ja nur wenn die PV Leistung einen Wert von 0 unterschreitet, soll abgeschaltet werden und somit bräuchte die Liste ja auch nur bei abfallenden Werten gefüllt werden.

      den 2. Fall kann man relativ leicht "umgehen" ohne sich mit vielen Abfragen zu Beschäftigen:
      Die Berechnung Gleitwert_PV in einen Falls Block, Die abzuprüfende Bedingung ist "Länge von Liste Liste_PV > 0". Im Sonst-Zweig dann einfach Gleitwert_PV=0

      Ok, Danke das habe ich glaube ich verstanden und werde das später wenn ich zu Hause bin mal versuchen zu ändern.

      der 1. Fall ist da schon ungünstiger. Ich bin normalerweise kein Freund von Heartbeat-getriebenen Aktionen, aber die einfache Lösung ist hier:

      Statt des Triggers ein Cron-Job, der alle x Sekunden nur deine Gleitwertberechnung durchführt.

      Die elegantere Lösung ist komplexer:

      • du brauchst 2 Listen - eine mit den PV Werten, und eine mit den Timestamps wann die Änderungen aufgetreten sind.
      • An stelle des Einkürzen der Liste auf x einträge kürzt du dann die Liste auf einen festen Zeitraum (z.Bsp. 15 Minuten), und berechnest erst den Mittelwert durch Aufaddieren von ( PV Leistung * Dauer dieser Leistung ) und teilst das Ergebnis durch deinen Zeitraum.

      A.

      Das muss ich mir mal in Ruhe genau durchlesen und am WE mal versuchen ob ich dazu was finde. Auf Anhieb und auf die schnelle durchlesen, habe ich so nicht verstanden wie die elegante Lösung funktionieren könnte.

      NUC10i3, Proxmox, VM Ubuntu iobroker, lxc ubuntu influxdb, grafana, lxc ubuntu SAE, lxc ubuntu MotionEye, WP Panasonic Jeisha 5kW mit Heishamon, Shelly 2.5 und 2pm Rolladensteuerung, OpenWB Wallbox

      1 Reply Last reply
      0
      • W woupi

        @codierknecht sagte in programmieren mit Blockly lernen, benötige Hilfe:

        Vielleicht hilft Dir das:
        https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/

        Das habe ich zwar schon mehrmals gelesen, aber für den Fall so nicht drauf gekommen, das zu nutzen.

        Edit
        Du musst natürlich darauf achten, dass der Timeout nur beim ersten Fallen der Leistung unter Deine Grenze gestartet wird.

        7a18eaab-1070-4163-a95f-16b5a03ec9f8-image.png

        Wenn ich das richtig verstehe wird das 2. Falls nur abgefragt, wenn die PV Leistung unter 1500 gefallen ist.
        Das 2.Falls trifft dann ein wenn die PV Leistung über/gleich 1500 ist. Dabei wird dann die WP nach 300 sek abgeschaltet.

        Das würde aber bedeuten, dass die WP abgeschaltet wird, wenn PV da ist, oder sehe ich da was falsch?

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #43

        @woupi sagte in programmieren mit Blockly lernen, benötige Hilfe:

        oder sehe ich da was falsch?

        Ja 😉

        Das erste "Falls" prüft, ob die geänderte Leistung der PV unter 1500 liegt.
        Tut sie das, prüft das zweite, ob sie zuletzt ÜBER 1500 lag. Denn nur dann (beim ersten Fallen unter die Grenze) soll der Timeout starten.
        Ändert sich die Leistung jetzt z.B. 5 Minuten gar nicht, schlägt der Timer zu.
        Der schlägt aber auch zu, wenn die Leistung sich zwar geändert hat, aber weiterhin unter 1500 bleibt.

        Das "sonst" im ersten Teil sorgt dafür, dass der Timeout gestoppt wird wenn die PV wieder mehr produziert.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 8.2.4 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi + dies & das
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        W 1 Reply Last reply
        0
        • CodierknechtC Codierknecht

          @woupi sagte in programmieren mit Blockly lernen, benötige Hilfe:

          oder sehe ich da was falsch?

          Ja 😉

          Das erste "Falls" prüft, ob die geänderte Leistung der PV unter 1500 liegt.
          Tut sie das, prüft das zweite, ob sie zuletzt ÜBER 1500 lag. Denn nur dann (beim ersten Fallen unter die Grenze) soll der Timeout starten.
          Ändert sich die Leistung jetzt z.B. 5 Minuten gar nicht, schlägt der Timer zu.
          Der schlägt aber auch zu, wenn die Leistung sich zwar geändert hat, aber weiterhin unter 1500 bleibt.

          Das "sonst" im ersten Teil sorgt dafür, dass der Timeout gestoppt wird wenn die PV wieder mehr produziert.

          W Offline
          W Offline
          woupi
          wrote on last edited by
          #44

          @codierknecht

          Ok, danke.

          Da merkt man leider, dass ich keine Ahnung vom Programmieren habe.

          Ich werde das heute Abend ausprobieren.

          NUC10i3, Proxmox, VM Ubuntu iobroker, lxc ubuntu influxdb, grafana, lxc ubuntu SAE, lxc ubuntu MotionEye, WP Panasonic Jeisha 5kW mit Heishamon, Shelly 2.5 und 2pm Rolladensteuerung, OpenWB Wallbox

          1 Reply Last reply
          0
          • AsgothianA Asgothian

            @woupi Moin

            Die Mittelwertbildung so wie du sie abgebildet hast hat meiner Meinung nach 2 "Auffälligkeiten"

            • Du triggers auf "ist kleiner als vorher", das heisst das je nach dem wie sich die PV Leistung gerade verändert der Zeitraum über den der Mittelwert gebildet wird unterschiedlich ist
            • die von Dir beschriebene Situation bei 0-Werten.

            den 2. Fall kann man relativ leicht "umgehen" ohne sich mit vielen Abfragen zu Beschäftigen:
            Die Berechnung Gleitwert_PV in einen Falls Block, Die abzuprüfende Bedingung ist "Länge von Liste Liste_PV > 0". Im Sonst-Zweig dann einfach Gleitwert_PV=0

            der 1. Fall ist da schon ungünstiger. Ich bin normalerweise kein Freund von Heartbeat-getriebenen Aktionen, aber die einfache Lösung ist hier:

            Statt des Triggers ein Cron-Job, der alle x Sekunden nur deine Gleitwertberechnung durchführt.

            Die elegantere Lösung ist komplexer:

            • du brauchst 2 Listen - eine mit den PV Werten, und eine mit den Timestamps wann die Änderungen aufgetreten sind.
            • An stelle des Einkürzen der Liste auf x einträge kürzt du dann die Liste auf einen festen Zeitraum (z.Bsp. 15 Minuten), und berechnest erst den Mittelwert durch Aufaddieren von ( PV Leistung * Dauer dieser Leistung ) und teilst das Ergebnis durch deinen Zeitraum.

            A.

            W Offline
            W Offline
            woupi
            wrote on last edited by
            #45

            @asgothian sagte in programmieren mit Blockly lernen, benötige Hilfe:

            @woupi Moin

            Die Mittelwertbildung so wie du sie abgebildet hast hat meiner Meinung nach 2 "Auffälligkeiten"

            • Du triggers auf "ist kleiner als vorher", das heisst das je nach dem wie sich die PV Leistung gerade verändert der Zeitraum über den der Mittelwert gebildet wird unterschiedlich ist
            • die von Dir beschriebene Situation bei 0-Werten.

            den 2. Fall kann man relativ leicht "umgehen" ohne sich mit vielen Abfragen zu Beschäftigen:
            Die Berechnung Gleitwert_PV in einen Falls Block, Die abzuprüfende Bedingung ist "Länge von Liste Liste_PV > 0". Im Sonst-Zweig dann einfach Gleitwert_PV=0

            Ich habe den ersten Teil mal umgesetzt, wenn ich es richtig verstanden habe, sollte es dann so richtig sein, oder?
            7312e14d-6dd2-4f90-aaa3-181b5dbd1cac-image.png

            Das weitere versuche ich morgen Früh mal umzusetzen, jetzt muss ich leider wieder arbeiten. Danke

            Die elegantere Lösung ist komplexer:

            NUC10i3, Proxmox, VM Ubuntu iobroker, lxc ubuntu influxdb, grafana, lxc ubuntu SAE, lxc ubuntu MotionEye, WP Panasonic Jeisha 5kW mit Heishamon, Shelly 2.5 und 2pm Rolladensteuerung, OpenWB Wallbox

            1 Reply Last reply
            0
            • W Offline
              W Offline
              woupi
              wrote on last edited by woupi
              #46

              @codierknecht sagte in programmieren mit Blockly lernen, benötige Hilfe:

              @woupi sagte in programmieren mit Blockly lernen, benötige Hilfe:

              oder sehe ich da was falsch?

              Ja 😉

              Das erste "Falls" prüft, ob die geänderte Leistung der PV unter 1500 liegt.
              Tut sie das, prüft das zweite, ob sie zuletzt ÜBER 1500 lag. Denn nur dann (beim ersten Fallen unter die Grenze) soll der Timeout starten.
              Ändert sich die Leistung jetzt z.B. 5 Minuten gar nicht, schlägt der Timer zu.
              Der schlägt aber auch zu, wenn die Leistung sich zwar geändert hat, aber weiterhin unter 1500 bleibt.

              Das "sonst" im ersten Teil sorgt dafür, dass der Timeout gestoppt wird wenn die PV wieder mehr produziert.

              Auch das habe ich jetzt mal umgesetzt und das mit der Liste deaktiviert. Wenn das wie gewünscht funktioniert ist das ja definitiv einfacher.
              @codierknecht sagte in programmieren mit Blockly lernen, benötige Hilfe:

              @woupi sagte in programmieren mit Blockly lernen, benötige Hilfe:

              oder sehe ich da was falsch?

              Ja 😉

              Das erste "Falls" prüft, ob die geänderte Leistung der PV unter 1500 liegt.
              Tut sie das, prüft das zweite, ob sie zuletzt ÜBER 1500 lag. Denn nur dann (beim ersten Fallen unter die Grenze) soll der Timeout starten.
              Ändert sich die Leistung jetzt z.B. 5 Minuten gar nicht, schlägt der Timer zu.
              Der schlägt aber auch zu, wenn die Leistung sich zwar geändert hat, aber weiterhin unter 1500 bleibt.

              Das "sonst" im ersten Teil sorgt dafür, dass der Timeout gestoppt wird wenn die PV wieder mehr produziert.

              Auch das habe ich jetzt mal umgesetzt und das mit der Liste deaktiviert. Wenn das wie gewünscht funktioniert ist das ja definitiv einfacher.
              Wenn es nicht wie gewünscht funktioniert, setze ich mich an die beiden Listen. Das muss ich allerdings erstmal verstehen.

              5c512d12-3a7a-4bc8-9280-1db41f4eb722-image.png

              Wenn es nicht wie gewünscht funktioniert, setze ich mich an die beiden Listen. Das muss ich allerdings erstmal verstehen.

              Danke nochmal an alle, für die Hilfe.

              NUC10i3, Proxmox, VM Ubuntu iobroker, lxc ubuntu influxdb, grafana, lxc ubuntu SAE, lxc ubuntu MotionEye, WP Panasonic Jeisha 5kW mit Heishamon, Shelly 2.5 und 2pm Rolladensteuerung, OpenWB Wallbox

              1 Reply Last reply
              1
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              733

              Online

              32.4k

              Users

              81.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe