Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Brenner Zustand abgreifen

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    212

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Brenner Zustand abgreifen

Brenner Zustand abgreifen

Scheduled Pinned Locked Moved Hardware
iobrokerverbrauchheizungölstand
44 Posts 11 Posters 9.0k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C cainam

    @Einstein67 said in Brenner Zustand abgreifen:

    Also ich hab das mit einem POW gelöst der einfach in der Zuleitung zum Brenner hängt. Über die Leistung werte ich dann den Status des Brenner aus. zB.

    Damit der brenner nicht versehentlich ausgeschalten wird kann man den POW anschliessen und die beiden L miteinander verbinden, so kann er nicht schalten... oder geht das nicht, gleiche frage für Shelly 1PM?

    JLegJ Offline
    JLegJ Offline
    JLeg
    wrote on last edited by
    #31

    @cainam sagte in Brenner Zustand abgreifen:

    @Einstein67 said in Brenner Zustand abgreifen:

    Also ich hab das mit einem POW gelöst der einfach in der Zuleitung zum Brenner hängt. Über die Leistung werte ich dann den Status des Brenner aus. zB.

    Damit der brenner nicht versehentlich ausgeschalten wird kann man den POW anschliessen und die beiden L miteinander verbinden, so kann er nicht schalten... oder geht das nicht, gleiche frage für Shelly 1PM?

    egal ob Shelly1 oder 1POW - die Schaltausgänge (= das Relais) willst du hier gar nicht benutzen. Es ist also völlig egal, ob der Shelly schaltet oder nicht, da der Brenner nicht am Schaltausgang dran hängen wird/soll/muss/braucht/darf!
    Der Shelly würde bei deiner Lösung ausschliesslich in Form seines "SW" Schalt_einganges_ benutzt, um die ganz normal von der Regelung geschalteten Brennerstarts am Schalteingang zu erfassen.
    Den Schalteingangszustand kann man dann ganz normal im iobroker-Objekt abfragen.
    Bei Tasmota könnte man dann auch noch verhindern, dass das Relais des Shelly unnötig "klackt", bei Shelly-Firmware weiss ich das nicht. Ist aber für die Funktion "Brennerlaufzeit erfassen" völlig egal.

    C 1 Reply Last reply
    0
    • JLegJ JLeg

      @cainam sagte in Brenner Zustand abgreifen:

      @Einstein67 said in Brenner Zustand abgreifen:

      Also ich hab das mit einem POW gelöst der einfach in der Zuleitung zum Brenner hängt. Über die Leistung werte ich dann den Status des Brenner aus. zB.

      Damit der brenner nicht versehentlich ausgeschalten wird kann man den POW anschliessen und die beiden L miteinander verbinden, so kann er nicht schalten... oder geht das nicht, gleiche frage für Shelly 1PM?

      egal ob Shelly1 oder 1POW - die Schaltausgänge (= das Relais) willst du hier gar nicht benutzen. Es ist also völlig egal, ob der Shelly schaltet oder nicht, da der Brenner nicht am Schaltausgang dran hängen wird/soll/muss/braucht/darf!
      Der Shelly würde bei deiner Lösung ausschliesslich in Form seines "SW" Schalt_einganges_ benutzt, um die ganz normal von der Regelung geschalteten Brennerstarts am Schalteingang zu erfassen.
      Den Schalteingangszustand kann man dann ganz normal im iobroker-Objekt abfragen.
      Bei Tasmota könnte man dann auch noch verhindern, dass das Relais des Shelly unnötig "klackt", bei Shelly-Firmware weiss ich das nicht. Ist aber für die Funktion "Brennerlaufzeit erfassen" völlig egal.

      C Offline
      C Offline
      cainam
      wrote on last edited by cainam
      #32

      Leider warte ich immer noch auf meine bestellten WEMOS...

      Habe heute hinten bei der Heizung mal aufgeschraubt... da sollte ich das doch einfach abgreifen können oder? welche Info würded ihr sonst noch abgreifen/ist wichtig?

      Weiss jemand wo ich einen Schaltplan finde vom Buderus Ecomat 4000 - auf der Homepage habe ich nichts gefunden. es scheint aber so die Klemme 11 hat strom wenn brenner läuft sonst nicht... 10 + 12 immer - 4 +8 nie!? Interessant zum wissen welche ich alles mit dem Strommesser abgreifen soll...

      IMG_0883.jpg IMG_0799.jpg
      IMG_0885.jpg

      K 1 Reply Last reply
      0
      • C cainam

        Leider warte ich immer noch auf meine bestellten WEMOS...

        Habe heute hinten bei der Heizung mal aufgeschraubt... da sollte ich das doch einfach abgreifen können oder? welche Info würded ihr sonst noch abgreifen/ist wichtig?

        Weiss jemand wo ich einen Schaltplan finde vom Buderus Ecomat 4000 - auf der Homepage habe ich nichts gefunden. es scheint aber so die Klemme 11 hat strom wenn brenner läuft sonst nicht... 10 + 12 immer - 4 +8 nie!? Interessant zum wissen welche ich alles mit dem Strommesser abgreifen soll...

        IMG_0883.jpg IMG_0799.jpg
        IMG_0885.jpg

        K Offline
        K Offline
        klassisch
        Most Active
        wrote on last edited by
        #33

        @cainam wie dort bereits angemerkt nutze ich

        • Brenner Störungsmeldung: Mit Abstand das wichtigste aber auch das am wenigsten genutzte Signal. Wenn dieses Signal ansteht besteht sofortiger Handlungsbedarf, besonders im Winter. Also gibt es eine Mail und per gmx Mailforwarding noch eine SMS. Das mit der SMS stammt noch aus alten, smartphone-freien Zeiten
        • Brenner Magnetventil Brennstoffeinspitzung: Sehr nützliches und mit Abstand das meistgenutzte Signal. Daraus kann man den Verbrauch ersehen und auch Fehlstarts erkennen und registrieren. Wenn sich die Fehlstarts häufen, ist es Zeit für eine präventive Wartung
        • Heizung Umwälzpumpe: Nice to have. Zusammen mit der anderen Pumpe kann man so in etwas das Verhältnis zwischen Heizverbrauch und Warmwasserverbrauch abschätzen
        • Warmwasser Speicher-Ladepumpe: Nice to have. Zusammen mit der anderen Pumpe kann man so in etwas das Verhältnis zwischen Heizverbrauch und Warmwasserverbrauch abschätzen

        Wo diese Anschlüsse bei Deiner Heizung sind, kann ich allerdings nicht beantworten.

        1 Reply Last reply
        0
        • JLegJ JLeg

          @cainam sagte in Brenner Zustand abgreifen:

          @JLeg said in Brenner Zustand abgreifen:

          @cainam sagte in Brenner Zustand abgreifen:

          @JLeg said in Brenner Zustand abgreifen:

          B4 ist sogar extra

          Was meinst du mit B4? vom Shelly oder bei der Heizung?

          Hinten hat es ja so ein Steuergerät (rot) kann man das evt. da direkt abgreifen? Shelly EM am Blauen

          das "Steuergerät" ist der (genormte) Stecker vom Brenner! 🙂 Den kann man abziehen - dann ist der Brenner stromlos. Am Gegenstück des Steckers am Brenner kann man dann normalerweise einfach eine Klappe aufmachen, und sich dort am Anschluss B4 (und N natürlich) z.B. einen Shelly1 (SW und N) anklemmen. Den Ausgang des Shellys lässt man dann natürlich unbeschaltet. Du willst ja nichts schalten, sondern nur mitbekommen, wenn/dass der Brenner läuft. Und das würdest du dann einfach im Shelly-Objekt im iobroker sehen - wenn der Shelly nämlich "true" beim "Switch" stehen hat...

          Aber der Shelly1 bräuchte ja auch noch ein L? wo nimmst du das her?
          B4 = da wo 4-N steht?

          ja, dachte das sei klar 🙂 - der Shelly braucht natürlich grundsätzlich auch Saft, also "L" und "N". Bei deinem Stecker ist "L" da, wo die "12" steht - du solltest aber prüfen, ob dort dauerhaft "L" anliegt, oder nur wenn das Ding läuft, in dem Fall muss "L" von woanders her genommen werden (z.B. von der Regelung - die hat üblicherweise auch ein "Klemmbrett").
          Also Saft für Shelly: "L" und "N" am Shelly ("I" ist glaube ich nur nötig, wenn auch was zum Schalten am Shelly hängen soll); Anschluss Shelly "SW" an "B4" vom Brenner.

          Ansonsten hier aber angesichts der "Fragen" hier: Es handelt sich um 230V, also lebensgefährlich => lass' das lieber eine Fachkraft machen... 😬

          C Offline
          C Offline
          cainam
          wrote on last edited by cainam
          #34

          @JLeg Sali, ich habe genau das gemacht... doch der Shelly wechselt den Schalterstatus nicht... Einstellungen habe ich "Toggle Switch" angewählt....

          C 1 Reply Last reply
          0
          • C cainam

            Hallo zusammen
            Ich möchte gerne den ölverbrauch meiner Heizung messen. Dazu habe ich ein Skript gebastelt mit Blocky an Anlehnung von hier (https://homematic-forum.de/forum/viewtopic.php?t=11974) .

            Nun habe ich aber das Problem den Zustand des Brenners zuverlässig abzugreifen, mit so einem Aqara Bewegungsmelder/LUX (https://www.galaxus.ch/de/s4/product/aqara-bewegungssensor-bewegungsmelder-11819407?gclid=CjwKCAjw8-78BRA0EiwAFUw8LKm4ZSlZxhnKS7Y0REULNs5zmsskAX_38nf_mT_pSTecuh24ayvQEBoCi5sQAvD_BwE&gclsrc=aw.ds)
            geht das nicht wie ich mir vorgestellt habe, resp. ist sehr unzuverlässig (an geht meistens, aus selten...) resp. übermittelt es den neuen LUX-Wert nicht...?

            hier noch mein blockly-code - verbesserungsvorschläge willkommen:

            var GelaufenD, gelaufenF, Tankinhalt, GelaufenM, GelaufenJ, Einschaltzeit, Ausschaltzeit, Einschaltdauer_in_h, Verbrauch_KG_h, Einschaltsdauer_in_ms, kg_in_l_umrechnungsfaktor;
            
            // Beschreibe diese Funktion …
            function Tageslaufzeit_berechnen() {
              // Tageslaufzeit berechnen
              Ausschaltzeit = (new Date().getTime());
              setState("EigeneDatenpunkte.0.Heizung.Brenner_last_off"/*Brenner_last_off*/, formatDate(getDateObject(Ausschaltzeit), "JJJJ.MM.TT SS:mm:ss.sss"), true);
              // Addieren zu vorhanden
              Einschaltsdauer_in_ms = Ausschaltzeit - Einschaltzeit;
              Einschaltdauer_in_h = Einschaltsdauer_in_ms / 3600000;
            }
            
            // Beschreibe diese Funktion …
            function laufender_Tag_aktuallisieren() {
              GelaufenD = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute").val + Einschaltdauer_in_h;
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute"/*Brenner_Betriebsstunden_heute*/, GelaufenD, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_verbrauch_heute"/*Brenner_verbrauch_heute*/, (GelaufenD * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
            }
            
            // Beschreibe diese Funktion …
            function Seit_letzter_Fuellung_aktualisieren() {
              gelaufenF = Einschaltdauer_in_h + getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_seit_letzter_Fuellung").val;
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_seit_letzter_Fuellung"/*Brenner_Betriebsstunden_seit_letzter_Fuellung*/, gelaufenF, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_seit_letzter_Fuellung"/*Brenner_Verbrauch_seit_letzter_Fuellung*/, (gelaufenF * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
            }
            
            // Beschreibe diese Funktion …
            function Tankinhalt2() {
              Tankinhalt = getState("EigeneDatenpunkte.0.Heizung.Tankinhalt_nach_letzter_Fuellung").val - getState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_seit_letzter_Fuellung").val;
              setState("EigeneDatenpunkte.0.Heizung.Tankinhalt_aktuell"/*Tankinhalt_aktuell*/, Tankinhalt, true);
            }
            
            // Beschreibe diese Funktion …
            function laufender_Monat_aktuallisieren() {
              GelaufenM = Einschaltdauer_in_h + getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat").val;
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat"/*Brenner_Betriebsstunden_laufender_Monat*/, GelaufenM, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufender_Monat"/*Brenner_Verbrauch_laufender_Monat*/, (GelaufenM * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
            }
            
            // Beschreibe diese Funktion …
            function laufendes_Jahr_aktuallisieren() {
              GelaufenJ = Einschaltdauer_in_h + getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr").val;
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr"/*Brenner_Betriebsstunden_laufendes_Kalenderjahr*/, GelaufenJ, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufendes_Kalenderjahr"/*Brenner_Verbrauch_laufendes_Kalenderjahr*/, (GelaufenJ * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
            }
            
            
            on({id: "deconz.0.Sensors.38.lightlevel"/*LightLevel 38 lightlevel*/, change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              if ((obj.state ? obj.state.val : "") >= 1000) {
                setStateDelayed("EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, true, true, 5000, false);
                sendTo("telegram", "send", {
                    text: 'Brenner an'
                });
              }
              if ((obj.state ? obj.state.val : "") < 800) {
                setStateDelayed("EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, false, true, 1000, false);
                sendTo("telegram", "send", {
                    text: (['Brenner aus ','\n','Betriebsstunden heute: ',Math.round(getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute").val*100)/100].join(''))
                });
              }
            });
            
            // Brenner Ein
            on({id: "EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, val: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              Einschaltzeit = (new Date().getTime());
              setState("EigeneDatenpunkte.0.Heizung.Brenner_last_on"/*Brenner_last_on*/, formatDate(getDateObject(Einschaltzeit), "JJJJ.MM.TT SS:mm:ss.sss"), true);
            });
            // Brenner aus
            on({id: "EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, val: false}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              // Variabeln setzen
              Verbrauch_KG_h = 1.68;
              kg_in_l_umrechnungsfaktor = 1.197;
              Tageslaufzeit_berechnen();
              Seit_letzter_Fuellung_aktualisieren();
              Tankinhalt2();
              laufendes_Jahr_aktuallisieren();
              laufender_Monat_aktuallisieren();
              laufender_Tag_aktuallisieren();
            });
            
            schedule('{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}', function () {
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute"/*Brenner_Betriebsstunden_heute*/, 0, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_verbrauch_heute"/*Brenner_verbrauch_heute*/, 0, true);
            });
            
            schedule("0 0 30 * *", function () {
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat"/*Brenner_Betriebsstunden_laufender_Monat*/, 0, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufender_Monat"/*Brenner_Verbrauch_laufender_Monat*/, 0, true);
            });
            
            schedule("0 0 31 12 *", function () {
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr"/*Brenner_Betriebsstunden_laufendes_Kalenderjahr*/, 0, true);
              setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufendes_Kalenderjahr"/*Brenner_Verbrauch_laufendes_Kalenderjahr*/, 0, true);
            });
            
            joergeliJ Online
            joergeliJ Online
            joergeli
            wrote on last edited by
            #35

            @cainam

            Hier meine "Hardware"-Lösung:

            Ich wollte ebenfalls (bereits bevor ich ioBroker eingesetzt habe) den Brenner-Zustand loggen.
            Da ich in Sachen Heizungstechnik Laie bin, bzw. keinen Eingriff in die Heizungselektronik vornehmen wollte, habe ich folgende Lösung realisiert.
            Ich weiß, daß in unserer Öl-Heizung ein sog. Flammen-Wächter verbaut ist.
            Dieser hat die Aufgabe, die Flammen in der Brennerkammer zu "beobachten" und im Falle einer Störung entspr. abzuschalten.
            Warum also nicht einen zweiten Flammenwächter verwenden, der nur die Zustände "Flammen in Brennerkammer vorhanden", oder "Keine Flammen in Brennerkammer" zu erfassen.
            Dazu habe ich mir ein sog. IR Flammensensor-Modul für Arduino besorgt:
            flammensensor-modul.jpg
            An dem Modul habe ich die IR-Diode mit einem Kabel verlängert und die Diode einfach neben den vorhandenen Flammenwächter gesteckt (das weisse Kabel).
            Fremdlicht kann hier nicht eindringen, weil noch eine Abdeckhaube über den kpl. Brenner gestülpt ist, die ich nur für das Foto abgenommen habe:
            flammenwaechter.jpg
            Das Modul habe ich dann mit einer NodeMCU (ESP8266) "verheiratet" und die NodeMCU sendet seither jede Minute per WLAN den Brennerzustand ( an/aus).

            Ich wollte das gerne haben, um mögl. alle Zustände meiner Solarthermie-Anlage zu visualisieren:
            tagesverlauf.jpg
            In dieser Grafik kann man erkennen, wann der Brenner angesprungen ist (rote Balken am unteren Bildrand).
            Die obere rote Kurve zeigt den Temperaturverlauf des Warmwasser-Speichers.
            Die erste Aufheizung erfolgte hier ca. um 09:20 Uhr, die zweite gegen 13:35 Uhr, wobei man auch sieht, daß da der Brenner angesprungen ist.

            Der Brenner springt natürlich auch an, um das Haus zu beheizen, das kann man an den Zeitpunkten der roten Balken erkennen, wo keine Aufheizung des Warmwasser-Speichers erfolgte.

            Wie gesagt, ich habe das bereits vor meiner ioBroker-Zeit gebastelt und die Grafik wird seither alle 5 Min. auf einem Windows-PC mittels gnuplot erstellt und auf meine Wetterstations-Seite übertragen.
            Das näher zu erläutern würde hier aber zu weit führen.

            Ich wollte hier nur zeigen, daß man auch ohne elekrischen Eingriff in die Heizung dort Daten abgreifen kann.

            Gruß
            Jörg

            1 Reply Last reply
            1
            • C Offline
              C Offline
              cainam
              wrote on last edited by
              #36

              So, abgreifen tue ich es mit einem Shelly EM - bisher scheint das zu funktionieren.

              Mein Code für die Berechnungen (Hab es in Blockly gemacht, aber keine ahnung wie ich das reinkopiere):

              Was meint ihr dazu? Fehler?

              var GelaufenD, Betriebsstunden_Brenner, gelaufenF, GelaufenM, GelaufenJ, Tankinhalt, Einschaltsdauer_in_ms, Einschaltzeit, Einschaltdauer_in_h, Ausschaltzeit, Verbrauch_KG_h, kg_in_l_umrechnungsfaktor;
              
              // Beschreibe diese Funktion …
              async function Einschaltdauer() {
                // Addieren zu vorhanden
                Einschaltsdauer_in_ms = Ausschaltzeit - Einschaltzeit;
                Einschaltdauer_in_h = Einschaltsdauer_in_ms / 3600000;
              }
              
              // Beschreibe diese Funktion …
              async function laufender_Tag_aktuallisieren() {
                GelaufenD = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute").val + Einschaltdauer_in_h;
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute"/*Brenner_Betriebsstunden_heute*/, GelaufenD, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_heute"/*Brenner_Verbrauch_heute*/, (GelaufenD * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
              }
              
              // Beschreibe diese Funktion …
              async function Betriebsstunden_aktuallisieren() {
                Betriebsstunden_Brenner = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebstunden_Total").val + Einschaltdauer_in_h;
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebstunden_Total"/*Brenner_Betriebstunden_Total*/, Betriebsstunden_Brenner, true);
              }
              
              // Beschreibe diese Funktion …
              async function Seit_letzter_Fuellung_aktualisieren() {
                gelaufenF = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_seit_letzter_Fuellung").val + Einschaltdauer_in_h;
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_seit_letzter_Fuellung"/*Brenner_Betriebsstunden_seit_letzter_Fuellung*/, gelaufenF, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_seit_letzter_Fuellung"/*Brenner_Verbrauch_seit_letzter_Fuellung*/, (gelaufenF * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
              }
              
              // Beschreibe diese Funktion …
              async function laufender_Monat_aktuallisieren() {
                GelaufenM = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat").val + Einschaltdauer_in_h;
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat"/*Brenner_Betriebsstunden_laufender_Monat*/, GelaufenM, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufender_Monat"/*Brenner_Verbrauch_laufender_Monat*/, (GelaufenM * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
              }
              
              // Beschreibe diese Funktion …
              async function laufendes_Jahr_aktuallisieren() {
                GelaufenJ = getState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr").val + Einschaltdauer_in_h;
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr"/*Brenner_Betriebsstunden_laufendes_Kalenderjahr*/, GelaufenJ, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufendes_Kalenderjahr"/*Brenner_Verbrauch_laufendes_Kalenderjahr*/, (GelaufenJ * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor), true);
              }
              
              // Beschreibe diese Funktion …
              async function Tankinhalt2() {
                Tankinhalt = getState("EigeneDatenpunkte.0.Heizung.Tankinhalt_nach_letzter_fuellung").val - getState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_seit_letzter_Fuellung").val;
                setState("EigeneDatenpunkte.0.Heizung.Tankinhalt_aktuell"/*Tankinhalt_aktuell*/, Tankinhalt, true);
              }
              
              // Beschreibe diese Funktion …
              async function Telegrammeldung() {
                sendTo("telegram", "send", {
                    text: (['Brenner ist gelaufen für:  ',Math.round(Einschaltdauer_in_h*100)/100,'\n','Verbrauch: ',Math.round((Einschaltdauer_in_h * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor)*100)/100,'\n','Total Betriebsstunden heute: ',Math.round(GelaufenD*100)/100].join(''))
                });
                console.debug("telegram: " + (['Brenner ist gelaufen für:  ',Math.round(Einschaltdauer_in_h*100)/100,'\n','Verbrauch: ',Math.round((Einschaltdauer_in_h * Verbrauch_KG_h * kg_in_l_umrechnungsfaktor)*100)/100,'\n','Total Betriebsstunden heute: ',Math.round(GelaufenD*100)/100].join('')));
              }
              
              
              // Shellystatus an BrennerStatus übergeben
              on({id: "shelly.0.SHEM#062243#1.Emeter0.Power"/*Power*/, change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if ((obj.state ? obj.state.val : "") >= 150) {
                  setState("EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, true);
                }
                if ((obj.state ? obj.state.val : "") < 150) {
                  setState("EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, false);
                }
              });
              
              schedule('{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}', async function () {
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_heute"/*Brenner_Betriebsstunden_heute*/, 0, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_verbrauch_heute", 0, true);
              });
              
              on({id: "EigeneDatenpunkte.0.Heizung.Brenner_Status"/*Brenner_Status*/, change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                // Brenner Ein
                if ((obj.state ? obj.state.val : "") == true) {
                  Einschaltzeit = (new Date().getTime());
                  setState("EigeneDatenpunkte.0.Heizung.Brenner_last_on"/*Brenner_last_on*/, formatDate(getDateObject(Einschaltzeit), "JJJJ.MM.TT SS:mm:ss.sss"), true);
                }
                // Brenner aus
                if ((obj.state ? obj.state.val : "") == false) {
                  // Variabeln setzen
                  Verbrauch_KG_h = 1.68;
                  kg_in_l_umrechnungsfaktor = 1.197;
                  // Kommentar
                  Ausschaltzeit = (new Date().getTime());
                  setState("EigeneDatenpunkte.0.Heizung.Brenner_last_off"/*Brenner_last_off*/, formatDate(getDateObject(Ausschaltzeit), "JJJJ.MM.TT SS:mm:ss.sss"), true);
                  await Einschaltdauer();
                  await Seit_letzter_Fuellung_aktualisieren();
                  await Tankinhalt2();
                  await laufendes_Jahr_aktuallisieren();
                  await laufender_Monat_aktuallisieren();
                  await laufender_Tag_aktuallisieren();
                  await Betriebsstunden_aktuallisieren();
                  await Telegrammeldung();
                }
              });
              
              schedule("0 0 30 * *", async function () {
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufender_Monat"/*Brenner_Betriebsstunden_laufender_Monat*/, 0, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufender_Monat"/*Brenner_Verbrauch_laufender_Monat*/, 0, true);
              });
              
              schedule("0 0 31 12 *", async function () {
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Betriebsstunden_laufendes_Kalenderjahr"/*Brenner_Betriebsstunden_laufendes_Kalenderjahr*/, 0, true);
                setState("EigeneDatenpunkte.0.Heizung.Brenner_Verbrauch_laufendes_Kalenderjahr"/*Brenner_Verbrauch_laufendes_Kalenderjahr*/, 0, true);
              });
              
              
              
              1 Reply Last reply
              0
              • C cainam

                @JLeg said in Brenner Zustand abgreifen:

                B4 ist sogar extra

                Was meinst du mit B4? vom Shelly oder bei der Heizung?

                Hinten hat es ja so ein Steuergerät (rot) kann man das evt. da direkt abgreifen? Shelly EM am Blauen (Steuergerät zu Pumpe) oder Grünen (geht zum Brenner)
                IMG_0796.jpg

                Weiter habe ich noch in der Heizungsanleitung folgendes gefunden..
                IMG_0799.jpg ..

                und bei der Version mit dem 230v relais würde dann die verkabelung so aussehen??:
                Finder-49.52.8.230.0060-Relaisbaustein-Nennspannung-230-V-AC-Schaltstrom-max.-8A-2-Wechsler-1St..jpg

                D Offline
                D Offline
                danzlrobert
                wrote on last edited by
                #37

                @cainam hallo, kannst du mir bitte helfen?
                Ich habe an meinem Brenner ein Koppel-Relaise direkt am Brenner, also wenn der einschaltet zieht das Koppel-Relaise an,
                nun würd ich gerne damit die Laufzeiten in IOBroker weitergeben mit einem Wemos D1. Hab da dein Bild gesehen
                und dachte mir das wäre etwas.

                https://forum.iobroker.net/assets/uploads/files/1604490837562-finder-49.52.8.230.0060-relaisbaustein-nennspannung-230-v-ac-schaltstrom-max.8a-2-wechsler-1st..jpg

                Hättest du dazu ein Programm für den Wemos D1 damit ich die Laufzeiten in den IOBroker bekomme?
                Vielen Dank für deine Hilfe!

                ChaotC 1 Reply Last reply
                0
                • D danzlrobert

                  @cainam hallo, kannst du mir bitte helfen?
                  Ich habe an meinem Brenner ein Koppel-Relaise direkt am Brenner, also wenn der einschaltet zieht das Koppel-Relaise an,
                  nun würd ich gerne damit die Laufzeiten in IOBroker weitergeben mit einem Wemos D1. Hab da dein Bild gesehen
                  und dachte mir das wäre etwas.

                  https://forum.iobroker.net/assets/uploads/files/1604490837562-finder-49.52.8.230.0060-relaisbaustein-nennspannung-230-v-ac-schaltstrom-max.8a-2-wechsler-1st..jpg

                  Hättest du dazu ein Programm für den Wemos D1 damit ich die Laufzeiten in den IOBroker bekomme?
                  Vielen Dank für deine Hilfe!

                  ChaotC Offline
                  ChaotC Offline
                  Chaot
                  wrote on last edited by
                  #38

                  @danzlrobert Wenn du ein Koppelrelais hast brauchst du doch kein weiteres Relais.
                  Das Relais wird (wenn es wirklich potentialfrei ist) am Wemos D1 mini an einem der GPIOs angeschlossen gegen GND.
                  Welche Firmware du auf dem Wemos hast ist zunächst egal, ob Tasmota oder irgendwas anderes. Hauptsache du bekommst die Daten über MQTT ins Netzwerk versendet.

                  Im ioBroker nimmst du dann entweder den MQTT Adapter oder den Sonoff (wenn Tasmota) und schreibst dor den Datenpunkt in eine Datenbank.

                  Steigerung der Aktion wäre dann noch zwei DS18B20 Sensoren an den anderen GPIOs um Vor- und Rücklauftemperatur zu loggen 😊

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                  D 1 Reply Last reply
                  0
                  • ChaotC Chaot

                    @danzlrobert Wenn du ein Koppelrelais hast brauchst du doch kein weiteres Relais.
                    Das Relais wird (wenn es wirklich potentialfrei ist) am Wemos D1 mini an einem der GPIOs angeschlossen gegen GND.
                    Welche Firmware du auf dem Wemos hast ist zunächst egal, ob Tasmota oder irgendwas anderes. Hauptsache du bekommst die Daten über MQTT ins Netzwerk versendet.

                    Im ioBroker nimmst du dann entweder den MQTT Adapter oder den Sonoff (wenn Tasmota) und schreibst dor den Datenpunkt in eine Datenbank.

                    Steigerung der Aktion wäre dann noch zwei DS18B20 Sensoren an den anderen GPIOs um Vor- und Rücklauftemperatur zu loggen 😊

                    D Offline
                    D Offline
                    danzlrobert
                    wrote on last edited by
                    #39

                    @chaot Erstmals vielen Dank für die schnelle Antwort.
                    Ich meinte ja das ich den Kontakt von meinem Koppel-Relaise an den WemosD1 hänge.
                    Was muss ich nun machen einen GPIO gegen GND oder 5V? An welchen GPIO?
                    Hab am Wemos Tasmota laufen (Generic18) was muss ich dort einstellen?
                    Hatte auch einige DS18B20 (vergossen) bei mir rumliegen, wo müsste ich die dranhängen und wie
                    bekomm ich das ganze in den IOBroker, hab dort MQTT auch laufen.
                    Wie muss ich das ganze dann einstellen?

                    ChaotC 1 Reply Last reply
                    0
                    • D danzlrobert

                      @chaot Erstmals vielen Dank für die schnelle Antwort.
                      Ich meinte ja das ich den Kontakt von meinem Koppel-Relaise an den WemosD1 hänge.
                      Was muss ich nun machen einen GPIO gegen GND oder 5V? An welchen GPIO?
                      Hab am Wemos Tasmota laufen (Generic18) was muss ich dort einstellen?
                      Hatte auch einige DS18B20 (vergossen) bei mir rumliegen, wo müsste ich die dranhängen und wie
                      bekomm ich das ganze in den IOBroker, hab dort MQTT auch laufen.
                      Wie muss ich das ganze dann einstellen?

                      ChaotC Offline
                      ChaotC Offline
                      Chaot
                      wrote on last edited by Chaot
                      #40

                      @danzlrobert Ach so.

                      Das Relais sollte idealerweise den GPIO gegen GND schalten. Manchmal funktioniert das nicht, dann kannst du auch 3,3V als Schaltspannung nehmen. Die 5V solltest du am GPIO nicht verwenden. Der sollte das zwar abkönnen, aber da würde ich nicht zu 100% darauf vertrauen.

                      In der Weboberfläche bei Tasmota gehst du auf Einstellungen - Gerät konfigurieren
                      Dort wählst du den passenden GPIO aus auf dem dein Relais schaltet und wählst dort SWITCH1 (oder andere Nummer). Ich würde GPIO 0,2 und 15 nicht zur Verwendung empfehlen solange du andere frei hast. Die haben besondere Funktionen oder reagieren speziell wenn sie beim Start auf LOW liegen.
                      Beim DS18B20 machst du im Grunde das selbe. Mit mehreren zusammen habe ich keine Erfahrung, da müsstest du selbst mal in der Tasmota Wiki nachschauen wie die dann verschaltet werden.

                      Dann gehst du auf den Reiter MQTT konfigurieren.
                      Hier gibst du ein:
                      Host: - deine IP Adresse vom ioBroker
                      Port:-1883 wenn du den MQTT Adapter in der Grundeinstellung verwendest. Solltest du den Sonoff Adapter verwenden wäre es ratsam einen anderen Port zu wählen. Ich verwende hier 1500
                      Client:-Hier gibst du dem Ding einen sinnvollen Namen. Brennerkontrolle z.B.
                      Benutzer:-Der Benutzername den du im Adapter angegeben hast
                      Passwort:- Logisch! das zugehörige Passwort
                      topic und full_topic musst du nicht unbedingt verändern.

                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                      D 1 Reply Last reply
                      0
                      • ChaotC Chaot

                        @danzlrobert Ach so.

                        Das Relais sollte idealerweise den GPIO gegen GND schalten. Manchmal funktioniert das nicht, dann kannst du auch 3,3V als Schaltspannung nehmen. Die 5V solltest du am GPIO nicht verwenden. Der sollte das zwar abkönnen, aber da würde ich nicht zu 100% darauf vertrauen.

                        In der Weboberfläche bei Tasmota gehst du auf Einstellungen - Gerät konfigurieren
                        Dort wählst du den passenden GPIO aus auf dem dein Relais schaltet und wählst dort SWITCH1 (oder andere Nummer). Ich würde GPIO 0,2 und 15 nicht zur Verwendung empfehlen solange du andere frei hast. Die haben besondere Funktionen oder reagieren speziell wenn sie beim Start auf LOW liegen.
                        Beim DS18B20 machst du im Grunde das selbe. Mit mehreren zusammen habe ich keine Erfahrung, da müsstest du selbst mal in der Tasmota Wiki nachschauen wie die dann verschaltet werden.

                        Dann gehst du auf den Reiter MQTT konfigurieren.
                        Hier gibst du ein:
                        Host: - deine IP Adresse vom ioBroker
                        Port:-1883 wenn du den MQTT Adapter in der Grundeinstellung verwendest. Solltest du den Sonoff Adapter verwenden wäre es ratsam einen anderen Port zu wählen. Ich verwende hier 1500
                        Client:-Hier gibst du dem Ding einen sinnvollen Namen. Brennerkontrolle z.B.
                        Benutzer:-Der Benutzername den du im Adapter angegeben hast
                        Passwort:- Logisch! das zugehörige Passwort
                        topic und full_topic musst du nicht unbedingt verändern.

                        D Offline
                        D Offline
                        danzlrobert
                        wrote on last edited by
                        #41

                        @chaot said in Brenner Zustand abgreifen:

                        @danzlrobert Ach so.

                        Das Relais sollte idealerweise den GPIO gegen GND schalten. Manchmal funktioniert das nicht, dann kannst du auch 3,3V als Schaltspannung nehmen. Die 5V solltest du am GPIO nicht verwenden. Der sollte das zwar abkönnen, aber da würde ich nicht zu 100% darauf vertrauen.

                        In der Weboberfläche bei Tasmota gehst du auf Einstellungen - Gerät konfigurieren
                        Dort wählst du den passenden GPIO aus auf dem dein Relais schaltet und wählst dort SWITCH1 (oder andere Nummer). Ich würde GPIO 0,2 und 15 nicht zur Verwendung empfehlen solange du andere frei hast. Die haben besondere Funktionen oder reagieren speziell wenn sie beim Start auf LOW liegen.
                        Beim DS18B20 machst du im Grunde das selbe. Mit mehreren zusammen habe ich keine Erfahrung, da müsstest du selbst mal in der Tasmota Wiki nachschauen wie die dann verschaltet werden.

                        Dann gehst du auf den Reiter MQTT konfigurieren.
                        Hier gibst du ein:
                        Host: - deine IP Adresse vom ioBroker
                        Port:-1883 wenn du den MQTT Adapter in der Grundeinstellung verwendest. Solltest du den Sonoff Adapter verwenden wäre es ratsam einen anderen Port zu wählen. Ich verwende hier 1500
                        Client:-Hier gibst du dem Ding einen sinnvollen Namen. Brennerkontrolle z.B.
                        Benutzer:-Der Benutzername den du im Adapter angegeben hast
                        Passwort:- Logisch! das zugehörige Passwort
                        topic und full_topic musst du nicht unbedingt verändern.

                        VIELEN DANK!

                        ChaotC 1 Reply Last reply
                        0
                        • D danzlrobert

                          @chaot said in Brenner Zustand abgreifen:

                          @danzlrobert Ach so.

                          Das Relais sollte idealerweise den GPIO gegen GND schalten. Manchmal funktioniert das nicht, dann kannst du auch 3,3V als Schaltspannung nehmen. Die 5V solltest du am GPIO nicht verwenden. Der sollte das zwar abkönnen, aber da würde ich nicht zu 100% darauf vertrauen.

                          In der Weboberfläche bei Tasmota gehst du auf Einstellungen - Gerät konfigurieren
                          Dort wählst du den passenden GPIO aus auf dem dein Relais schaltet und wählst dort SWITCH1 (oder andere Nummer). Ich würde GPIO 0,2 und 15 nicht zur Verwendung empfehlen solange du andere frei hast. Die haben besondere Funktionen oder reagieren speziell wenn sie beim Start auf LOW liegen.
                          Beim DS18B20 machst du im Grunde das selbe. Mit mehreren zusammen habe ich keine Erfahrung, da müsstest du selbst mal in der Tasmota Wiki nachschauen wie die dann verschaltet werden.

                          Dann gehst du auf den Reiter MQTT konfigurieren.
                          Hier gibst du ein:
                          Host: - deine IP Adresse vom ioBroker
                          Port:-1883 wenn du den MQTT Adapter in der Grundeinstellung verwendest. Solltest du den Sonoff Adapter verwenden wäre es ratsam einen anderen Port zu wählen. Ich verwende hier 1500
                          Client:-Hier gibst du dem Ding einen sinnvollen Namen. Brennerkontrolle z.B.
                          Benutzer:-Der Benutzername den du im Adapter angegeben hast
                          Passwort:- Logisch! das zugehörige Passwort
                          topic und full_topic musst du nicht unbedingt verändern.

                          VIELEN DANK!

                          ChaotC Offline
                          ChaotC Offline
                          Chaot
                          wrote on last edited by
                          #42

                          @danzlrobert Ein kleiner Trick noch:
                          Ich ordne einem Switch immer ein Relais zu. Auch wenn das so nicht vorhanden ist kannst du ja auf einen GPIO ein Relais angeben.
                          Also z.B. GPIO4 Switch1; GPIO5 Relais1
                          Im ioBroker greife ich dann den Schaltzustand von dem Relais ab (Datenpunkt Power). Da ist noch der Schalter gleich mit entprellt.

                          ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                          1 Reply Last reply
                          0
                          • C cainam

                            @JLeg Sali, ich habe genau das gemacht... doch der Shelly wechselt den Schalterstatus nicht... Einstellungen habe ich "Toggle Switch" angewählt....

                            C Offline
                            C Offline
                            Cumulus 0
                            wrote on last edited by
                            #43

                            @cainam Viele Feuerungsautomaten Wechseln den Anschluss B4 zwischen N und L. Der Anschluss SW des Shelly schaltet bei L als auch bei N. Darum wird das so nicht funktionieren.

                            C 1 Reply Last reply
                            0
                            • C Cumulus 0

                              @cainam Viele Feuerungsautomaten Wechseln den Anschluss B4 zwischen N und L. Der Anschluss SW des Shelly schaltet bei L als auch bei N. Darum wird das so nicht funktionieren.

                              C Offline
                              C Offline
                              Cumulus 0
                              wrote on last edited by
                              #44

                              https://creationx.blog/news/details/der-neue-shelly-1-open-source-v3-13

                              So sieht es scheinbar aus.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              71

                              Online

                              32.4k

                              Users

                              81.3k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe