Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Homekit Luftwerte ausgeben als Qualität

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    944

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Homekit Luftwerte ausgeben als Qualität

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
2 Beiträge 2 Kommentatoren 388 Aufrufe 2 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.
  • T Offline
    T Offline
    TomTom24
    schrieb am zuletzt editiert von TomTom24
    #1

    Mit diesem Script steuere ich in Homekit die Anzeige der Luftqualität. Der schlechtere der beiden Werte wird für die Gesamtbewertung genommen.
    IMG_5077.jpeg IMG_5078.PNG

    Was braucht ihr:

    1. CO2 oder
    2. VOC oder
    3. beides
    4. Yhaka Adapter

    Einbauen:

    1. Script in global_Funktionen einfügen
    // Luftqualität für Homekit
    // 1 beste Qualität, 5 schlechteste Qualität 
    // es wird immer die schlechteste Qualität ausgegeben.
    
    function bewerteLuftqualitaet(co2, voc) {
      var co2Bewertung = 0;
      var vocBewertung = 0;
    // 1 sehr gut - 5 sehr schlecht
      if (co2 < 800) {
        co2Bewertung = 1;
      } else if (co2 < 1000) {
        co2Bewertung = 2;
      } else if (co2 < 1200) {
        co2Bewertung = 3;
      } else if (co2 < 1400) {
        co2Bewertung = 4;
      } else {
        co2Bewertung = 5;
      }
    
      if (voc < 65) {
        vocBewertung = 1;
      } else if (voc < 220) {
        vocBewertung = 2;
      } else if (voc < 660) {
        vocBewertung = 3;
      } else if (voc < 5500) {
        vocBewertung = 4;
      } else {
        vocBewertung = 5;
      }
    
      if (co2Bewertung > vocBewertung) {
        return co2Bewertung ;
      } else {
        return vocBewertung;
      }
    }
    
    

    2. Datenpunkte anlegen:
    Ihr müsst für jeden Raum einen Raumklima Wert anlegen. Wenn ihr meine Pfade nutzt, müsst ihr nichts weiter anpassen:
    0_userdata.0.Raumklima.Raumklima_<raum>
    Den Raumnamen nehme ich aus dem Objektname des Auslösers - dass heißt, dass der Raumname immer gleich sein muss, sonst wird nichts geschrieben.

    objekte_raumklima_iobroker.jpg

    Das folgende Script müsst ihr noch anlegen und laufen lassen. Die Sensoren lese ich als array aus - da müsst ihr mal schauen, wie die bei Euch heißen. Meine werden über openknx ausgelesen und kommen von Steinel true presence - bei mir heissen die immer

    • CO2_Messwert
    • VOC_Messwert
    // Luftqualität für Homekit berechnen
    
    on({ id: [].concat(Array.prototype.slice.apply($('channel[state.id=*VOC_Messwert*]'))).concat(Array.prototype.slice.apply($('channel[state.id=*CO2_Messwert*]'))), change: 'ne' }, async (obj) => {
    console.log('Datenpunkt ' + obj.id + ' wurde geändert.');    
    
    // hier lese ich den Raum aus meinen KNX Daten, in dem ich den String nach Punkten teile und mir das Teil mit dem Raumname nehme. 
    var datenpunkt = obj.id;
    var teile = datenpunkt.split('.');
    //console.log(teile);
    var haus = teile[4];
    //console.log("haus:" + haus)
    teile = haus.split('_');
    var raum = teile[0];
    
    // jetzt baue ich den Raumnamen ein, so dass das ganze Script übersichtlich bleibt.
    
    var co2=getState("openknx.0.Messwerte_BWM.Haus."+raum+"_CO2_Messwert").val;
    var voc=getState("openknx.0.Messwerte_BWM.Haus."+raum+"_VOC_Messwert").val;
    setState("0_userdata.0.Raumklima.Raumklima_"+raum,bewerteLuftqualitaet(co2,voc));
    console.log(raum + "-Luftqualität: "+bewerteLuftqualitaet(co2,voc) );
    });
    
    

    In Yahka legt ihr einen Airquality Sensor an.
    In den Datenpunkten Airqality tragt ihr dann den Datenpunkt für die Qualität ein
    z.b. Arbeitszimmer: 0_userdata.0.Raumklima.Raumklima_Arbeitszimmer
    Ihr könnt natürlich noch unter dem Voc Sensor die Vocdaten eintragen.

    yahka2.jpg yahka3.jpg

    Das war es schon. Bei Fragen einfach fragen.
    Gruß Tom

    B 1 Antwort Letzte Antwort
    1
    • T TomTom24

      Mit diesem Script steuere ich in Homekit die Anzeige der Luftqualität. Der schlechtere der beiden Werte wird für die Gesamtbewertung genommen.
      IMG_5077.jpeg IMG_5078.PNG

      Was braucht ihr:

      1. CO2 oder
      2. VOC oder
      3. beides
      4. Yhaka Adapter

      Einbauen:

      1. Script in global_Funktionen einfügen
      // Luftqualität für Homekit
      // 1 beste Qualität, 5 schlechteste Qualität 
      // es wird immer die schlechteste Qualität ausgegeben.
      
      function bewerteLuftqualitaet(co2, voc) {
        var co2Bewertung = 0;
        var vocBewertung = 0;
      // 1 sehr gut - 5 sehr schlecht
        if (co2 < 800) {
          co2Bewertung = 1;
        } else if (co2 < 1000) {
          co2Bewertung = 2;
        } else if (co2 < 1200) {
          co2Bewertung = 3;
        } else if (co2 < 1400) {
          co2Bewertung = 4;
        } else {
          co2Bewertung = 5;
        }
      
        if (voc < 65) {
          vocBewertung = 1;
        } else if (voc < 220) {
          vocBewertung = 2;
        } else if (voc < 660) {
          vocBewertung = 3;
        } else if (voc < 5500) {
          vocBewertung = 4;
        } else {
          vocBewertung = 5;
        }
      
        if (co2Bewertung > vocBewertung) {
          return co2Bewertung ;
        } else {
          return vocBewertung;
        }
      }
      
      

      2. Datenpunkte anlegen:
      Ihr müsst für jeden Raum einen Raumklima Wert anlegen. Wenn ihr meine Pfade nutzt, müsst ihr nichts weiter anpassen:
      0_userdata.0.Raumklima.Raumklima_<raum>
      Den Raumnamen nehme ich aus dem Objektname des Auslösers - dass heißt, dass der Raumname immer gleich sein muss, sonst wird nichts geschrieben.

      objekte_raumklima_iobroker.jpg

      Das folgende Script müsst ihr noch anlegen und laufen lassen. Die Sensoren lese ich als array aus - da müsst ihr mal schauen, wie die bei Euch heißen. Meine werden über openknx ausgelesen und kommen von Steinel true presence - bei mir heissen die immer

      • CO2_Messwert
      • VOC_Messwert
      // Luftqualität für Homekit berechnen
      
      on({ id: [].concat(Array.prototype.slice.apply($('channel[state.id=*VOC_Messwert*]'))).concat(Array.prototype.slice.apply($('channel[state.id=*CO2_Messwert*]'))), change: 'ne' }, async (obj) => {
      console.log('Datenpunkt ' + obj.id + ' wurde geändert.');    
      
      // hier lese ich den Raum aus meinen KNX Daten, in dem ich den String nach Punkten teile und mir das Teil mit dem Raumname nehme. 
      var datenpunkt = obj.id;
      var teile = datenpunkt.split('.');
      //console.log(teile);
      var haus = teile[4];
      //console.log("haus:" + haus)
      teile = haus.split('_');
      var raum = teile[0];
      
      // jetzt baue ich den Raumnamen ein, so dass das ganze Script übersichtlich bleibt.
      
      var co2=getState("openknx.0.Messwerte_BWM.Haus."+raum+"_CO2_Messwert").val;
      var voc=getState("openknx.0.Messwerte_BWM.Haus."+raum+"_VOC_Messwert").val;
      setState("0_userdata.0.Raumklima.Raumklima_"+raum,bewerteLuftqualitaet(co2,voc));
      console.log(raum + "-Luftqualität: "+bewerteLuftqualitaet(co2,voc) );
      });
      
      

      In Yahka legt ihr einen Airquality Sensor an.
      In den Datenpunkten Airqality tragt ihr dann den Datenpunkt für die Qualität ein
      z.b. Arbeitszimmer: 0_userdata.0.Raumklima.Raumklima_Arbeitszimmer
      Ihr könnt natürlich noch unter dem Voc Sensor die Vocdaten eintragen.

      yahka2.jpg yahka3.jpg

      Das war es schon. Bei Fragen einfach fragen.
      Gruß Tom

      B Offline
      B Offline
      BooStar
      schrieb am zuletzt editiert von
      #2

      @tomtom24
      Hallo Tom,
      vielen Dank für diese Lösung. Ich habe nach deiner Anleitung erfolgreich einen KNX-Sensor in HomeKit integrieren können. Ich suche allerdings noch nach einer Lösung um die ppb, welche vom KNX-Sensor (ebenfalls ein Steinel Multisensor) kommen, nach ug/m³ umzurechnen.
      Auch die Möglichkeit die Einheit in HomeKit zu ändern habe ich nicht gefunden.

      Hast du vielleicht eine idee?

      LG
      BooStar

      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

      465

      Online

      32.6k

      Benutzer

      82.2k

      Themen

      1.3m

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

      • Du hast noch kein Konto? Registrieren

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