[Blockly] Gaszähler -> Stand und Verbrauch (auch monatlich)

There are 21 replies in this Thread which has previously been viewed 9,053 times. The latest Post (December 3, 2023 at 12:06 PM) was by LJDirk.

    • Official Post

    Hier möchte ich die Umsetzung eines Gaszählers vorstellen. Die Installation und die Funktionsweise ist meinem Aufbau geschuldet, hier kann individuell auf eigene Wünsche angepasst werden.

    Ziel ist die Darstellung des Gaszählerstandes und des Gasverbrauches.

    Gesamt-Skript (Blockly) in #3 zum Download bereitgestellt!

    Benötigte Geräte:

    • Reedkontakt als Schließer -> einfacher Reedkontakt erhältlich z.B. bei Conrad
    • Shelly UNI

    Installation:

    • Reedkontaktmontage direkt an der Impulsnehmeraufnahme des Gaszähler (Montageanleitungen siehe WorldWideWeb!)
    • -> Eingang Schließer Reedkontakt - 12/24VDC
    • Shelly UNI siehe Anschlussschemen
    • -> Pin 1+2 - 12/24VDC;
    • -> Pin 8 - Ausgang Schließer Reedkontakt

    Funktionsweise:

    • durch einen internen Magneten wird bei jedem Nulldurchgang der dritten Nachkommastelle des Gaszählers der Reedkontakt geschlossen
    • der Shelly UNI registriert diesen Impuls mit dem Anziehen des Relais an Channel 2
    • im Shelly UNI wird im Channel 2 ein Timer gesetzt -> AUTO OFF von 3 sec.
    • diese entstehenden Impulse werden im ioBroker addiert und als Zählerstand in m³ ausgegeben
    • anhand der Zustandszahl, des Brennwertes und des Zählerstandes wird der Zählerstand (in m³) in den Verbrauch (in kWh) umgerechnet
    • Zustandszahl und Brennwert sind der Gasrechnung des Gasversorgers zu entnehmen!

    Umsetzung:

    Blockly.png

    • "System"bausteine:
    • Objekt ID: Variable anlegen: -> Gaszähler.Stand
    • im "Text"baustein mit "" festlegen
    • Objekt ID: Variable anlegen: -> Gaszähler.Verbrauch
    • im "Text"baustein mit "kWh" festlegen
    • Variablen sichtbar unter "javascript.0/Gaszähler/..."


    • "Trigger"bausteine:
    • Objekt ID: Shelly UNI/Relay1/Switch
    • "ist wahr", weil Reedkontakt ein Schließer ist!
    • "System"baustein: aktualisiere "Gaszähler.Stand"
    • "Mathematik"baustein:
    • + 0.01 -> abzulesen auf dem Gaszähler -> 1 imp. = 0.01 m³ -> 1 Umdrehung entspricht 0.01 m³
    • "Trigger"bausteine:
    • Objekt ID: "Gaszähler.Stand"
    • Umrechnung in Verbrauch in kWh:
    • "System"baustein: aktualisiere "Gaszähler.Verbrauch"
    • "Mathematik"bausteine:
    • Wert -> "Gaszähler.Stand" (m³)
    • x Zustandszahl
    • x Brennwert


    Variablen sichtbar unter "javascript.0/Gaszähler/...":

    Objekt ID_Gaszähler.png

    Der Wert des Gaszählerstandes kann an den derzeitigen Gaszählerstand angepasst werden. Dazu einfach in der Variable unter Wert -> "Im Dialog bearbeiten" klicken.

    Im aufklappenden Fenster den aktuellen Stand mit zwei Nachkommastellen eintragen. "Bestätigt" anhaken und "Setzen".


    Abfrage des Relais-Status -> Relay1/Switch -> false/true:

    Shelly UNI.png


    In einer Visualisierung können diese Daten nun dargestellt werden.

  • Monatlicher Zählerstand und Verbrauch

    Um nun auch den monatlichen Zählerstand und Verbrauch zu ermitteln möchte ich ein weiteres Skript vorstellen.

    Dies ist eine Gemeinschaftproduktion mit neo-v. Das grundlegende Skript stammt aus seiner Feder! :thumbup: Maik, super Arbeit!

    Mit Zustimmung von neo-v kann ich dieses Skript hier nun veröffentlichen. Dafür auch ein ganz großes Dankeschön!


    Umsetzung:

    Gasmonatszähler.png

    • "System"bausteine:
    • Objekt ID: Variable anlegen: -> ZZ_Monat -> wird für die Berechnung benötigt!
    • im "Text"baustein mit "" festlegen
    • Objekt ID: Variable anlegen: -> Gas Zähler Monat
    • im "Text"baustein mit "" festlegen
    • Objekt ID: Variable anlegen: -> Gas Verbrauch Monat
    • im "Text"baustein mit "kWh" festlegen
    • "Trigger"bausteine: "Zeitplan"
    • am 01. jeden Monats um 00:01 Uhr vom Gesamtzählerstand berechnen (Gesamtzählerstand aus 1. Blockly -> "Gaszähler.Stand"
    • am 01. jeden Monats um 00:02 Uhr Zähler und Verbrauch auf "0" setzen
    • Objekt ID: Gesamtzählerstand -> "Gaszähler.Stand"
    • steuere Variable: "Gas Zähler Monat" -> berechne den Monatszählerstand
    • mit "Mathematik"baustein:
    • Gesamtzählerstand "Gaszähler.Stand" - Variable "ZZ_Monat"
    • Objekt ID: "Gas Zähler Monat"
    • Umrechnung in Verbrauch in kWh:
    • "System"baustein: aktualisiere "Gas Verbrauch Monat"
    • "Mathematik"bausteine:
    • Wert -> "Gas Verbrauch Monat" (m³)
    • x Zustandszahl
    • x Brennwert

    Zur besseren Übersichtlichkeit der ermittelten Daten werden diese auf 2 Nachkommastellen gerundet.


    Die Werte sind nun wieder unter "Objekte/javascript.0..." oder unter entsprechend angelegtem Speicherort ersichtlich.

    Objekt ID_GaszählerMonat.png

  • Um diese ermittelten Daten/Werte nun auch noch in den jeweiligen Monat zu schreiben kommt dann folgende Skripterweiterung ins Spiel. Dieses Skript einfach unter das Skript von #2 anbinden!


    Variablen täglich schreiben.png

    • "Trigger"bausteine: täglich wird um 23:59:59 Uhr der Zählerstand (m³) und der Verbrauch (kWh) in die jeweilige Monatsvariable geschrieben
    • dafür je 12 Variablen (12 Monate) anlegen (siehe Bild unten)
    • "Variable"baustein in Blockly eine Variable "Monat" anlegen und entsprechend im Blockly einsetzen
    • "Text"baustein: unter "erstelle Text aus" wird der Speicherort der angelegten 12 Variablen eingetragen -> aber ohne Monat!
    • "System"bausteine: aktualisiere "Gas Zähler Monat" und "Gas Verbrauch Monat", die Variablen werden zur eingestellten Zeit mit den aktuellen Werten gefüllt

    Objekte.png


    Viel Erfolg beim Erstellen eurer Verbrauchswerte!


    EDIT: gesamtes Skript (Blockly):


  • SparkyMaster March 20, 2021 at 4:39 PM

    Approved the thread.
  • SparkyMaster March 20, 2021 at 4:40 PM

    Changed the title of the thread from “[Blockly] Gaszähler -> Stand und Verbrauch” to “[Blockly] Gaszähler -> Stand und Verbrauch (auch monatlich)”.
  • Hallo,

    super Sache die Scripte! - da ich gerade auf Gas umstelle kommt auch bald ein Reed-Kontakt sobald der Zähler eingebaut ist, somit ist diese Vorlage perfekt. :)

    Kannst du die Scripte zusätzlich zu den png's auch als Blockly-export in ein Code-Feld hinterlegen?

    beste Grüße und vielen Dank für die Arbeit!

  • This threads contains 17 more posts that have been hidden for guests, please register yourself or log-in to continue reading.