Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8288 mit Tasmota-KNX und BME680 --> portabler Luftqualitätssensor

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    ESP8288 mit Tasmota-KNX und BME680 --> portabler Luftqualitätssensor

    Hallo zusammen,

    ich hoffe es ist OK, wenn ich hier ein eigenen Thema eröffne. Die Problemstellung oder Aussichten für die Lösung werden zwar hier immer mal wieder angesprochen, jedoch konnte ich hier keinen Beitrag finden, der irgendwie konkret auf eine Lösung eingeht.

    Also, was habe ich vor? Ich möchte gerne (zur Steuerung meiner Lüftungsanlage) einen mobilen Luftqualitätssensor haben. Die Idee: Tasmota KNX (habe ich auch bereits geflasht und bekomme im Gruppen-Monitor entsprechend GAs angezeigt, würde sagen, das funktioniert gut und einfach) mit entsprechender Unterstützung eines BME680.

    Ich habe hier einen D1mini, halte ich für die einfachste Form, ginge kleiner, aber so ist alles incl. USB-Anschluß an Bord. Funktioniert auch soweit gut. Dazu habe ich eine Breakout-Platine mit i2c und BME680. Tasmota-Sensors funktioniert auch, zumindest zeigt er mir Werte an.

    Nun bekomme ich es aber nicht hin, mir eine *.bin zu bauen. Möglich wäre IMHO entweder eine Tasmota-KNX mit Unterstützung des BME680 oder eine Tasmota-Sensors mit Unterstützung von KNX. Beides probiert, jeweils der zusätzliche Teil funktioniert nicht.

    Probiert habe ich es, wie hier beschrieben. Die einzelnen Zusatzmodule sind hier beschrieben.

    Hat sich mit der Thematik schonmal jemand befasst? Kennt sich hier jemand so gut mit Tasmota aus, dass er in der Lage wäre, mir nen Tipp zu geben, was ich falsch machen könnte? Vielleicht könnte mir jemand fix ne FW bauen, ist ja grundsätzlich kein Akt, vielleicht übersehe ich ja irgendetwas blödes?

    Oder weiß jemand garm, dass meine Idee völlig bescheuert ist und das so nicht funktioniert????

    Vorab Danke und viele Grüße
    Sven


    #2
    Meines Wissens kann Tasmota am BME nur Temp und Rf, nicht aber Luftqualität - zumindest nicht mit Kalibrierung und ohne bringt nix.

    Die library von Thesing kann das aber.
    https://github.com/thelsing/knx/blob...knx-bme680.ino

    Kommentar


      #3
      Ich nutze einen bme mit der tasmota Sensors. da ich kein Knx Router sondern nur ein Interface habe schiebe ich die sensordaten per mqtt und der Mqtt lbs zu edomi und kann sie dort dann weiterverarbeiten

      Kommentar


        #4
        Zitat von xsven80x Beitrag anzeigen
        Beides probiert, jeweils der zusätzliche Teil funktioniert nicht.
        Mir ging es vor ca. einem Jahr ähnlich, allerdings mit ESPEasy statt Tasmota. Es haben sich auch diverse andere Leute daran probiert (z.B. hier und hier und hier).

        Temp/Hum-Werte sind einfach vom Sensor zu bekommen. Aber irgendwie habe ich den Eindruck, dass noch keiner es geschafft hat, den Sensor in die IAQ-Autokalibrierung zu schicken und danach vernünftige IAQ-Werte zu erhalten. Angeblich liefert ja die originale Bosch-Library sogar noch andere Werte neben Temp/Hum/IAQ, wenn‘s dann erstmal läuft.

        Ich hab irgendwann entnervt aufgegeben, sooo wichtig war mir der Sensor dann auch nicht.

        /tom
        Zuletzt geändert von Tom Bombadil; 02.02.2020, 15:01.

        Kommentar


          #5
          Hallo,
          Zitat von Tom Bombadil Beitrag anzeigen
          Temp/Hum-Werte sind einfach vom Sensor zu bekommen. Aber irgendwie habe ich den Eindruck, dass noch keiner es geschafft hat, den Sensor in die IAQ-Autokalibrierung zu schicken und danach vernünftige IAQ-Werte zu erhalten. Angeblich liefert ja die originale Bosch-Library sogar noch andere Werte neben Temp/Hum/IAQ, wenn‘s dann erstmal läuft.
          Das stimmt nicht.
          Siehe mein Link oben. Damit geht es - sogar direkt mit KNX und aus der ETS programmierbar. Der Thread ist nicht weit weg.
          mbe.PNG

          Hier ein Beispiel-Output
          Code:
          *WM:
          *WM: AutoConnect
          *WM: Connecting as wifi client...
          *WM: Already connected. Bailing out.
          *WM: IP Address:
          *WM: 192.168.177.21
          MemRef: 3FFF15A4 Mem: 3FFF1964 Diff: 960
          MemRef: 3FFF15A4 Mem: 3FFF20DC Diff: 2872
          MemRef: 3FFF15A4 Mem: 3FFF1F0C Diff: 2408
          MemRef: 3FFF15A4 Mem: 3FFF1F24 Diff: 2432
          Zykl. send:20
          setup multicast addr: 224.0.23.12 port: 3671 ip: 192.168.177.21
          result 1
          Timestamp [ms], raw temperature [°C], temperature[°C], pressure [hPa], raw relative humidity [%], humidity [%], gas [Ohm], IAQ, IAQ accuracy, CO2, CO2 Accuracy, breathVocEquivalent, breathVocAccuracy, compGasValue, compGas Accuracy, gasPercentage, gasPercentage Accuracy, staticIAQ, staticIAQ Accuracy, runInStatus, stabStatus
          *WM: freeing allocated params!
          5366, 22.54, 22.54, 100404.72, 40.58, 40.58, 78177.51, 25.00, 0, 500.00, 0, 0.50, 0, 5.57, 0, 0.00, 0, 25.00, 0, 0.00, 1.00
          8363, 22.53, 22.46, 100406.45, 40.62, 40.80, 77382.93, 25.00, 0, 500.00, 0, 0.50, 0, 5.57, 0, 0.00, 0, 25.00, 0, 0.00, 1.00
          11364, 22.52, 22.46, 100406.48, 40.57, 40.75, 81605.41, 25.00, 0, 500.00, 0, 0.50, 0, 5.58, 0, 0.00, 0, 25.00, 0, 0.00, 1.00
          14364, 22.52, 22.45, 100404.73, 40.56, 40.75, 85174.12, 25.00, 0, 500.00, 0, 0.50, 0, 5.59, 0, 0.00, 0, 25.00, 0, 0.00, 1.00
          17364, 22.52, 22.45, 100406.50, 40.53, 40.71, 88224.76, 25.00, 0, 500.00, 0, 0.50, 0, 5.60, 0, 0.00, 0, 25.00, 0, 0.00, 1.00
          von jetzt gerade.

          Anbei die bin. Die knxprod findet ihr unter https://github.com/thelsing/knx/blob...bme680.knxprod
          Ihr braucht einen KNX-IP-Router (kann knxd sein).

          Gruß,

          Hendrik
          Angehängte Dateien
          Zuletzt geändert von henfri; 02.02.2020, 15:27.

          Kommentar


            #6
            Ok, ich präzisiere meine Aussage:

            ----> Aber irgendwie habe ich den Eindruck, dass noch keiner es mit Tasmota oder ESP-Easy geschafft hat [...]

            Mangels KNX im Haus kann ich mit der anderen Lösung leider nix anfangen, meine Aussage bezog sich daher auf ein out-of-the-box Tasmota ohne KNX-Anbindung.

            /tom

            Kommentar


              #7
              Hallo zusammen,

              danke erstmal für die Beteiligung.

              Irgendwie hatte ich zwar das Thema von Thesing gesehen, aber irgendwie nicht in Kombination mit dem BME680 auf dem Schirm. Danke für den Hinweis und danke vor allem für die *.bin. Das schreit nach einem fixen Versuch, bin leider ab morgen früh auf Dienstreise. Mal sehen, ob ich es vorher noch schnell schaffe.

              Die Geschichte über MQTT zu lösen wäre mein letzter Ausweg. Die Lösung direkt in KNX zu schreiben halte ich für die beste.

              Danke, ich werde berichten!

              Gruß
              Sven

              Kommentar


                #8
                henfri : Danke für deinen Tipp. Habe gerade die *.bin geflasht, das WLAN kann ich auch über das WebIf konfigurieren. Leider bekomme ich das Modul nicht in den Programmiermodus.

                LED habe ich, so wie thelsing es in seinem Thread beschreibt, auf GPIO16, einen Taster habe ich auf GPIO0 angeschlossen.

                knxprod habe ich in ETS importiert, hier könnte ich dann die PA schreiben.

                Da ich jedoch nicht in den Prohrammiermodus komme, bekomme ich die PA auch nicht geschrieben und komme nicht weiter. Hast du hier nen Tipp für nmich?

                An welchen Pins ist dann die BME-Platine angeschlossen (SCL/SCA)?

                Danke vorab und Grüße
                Sven

                Kommentar


                  #9
                  Ja, ich glaube die Kommunikation mit dem BME muss funktionieren. Sonst kommst du nicht in den Programmiermodus.

                  Habe die Belegung nicht hier. Aber ein Foto.
                  Angehängte Dateien

                  Kommentar


                    #10
                    henfri : Danke, soweit ich das erkennen kann, ist SDA an D2 und SCL an D1 angeschlossen. Zumindest schonmal anders, als ich es hatte... Nach dem Umlöten leider genau so wenig erfolgreich.

                    Terminal sagt: Etwas mit BME680 Error Code : 02. Der Error-Code kommt auch, wenn ich die BME-Platine komplett weg lasse. Also scheint etwas mit der Kommunikation des BME nicht zu passen.

                    Leider bekomme ich den Code im Arduino nicht kompiliert, da fehlt mir einfach das Wissen. Im Code habe ich etwas entdeckt, das es scheinbar 2 verschiedene Möglichkeiten gibt, die BME-Platine anzusprechen (primary und secondary). Da ich es nicht kompiliert bekomme, kann ich hier leider auch nicht probieren...

                    Hmm... Mal weiter sehen, was ich nun mache.....

                    Gruß
                    Sven

                    Kommentar


                      #11
                      Zitat von xsven80x Beitrag anzeigen
                      Hmm... Mal weiter sehen, was ich nun mache.....
                      Schau mal hier, da ist die Pinbelegung des D1. Check nochmal den Anschluss des BME

                      Kommentar


                        #12
                        Ich gucke heute Abend Mal nach.

                        Kommentar


                          #13
                          Hallo,

                          die Belegung SDA an D2 und SCL an D1 ist richtig.

                          Zitat von xsven80x Beitrag anzeigen
                          Leider bekomme ich den Code im Arduino nicht kompiliert, da fehlt mir einfach das Wissen
                          Und mir die Glaskugel ;-)


                          2 verschiedene Möglichkeiten gibt, die BME-Platine anzusprechen (primary und secondary)
                          Ja, es gibt zwei I2C Adressen unter denen sich der BME melden kann.

                          Mein Sketch lauscht auf 0x77.
                          /** BME680 I2C addresses */
                          #define BME680_I2C_ADDR_PRIMARY UINT8_C(0x77)
                          #define BME680_I2C_ADDR_SECONDARY UINT8_C(0x76)

                          Falls der Sensor (z.B. mehrere Sensoren im Parallelbetrieb) über die Alternativ-Adresse 0x76 angesprochen wird, muss das SDO pin vom BME680 mit GND verbunden werden.
                          Vielleicht ist das bei deinem Sensor umgekehrt (Default ist 0x77?). Es gibt I2C scanner für Arduino mit denen du das ermitteln kannst. Oder im Datenblatt deiner Platine.
                          Oder du probierst die bin aus dem Anhang. Die Lauscht auf 0x76.

                          Gruß,
                          Hendrik
                          Angehängte Dateien

                          Kommentar


                            #14
                            Juhuaaaa henfri ... Ich bekomme Werte! Das war's, 0x76 ist die Adresse meiner BME-Platine. Konnte direkt PA und Applikation schreiben und habe direkt Werte bekommen.

                            Jetzt muss ich nur mal analysieren, was die Werte genau bedeuten. Mir kommt es auf die Luftqualität an, den Wert kann ich noch gar nicht so genau deuten. Hab mal nen Datenarchiv angelegt und werde den Verlauf des Wertes mal loggen und beobachten!

                            Vielen vielen Dank an Hendrik und vor allem an thesing für Unterstützung und vor allem für die ganze Arbeit der Umsetzung! :-)

                            Gruß
                            Sven

                            Kommentar


                              #15
                              Top!
                              Gerne

                              Kommentar

                              Lädt...
                              X