Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst]Batteriespeichersimulation mit AMIS-Daten in Blockly

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst]Batteriespeichersimulation mit AMIS-Daten in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GOETSCHHOFER @GOETSCHHOFER last edited by

      @dslraser

      Wie kriege ich denn hier den Datenpunkt hinein ?
      4713d3e4-18af-4357-8be8-26d8600eea17-image.png

      Bei mir schaut dies so aus, wenn ich auf Objekt-ID klicke komme ich nicht zum Datenpunkt ?
      de16d39f-27c9-42cc-8bf7-529778e41e54-image.png

      dslraser 1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @GOETSCHHOFER last edited by dslraser

        @goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:

        Wie kriege ich denn hier den Datenpunkt hinein ?

        In meinem Blockly ist das schon der Datenpunkt. Die Datenpunkte werden hier (in meinem Blockly) "variabel" ermittelt und zusammengebaut.

        Daraus
        Bildschirmfoto 2021-09-18 um 22.29.29.png
        und daraus
        Bildschirmfoto 2021-09-18 um 22.29.39.png
        und daraus
        Bildschirmfoto 2021-09-18 um 22.30.23.png
        und aus dem hier entsteht der Bezug zum Datenpunkt.
        Bildschirmfoto 2021-09-18 um 22.27.40.png

        das ist dann die ID in den Datenpunkten

        javascript.0.BATTERIE_SPEICHER.BELADEN_W
        

        Das ist dann dieser Datenpunkt
        Bildschirmfoto 2021-09-18 um 22.34.35.png

        Bei mir schaut dies so aus, wenn ich auf Objekt-ID klicke komme ich nicht zum Datenpunkt ?

        Lösche den roten Objekt ID Baustein und dann klicke darunter rein.
        (dann verwendest Du mein Blockly nicht, sondern ein anderes ? Deshalb fragte ich welches Blockly Du verwendest)

        G 1 Reply Last reply Reply Quote 1
        • G
          GOETSCHHOFER @dslraser last edited by

          @dslraser

          Ja, davor habe ich mächtig Angst, dass ich mir meine AMIS-Datenpunkte demoliere, denn diese funktionieren bis jetzt einwandfrei.

          Ich werde deine Berechnung bis morgen in mein Blockly einbauen, nachbasteln und würde mich morgen wieder melden.

          Danke einstweilen.

          1 Reply Last reply Reply Quote 0
          • G
            GOETSCHHOFER last edited by GOETSCHHOFER

            @dslraser

            Du hast mir so eine tolle Vorlage geliefert, dass ich dies relativ einfach, aber doch mit einer grossen Herausforderung in mein Blockly einbauen konnte. 😁

            Nochmals vielen Dank für deine Hilfestellung.

            Mit dem Tipp die Mathematik-Formel von innen nach außen zu bauen, hast du mir ein ein großes Tor an Möglichkeiten aufgemacht. 👍 👍 👍
            Ich komme aus der Excel-Welt und da sehe ich hier sehr viele Möglichkeiten.
            Macht echt Spaß !

            Um die Richtigkeit der Werte auch rechnerisch nachvollziehen zu können, habe ich den Be- und Entladefaktor mal auf 1 belassen u. den Abzug für Minimalwerte von 20 auf null, Bei Be- und Entladung, gestellt.

            Wenn ich hier im Blockly noch etwas einfacher, effizienter, in der Programmierung machen könnte, bitte ich dich dies mir mitzuteilen. Ich habe halt versucht als Anfänger zu einer Lösung zu kommen.

            Die BAT_SIMU_1 wird ja noch um 2 Facetten komplexer bei der Abfrage der Be- und Entladeleistung und des Speicherstandes.

            2 Punkte muss ich in der Abfrage noch einbauen.

            1. Ein Batteriespeicher hat eine maximale Be- und Entladeleistung z. B. von 3.000 W, d. h. wäre der Überschuss 3.200 W, kann nur mit 3.000 W beladen werden.
            2. Wie bereits erwähnt kann man aus einem Batteriespeicher nur etwas entnehmen, wenn der Speicherstand >0 Wh ist und weiters kann man nur beladen, wenn die maximale Speicherkapazität z. B. 5 kWh=5.000 Wh nicht überschritten ist.

            BAT_SIMU_1-19.9.2021.gif

            BLOCKLY_BAT_SMU_19.9.2021-11h50.txt


            8b53dd32-27f1-49c8-836d-26c19e948e09-image.png


            f2958743-ae49-4b54-880f-2aeb553c3033-image.png

            dslraser 1 Reply Last reply Reply Quote 1
            • dslraser
              dslraser Forum Testing Most Active @GOETSCHHOFER last edited by

              @goetschhofer

              Ich komme aus der Excel-Welt und da sehe ich hier sehr viele Möglichkeiten.

              Vor Jahren hatte ich damit auch zu tun. Angefangen von sehr komplexen Formeln und Makros in Visual Basic, aber aktuell habe ich damit lange nichts gemacht. Ich hatte mir damit automatische Abfragen aus unserem Großrechnersystem/Host (über IBM PICOMM) gebaut. Das lief so gut, das ich das morgens einfach gestartet habe, dann habe ich mir einen Kaffee gemacht und wenn ich wieder kam war die Tabelle fertig 😅. Ohne Diese Abfrage dauerte das (auch bei meinen Kollegen) meistens mehrere Stunden um die Tabelle händisch zu erstellen.

              G 1 Reply Last reply Reply Quote 1
              • G
                GOETSCHHOFER @dslraser last edited by GOETSCHHOFER

                @dslraser

                Ja, wenn man etwas Gehirnschmalz reinsteckt, kann man sich das Leben oft sehr erleichtern, vor allem bei Routinetätigkeiten.

                Ich brüte gerade bei der Abfrage max. Be- und Entladeleistung z. B. 2.500 W.

                Könnte man beim 2. falls bereits auf den geschriebenen DP Beladen_W zurückgreifen, denn dann bräuchte ich nicht nochmals eine >0 <= 2.500 W Abfrage ? Oder ist dies nicht möglich ?

                Danke

                a2ecc359-458d-486f-a907-b9527a41264a-image.png

                dslraser 2 Replies Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @GOETSCHHOFER last edited by

                  @goetschhofer
                  ja, setze den einfach in eine variable

                  G 1 Reply Last reply Reply Quote 1
                  • G
                    GOETSCHHOFER @dslraser last edited by GOETSCHHOFER

                    @dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:

                    @goetschhofer
                    ja, setze den einfach in eine variable

                    Ja, o.k.
                    Dies mit den Variablen habe ich leider noch nicht durchschaut.🤔
                    Erstellen einer Variablen ist mir klar, aber dann ......, wie und wo einfügen ?

                    280b44a4-83e9-4d8c-813c-15e01f34d0e8-image.png

                    Könntest du mir hier ein kurzes Beispiel geben.

                    Danke.

                    1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @GOETSCHHOFER last edited by

                      @goetschhofer
                      ich habe eben erst Dein Blockly mal importiert. Das hier ist Trigger in Trigger, das geht fast immer schief...

                      Bildschirmfoto 2021-09-19 um 13.51.07.png

                      Der Zeitplan ist doch schon Dein Trigger, lasse den anderen einfach weg. (sollte so reichen)

                      Bildschirmfoto 2021-09-19 um 13.52.38.png

                      G 1 Reply Last reply Reply Quote 1
                      • G
                        GOETSCHHOFER @dslraser last edited by

                        @dslraser

                        Ja, das könnte auch der Grund sein, dass er sich ab und zu aufhängt im blockly.
                        Mache ich raus.
                        Habe dies in einem Youtube Video gesehen, aber wohl nicht wirklich verstanden.

                        Danke

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @GOETSCHHOFER last edited by dslraser

                          @goetschhofer
                          versuche es mal so in der Art (ist aber nur ein Beispiel für den obersten Wert)

                          Bildschirmfoto 2021-09-19 um 14.03.37.png

                          EDIT: dafür habe ich die Variable 1_Ermittlung_LADELEISTUNG_in_W erstellt

                          G 1 Reply Last reply Reply Quote 1
                          • G
                            GOETSCHHOFER @dslraser last edited by

                            @dslraser

                            Schön langsam kapiere ich die Logik von Blockly, ist es richtig von rechts nach links lesen ?

                            Ich denke mit einer Variablen wird es einfacher.

                            Was sagt der Profi ?
                            c61973ba-284e-4d7f-851b-4040e361468e-image.png

                            dslraser 1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @GOETSCHHOFER last edited by dslraser

                              @goetschhofer sagte in Batteriespeichersimulation mit AMIS-Daten in Blockly:

                              Was sagt der Profi ?

                              Ich weiß nicht was der sagen würde, aber ich würde mir so helfen.

                              Edit: nur ein Hinweis...in Variablen und id's würde ich keine Sonderzeichen/Leerzeichen usw. nutzen, da das manchmal seltsame Auswirkungen hat. In Namen von Datenpunkten ist es egal.

                              G 2 Replies Last reply Reply Quote 1
                              • G
                                GOETSCHHOFER @dslraser last edited by

                                @dslraser

                                Du bist ein Profi ! 😁

                                Das mit der Ladebegrenzung sieht man sehr gut bei 2.500 W.

                                2. BAT_SIMU_1-19.9.2021-14h30.gif

                                1 Reply Last reply Reply Quote 0
                                • G
                                  GOETSCHHOFER @dslraser last edited by GOETSCHHOFER

                                  @dslraser

                                  Du hast mich auf eine Idee gebracht.

                                  Man könnte doch bei der Ermittlung Ladeenergie in Wh auch auf eine Variable setzen, dann müsste es noch einfacher werden ?

                                  Kann ich bei der Variablen: Ermittlung Ladeenergie in Wh auf den bereits geschriebenen DP Ladeleistung in W zurückgreifen ?

                                  Oder spießt sich dies vom Ablauf und zeitlich?

                                  6be0fb52-1e0b-4c08-a89a-b32b1fd6871f-image.png

                                  dslraser 1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @GOETSCHHOFER last edited by

                                    @goetschhofer

                                    Blockly arbeitet alles der Reihe nach ab, also wenn Dein Trigger (der Zeitplan) auslöst, wird das Blockly von oben nach unten abgearbeitet. Wenn es den Wert dann schon gibt kannst Du das machen. Wenn das zu schnell erfolgt und der Wert dann noch nicht da ist, dann kann es sein das Du noch ein timeout brauchst. Wenn die Variablen ganz oben im Zeitplan sind, dann wird in diese Variablen das eingelesen was gerade im Datenpunkt steht. Du kannst auch mit reinen Variablen (ohne Datenpunkt arbeiten), das hat aber den Nachteil das nach einem Neustart vom Blockly/oder dem Adapter, oder des ganzen ioBroker keine "Zwischenwerte" da sein können.

                                    Edit: nur ein Hinweis...in Variablen und id's würde ich keine Sonderzeichen/Leerzeichen usw. nutzen, da das manchmal seltsame Auswirkungen hat. In Namen von Datenpunkten ist es egal.

                                    G 1 Reply Last reply Reply Quote 1
                                    • G
                                      GOETSCHHOFER @dslraser last edited by

                                      @dslraser said in Batteriespeichersimulation mit AMIS-Daten in Blockly:

                                      @goetschhofer

                                      Blockly arbeitet alles der Reihe nach ab, also wenn Dein Trigger (der Zeitplan) auslöst, wird das Blockly von oben nach unten abgearbeitet. Wenn es den Wert dann schon gibt kannst Du das machen. Wenn das zu schnell erfolgt und der Wert dann noch nicht da ist, dann kann es sein das Du noch ein timeout brauchst. Wenn die Variablen ganz oben im Zeitplan sind, dann wird in diese Variablen das eingelesen was gerade im Datenpunkt steht. Du kannst auch mit reinen Variablen (ohne Datenpunkt arbeiten), das hat aber den Nachteil das nach einem Neustart vom Blockly/oder dem Adapter, oder des ganzen ioBroker keine "Zwischenwerte" da sein können.

                                      Edit: nur ein Hinweis...in Variablen und id's würde ich keine Sonderzeichen/Leerzeichen usw. nutzen, da das manchmal seltsame Auswirkungen hat. In Namen von Datenpunkten ist es egal.

                                      Danke für den Hinweis mit Leer- und Sonderzeichen, werde ich auf jeden Fall ändern.

                                      Was würdest du mir empfehlen, die 2. Variable wieder durch die normale Berechnung ersetzen ?

                                      3ecfa7af-5051-4ec7-b334-2f6262f2acd1-image.png

                                      Warum schreibt er mir die Ladeenergie nur in ganzen Wh in den DP, obwohl beim schreiben auf 3 Nachkommastellen runde
                                      Muss ich die Rundung bereits oben in den Variablen machen ?
                                      Hier hätte ich versucht ein Runden einzufügen, dies funktioniert aber nicht.
                                      498daa7b-f7cb-4546-9625-8f5e8a41e1a5-image.png
                                      87927bd7-1919-4ef2-802e-4b3a960431a6-image.png

                                      Danke

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        GOETSCHHOFER @GOETSCHHOFER last edited by

                                        @goetschhofer

                                        Das Problem mit den Nachkommastellen bei der Ladung in Wh habe ich schon gelöst, da hatte einen Fehler in der Variablen Ermittlung Ladeenergie in Wh, am Schluß noch >0; dies war der Fehler.

                                        G 1 Reply Last reply Reply Quote 1
                                        • G
                                          GOETSCHHOFER @GOETSCHHOFER last edited by GOETSCHHOFER

                                          @dslraser

                                          Die Be- und Entladebegrenzung mit z. B. 2.500 W habe ich nun doch über die Variablen realisiert.
                                          Soweit funktioniert dies auch.

                                          Wie könnte ich den letzten Punkt die Beladegrenze beim Speicherstand z. B. 5.000 Wh und Entladegrenze 0 Wh umsetzen ?
                                          Auch über eine Variable und über eine Falls Funktion ?
                                          Nur wo schiebe ich diese noch hinein ?

                                          Danke für einen Tipp.


                                          c0e84c45-d2e7-4609-a8a0-3153113e8370-image.png


                                          1a7b5d98-9290-4f07-9b6f-7fd93f19570b-image.png

                                          BLOCKLY_BAT_SMU_19.9.2021-18h.txt

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            GOETSCHHOFER @GOETSCHHOFER last edited by GOETSCHHOFER

                                            @dslraser

                                            Wenn bei der Abfrage die Entladeleistung zwischen -2500 und <0 liegten soll, wie würdest du die Bedingung formulieren `?
                                            Er ermittelt mir jetzt zwar die Entladeleistung, aber die Umrechnung in Entladeenergie in Wh ergibt null.
                                            Ich vermute mal, dass es ein >= oder <= bei -2500 liegt.

                                            Habe schon alles durchprobiert.

                                            0d54e56b-8483-44ce-af94-3837fdb4677a-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            563
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            120
                                            7033
                                            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