Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Brenner Zustand abgreifen

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Brenner Zustand abgreifen

Geplant Angeheftet Gesperrt Verschoben Hardware
iobrokerverbrauchheizungölstand
44 Beiträge 11 Kommentatoren 9.0k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    cainam
    schrieb am zuletzt editiert von
    #1

    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);
    });
    
    GlasfaserG ChaotC joergeliJ 4 Antworten Letzte Antwort
    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);
      });
      
      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von
      #2

      @cainam sagte in Brenner Zustand abgreifen:

      Zustand des Brenners zuverlässig abzugreifen

      Hast du nicht ein Magnetventil was dann angesteuert wird , dann könntest du eventuell ein Reedkontakt darauf montieren und dadürch die Magnetansteuerung ( offen/geschlossen ) nutzen !?

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      C 1 Antwort Letzte Antwort
      0
      • GlasfaserG Glasfaser

        @cainam sagte in Brenner Zustand abgreifen:

        Zustand des Brenners zuverlässig abzugreifen

        Hast du nicht ein Magnetventil was dann angesteuert wird , dann könntest du eventuell ein Reedkontakt darauf montieren und dadürch die Magnetansteuerung ( offen/geschlossen ) nutzen !?

        C Offline
        C Offline
        cainam
        schrieb am zuletzt editiert von
        #3

        @Glasfaser
        Hallo, wie geht das mit dem reedkontakt? Da brauche ich dann aber ein raspberry oder wo würde ich das und wie (softwaremässig) anschliessen?

        1 Antwort Letzte Antwort
        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);
          });
          
          GlasfaserG Offline
          GlasfaserG Offline
          Glasfaser
          schrieb am zuletzt editiert von Glasfaser
          #4

          @cainam sagte in Brenner Zustand abgreifen:

          mit so einem Aqara Bewegungsmelder

          Im Prinzip kannst du es mit einem Fenstersensor ausprobieren ,
          ob es geht das Magnetfeld vom Magnetschalter zu nutzen wenn ein Brennerbetrieb an ist .

          Aqara Tür- und Fenstersensor

          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

          C 1 Antwort Letzte Antwort
          0
          • GlasfaserG Glasfaser

            @cainam sagte in Brenner Zustand abgreifen:

            mit so einem Aqara Bewegungsmelder

            Im Prinzip kannst du es mit einem Fenstersensor ausprobieren ,
            ob es geht das Magnetfeld vom Magnetschalter zu nutzen wenn ein Brennerbetrieb an ist .

            Aqara Tür- und Fenstersensor

            C Offline
            C Offline
            cainam
            schrieb am zuletzt editiert von
            #5

            @Glasfaser
            Coole Idee. So sieht mein Brenner aus... wo ist da der magnetschalter?

            B8499804-F20D-4F96-8CBF-3E9D9D50D9C1.jpeg

            GlasfaserG 1 Antwort Letzte Antwort
            0
            • C cainam

              @Glasfaser
              Coole Idee. So sieht mein Brenner aus... wo ist da der magnetschalter?

              B8499804-F20D-4F96-8CBF-3E9D9D50D9C1.jpeg

              GlasfaserG Offline
              GlasfaserG Offline
              Glasfaser
              schrieb am zuletzt editiert von Glasfaser
              #6

              @cainam

              Ich bin kein Heizungsbauer ... ich erkenne nur auf dem Bild die "Ölbrennerpumpe Suntec ALEV 35 C " dort ist eventuell auch ein Magnetfeld was erzeugt wird ...

              1.JPG

              .
              EDIT:

              Laut Teileliste :

              1.JPG

              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                cainam
                schrieb am zuletzt editiert von
                #7

                Hallo
                Also der fenstersensor reagiert irgendwie... aber meistens an-aus-an-aus-an... x mal und ab und zu ist er aus wenn er läuft und ab und zu an... Hmmm kann das sein das das Magnetfeld den Sender stört?
                Liebe Grüsse raphi

                GlasfaserG 1 Antwort Letzte Antwort
                0
                • K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von klassisch
                  #8

                  Ich habe im Heizungs-SG die 230V fürs Magnetventil abgegriffen und einem 5V Netzteil zugeführt (Elektrofachkraft). Damit dann über Optokoppler (330Ohm Vorwiderstand) als redundante Sicherheit an ein HM-Sendmodul. Mit dem Optokoppler kann man auch einen anderen kontakt simulieren (Poarität beachten).
                  e2b84084-2689-424b-9643-45f71c0dc51b-grafik.png
                  Tankinhalt alledings nicht gerechnet, sondern gemessen gemessen .
                  Mit der gleichen Methode greife ich das Störungssignal ab, so wie Pumpenschaltungen.
                  Aus dem Brennersignal generiere ich noch ein Vorwarnsignal. Das erkennt, wenn der Brenner nicht gleich startet, sondern einen zweiten Versuch braucht. Wenn sich das häuft muß die Wartung kommen - möglichst bevor das Störungssignal kommt.

                  C 1 Antwort Letzte Antwort
                  0
                  • C cainam

                    Hallo
                    Also der fenstersensor reagiert irgendwie... aber meistens an-aus-an-aus-an... x mal und ab und zu ist er aus wenn er läuft und ab und zu an... Hmmm kann das sein das das Magnetfeld den Sender stört?
                    Liebe Grüsse raphi

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    schrieb am zuletzt editiert von
                    #9

                    @cainam sagte in Brenner Zustand abgreifen:

                    aber meistens an-aus-an-aus-an

                    Wie schon erwähnt ... mehr habe ich als nicht Fachmann ( Heizungsbauer) auf dem Foto erkannt.

                    Es kann sein das die Pumpe nur ein Druck aufbaut ( Taktung ) .

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    1 Antwort Letzte Antwort
                    0
                    • K klassisch

                      Ich habe im Heizungs-SG die 230V fürs Magnetventil abgegriffen und einem 5V Netzteil zugeführt (Elektrofachkraft). Damit dann über Optokoppler (330Ohm Vorwiderstand) als redundante Sicherheit an ein HM-Sendmodul. Mit dem Optokoppler kann man auch einen anderen kontakt simulieren (Poarität beachten).
                      e2b84084-2689-424b-9643-45f71c0dc51b-grafik.png
                      Tankinhalt alledings nicht gerechnet, sondern gemessen gemessen .
                      Mit der gleichen Methode greife ich das Störungssignal ab, so wie Pumpenschaltungen.
                      Aus dem Brennersignal generiere ich noch ein Vorwarnsignal. Das erkennt, wenn der Brenner nicht gleich startet, sondern einen zweiten Versuch braucht. Wenn sich das häuft muß die Wartung kommen - möglichst bevor das Störungssignal kommt.

                      C Offline
                      C Offline
                      cainam
                      schrieb am zuletzt editiert von
                      #10

                      @klassisch said in Brenner Zustand abgreifen:

                      Ich habe im Heizungs-SG die 230V fürs Magnetventil abgegriffen und einem 5V Netzteil zugeführt (Elektrofachkraft). Damit dann über Optokoppler (330Ohm Vorwiderstand) als redundante Sicherheit an ein HM-Sendmodul.

                      Kannst du mir das genau erklären wie ich das mache?

                      K 1 Antwort Letzte Antwort
                      0
                      • C cainam

                        @klassisch said in Brenner Zustand abgreifen:

                        Ich habe im Heizungs-SG die 230V fürs Magnetventil abgegriffen und einem 5V Netzteil zugeführt (Elektrofachkraft). Damit dann über Optokoppler (330Ohm Vorwiderstand) als redundante Sicherheit an ein HM-Sendmodul.

                        Kannst du mir das genau erklären wie ich das mache?

                        K Offline
                        K Offline
                        klassisch
                        Most Active
                        schrieb am zuletzt editiert von klassisch
                        #11

                        @cainam sagte in Brenner Zustand abgreifen:

                        Kannst du mir das genau erklären wie ich das mache?

                        Die Elktrofachkraft schließt z.B. eine (Euro-) Steckdose an den Ausgang an, der zum Ventil führt. In diese Steckdose steckt man ein kleines Qualitäts- 5V Schaltnetzteil aus dem Abverkauf ein, z.B. Pollin 352643 ,
                        Von dessen +5V geht man über einen 330Ohm Widerstand an pin 1 eines Standard-Optokopplers 817 oder 819 dessen Pin 2 man auf die 0V des Netzteils legt.
                        Pin 3 des Optokopplers legt man auf die Masse des Kontaktsenders bzw. des Reedkontakts und Pin 4 an den Kontakteingang bzw. des Reedkontakts. Je nachdem was man dafür verwendet.

                        Edit: Viel einfacher - wenn auch etwas teurer ist die Verwendung eines (möglichst kompakten) 230V Koppelrelais, z.B. Eltako KR09-230V , Wago 859-368 (+Deckel); Phoenix Relaismodul - PLC-RPT-230UC/21AU - 2900311
                        Edit2 Wer sparen möchte aber Platz hat, kann es mal mit "Schneider RSL1PVPU Schmales Interface-Relais RSL im Sockel" (10 bis 14 EUR), "Finder 49.52.8.230.0060 Relaisbaustein Nennspannung: 230 V/AC Schaltstrom (max.): 8A 2 Wechsler" (Voelkner S75409 , 11 EUR); "ABB CR-S230VADC1CRGS" (13EUR) oder Geya GYHC -16 (aliexpress 1005001339012006 7EUR) oder EARU contactor (aliexpress 4001223935578) versuchen.
                        Edit3 Elektronisch mit Optokopper und ohne mechanisches Relais: "ABB 1SNA645022R2700 ABB OBIC0100-115-230VUC Optokoppler R600 100mA,A1-A2=115-230VAC/DC,Transistor" ca. 23 EUR; MRI-230A48 "230V Photoelectrical Coupling-interface Relay Module Optocoupler Isolating PLC Din Rail Relay" ca. 12 EUR aliexpress 4000097428149; 11 EUR amazon; Finder 39.10.8.230.7048 , 39.00.8.230.7048, 39.10.8.230.9024 , 391082309024 ca. 19 EUR

                        C 1 Antwort Letzte Antwort
                        0
                        • K klassisch

                          @cainam sagte in Brenner Zustand abgreifen:

                          Kannst du mir das genau erklären wie ich das mache?

                          Die Elktrofachkraft schließt z.B. eine (Euro-) Steckdose an den Ausgang an, der zum Ventil führt. In diese Steckdose steckt man ein kleines Qualitäts- 5V Schaltnetzteil aus dem Abverkauf ein, z.B. Pollin 352643 ,
                          Von dessen +5V geht man über einen 330Ohm Widerstand an pin 1 eines Standard-Optokopplers 817 oder 819 dessen Pin 2 man auf die 0V des Netzteils legt.
                          Pin 3 des Optokopplers legt man auf die Masse des Kontaktsenders bzw. des Reedkontakts und Pin 4 an den Kontakteingang bzw. des Reedkontakts. Je nachdem was man dafür verwendet.

                          Edit: Viel einfacher - wenn auch etwas teurer ist die Verwendung eines (möglichst kompakten) 230V Koppelrelais, z.B. Eltako KR09-230V , Wago 859-368 (+Deckel); Phoenix Relaismodul - PLC-RPT-230UC/21AU - 2900311
                          Edit2 Wer sparen möchte aber Platz hat, kann es mal mit "Schneider RSL1PVPU Schmales Interface-Relais RSL im Sockel" (10 bis 14 EUR), "Finder 49.52.8.230.0060 Relaisbaustein Nennspannung: 230 V/AC Schaltstrom (max.): 8A 2 Wechsler" (Voelkner S75409 , 11 EUR); "ABB CR-S230VADC1CRGS" (13EUR) oder Geya GYHC -16 (aliexpress 1005001339012006 7EUR) oder EARU contactor (aliexpress 4001223935578) versuchen.
                          Edit3 Elektronisch mit Optokopper und ohne mechanisches Relais: "ABB 1SNA645022R2700 ABB OBIC0100-115-230VUC Optokoppler R600 100mA,A1-A2=115-230VAC/DC,Transistor" ca. 23 EUR; MRI-230A48 "230V Photoelectrical Coupling-interface Relay Module Optocoupler Isolating PLC Din Rail Relay" ca. 12 EUR aliexpress 4000097428149; 11 EUR amazon; Finder 39.10.8.230.7048 , 39.00.8.230.7048, 39.10.8.230.9024 , 391082309024 ca. 19 EUR

                          C Offline
                          C Offline
                          cainam
                          schrieb am zuletzt editiert von cainam
                          #12

                          @klassisch
                          Das ist eine super Idee... habe mir gerade überlegt ein Shelly 1 da anschliessen sollte doch auch gehen.. (nur N und SW anschliessen an die Phase und Leiter) - ah und ein Dauer L und N brauche ich dann auch noch für den Shelly selber.... aber dann müsste ich sonst nix mehr machen und der Zustand ist direkt in ioBroker!?

                          JLegJ K 2 Antworten Letzte Antwort
                          0
                          • C cainam

                            @klassisch
                            Das ist eine super Idee... habe mir gerade überlegt ein Shelly 1 da anschliessen sollte doch auch gehen.. (nur N und SW anschliessen an die Phase und Leiter) - ah und ein Dauer L und N brauche ich dann auch noch für den Shelly selber.... aber dann müsste ich sonst nix mehr machen und der Zustand ist direkt in ioBroker!?

                            JLegJ Offline
                            JLegJ Offline
                            JLeg
                            schrieb am zuletzt editiert von
                            #13

                            @cainam jo, sollte gehen. An der Steckverbindung hast du alles, was nötig ist. B4 ist sogar extra als Anschluss für einen Betriebsstundenzähler gedacht.

                            C 1 Antwort Letzte Antwort
                            0
                            • C cainam

                              @klassisch
                              Das ist eine super Idee... habe mir gerade überlegt ein Shelly 1 da anschliessen sollte doch auch gehen.. (nur N und SW anschliessen an die Phase und Leiter) - ah und ein Dauer L und N brauche ich dann auch noch für den Shelly selber.... aber dann müsste ich sonst nix mehr machen und der Zustand ist direkt in ioBroker!?

                              K Offline
                              K Offline
                              klassisch
                              Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @cainam Laut https://www.shelly-support.eu/forum/index.php?thread/4083-i3-temperatur-hoch/&postID=53555#post53555 sollta das nicht gehen.

                              C 1 Antwort Letzte Antwort
                              0
                              • K klassisch

                                @cainam Laut https://www.shelly-support.eu/forum/index.php?thread/4083-i3-temperatur-hoch/&postID=53555#post53555 sollta das nicht gehen.

                                C Offline
                                C Offline
                                cainam
                                schrieb am zuletzt editiert von
                                #15

                                @klassisch
                                hmm... gehts oder nicht 😉
                                wie hast du es denn aktuell gelöst?

                                da steht doch etwas bei GPI05...
                                alt text

                                K N JLegJ 3 Antworten Letzte Antwort
                                0
                                • C cainam

                                  @klassisch
                                  hmm... gehts oder nicht 😉
                                  wie hast du es denn aktuell gelöst?

                                  da steht doch etwas bei GPI05...
                                  alt text

                                  K Offline
                                  K Offline
                                  klassisch
                                  Most Active
                                  schrieb am zuletzt editiert von klassisch
                                  #16

                                  @cainam sagte in Brenner Zustand abgreifen:

                                  @klassisch
                                  hmm... gehts oder nicht 😉

                                  Wie gesagt, nach dem verlinkten Beitrag im Shelly-Forum geht es nicht oder ist zumindest keine empfohlene Betriebsweise. Ich habe das zur Kenntnis genommen und werde nicht umrüsten. Ich war an dem i3 interessiert, weil der klein ist. Die Aussage lautete aber, daß man nur Taster anschließen solle und keine Lasten, was bei einem Magnetventil der Fall wäre. Ich nehme das mal so hin, denn der ich verwende Shelly nur in der vorgesehenen Konfiguration und werde nicht testen, ob sie auch in einer anderen Konfiguration funktionieren. Mit 230V und Hitzeentwicklung spasse ich nicht.

                                  wie hast du es denn aktuell gelöst?

                                  Wie oben geschrieben. Schwache 5V Netzteile, wenn möglich aus dem Abverkauf. Und ich habe darauf geachtet, daß die keine Funken schlagen, wenn man sie in die Steckdose steckt. Wenn sie das täten, dann würden sie als kapazitive Last agieren und das würde bei meiner Heizngssteuerung die Relaiskontakte auf Dauer zerstören.
                                  Man kann aber auch ein 230V Relais zw. Indurtrie-Optokoppler parallel zum Magnetventil schalten. Beispiele habe ich oben gelistet https://forum.iobroker.net/post/513395 .
                                  Jedenfalls funktioniert meine Lösung schon seit Jahren. Habe gerade gestern wieder eine Mail bekommen, weil er einen Startvorgang abgebrochen hatte und wiederholen mußte.

                                  1 Antwort Letzte Antwort
                                  0
                                  • C cainam

                                    @klassisch
                                    hmm... gehts oder nicht 😉
                                    wie hast du es denn aktuell gelöst?

                                    da steht doch etwas bei GPI05...
                                    alt text

                                    N Offline
                                    N Offline
                                    Nordischerjung
                                    schrieb am zuletzt editiert von
                                    #17

                                    @cainam
                                    Moin,

                                    wie @klassisch schon schreibt, ich würde auch ein 230V Relais/Optpkoppler parallel zum Ventil schalten und dann das ganze mit einem Wemos D1 mini über Sonoff oder Mqtt auswerten. Billig, einfach und sehr unanfällig.

                                    Gruß Nordischerjung

                                    sonnige Grüße von der Ostsee

                                    E 1 Antwort Letzte Antwort
                                    0
                                    • N Nordischerjung

                                      @cainam
                                      Moin,

                                      wie @klassisch schon schreibt, ich würde auch ein 230V Relais/Optpkoppler parallel zum Ventil schalten und dann das ganze mit einem Wemos D1 mini über Sonoff oder Mqtt auswerten. Billig, einfach und sehr unanfällig.

                                      E Offline
                                      E Offline
                                      Einstein67
                                      schrieb am zuletzt editiert von
                                      #18

                                      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.

                                      P < 80W ---> Brenner ist AUS
                                      P > 150W --> Brenner ist EIN
                                      P > 250W --> Brenner im ZÜNDVORGANG

                                      heiz.png
                                      Läuft seit Jahren absolut zuverlässig. Der so berechnete Ölverbrauch ist ca. 3-5mm identisch mit dem gemessenen Ölstand im Tank ...
                                      verb.png

                                      K C 3 Antworten Letzte Antwort
                                      0
                                      • E Einstein67

                                        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.

                                        P < 80W ---> Brenner ist AUS
                                        P > 150W --> Brenner ist EIN
                                        P > 250W --> Brenner im ZÜNDVORGANG

                                        heiz.png
                                        Läuft seit Jahren absolut zuverlässig. Der so berechnete Ölverbrauch ist ca. 3-5mm identisch mit dem gemessenen Ölstand im Tank ...
                                        verb.png

                                        K Offline
                                        K Offline
                                        klassisch
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #19

                                        @Einstein67 sagte in Brenner Zustand abgreifen:

                                        Der so berechnete Ölverbrauch ist ca. 3-5mm identisch mit dem gemessenen Ölstand im Tank ...

                                        Klasse, woher hast Du die Düsenkonstanten und den Druck? Oder kalibrierst Du das Ganze nach dem Service / Düsentausch.

                                        Stromaufnahme ist auch eine Methode. Mit dem neuen Hauptzähler sieht das so aus
                                        7a6400be-760d-4687-a598-653fc8d5240e-grafik.png
                                        Mit dem S0-Zähler im Heizraum so
                                        07e0e001-6f8a-44ae-9a05-e1d59ba2312b-grafik.png

                                        1 Antwort Letzte Antwort
                                        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);
                                          });
                                          
                                          ChaotC Offline
                                          ChaotC Offline
                                          Chaot
                                          schrieb am zuletzt editiert von
                                          #20

                                          @cainam annst du nicht direkt die Heizungsstuerung auslesen?
                                          Was ist das für eine Heizung? Eventuell ist da eine Lösung möglich.

                                          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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          736

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe