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. Skripten / Logik
  4. [gelöst] (vorübergehend) Luftgütesensor BME 680

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[gelöst] (vorübergehend) Luftgütesensor BME 680

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 3 Kommentatoren 6.7k Aufrufe 1 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.
  • ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #2

    Ich habe mich jetzt mangels Javasript Kentnissen an Blockly versucht.

    Kann das funktionieren?

    Zunächst das Script getriggert auf Änderung des Gassensors und im zweiten Bild die beiden Formeln
    5779_luftgueteformel1.jpg
    5779_luftguete1.jpg

    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
    • ChaotC Offline
      ChaotC Offline
      Chaot
      schrieb am zuletzt editiert von
      #3

      Jetzt stellt sich eigentlich die Frage wie ich aus der Formel das Ergebnis in den Datenpunkt bekomme.

      Irgendwas übersehe ich da. Mir wird aktuell nur "true" reingeschrieben.

      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
      • ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #4

        Für heute reichts erstmal. Mir raucht der Kopf.

        Ich habe jetzt einen Wert der wie ein IAQ aussieht. Allerdings mit 8 Dezimalstellen. Das will ich noch ändern.

        Dazu habe ich noch eine Ausertung erstellt mit der ich dann ein Farbfeld steuern möchte.

        Allerdings habe ich das noch nicht getestet. Ich denke aber das das so nicht funktionieren wird.

        Wenn jemand Vorschläge hat oder das Ganze vereinfachen kann dann bitte her damit.
        5779_luftgueteauswertung.jpg
        5779_luftgueteb.jpg
        5779_luftguetea.jpg

        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
        • G Offline
          G Offline
          Garf
          schrieb am zuletzt editiert von
          #5

          @Chaot:

          Ich habe über Aliexpress einen kleinen Luftgütesensor bezogen. Das Ding nennt sich BM680. `
          Mit deinem Beitrag hast Du mich wieder irgendwie angefixt und nun denke ich gerade darüber nach mir auch so ein Teil zu bestellen. Welchen hast Du bei Aliexpress bestellt?

          Der Fühler soll an die I2C Schnittstelle angeschlossen werden.

          Für mich kämen folgende Fühler in Frage:

          https://www.amazon.de/BlueDot-BME680-Se … I2C+BME680

          https://www.watterott.com/de/BME680-Breakout

          Wobei dieser mein Favorit wäre:

          https://de.aliexpress.com/item/DFRobot- … autifyAB=0

          1 Antwort Letzte Antwort
          0
          • ChaotC Offline
            ChaotC Offline
            Chaot
            schrieb am zuletzt editiert von
            #6

            Ich wollte recht klein:

            https://de.aliexpress.com/item/BME680-D … 4c4djehDSC

            Allerdings habe ich das Script immer noch nicht so richtig am laufen.

            Irgendwie scheint auch die Formel in der Form nicht zu stimmen.

            Wenn ich die Luft "verunreinige" (Taschentuch mit Alkohol) sinkt bei mir der gelesene Widerstandswert. Also genau umgekehrt zur Formel.

            Da werde ich mir das am Wochenende mal genauer anschauen müssen.

            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
            • G Offline
              G Offline
              Garf
              schrieb am zuletzt editiert von
              #7

              @Chaot:

              Ich wollte recht klein: ` Und wie eingebunden, I²C- oder SPI-Bus?

              > Da werde ich mir das am Wochenende mal genauer anschauen müssen.
              Immer gut wenn sich schon jemand in das Thema reinhängt. :mrgreen:

              Ich werde dann mal meinen Favoriten bestellen.

              1 Antwort Letzte Antwort
              0
              • ChaotC Offline
                ChaotC Offline
                Chaot
                schrieb am zuletzt editiert von
                #8

                Das hängt an einem Sonoff SV mit Tasmota Firmware und ist dort über I²C Bus eingebunden.

                Die Daten werden per MQTT an den ioBroker gesendet und dort dann per Script (hoffentlich irgendwann einmal) weiterverarbeitet um dann in VIS als mehrfarbige Fläche (Ampel) dargestellt zu werden.

                Das Projekt ist jetzt gerade eine Woche alt, aber ich bin mit Scripten nicht so 100% fit das ich wirklich lange grübeln muss wie ich was umsetzen kann.

                Auch für Blockly (obwohl im Grunde einfach) bin ich wohl etwas alt.

                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
                • ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #9

                  Nach ein paar Tagen herumexperimentieren habe ich den Eindruck gewonnen das mit der Tasmota Firmware irgendwas nicht stimmen kann.

                  1. Mein Sensor verhält sich genau umgekehrt zur Beschreibung. Lege ich einen Lappen mit Spiritus neben den Sensor geht der Wert auf 9 kOhm RUNTER! Laut Bosch sollte der Wert nach oben gehen.

                  2. Im Datenblatt wird eine Heiz- und Ausleseperiode beschrieben. Das kann ich an den gelieferten Werten nicht erkennen. Ich sehe einen ständig schwankenden Widerstandswert der offensichtlich einfach nur ausgelesen wird ohne einen Messrhythmus zu befolgen.

                  3. Wenn ich die Weboberfläche des Sensors offen lasse steigt der Widerstandswert ständig an ohne das sich an der Luft etwas verändern würde.

                  Von daher habe ich meine Experimente mit dem Script zunächst zurückgestellt bis ich herausgefunden habe was hier falsch läuft.

                  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
                  • ChaotC Offline
                    ChaotC Offline
                    Chaot
                    schrieb am zuletzt editiert von
                    #10

                    Jetz wird es schräg.

                    Da mir derzeit keine bessere Lösung einfällt und Bosch offensichtlich die Formeln geheim hält werde ich langfristig vermutlich nicht beim BME680 bleiben.

                    Übergangsweise habe ich mir eine Lösung gebastelt die Meine Zwecke erfüllen müsste:

                    Aus dem angehängten Tabellenblatt (von adafruit) habe ich mir folgende Formel konstruiert:

                    Basistemperatur: 21°C
                    Basisluftfeuchte: 40%
                    Basiswert: 5 kOhm
                    
                    Wichtung:
                    Temperatur: 4,7%
                    Luftfeuchte: 8%
                    Luftgüte: 70%
                    
                    A= Temperatur
                    B= Luftfeuchte
                    C= Widerstandswert in kOhm
                    
                    ((100-21-A)/(100-21)*(0,047*100))+((100-40-B)/(100-40)*(0,08*100))+((C/5)*(0,7*10))
                    

                    Da hier aber die Werte jetzt noch auf IAQ angepasst werden sollten habe ich die Werte etwas verschoben damit ich bei ca. 500 ende:

                    ((79-A)/(79*3,3))+((60-B)/(60*5,6))+((C/5)*4,9)
                    oder
                    ((79-A)/260,7)+((60-B)/336)+((C/5)*4,9)
                    

                    Da jetzt die Werte offensichtlich nicht der gängigen IAQ Tabelle entsprechen habe ich meine Grenzwerte entsprechend angepasst.

                    Da ich hier mit recht wenig Umweltverschmutzung lebe habe ich den Grenzwert "offenes Fenster neben Sensor" als Übergangswert zur "normalen" Luftqualität angelegt.

                    Somit habe ich dann für AIQ folgende Grenzwerte:

                    500 - 301 Sehr gut

                    300 - 251 Normal

                    200 - 151 etwas Schlecht

                    150 - 101 Schlecht

                    100 - 51 sehr schlecht

                    50 - 0 Extrem schlecht

                    Ich denke mit dem Kompromiss kann ich aktuell arbeiten und suche jetzt einen Sensor der nicht "Top Secret" ist.

                    Falls mir jemand noch bei der Umsetzung in VIS helfen könnte wäre ich recht dankbar.

                    Ich dachte an ein farbig hinterlegtes Feld das den Wert anzeigt und entsprechend die Farbe ändert. Leider habe ich keine Ahnung welches Widget oder welche Kombination dazu geeignet wäre.
                    5779_slide1.jpg

                    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
                    • ChaotC Offline
                      ChaotC Offline
                      Chaot
                      schrieb am zuletzt editiert von
                      #11

                      So, dank tatkräftiger Hilfe von Paul53 habe ich es geschafft eine Anzeigefläche in VIS zu basteln.

                      Das Script für die Auswertung:

                      const Luftguete = "javascript.1.Luftguete"/*Luftguete*/;
                      
                      function setQualitaet(x) { 
                        var y = 0;
                        if(x > 50) y = 1;
                        if(x > 100) y = 2;
                        if(x > 150) y = 3;
                        if(x > 200) y = 4;
                        if(x > 300) y = 5;
                        setState("javascript.1.Luftqualität"/*Luftqualität*/, y, true);
                      }
                      
                      setQualitaet(getState(Luftguete).val); // Skriptstart
                      
                      on(Luftguete, function(dp) { // triggert bei Wertänderung
                        setQualitaet(dp.state.val);
                      });
                      

                      Schreibt einen Datenpunkt "Luftqualität" in das Objekt Javasript.1.

                      In VIS nehme ich nun ein "Image 8" und frage dort den Wert des Datenpunkts ab.

                      Als Bilder verwende ich einfach 100x100 Bilder mit entsprechender Hintergrundfarbe. Optional wären auch Smilies denkbar.

                      Ich danke erst mal allen die sich auch Gedanken zu dem Thema gemacht haben und hoffe das meine vorübergehende Lösung für die ersten Schritte mit dem BME680 taugt.

                      Wenn das jemand nachbauen möchte darf er sich das gerne mitnehmen.

                      Das Erfassungssscript

                      on({id: 'sonoff.0.Umweltsensor.BME680_Gas', change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        setState("javascript.1.Luftguete"/*Luftguete*/, ((79 - getState("sonoff.0.Umweltsensor.BME680_Temperature").val) / 260.7 + (60 - getState("sonoff.0.Umweltsensor.BME680_Humidity").val) / 336 + (getState("sonoff.0.Umweltsensor.BME680_Gas").val / 5) * 4.9), true);
                      });
                      
                      

                      Noch ein Hinweis: Alle beiden scripte laufen in der Instanz javascript.1. Bei einer Übernahme muss das eventuell an die eigene Situation angepasst werden.

                      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.

                      G 1 Antwort Letzte Antwort
                      0
                      • ChaotC Chaot

                        So, dank tatkräftiger Hilfe von Paul53 habe ich es geschafft eine Anzeigefläche in VIS zu basteln.

                        Das Script für die Auswertung:

                        const Luftguete = "javascript.1.Luftguete"/*Luftguete*/;
                        
                        function setQualitaet(x) { 
                          var y = 0;
                          if(x > 50) y = 1;
                          if(x > 100) y = 2;
                          if(x > 150) y = 3;
                          if(x > 200) y = 4;
                          if(x > 300) y = 5;
                          setState("javascript.1.Luftqualität"/*Luftqualität*/, y, true);
                        }
                        
                        setQualitaet(getState(Luftguete).val); // Skriptstart
                        
                        on(Luftguete, function(dp) { // triggert bei Wertänderung
                          setQualitaet(dp.state.val);
                        });
                        

                        Schreibt einen Datenpunkt "Luftqualität" in das Objekt Javasript.1.

                        In VIS nehme ich nun ein "Image 8" und frage dort den Wert des Datenpunkts ab.

                        Als Bilder verwende ich einfach 100x100 Bilder mit entsprechender Hintergrundfarbe. Optional wären auch Smilies denkbar.

                        Ich danke erst mal allen die sich auch Gedanken zu dem Thema gemacht haben und hoffe das meine vorübergehende Lösung für die ersten Schritte mit dem BME680 taugt.

                        Wenn das jemand nachbauen möchte darf er sich das gerne mitnehmen.

                        Das Erfassungssscript

                        on({id: 'sonoff.0.Umweltsensor.BME680_Gas', change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          setState("javascript.1.Luftguete"/*Luftguete*/, ((79 - getState("sonoff.0.Umweltsensor.BME680_Temperature").val) / 260.7 + (60 - getState("sonoff.0.Umweltsensor.BME680_Humidity").val) / 336 + (getState("sonoff.0.Umweltsensor.BME680_Gas").val / 5) * 4.9), true);
                        });
                        
                        

                        Noch ein Hinweis: Alle beiden scripte laufen in der Instanz javascript.1. Bei einer Übernahme muss das eventuell an die eigene Situation angepasst werden.

                        G Offline
                        G Offline
                        gutgut30
                        schrieb am zuletzt editiert von
                        #12

                        @Chaot
                        Besten Dank für das Teilen deines Scriptes.

                        Als Tipp für Newbies die evtl. genau so fragend vor dem PC sitzen und sich wundern warum immer nur 100 als Wert erscheint:
                        Ihr müsst den Zahlenbereich des angelegten Datenpunktes "Luftguete" entsprechend anpassen ;)

                        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

                        571

                        Online

                        32.7k

                        Benutzer

                        82.4k

                        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