Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Mit Blockly zwei Werte addieren und neu in DB schreiben

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Mit Blockly zwei Werte addieren und neu in DB schreiben

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

      @dslraser sagte in Mit Blockly zwei Werte addieren und neu in DB schreiben:

      @guergen sagte in Mit Blockly zwei Werte addieren und neu in DB schreiben:

      Und wenn Du schon gleich beim Blocklystart (und nicht erst nach der ersten Änderung) den passenden Wert in Deinem DP haben willst, dann muss das was Du im Trigger hast auch einmal ausserhalb vom Trigger sein. Das was ausserhalb vom Trigger ist, wird dann nur einmalig beim Blockly Start ausgeführt.

      Verstehe grade nicht, was Du mir/uns sagen willst...

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

        @guergen sagte in Mit Blockly zwei Werte addieren und neu in DB schreiben:

        Verstehe grade nicht, was Du mir/uns sagen willst...

        Ich zitiere mich mal selbst.

        und zeige bitte nochmal Dein aktuelles Blockly.

        (Ich kann gerade nur was am Handy machen, bin unterwegs)

        1 Reply Last reply Reply Quote 0
        • R
          RudolfN @dslraser last edited by

          @dslraser
          Bitteschön:
          Java PVAakt.png Blockly PVAakt.png

          G dslraser 2 Replies Last reply Reply Quote 0
          • G
            guergen @RudolfN last edited by guergen

            @rudolfn Wenn pv power Zahlen sind, lass doch mal "nach Zahl" weg. und unten in der debug-Ausgane musst du "wert von objektID" und da dann den DP Summe nehmen.
            Oder viel einfacher: df9af313-1c71-47bb-8099-e119a5d121d0-grafik.png

            Das gedudel mit der Variablen "Summe PVA 1+2" weglassen:
            Also so: 0b89a278-50a7-4754-b5aa-0ba9060e9943-grafik.png
            Bei mir läuft das mit diesem Script!

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

              @guergen said in Mit Blockly zwei Werte addieren und neu in DB schreiben:

              @goetschhofer sagte in Mit Blockly zwei Werte addieren und neu in DB schreiben:

              Anlage zusätzliche Objekte für:

              1. Wenn der Wert aus Summe 170+270 positiv ist, dann schreibe (aktualisiere) SUMME 170 270 plus
              2. Wenn der Wert aus Summe 170+270 negativ ist, dann schreibe (aktualisiere) SUMME 170 270 negativ

              Diese neuen Werte möchte ich anschließend in sourceanalytix verwenden um Tages-Bezug und Tages-Einspeisung darzustellen.

              Danke im Voraus.

              In Sourceanalytix nutzt man aber nicht aktuelle Messwerte (Watt) , sondern die kWh-Werte, die hast Du da aber nicht!
              Auszug aus der Anleitung sourceanalytix: c2888d05-f84a-41fc-a6ec-3ff7e7f21f40-grafik.png

              Ja, da hast du natürlich Recht. Ich war der Meinung hier kann ich einen virtuellen Zähler (Leistung in W) mitlaufen lassen und mir aus diesen die Tages-Werte ermitteln.

              Ich könnte mir vorstellen, dass dies vielleicht über den adapter: virtual powermeter funktioniert ?

              https://github.com/Omega236/ioBroker.virtualpowermeter

              cfae0ced-ed12-408c-b443-fdae49b4b5d1-image.png

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

                @goetschhofer Nutze und kenne den Adapter gar nicht.
                Du hast doch den Zähler ausgelesen, wie ich das so sehe. Nimm doch SA und die 1.80 & 2.80 und lass das SA machen....:
                e64ebe45-29bf-4b81-b85b-8ddf2b62e0d0-grafik.png

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

                  @rudolfn

                  und diese ID könnte Probleme machen. Ändere mal das + in einen Unterstrich (oder was anderes, kein Sonderzeichen, im Namen ist es egal.) Am Besten nirgends Leerzeichen oder Sonderzeichen, auch nicht in Variablen, ausser in Datenpunktnamen)
                  Bildschirmfoto 2021-08-30 um 10.03.14.png

                  So ungefähr...

                  Bildschirmfoto 2021-08-30 um 10.11.21.png

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

                    @guergen said in Mit Blockly zwei Werte addieren und neu in DB schreiben:

                    @goetschhofer Nutze und kenne den Adapter gar nicht.
                    Du hast doch den Zähler ausgelesen, wie ich das so sehe. Nimm doch SA und die 1.80 & 2.80 und lass das SA machen....:
                    e64ebe45-29bf-4b81-b85b-8ddf2b62e0d0-grafik.png

                    Ja das Thema ist etwas komplexer, denn würde ich dies über SA machen, würde er laufend den Momentan-Saldo aus +Bezug-1.7.0 u. -Einspeisung-2.7.0, positiv und negativ mit den nächsten Werten saldieren und wir hätten energietechnisch das "NET METERING" was ja in A u. D nicht gemacht wird. In Italien und Spanien wird es so gemacht.
                    Net Metering wäre verrechnungstechnisch natürlich eine tolle Sache, da hätte ich null Bezugskosten.

                    D. h. wenn der Momentan-Saldo aus Bezug und Einspeisung positiv ist, dann muss er dies in das Töpfchen Tages-Bezug einwerfen und bei negativ in das Töpfchen Tages-Einspeisung und nicht alles in einen Topf, da sonst netmetering.
                    Am Ende des Tages wird der Wert im Topf Bezug und im Topf Einspeisung getrennt ermittelt und nicht saldiert.

                    Anbei ein Screenshot aus der App des Amis-Zählers. Die unten dargestellten Werte kann man leider nicht auslesen und auch nicht parsen, da die Werte unten dynamische Werte sind. Habe ich im Forum mit Experten in parsen schon geklärt, ansonsten würde ich ja gerne auf diese Werte zugreifen.

                    Daher meine Bitte an dich wegen Ergänzung blockly.

                    Danke im Voraus.

                    3db5d40e-0f2b-4972-9c67-df7e4969ff93-image.png

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

                      @goetschhofer OK, verstanden, das lässt sich nicht so einfach machen, parsen kann ich auch noch nicht....

                      Kannst Du denn nicht einen IR-Lesekopf an deinem Zähler anbringen? Ich habe mir einen TTL-Lesekopf und einen Wemos gekauft (zusammen keine 25€) und lese die Daten mittels smartmeter aus.
                      Das Problem ist, dass zu den Watt-Werten ja ein Zeitfaktor muss, um auf einen kWh oder Wh-Wert zu kommen.
                      Alternativ kannst du das mit dem Virtualpowermeter machen, vielleicht nicht zu 100% genau, aber immerhin

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

                        @dslraser
                        Hallo nochmal, jetzt krieg ich bald die Krise ;-), habe es nach Deinem Vorschlag geändert und krieg kein laufendes Skript mit diesen Fehlermeldungen?
                        SummePVAinstanzneu.png Java PVAaktneu.png Blockly PVAaktneu.png

                        G dslraser 2 Replies Last reply Reply Quote 0
                        • G
                          guergen @RudolfN last edited by

                          @rudolfn Versuch doch mal meins... das läuft 🙂
                          Sieht in meinen Augen auch einfacher aus....

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

                            @rudolfn
                            Nimm im Javascript Adapter den Haken unten rechts raus.
                            Nicht alle Zustände beim Start abonnieren (Haken raus)

                            Screenshot_20210830-105250_Chrome.jpg

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

                              @guergen

                              Sorry für das Missverständnis, ich habe ja bereits einen IR-Lesekopf angebracht, welcher mir alle 2 Sekunden die Bezugs- und Einspeiswerte, 1.7.0 u. 2.7.0 und die Zählerstände für Bezug und Einspeisung über MQTT in den iobroker fehlerlos liefert.

                              Die Tageswerte habe ich noch nicht, eben wegen Problem netmetering.

                              Daher meine große Bitte an dich das bestehende blockly soweit ergänzen, dass er mir noch 2 Datenpunkte liefert, eben mit

                              Anlage zusätzliche Objekte für:

                              Wenn der Wert aus Summe 170+270 positiv ist, dann schreibe (aktualisiere) SUMME 170 270 plus
                              Wenn der Wert aus Summe 170+270 negativ ist, dann schreibe (aktualisiere) SUMME 170 270 negativ
                              Diese neuen Werte möchte ich anschließend in sourceanalytix verwenden um Tages-Bezug und Tages-Einspeisung darzustellen.

                              Ich denke doch, dass es in SA funktionieren müsste, da er den Wert je nach Situation getrennt in plus oder minus in "consumed" verarbeitet und hier die Tageswerte ermittelt.

                              Bei meinem Shelly1PM (Schwimmbadpumpe) läuft es genau so, Shelly1PM liefert den Leistungswert in W und SA ermittelt mir den Tageswert und weitere.

                              7332e026-546d-4c05-838f-16d723c44d15-image.png

                              Heute noch kein Tageswert, da kein PV-Überschuss vorhanden.
                              f4d46a01-9165-425e-b753-c9d82fb709c3-image.png

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

                                @goetschhofer sagte in Mit Blockly zwei Werte addieren und neu in DB schreiben:

                                Anlage zusätzliche Objekte für:

                                Wenn der Wert aus Summe 170+270 positiv ist, dann schreibe (aktualisiere) SUMME 170 270 plus
                                Wenn der Wert aus Summe 170+270 negativ ist, dann schreibe (aktualisiere) SUMME 170 270 negativ

                                Dann lege diese zwei Datenpunkte zusätzlich an, dann kannst Du Dein bestehendes Blockly erweitern, so wie Du es selbst beschrieben hast

                                Wenn der Wert aus Summe 170+270 positiv ist, dann schreibe (aktualisiere) SUMME 170 270 plus
                                Wenn der Wert aus Summe 170+270 negativ ist, dann schreibe (aktualisiere) SUMME 170 270 negativ

                                Oder wobei brauchst Du Hilfe ?

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

                                  @dslraser

                                  Die Anlage der Datenpunkte ist für mich kein Problem,

                                  Ich würde mein Blockly gerne bezüglich folgendes erweitern und würde dich bitten, dass du mir hier vielleicht weiterhilfst.
                                  Das Problem ist, wenn ich in das bestehende blockly eingreife und teste, dann habe ich falsche Werte in den aktuellen Objekten.

                                  Aktuelles Blockly:
                                  170=Momentan-Bezug auf irgend einer Phase: L1,L2,L3
                                  270=Momentan-Einspeisung auf irgend einer Phase: L1,L2,L3
                                  Summe 170 270 = SALDO Momentan-Bezug u. Einspeisung 3-Phasen-Saldierung, dies läuft bereits.

                                  a09ce7da-26ae-4bb1-b169-484bf4e564dd-image.png

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                    <variables>
                                      <variable id="5k}(y]MVDRUNbOxECkJt">summe</variable>
                                    </variables>
                                    <block type="schedule" id="**{}]7ei59`(N*|ou37v" x="-137" y="-1512">
                                      <field name="SCHEDULE">*/2 * * * * *</field>
                                      <statement name="STATEMENT">
                                        <block type="variables_set" id="04CEwCi/(d1*/(^%z-|X">
                                          <field name="VAR" id="5k}(y]MVDRUNbOxECkJt">summe</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="O)XOn2w+2MEYKh+_i^T6" inline="false">
                                              <field name="OP">ADD</field>
                                              <value name="A">
                                                <shadow type="math_number" id="Vv3iW}5G,a%,hF?iO4dq">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="get_value" id="1MV.[J[?Vxe;s2g@VT9`">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">0_userdata.0.AMIS.170</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="aNx(u#^_(su!4Pyla9C!">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="get_value" id="0W[V_Lxj$oW6%y|FyPon">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">0_userdata.0.AMIS.270</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="update" id=",]R8%D@+}|rm/}OUVPer">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">0_userdata.0.AMIS.SUMME_170_270</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="variables_get" id="QWFsuL1-Xs)gB#NnSAC?">
                                                  <field name="VAR" id="5k}(y]MVDRUNbOxECkJt">summe</field>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                    </block>
                                  </xml>
                                  

                                  Ermittlung zusätzlicher Werte (Datenpunkte) für Saldo getrennt nach Ergebnis positiv und negativ:
                                  Ich weiß nicht, ob dies möglich ist, gleich im selben blockly diese Datenpunkte zu erzeugen ?

                                  Wenn der Wert aus Summe 170+270 positiv ist, dann schreibe (aktualisiere) SUMME 170 270 plus
                                  Wenn der Wert aus Summe 170+270 negativ ist, dann schreibe (aktualisiere) SUMME 170 270 negativ

                                  Diese neuen Werte getrennt nach positiv und negativ möchte ich anschließend in sourceanalytix verwenden um Tages-Bezug und Tages-Einspeisung darzustellen.

                                  Danke im Voraus.

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

                                    @goetschhofer
                                    meinst Du das so ?
                                    Bildschirmfoto 2021-08-30 um 11.40.02.png

                                    Zum Testen kannst Du ja zusätzlich unter javascript.0 die Datenpunkte anlegen und auch ein neues Testblockly anlegen was dann da zugreift und dort "rum probieren" Das bestehende Blockly kannst ja erstmal unangetastet lassen.

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

                                      @dslraser

                                      Perfekt, vielen Dank !!! 👍

                                      Eine Verständnisfrage habe ich noch.
                                      Können die beiden blocklys parallel laufen, da ich ja beim 1. blockly das Objekt userdata.0 AMIS Summe_170_270 ja auch schon aktualisiere ?
                                      Kommen die sich hier nicht in die Quere ?

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

                                        @goetschhofer
                                        Wenn Du nur "testen" willst, dann lege diesen DP doch auch unter javascript.0 nochmal an.

                                        G 1 Reply Last reply Reply Quote 1
                                        • R
                                          RudolfN @guergen last edited by

                                          @guergen
                                          Hallo habe es versucht, das Skript läuft, aber es schreibt mir keine Summe in die Variable (habe schon versucht, nach wert zu konvertieren und die Variable mit Value und state, es schreibt die Summe nicht rein:-o)
                                          Lg

                                          dslraser G 3 Replies Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @RudolfN last edited by

                                            @rudolfn
                                            Browser mal aktualisiert ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            625
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            14
                                            157
                                            22871
                                            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