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. [gelöst] BME 680 Werte in ioBroker

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst] BME 680 Werte in ioBroker

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
6 Beiträge 4 Kommentatoren 1.9k Aufrufe
  • Ä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
    #1

    Ich habe mir ein kleines Bastelopbjekt besorgt:

    Einen Sonoff DEV mit Tasmota 6.0.0 Firmware

    Dazu einen BME 680

    Unter Tasmota bzw. der Weboberfläche erhalte ich vom BME 680 einen Widerstandswert für den Gassensor.

    Wie schaffe ich es den Widerstandswert in den ioBroker zu bekommen?

    Laut Konsole wird der scheinbar mit MQTT versendet, aber in den Objekten erscheinen nur Temperatur, Luftfeuchte und Luftdruck.

    22:02:23 MQT: tele/sonoff/STATE = {"Time":"2018-06-07T22:02:23","Uptime":"0T00:20:54","Vcc":3.190,"Wifi":{"AP":1,"SSId":"xxxx","RSSI":92,"APMac":"08:8A:20:D4:C7:3E"}}
    22:02:23 MQT: tele/sonoff/SENSOR = {"Time":"2018-06-07T22:02:23","BME680":{"Temperature":28.9,"Humidity":52.1,"Pressure":985.7,"Gas":165.32},"TempUnit":"C"}
    

    Zweite Frage:

    Hat den schon jemand im Einsatz und eventuell schon ein Projekt gestartet?

    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
    • R Offline
      R Offline
      Ratho
      schrieb am zuletzt editiert von
      #2

      Ich wollte auch mal einen GPIO Pin am Sonoff nutzen - ich habe das dann nur geschafft indem ich den MQTT Adapter installiert habe - dort waren die Werte dann … wäre aber schöner wenn das im Sonoff Adapter auch ankommen würde.

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        gemu
        schrieb am zuletzt editiert von
        #3

        lies mal hier => https://github.com/ioBroker/ioBroker.sonoff/issues/43

        autogenerate objects test version

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

          P_E_R_F_E_K_T!

          Herzlichen Dank. Genau was ich gesucht habe.

          Jetzt noch die Werte umrechnen und es sollte einen guten Umweltsensor abgeben. Das wird zwar noch eine Nuss, aber ich habe ja Zeit.

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

            Hallo Chaot,

            Stehe vor dem gleichen Problem mit dem BME680. Bis auf Gas werden mir die Werte im Sonoff Adapter angezeigt.

            Den o.g. link habe ich gelesen finde dort allerdings keine Antwort mit der ich was anfangen kann.

            Wie hast Du das gelöst? @Chaot:

            P_E_R_F_E_K_T!

            Herzlichen Dank. Genau was ich gesucht habe.

            Jetzt noch die Werte umrechnen und es sollte einen guten Umweltsensor abgeben. Das wird zwar noch eine Nuss, aber ich habe ja Zeit. `

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

              Ok

              das wird etwas ausführlicher:

              Das Script für den Sensor:

              Ich werte zunächst die einzelnen Sensorwerte aus und beschreibe damit einen Datenpunkt:

              Luftdruck

              ! ````
              const Druck = "sonoff.0.Umweltsensor.BME680_SeaPressure"/Umweltsensor BME680 SeaPressure/;
              ! function setLuftdruck(x) {
              var y = 0;
              if(x > 980) y = 1;
              if(x > 1000) y = 2;
              if(x > 1020) y = 3;
              if(x > 1040) y = 4;
              if(x > 1080) y = 5;
              setState("javascript.1.Luftdruck"/Luftdruck/,y, true);
              }
              ! setLuftdruck(getState(Druck).val); // Skriptstart
              ! on(Druck, function(dp) { // triggert bei Wertänderung
              setLuftdruck(dp.state.val);
              });

              Luftfeuchte
              >! ````
              const Feuchte = "sonoff.0.Eingang.SI7021_Humidity"/*Eingang SI7021  Humidity*/;
              >! function setLuftfeuchte(x) { 
                var y = 0;
                if(x > 20) y = 1;
                if(x > 40) y = 2;
                if(x > 60) y = 3;
                if(x > 80) y = 4;
                if(x > 100) y = 5;
                setState("javascript.1.Luftfeuchte"/*Luftfeuchte*/, y, true);
              }
              >! setLuftfeuchte(getState(Feuchte).val); // Skriptstart
              >! on(Feuchte, function(dp) { // triggert bei Wertänderung
                setLuftfeuchte(dp.state.val);
              });
              

              Temperatur

              ! ````
              const Lufttemperatur = "sonoff.0.Eingang.SI7021_Temperature"/Eingang SI7021 Temperature/;
              ! function setTemperatur(x) {
              var y = 0;
              if(x > -10) y = 1;
              if(x > 10) y = 2;
              if(x > 18) y = 3;
              if(x > 26) y = 4;
              if(x > 34) y = 5;
              setState("javascript.1.Lufttemperatur"/Lufttemperatur/, y, true);
              }
              ! setTemperatur(getState(Lufttemperatur).val); // Skriptstart
              ! on(Lufttemperatur, function(dp) { // triggert bei Wertänderung
              setTemperatur(dp.state.val);
              });

              Daraus berechne ich den Wert der Luftgüte:
              
              >! ````
              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);
              });
              

              und wandle das dann noch in eine Ampelanzeige um:

              ! ````
              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);
              });

              bzw. generiere ich aus den Werten 1-5 mit dem Widget eine Farbige Anzeige.
              
              Inwieweit die Werte jetzt genau den Vorgaben entsprechen kann ich dir leider nicht beantworten, da es scheinbar ein Staatsgeheimnis ist wie die Luftgüte wirklich berechnet wird. Dazu kommt der "hochgeheime" BME680 dessen Werte auch nicht wirklich sauber dokumentiert sind.
              
              Ich denke man könnte das alles in ein Script packen, aber da habe ich mal die Finger davon gelassen. Da gibt es hier Spezialisten die das mit einem Blinzeln erledigen. Ich persönlich bin froh das es so verlässlich 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
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              590

              Online

              32.6k

              Benutzer

              82.0k

              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