Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Stromverbrauch berechnen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Stromverbrauch berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mat8 last edited by

      Hallo,
      ich möchte meinen Stromverbrauch berechnen und locke mir die Daten per Zwischenzähler und RS 485 Schnittstelle. Das funktioniert auch soweit, jetzt möchte ich allerdings auch den Verbrauchten Strom (kWh) berechnen und auf meinen Start wert vom EVU Zähler rechne um den Aktuellen wert des Zählers zu wissen.

      Mein Blockly
      Iobroker 2.jpg

      Meine Zahlen
      Iobroker 1.jpg

      Warum wird bei meiner Hilfsvariable der Wert als Wort und nicht als Zahl angezeigt?
      Warum wird die Hilfsvariable nicht berechnet?

      Ich hoffe das mir einer meine Fragen beantworten kann und bedanke mich schonmal

      M K Asgothian A 4 Replies Last reply Reply Quote 0
      • M
        Manfred.B 0 @Mat8 last edited by

        @mat8 bin zwar auch ein Anfänger, ich habe bei mir aber auch ein einfaches blockly gemacht um die Produktion meines Balkonkraftwerks am Tag, seit Jahresbeginn und seit Start zu rechnen und anzuzeigen - funktioniert.
        Daher zwei Fragen: a) was gibt denn die Trigger-Variable "Gateway/Zaehler1/Wirkenergie_Bezug aus? sicher eine Zahl?
        und b) die Hilfsvariable ist sicher als Zahl definiert?

        1 Reply Last reply Reply Quote 0
        • K
          Kusi @Mat8 last edited by

          @mat8 Ich gehe davon aus, dass du eine falsche "Art" des Wertes im Datenpunkt festgelegt hast. Bei deinem Datenpunkt müsste dort "Zahl" definiert werden. Wenn z.B. "Logik" hinterlegt wäre, dann lässt der Datenpunkt nur true und false zu.
          Screenshot_20210316-083140.jpg

          1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @Mat8 last edited by

            @mat8 sagte in Stromverbrauch berechnen:

            Hallo,
            ich möchte meinen Stromverbrauch berechnen und locke mir die Daten per Zwischenzähler und RS 485 Schnittstelle. Das funktioniert auch soweit, jetzt möchte ich allerdings auch den Verbrauchten Strom (kWh) berechnen und auf meinen Start wert vom EVU Zähler rechne um den Aktuellen wert des Zählers zu wissen.

            Mein Blockly
            Iobroker 2.jpg

            Meine Zahlen
            Iobroker 1.jpg

            Warum wird bei meiner Hilfsvariable der Wert als Wort und nicht als Zahl angezeigt?
            Warum wird die Hilfsvariable nicht berechnet?

            Ich hoffe das mir einer meine Fragen beantworten kann und bedanke mich schonmal

            Neben dem Problem das die Hilfsvariable nicht sauber gespeichert wird wirst Du noch ein Problem bekommen:
            Durch die Art und Weise wie das System mit Aktualisierungen der Datenpunkte umgeht ist nicht sichergestellt das der Baustein
            Screenshot 2021-03-16 at 08.48.54.png
            den direkt vorher geschriebenen Wert beinhaltet.

            Ich empfehle:

            • Erstelle eine Variable im Skript
            • Weise dieser Variablen den Wert Screenshot 2021-03-16 at 08.50.22.png zu
            • Aktualisiere dann den Datenpunkt "Hilfsvariable" mit dem Wert der Variablen
            • Nutze beim Aktualisieren des Aktuellen Zählerstand in der Berechnung die Variable an Stelle des oben angegebenen "wert von..." Baustein.

            A.

            K paul53 2 Replies Last reply Reply Quote 0
            • A
              Ahnungsbefreit @Mat8 last edited by

              @mat8 Deine Hilfsvariable ist auch keine Variable, sondern ein Datenpunkt (und der ist vermutlich vom falschen Typ). Ersetz das mal gegen eine Variable, die Du im Blockly definierst und kontrollier mal die Datentypen von "Gateway/Zaehler1..." und "Unterzähler". Die sollten auch "number" sein.

              1 Reply Last reply Reply Quote 0
              • K
                Kusi @Asgothian last edited by

                @asgothian sagte in Stromverbrauch berechnen:

                Nutze beim Aktualisieren des Aktuellen Zählerstand in der Berechnung die Variable an Stelle des oben angegebenen "wert von..." Baustein.

                Hat dies irgendweche Vorteile oder Änderungen zur Folge? Evtl. Genauigkeit? Bei mir läuft die Berechnung des Stromverbrauchs über den Datenpunkt, damit der Wert bei einem ioBroker-Neustart nicht weg ist.

                Asgothian 1 Reply Last reply Reply Quote 0
                • Asgothian
                  Asgothian Developer @Kusi last edited by Asgothian

                  @kusi Wenn du das so umsetzt wie ich es geschrieben habe - nein. Du aktualisierst ja weiterhin den Datenpunkt "Hilfsvariable" mit dem geänderten Wert.
                  Die im Skript definierte variable dient nur dazu das du keine verschachtelten Lese/Schreiboperationen machen musst.

                  A.

                  Es sollte in Etwa so aussehen. Bei den Datenpunkten brauchst du etwas Fantasie - da hab ich natürlich nicht die die du nutzt.

                  Screenshot 2021-03-16 at 09.49.41.png

                  K 1 Reply Last reply Reply Quote 2
                  • paul53
                    paul53 @Asgothian last edited by

                    @asgothian sagte:
                    ist nicht sichergestellt das der Baustein den direkt vorher geschriebenen Wert beinhaltet.

                    Es ist sogar (nahezu) ausgeschlossen, dass der gerade geschriebene Wert wieder eingelesen wird.

                    1 Reply Last reply Reply Quote 0
                    • K
                      Kusi @Asgothian last edited by

                      @asgothian @paul53
                      Also verstehe ich richtig, wenn ich einen Wert in einen Datenpunkt schreibe und diesen innert kürzester Zeit wieder auslese, dass es passieren könnte, dass noch nicht der "neue" Wert vom DP gelesen wird?

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

                        @kusi sagte in Stromverbrauch berechnen:

                        dass es passieren könnte,

                        Der Schreibvorgang dauert seine Zeit, in der Zeit fragt das Skript aber längst diesen Wert schon wieder ab

                        K 1 Reply Last reply Reply Quote 1
                        • K
                          Kusi @Homoran last edited by

                          @homoran sagte in Stromverbrauch berechnen:

                          Der Schreibvorgang dauert seine Zeit

                          Das ist gut zu wissen... Dies war mir so nie bewusst. Ich habe Variablen möglichst vermieden, werde diesen aber in Zukunft mehr Aufmerksamkeit schenken.

                          Asgothian 1 Reply Last reply Reply Quote 0
                          • Asgothian
                            Asgothian Developer @Kusi last edited by

                            @kusi sagte in Stromverbrauch berechnen:

                            Das ist gut zu wissen... Dies war mir so nie bewusst. Ich habe Variablen möglichst vermieden, werde diesen aber in Zukunft mehr Aufmerksamkeit schenken.

                            Es macht Sinn sich dazu Gedanken zu machen.

                            Alle Werte die nur 'lokal' und 'zeitlich begrenzt' von Interesse sind sollten generell als Variablen abgebildet werden, nicht als Datenpunkte.

                            Auch Werte die innerhalb eines Skripts mehrfach gelesen oder geschrieben werden sollten sinnvollerweise im Skript in einer Variablen gehalten und nur selektiv gelesen und geschrieben werden.

                            Datenpunkte sind nur dann Sinnvoll wenn

                            • die Werte extern (also ausserhalb des Skriptes) benötigt werden
                            • sichergestellt werden muss das bei einem Neustart des Skriptes die Werte nicht verloren gehen.

                            In dem Beispiel von Dir ist mir z.Bsp. nicht klar warum "hilfsvariable" ein Datenpunkt ist. Du brechest den Wert im Skript und Nutzt ihn im Skript direkt. Wenn dieser Wert ausserhalb dieses Skriptes nicht benötigt wird sollte eine Variable ausreichen.

                            A.

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              Kusi @Asgothian last edited by

                              @asgothian Danke vielmals für deine Erklärung. Dies mit der Hilfsvariable ist nicht von mir, dies war @Mat8.
                              Verbraucht es nicht mehr RAM, wenn mehr Variablen (anstelle Datenpunkte) genutzt werden? Ich habe z.B. das Problem, das mein Raspberry nach rund 3-4 Wochen unter 1 Gb freiem RAM sinkt, obschon ich die 4 Gb Version habe.

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

                                @kusi sagte: Verbraucht es nicht mehr RAM, wenn mehr Variablen (anstelle Datenpunkte) genutzt werden?

                                Nein, es braucht weniger RAM, da Variablen-Operationen viel einfacher sind als Datenpunkt-Operationen.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                775
                                Online

                                32.0k
                                Users

                                80.5k
                                Topics

                                1.3m
                                Posts

                                7
                                14
                                3703
                                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