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] errechnen des Änderungswertes

    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

    [gelöst] errechnen des Änderungswertes

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

      Hallo @paul53,

      kannst du mir kurz erläutern was da gerechnet wird? Ich habe es mir von dir exportiert und bei mir importiert. Die Zeile mit den Zeitstempel heißt bei mir aber anders.

      697d2a83-d06a-4316-aa99-0ee6b6f39914-image.png

      Die 3600000000 hat irgend etwas mit der Zeit zu tun. Aber für was benötige ich die? Reicht es nicht eigentlich aus

      "WERT aktuell (z.B. 15,362)" - "WERT vorher (z.B. 15,308)" zu rechnen?

      Dieser "WERT aktuell" wird stündlich gesendet. Wenn der Wert unverändert ist - wird nichts gesendet. Kann ich das ändern damit er dann eine Null sendet? -> genügt es hierzu "Falls Objekt wurde aktualisiert" einzustellen?

      Also ich möchte stündlich meinen Verbrauch mitloggen, auch wenn dieser 0 ist, um mein Diagramm zu füttern.

      Unabhängig davon, was gerechnet wird, funktioniert es natürlich!!!

      Ich möchte es nur verstehen, damit ich beim nächsten Mal bei so einer Problematik mir vllt selbst helfen könnte.

      Danke!

      grüße
      dditt

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

        @dditt sagte:

        "Falls Objekt wurde aktualisiert" einzustellen?

        Ja, dann müssen als Zeitbasis "Zeitstempel" und "vorheriger Zeitstempel" verwendet werden (s. meinen ersten Post, den ich entsprechend geändert habe).

        @dditt sagte in errechnen des Änderungswertes:

        Reicht es nicht eigentlich aus "WERT aktuell (z.B. 15,362)" - "WERT vorher (z.B. 15,308)" zu rechnen?

        Nur dann, wenn gewährleistet ist, dass der zeitliche Abstand immer 1 Stunde beträgt. Die Verwendung von "Zeitstempel - vorheriger Zeitstempel" ist unabhängig davon.

        @dditt sagte in errechnen des Änderungswertes:

        Die 3600000000 hat irgend etwas mit der Zeit zu tun.

        Die Zeitstempel enthalten ms: 1 h = 3600000 ms. Der Faktor 3600000000 rechnet gleichzeitig noch in l/h um, da der Ausgangswert m³ ist.

        1 Reply Last reply Reply Quote 0
        • D
          dittmar last edited by dittmar

          Hallo @paul53 ,

          ich komme nicht weiter. Dein Script funktioniert zwar - es wird mir stündlich der korrekte Wert gesendet. Aber die weiterverarbeitende Logik versteht es nicht. Die versteht nur "Zählimpulse".

          So jetzt war meine Idee, mit dem Baustein "wiederhole" den Wert des Durchflusses mir x-Mal zu senden.

          Meinst du das klappt?

          Ich tu mich schwer das zu testen, da nur 1x in der Stunde der Wert geändert wird... und ich dann nur sehen kann was hinten raus kommt aus dem script.

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

            @dditt sagte:

            die weiterverarbeitende Logik versteht es nicht.

            Was ist das für eine Logik ?

            1 Reply Last reply Reply Quote 0
            • D
              dittmar last edited by dittmar

              Hallo @paul53 ,

              Ich sende den Wert auf den KNX Bus. Anzeigen möchte ich mir ein Diagramm in der Hager Domovea (alte Version). Die lässt aber für dir vordefinierte Funktion Wasserzähler, wo dann auch ein Diagramm dazu generiert wird, nur den festgesetzten Datenpunkt DPT12.0x (Zählwert Vorzeichenlos) oder evtl. DTP13.0x (Vorzeichenbehaftet) zu.

              Das mit der 1 Senden funktioniert glaub ich auch nicht... Weil irgendwie da ein umrechnen von Dezimal auf hexadezimal noch fehlt.

              Das habe ich anhand meines Gaszählers gesehen. Da ist ein konventioneller Impulsgeber drauf und die Datenpunkte zu DPT12.0x sehen zb so aus

              3f 80 00 00 | 123456789

              EDIT:

              hier, so sieht die history des Gaszählers aus:

              75e784b1-0fe1-49cf-ad79-0b8fd73f2c12-image.png

              und so aktuell das Ergebnis, was ich mit IObroker auf den Bus schicke

              2ddccf19-0239-4c3e-a987-200cb005a1aa-image.png

              F 1 Reply Last reply Reply Quote 0
              • D
                dittmar last edited by dittmar

                Guten Morgen,

                leider komme ich immer nur im Winter zu solchen "Projekten", daher ein neuer Versuch.

                @paul53

                ist es denkbar den errechneten Änderungswert (Bsp.: Anfangswert 153, neuer Wert 157 = Änderungswert 4) als Impulse auszugeben? Also das ich ein Script habe, wo den Änderungswert Pro Stunde berechne und dann im nächsten Schritt den Änderungswert als Impuls auf den Bus schicke (quasi zum Bsp. dann 4 Impulse) ?

                Oder gibt es zumindest ein Script das einen Impuls realisiert?

                ####################

                Ergänzung:

                mir ist noch eine andere Möglichkeit eingefallen.

                Ist es möglich den Änderungswert in deinem Script auf zu summieren und diesen Wert dann weiterzugeben? als Dezimal und Hexadezimal?

                Denn wenn ich mir den oberen Screenshot von meinem Gaszähler ansehe, liefert der Hexadezimal und Dezimal die Summe der Impulse die bisher seit Inbetriebnahme gezählt worden. (00 04 BA 0D = 309773 (Pulse))

                Dementsprechend würde meine Logik (die Domovea) dahinter anhand der Häufigkeit den Wert selbst errechnen...

                ####################

                Ergänzung2:

                mein Gedanke bei Ergänzung 1 ist aber dann nichts anderes wie den Wert aus IObroker direkt weiter zu senden?!
                Denn es gibt ja den Datenpunkt

                METER_TOTAL_M3

                1 Reply Last reply Reply Quote 0
                • F
                  Frank-KNX @dittmar last edited by

                  @dditt
                  Hallo,
                  ich bin bei der Suche bezüglich Visualisierung von Zählerimpulsen auf deinen Post gestoßen und hoffe, dass du oder ein anderer User helfen kann.

                  Ich habe einen Gaszähler, den ich mit einem Impulskontakt nachgerüstet habe.
                  Dieser hängt an einem KNX-Binäreingang (Siemens UP220).
                  Diesen habe ich so programmiert, dass er bei jeder steigenden Flanke (also neuer Impuls des Gaszählers) ein Telegramm über den Bus sendet.

                  Nun bin ich fleißig an einer Visualisierung mit Stromzähler und tollem Produkt von Lingg & Jancke und Datenschnittstelle hat alles hervorragend funktioniert. Modul liest Zählerstände und aktuelle Leistung aus uns senden in einstellbaren Intervallen über den KNX-Bus und die VIS kann mit den Daten direkt arbeiten.

                  Beim Gaszähler arbeite ich aber vergleichbar in der Steinzeit mit Impulsen.
                  Es ist mir auch nicht gelungen, bei der KNX-Gruppenadresse (die ich bei jeder steigenden Flanke sende) den Datentyp (zum Beispiel "Impuls") zu finden.

                  Gibt es ein fertiges Widget für eine Impulsanwendung ?
                  Aus meiner Sicht muss ist einen Startwert (aktuellen Zählerstand) eintragen und die Impulswertigkeit (also welche Zahl soll bei Erkennung eines Impulses zum Zählerstand summiert werden) eintragen.
                  Ich habe in deinem Text den Datentyp 13.001 gefunden. Leider ist es mir nicht gelungen, diesen mit der ETS auszuwählen und vielleicht benötige ich diese Datentyp-Kennung, damit die Visualisierung am Ende etwas damit anfangen kann.

                  Habt ihr Ideen zur Visualisierung oder zum KNX-Problem des Datentyps ?
                  Vielen Dank und bleibt gesund !
                  FRANK

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    dittmar @Frank-KNX last edited by

                    @frank-knx wenn du den DTP 13.001 nicht auswählen kannst, hast du scheinbar kein 4 byte objekt vorliegen.

                    Der Binäreingang macht ja nichts anderes als Zählen und schickt dann bei jeder Änderung/oder Zyklisch den aktuellen Zählerstand (des Binäreinganges! als Summe der Impulse)

                    bdf4aab4-3e75-412e-b17d-0e80b5e1e85a-image.png

                    siehe rechts im Screenshot...

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      Frank-KNX @dittmar last edited by

                      @dditt .. vielen Dank. Nun bin ich einen Schritt weiter. Ich habe den Binäreingang bezüglich Funktion von von "Schalten Flanke" auf "32-Bit Wert Flanke" umgestellt.
                      Danach konnte ich in der Gruppenadresse auch den Datentyp 13.001 auswählen.
                      Ich habe nach Umstellung mit Diagnose den Bus mit der ETS überwacht und bei jedem Impuls sendet er das Telegramm mit "00 00 00 01". (Ich habe auch bei steigender Flanke die "1" ausgewählt). Ich konnte keine Funktion finden, bei der ich einstelle, dass ein hochzählender Counterstand vom Binäreingang versendet wird.
                      Im Unterschied zu deinem Auszug sendet er also jedes Mal nur das Telegramm mit der "00 00 00 01".

                      wenn ich nun in der VIS eine Logik finde, die mit jedem Erhalt den "Zählerstand" um die "1" erhöht, könnte ich zumindest einen hochlaufenden Wert erhalten.
                      Klar sind das erst mal nur 0,01m3 aber das lässt sich dann ja in kWh oder andere Größen mathematisch umrechnen.
                      Wie bist du auf Seiten der VIS vorgegangen ? fertiges Widget oder etwas selbst gebaut, um eine Anzeige zu realisieren ?
                      Besten Dank und viele Grüße FRANK

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        dittmar @Frank-KNX last edited by

                        @frank-knx ich visualisiere leider nichts mit ioBroker.. habe die Hager Domovea...

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          Frank-KNX @dittmar last edited by

                          @dditt OK. Trotzdem danke.

                          Was hast du in deinem Binäreingang eingestellt ?

                          Funktion des Eingangs: 32-bit Wert Flanke
                          Wert bei steigender Flanke senden: JA
                          Wert nach steigender Flanke: 1 (zahl zwischen 0..4294967295 einstellbar)
                          Wert nach fallender Flanke senden: NEIN
                          Sperrobjekt hinzufügen: NEIN

                          Beste Grüße

                          FRANK

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dittmar @Frank-KNX last edited by

                            @frank-knx so siehts bei mir aus:

                            Eingang des Binäreingangs als Betriebsart Impulszähler

                            1Unbenannt.PNG

                            und die Parameter dazu

                            Unbenannt.PNG

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              RES_DE @dittmar last edited by

                              @Frank-KNX @Hallo, bist Du "fit" in den Geräte Optionen Deines Siemens UP220?
                              Sonst mal das handbuch von Siemens schnappen und die Parameter durcharbeiten. User Dittmar hatte hier ja eine Übersicht der Parameter seines KNX Devices gepostet und daraus ist zu erkennen, dass es die Impulse funktional eigenständig hochzählen kann. In der Regel ist das Stichwort bei den KNX Devices als Funktionsart Impulsgeber auswählen, nicht nur "einfache" Verarbeitung des Eingangsignals an den ETS Bus.
                              Parallel dazu auch das KNX Userforum bemühen, denn dort sitzen die wahren Experten für solche KNX Gerätesetups herstellerübergreifend.
                              Wenn dann Dein Siemens teil die Impulse hochgezählt an den Bus übermittelt hast Du die Basis für Deine VIS Lösung.
                              Sofern Du die Parametrisierung des Siemens Devices nicht umstellst, dann solltest Du Dich in JS Adapter konkret meine Empfehlung in Blockly einarbeiten, denn dann kannst Du mit wenig Aufwand eine Hochzähllogik aufbauen. Tipp: Schau mal im Bereich Blockly nach ähnlichen Probleme und Du wirst viele Lösungen schon mit howto Anleitungen finden.
                              Grüße
                              Reiner

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              928
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              4
                              16
                              1141
                              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