Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. programmieren mit Blockly lernen, benötige Hilfe

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    programmieren mit Blockly lernen, benötige Hilfe

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @woupi last edited by 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 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @woupi last edited by

        @woupi

        AT liest den Wert vom falschen DP.

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

        W 1 Reply Last reply Reply Quote 0
        • W
          woupi @paul53 last edited by

          @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

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @woupi last edited by

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

            Es ließe sich einiges optimieren.

            1 Reply Last reply Reply Quote 0
            • W
              woupi @Codierknecht last edited by 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

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @woupi last edited by

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

                Da habe ich mich bis jetzt noch nicht ran getraut

                Versuch macht klug 😉

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @woupi last edited by

                  @woupi sagte: drüber sehen könntet

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

                  MartinP 1 Reply Last reply Reply Quote 1
                  • MartinP
                    MartinP @paul53 last edited by

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

                    paul53 Homoran 2 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @MartinP last edited by 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.

                      MartinP 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @MartinP last edited by

                        @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

                        MartinP 1 Reply Last reply Reply Quote 1
                        • MartinP
                          MartinP @Homoran last edited by

                          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 😉

                          Codierknecht 1 Reply Last reply Reply Quote 0
                          • MartinP
                            MartinP @paul53 last edited by

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

                            Du hast sie doch verwendet.

                            Screen Shot aus einem der Posts weiter oben

                            1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @MartinP last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • W
                                woupi last edited by 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 1 Reply Last reply Reply Quote 0
                                • P
                                  papaechokilo @woupi last edited by

                                  @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 Reply Quote 0
                                  • W
                                    woupi @papaechokilo last edited by woupi

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

                                    1 Reply Last reply Reply Quote 0
                                    • W
                                      woupi last edited by

                                      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

                                      Codierknecht Asgothian 2 Replies Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @woupi last edited by 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 1 Reply Last reply Reply Quote 1
                                        • Asgothian
                                          Asgothian Developer @woupi last edited by

                                          @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 2 Replies Last reply Reply Quote 1
                                          • W
                                            woupi @Codierknecht last edited by

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

                                            Codierknecht 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            847
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            46
                                            2561
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo