NEWS
[gelöst] errechnen des Änderungswertes
-
@dditt Vorschlag:
Nur durchfluss ist eine Variable. -
wow, danke für deine hilfestellung! da brauch ich aber erstmal das nachvollziehen zu können!
bin in der sache nicht so fit
aber bei deiner antwort, kann ich es wenigstens versuchen es nachzuvollziehen. Danke dir!
-
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.
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 -
@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.
-
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.
-
@dditt sagte:
die weiterverarbeitende Logik versteht es nicht.
Was ist das für eine Logik ?
-
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:
und so aktuell das Ergebnis, was ich mit IObroker auf den Bus schicke
-
Guten Morgen,
leider komme ich immer nur im Winter zu solchen "Projekten", daher ein neuer Versuch.
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 DatenpunktMETER_TOTAL_M3
-
@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 -
@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)
siehe rechts im Screenshot...
-
@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 -
@frank-knx ich visualisiere leider nichts mit ioBroker.. habe die Hager Domovea...
-
@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: NEINBeste Grüße
FRANK
-
@frank-knx so siehts bei mir aus:
Eingang des Binäreingangs als Betriebsart Impulszähler
und die Parameter dazu
-
@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