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

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

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

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

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 Offline
    C Offline
    cainam
    wrote on last edited by
    #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 Replies 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);
      });
      
      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      wrote on last edited by
      #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 Reply Last reply
      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
        wrote on last edited by
        #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 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);
          });
          
          GlasfaserG Offline
          GlasfaserG Offline
          Glasfaser
          wrote on last edited by 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 Reply Last reply
          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
            wrote on last edited by
            #5

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

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

            GlasfaserG 1 Reply Last reply
            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
              wrote on last edited by 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 Reply Last reply
              0
              • C Offline
                C Offline
                cainam
                wrote on last edited by
                #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 Reply Last reply
                0
                • K Offline
                  K Offline
                  klassisch
                  Most Active
                  wrote on last edited by 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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by 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 Reply Last reply
                        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
                          wrote on last edited by 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 Replies Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Replies Last reply
                                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
                                  wrote on last edited by 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 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by
                                      #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 Replies Last reply
                                      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
                                        wrote on last edited by
                                        #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 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);
                                          });
                                          
                                          ChaotC Offline
                                          ChaotC Offline
                                          Chaot
                                          wrote on last edited by
                                          #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 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

                                          469

                                          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