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

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    252

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

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

programmieren mit Blockly lernen, benötige Hilfe

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.
  • paul53P paul53

    @woupi

    AT liest den Wert vom falschen DP.

    Die anderen Variablen (WohnzTemp, Gleitwert_PV) werden an anderer Stelle im Skript gesetzt?

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

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

    @woupi

    AT liest den Wert vom falschen DP.

    Vielen Dank, ich bin so blind 😲 Hast natürlich Recht. Habe ich geändert.

    Die anderen Variablen (WohnzTemp, Gleitwert_PV) werden an anderer Stelle im Skript gesetzt?

    Ja, die werden woanders gesetzt. Ich wollte jetzt nicht alles hier rein kopieren und eure Hilfsbereitschaft damit überstrapazieren. Macht aber das lesen damit leider auch schwierig. Sorry.

    Sieht das denn sonst so jetzt für einen Profi gut aus?

    VG
    Sascha

    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

    paul53P 1 Reply Last reply
    0
    • W woupi

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

      @woupi

      AT liest den Wert vom falschen DP.

      Vielen Dank, ich bin so blind 😲 Hast natürlich Recht. Habe ich geändert.

      Die anderen Variablen (WohnzTemp, Gleitwert_PV) werden an anderer Stelle im Skript gesetzt?

      Ja, die werden woanders gesetzt. Ich wollte jetzt nicht alles hier rein kopieren und eure Hilfsbereitschaft damit überstrapazieren. Macht aber das lesen damit leider auch schwierig. Sorry.

      Sieht das denn sonst so jetzt für einen Profi gut aus?

      VG
      Sascha

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #25

      @woupi sagte: Sieht das denn sonst so jetzt für einen Profi gut aus?

      Es ließe sich einiges optimieren.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • CodierknechtC Codierknecht

        @woupi
        Gibt es dabei Wertekonstellationen, die insgesamt immer die gleiche Aussage liefern?
        Keine Ahnung wie man das bezeichnen sollte ... Zustand A, Zustand B.

        Dann könnte man die Teilaussagen über Funktionen bestimmen lassen und die Logik im eigentlichen Trigger dann über die Ergebnisse der Teilaussagen steuern.
        Dürfte etwas übersichtlicher sein.

        4ce27b59-fd05-4c31-989d-b4efd3b157ff-grafik.png

        Ob das dann performanter ist oder nicht, lasse ich mal dahingestellt.
        Lesbarkeit hat hier bei mir eine deutlich höhere Priorität.

        Der verlinkte Beitrag wendet sich an die blutigen Anfänger. Über dieses Stadium scheintst Du mir schon hinaus zu sein 😉

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

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

        @woupi
        Gibt es dabei Wertekonstellationen, die insgesamt immer die gleiche Aussage liefern?
        Keine Ahnung wie man das bezeichnen sollte ... Zustand A, Zustand B.

        Dann könnte man die Teilaussagen über Funktionen bestimmen lassen und die Logik im eigentlichen Trigger dann über die Ergebnisse der Teilaussagen steuern.
        Dürfte etwas übersichtlicher sein.

        4ce27b59-fd05-4c31-989d-b4efd3b157ff-grafik.png

        Ob das dann performanter ist oder nicht, lasse ich mal dahingestellt.
        Lesbarkeit hat hier bei mir eine deutlich höhere Priorität.

        Da habe ich mich bis jetzt noch nicht ran getraut, aber Danke für den Hinweis. Wobei ich das, so wie du es jetzt dargestellt hast verstanden habe.

        Der verlinkte Beitrag wendet sich an die blutigen Anfänger. Über dieses Stadium scheintst Du mir schon hinaus zu sein 😉

        Meinst Du den von Homoran?
        Und ja, über das Stadium bin ich zwar hinaus, aber ich muss noch soviel lernen und da helfen auch die ganz einfachen Dinge manchmal.
        VG
        Sascha

        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
        • W woupi

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

          @woupi
          Gibt es dabei Wertekonstellationen, die insgesamt immer die gleiche Aussage liefern?
          Keine Ahnung wie man das bezeichnen sollte ... Zustand A, Zustand B.

          Dann könnte man die Teilaussagen über Funktionen bestimmen lassen und die Logik im eigentlichen Trigger dann über die Ergebnisse der Teilaussagen steuern.
          Dürfte etwas übersichtlicher sein.

          4ce27b59-fd05-4c31-989d-b4efd3b157ff-grafik.png

          Ob das dann performanter ist oder nicht, lasse ich mal dahingestellt.
          Lesbarkeit hat hier bei mir eine deutlich höhere Priorität.

          Da habe ich mich bis jetzt noch nicht ran getraut, aber Danke für den Hinweis. Wobei ich das, so wie du es jetzt dargestellt hast verstanden habe.

          Der verlinkte Beitrag wendet sich an die blutigen Anfänger. Über dieses Stadium scheintst Du mir schon hinaus zu sein 😉

          Meinst Du den von Homoran?
          Und ja, über das Stadium bin ich zwar hinaus, aber ich muss noch soviel lernen und da helfen auch die ganz einfachen Dinge manchmal.
          VG
          Sascha

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          wrote on last edited by
          #27

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

          Da habe ich mich bis jetzt noch nicht ran getraut

          Versuch macht klug 😉

          "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

          1 Reply Last reply
          0
          • W woupi

            @paul53

            Ich habe deinen Startvorschlag, dafür nochmal ganz lieben Danke, weiter geführt. Hier mal der Abschnitt.
            Es wäre ganz toll wenn Ihr da nochmal drüber sehen könntet, ob man das jetzt so einigermaßen vernünftig wäre.
            73ced6ec-0292-484f-8ab1-c6ae03abb7f3-image.png
            49e88446-7ca5-4fd4-9f1c-d9fba7838409-image.png

            Vielen Dank
            VG
            Sascha

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #28

            @woupi sagte: drüber sehen könntet

            Übrigens: Wenn WohnzTemp >= 20.6 ist, dann ist sie auch >= 20.3.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            MartinPM 1 Reply Last reply
            1
            • paul53P paul53

              @woupi sagte: drüber sehen könntet

              Übrigens: Wenn WohnzTemp >= 20.6 ist, dann ist sie auch >= 20.3.

              MartinPM Online
              MartinPM Online
              MartinP
              wrote on last edited by
              #29

              @paul53 Ich bin gerade etwas verblüfft ...

              Ich habe jetzt etwas länger die Pick-Kategorien durchsucht, und finde diese "Hochkant" Logik-Blöcke nicht....

              2b418651-a831-4e8c-986f-6a55c09d302a-grafik.png

              Sondern nur das "Querformat"...

              d6064ab1-7ccd-4625-906d-817f5ce8828f-grafik.png

              Wo hat sich denn dieser Schatz wieder versteckt?
              Wieder eine Sache, die nur in Beta verfügbar ist?

              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
              Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
              kernel Linux pve 6.8.12-15-pve
              6 GByte RAM für den Container
              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
              Remote-Access über Wireguard der Fritzbox

              paul53P HomoranH 2 Replies Last reply
              0
              • MartinPM MartinP

                @paul53 Ich bin gerade etwas verblüfft ...

                Ich habe jetzt etwas länger die Pick-Kategorien durchsucht, und finde diese "Hochkant" Logik-Blöcke nicht....

                2b418651-a831-4e8c-986f-6a55c09d302a-grafik.png

                Sondern nur das "Querformat"...

                d6064ab1-7ccd-4625-906d-817f5ce8828f-grafik.png

                Wo hat sich denn dieser Schatz wieder versteckt?
                Wieder eine Sache, die nur in Beta verfügbar ist?

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #30

                @martinp sagte: Wo hat sich denn dieser Schatz wieder versteckt?

                Rechte Maustaste über dem Block und "externe Eingänge" auswählen.

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

                finde diese "Hochkant" Logik-Blöcke nicht....

                Du hast sie doch verwendet.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                MartinPM 1 Reply Last reply
                0
                • MartinPM MartinP

                  @paul53 Ich bin gerade etwas verblüfft ...

                  Ich habe jetzt etwas länger die Pick-Kategorien durchsucht, und finde diese "Hochkant" Logik-Blöcke nicht....

                  2b418651-a831-4e8c-986f-6a55c09d302a-grafik.png

                  Sondern nur das "Querformat"...

                  d6064ab1-7ccd-4625-906d-817f5ce8828f-grafik.png

                  Wo hat sich denn dieser Schatz wieder versteckt?
                  Wieder eine Sache, die nur in Beta verfügbar ist?

                  HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #31

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

                  Wo hat sich denn dieser Schatz wieder versteckt?

                  in der rechten Maustaste und externe Eingänge

                  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 -

                  MartinPM 1 Reply Last reply
                  1
                  • HomoranH Homoran

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

                    Wo hat sich denn dieser Schatz wieder versteckt?

                    in der rechten Maustaste und externe Eingänge

                    MartinPM Online
                    MartinPM Online
                    MartinP
                    wrote on last edited by
                    #32

                    gaah, immer diese modernen "aufgeräumten" Oberflächen.

                    Das ist wirklich nicht für Gelegenheits-Blockly Benutzer. Wenn man sechs Wochen nichts getan hat, hat man das doch wieder vergessen 😉

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                    kernel Linux pve 6.8.12-15-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    CodierknechtC 1 Reply Last reply
                    0
                    • paul53P paul53

                      @martinp sagte: Wo hat sich denn dieser Schatz wieder versteckt?

                      Rechte Maustaste über dem Block und "externe Eingänge" auswählen.

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

                      finde diese "Hochkant" Logik-Blöcke nicht....

                      Du hast sie doch verwendet.

                      MartinPM Online
                      MartinPM Online
                      MartinP
                      wrote on last edited by
                      #33

                      @paul53 said in programmieren mit Blockly lernen, benötige Hilfe:

                      Du hast sie doch verwendet.

                      Screen Shot aus einem der Posts weiter oben

                      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                      kernel Linux pve 6.8.12-15-pve
                      6 GByte RAM für den Container
                      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                      Remote-Access über Wireguard der Fritzbox

                      1 Reply Last reply
                      0
                      • MartinPM MartinP

                        gaah, immer diese modernen "aufgeräumten" Oberflächen.

                        Das ist wirklich nicht für Gelegenheits-Blockly Benutzer. Wenn man sechs Wochen nichts getan hat, hat man das doch wieder vergessen 😉

                        CodierknechtC Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        wrote on last edited by
                        #34

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

                        Das ist wirklich nicht für Gelegenheits-Blockly Benutzer. Wenn man sechs Wochen nichts getan hat, hat man das doch wieder vergessen

                        Man muss sich nur den natürlichen Spieltrieb erhalten ... und die Macht der rechten Maustaste nutzen 😉

                        "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

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

                          Ich hänge jetzt doch mal das ganze Skript an. Ich würde mich freuen, wenn ihr euch das mal ansehen und mir Hinweise zu Fehlern, Verbesserungen und/oder einfach nur Tipps geben könnt. Ich weiß das es sehr lang ist und bin deshalb auch jedem Dankbar der sich die Mühe macht.

                          df3f6d63-ebe8-45b4-a44c-a30026c73319-image.png
                          76555fc7-cf6c-4e92-a1b5-5dac28b75a47-image.png
                          9c10ed00-2b56-4a45-b4f2-e46976ced9e4-image.png
                          9217102c-9af0-4ecb-8a05-e632d84f11a8-image.png
                          c080dc6d-823b-4c87-aad2-2a41182ef1dd-image.png
                          5ffe6945-966b-478c-92dd-218238564b4f-image.png
                          76555fc7-cf6c-4e92-a1b5-5dac28b75a47-image.png
                          9c10ed00-2b56-4a45-b4f2-e46976ced9e4-image.png
                          9217102c-9af0-4ecb-8a05-e632d84f11a8-image.png
                          c080dc6d-823b-4c87-aad2-2a41182ef1dd-image.png
                          5ffe6945-966b-478c-92dd-218238564b4f-image.png
                          ebd94259-05e3-45cc-a87b-374ed5b7785e-image.png
                          6902b957-283c-4740-8e62-745d5f97bae1-image.png
                          3400175f-062b-460b-a314-d419f96cbe26-image.png
                          VG
                          Sascha

                          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

                          P 1 Reply Last reply
                          0
                          • W woupi

                            Ich hänge jetzt doch mal das ganze Skript an. Ich würde mich freuen, wenn ihr euch das mal ansehen und mir Hinweise zu Fehlern, Verbesserungen und/oder einfach nur Tipps geben könnt. Ich weiß das es sehr lang ist und bin deshalb auch jedem Dankbar der sich die Mühe macht.

                            df3f6d63-ebe8-45b4-a44c-a30026c73319-image.png
                            76555fc7-cf6c-4e92-a1b5-5dac28b75a47-image.png
                            9c10ed00-2b56-4a45-b4f2-e46976ced9e4-image.png
                            9217102c-9af0-4ecb-8a05-e632d84f11a8-image.png
                            c080dc6d-823b-4c87-aad2-2a41182ef1dd-image.png
                            5ffe6945-966b-478c-92dd-218238564b4f-image.png
                            76555fc7-cf6c-4e92-a1b5-5dac28b75a47-image.png
                            9c10ed00-2b56-4a45-b4f2-e46976ced9e4-image.png
                            9217102c-9af0-4ecb-8a05-e632d84f11a8-image.png
                            c080dc6d-823b-4c87-aad2-2a41182ef1dd-image.png
                            5ffe6945-966b-478c-92dd-218238564b4f-image.png
                            ebd94259-05e3-45cc-a87b-374ed5b7785e-image.png
                            6902b957-283c-4740-8e62-745d5f97bae1-image.png
                            3400175f-062b-460b-a314-d419f96cbe26-image.png
                            VG
                            Sascha

                            P Offline
                            P Offline
                            papaechokilo
                            wrote on last edited by
                            #36

                            @woupi mal ne Frage: „läuft das überhaupt?“ Ich verstehe nicht, was das Blockly tun soll aber sehe am Anfang zwei Fehler. A)1. Trigger wenn sich … geändert hat und 2. Trigger Cron. Der Trigger ist entweder das eine oder das andere. Die Zeitangabe erfolgt über eine wenn-Abfrage. B)Dieselbe Variable DebWpStG wird am Anfang durch zwei verschiedene Datenpunkte gefüllt. Das zweite überschreibt den ersten Eintrag, also wozu.

                            W 1 Reply Last reply
                            0
                            • P papaechokilo

                              @woupi mal ne Frage: „läuft das überhaupt?“ Ich verstehe nicht, was das Blockly tun soll aber sehe am Anfang zwei Fehler. A)1. Trigger wenn sich … geändert hat und 2. Trigger Cron. Der Trigger ist entweder das eine oder das andere. Die Zeitangabe erfolgt über eine wenn-Abfrage. B)Dieselbe Variable DebWpStG wird am Anfang durch zwei verschiedene Datenpunkte gefüllt. Das zweite überschreibt den ersten Eintrag, also wozu.

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

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

                              @woupi mal ne Frage: „läuft das überhaupt?“

                              Das eigentliche Skript, ohne die Änderungen mit den Variablen läuft seit fast einem Jahr. Wurde immer wieder erweitert.
                              Das mit den Veränderungen habe ich heute morgen erst eingeschaltet und das andere abgeschaltet. Das wird sich heute zeigen ob es läuft.

                              Ich verstehe nicht, was das Blockly tun soll aber sehe am Anfang zwei Fehler. A)1. Trigger wenn sich … geändert hat und 2. Trigger Cron. Der Trigger ist entweder das eine oder das andere. Die Zeitangabe erfolgt über eine wenn-Abfrage.

                              Verstehe nicht was Du meinst. Es sind zwei Trigger. Der Erste reagiert auf die beiden Datenpunkte Debug_WP_ST_Variable und Debug_WP_Steuerung.
                              Der zweite Trigger ist ein Zeittrigger der um 9:30 jeden Tag ausgeführt werden soll.

                              B)Dieselbe Variable DebWpStG wird am Anfang durch zwei verschiedene Datenpunkte gefüllt. Das zweite überschreibt den ersten Eintrag, also wozu.

                              Da hast du recht, im zweiten habe ich die falsche Variable ausgewählt.

                              Danke
                              VG
                              Sascha

                              PS:
                              WP wurde gerade auch mit dem geänderten Skript gestartet, also der erste Teil funktioniert auch mit den Änderungen.

                              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
                                #38

                                Guten Morgen,

                                bis auf 2 Kleinigkeiten läuft das Skript wieder.

                                Eventuell könnte sich die eine mal ansehen, ob das so richtig ist bzw ob ich das nicht sowieso ganz anders machen kann/muss.

                                Vielen Dank:

                                Es geht darum, dass die WP abgeschaltet werden soll wenn 1. die Innentemperatur erreicht wurde (das funktioniert) und 2. wenn kein PV Strom mehr vorhanden ist. Dabei soll aber nicht sofort, nur weil mal eine Wolke diesen zu stark reduziert, abgeschaltet werden.

                                Genau dafür hatte ich mal ein Teilskript erstellt in dem eine Liste erstellt und anschließend gefüllt wird. Nach 30 Einträgen wird dann der erste gelöscht und der nächste unten eingetragen. So sind immer 30 Einträge vorhanden.
                                Aus diesen wird dann ein Mittelwert gebildet und der wiederum in eine Variable (Gleitwert_PV) gesetzt.
                                Auch das funktioniert soweit.
                                Allerdings ist diese Variable, wenn kein PV da ist offensichtlich leer, also da ist nichts drin.

                                Ich habe jetzt heute morgen erstmal ein setze auf 0 vor den Trigger gesetzt, so das die Variable beim Start einmal auf 0 gesetzt wird.
                                Zusätzlich habe ich noch ein sonst falls eingebaut um den Gleitwert_PV auf 0 zu setzen wenn kein PV da ist.

                                9a6170d6-bc3b-4d54-8f7b-3c4f59fafbcd-image.png

                                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 AsgothianA 2 Replies Last reply
                                0
                                • W woupi

                                  Guten Morgen,

                                  bis auf 2 Kleinigkeiten läuft das Skript wieder.

                                  Eventuell könnte sich die eine mal ansehen, ob das so richtig ist bzw ob ich das nicht sowieso ganz anders machen kann/muss.

                                  Vielen Dank:

                                  Es geht darum, dass die WP abgeschaltet werden soll wenn 1. die Innentemperatur erreicht wurde (das funktioniert) und 2. wenn kein PV Strom mehr vorhanden ist. Dabei soll aber nicht sofort, nur weil mal eine Wolke diesen zu stark reduziert, abgeschaltet werden.

                                  Genau dafür hatte ich mal ein Teilskript erstellt in dem eine Liste erstellt und anschließend gefüllt wird. Nach 30 Einträgen wird dann der erste gelöscht und der nächste unten eingetragen. So sind immer 30 Einträge vorhanden.
                                  Aus diesen wird dann ein Mittelwert gebildet und der wiederum in eine Variable (Gleitwert_PV) gesetzt.
                                  Auch das funktioniert soweit.
                                  Allerdings ist diese Variable, wenn kein PV da ist offensichtlich leer, also da ist nichts drin.

                                  Ich habe jetzt heute morgen erstmal ein setze auf 0 vor den Trigger gesetzt, so das die Variable beim Start einmal auf 0 gesetzt wird.
                                  Zusätzlich habe ich noch ein sonst falls eingebaut um den Gleitwert_PV auf 0 zu setzen wenn kein PV da ist.

                                  9a6170d6-bc3b-4d54-8f7b-3c4f59fafbcd-image.png

                                  CodierknechtC Offline
                                  CodierknechtC Offline
                                  Codierknecht
                                  Developer Most Active
                                  wrote on last edited by Codierknecht
                                  #39

                                  @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

                                  "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
                                  1
                                  • W woupi

                                    Guten Morgen,

                                    bis auf 2 Kleinigkeiten läuft das Skript wieder.

                                    Eventuell könnte sich die eine mal ansehen, ob das so richtig ist bzw ob ich das nicht sowieso ganz anders machen kann/muss.

                                    Vielen Dank:

                                    Es geht darum, dass die WP abgeschaltet werden soll wenn 1. die Innentemperatur erreicht wurde (das funktioniert) und 2. wenn kein PV Strom mehr vorhanden ist. Dabei soll aber nicht sofort, nur weil mal eine Wolke diesen zu stark reduziert, abgeschaltet werden.

                                    Genau dafür hatte ich mal ein Teilskript erstellt in dem eine Liste erstellt und anschließend gefüllt wird. Nach 30 Einträgen wird dann der erste gelöscht und der nächste unten eingetragen. So sind immer 30 Einträge vorhanden.
                                    Aus diesen wird dann ein Mittelwert gebildet und der wiederum in eine Variable (Gleitwert_PV) gesetzt.
                                    Auch das funktioniert soweit.
                                    Allerdings ist diese Variable, wenn kein PV da ist offensichtlich leer, also da ist nichts drin.

                                    Ich habe jetzt heute morgen erstmal ein setze auf 0 vor den Trigger gesetzt, so das die Variable beim Start einmal auf 0 gesetzt wird.
                                    Zusätzlich habe ich noch ein sonst falls eingebaut um den Gleitwert_PV auf 0 zu setzen wenn kein PV da ist.

                                    9a6170d6-bc3b-4d54-8f7b-3c4f59fafbcd-image.png

                                    AsgothianA Offline
                                    AsgothianA Offline
                                    Asgothian
                                    Developer
                                    wrote on last edited by
                                    #40

                                    @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.

                                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                    W 2 Replies Last reply
                                    1
                                    • 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 Offline
                                          CodierknechtC Offline
                                          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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          114

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          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