Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Temperatur/Luftfeuchtigkeitssensor einbinden

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Temperatur/Luftfeuchtigkeitssensor einbinden

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Testpilot 0 last edited by Testpilot 0

      Hallo zusammen,

      ich habe mit einem ESP8266 und DHT11 einen Sensor gebaut .

      Diesen Sensor möchte ich nun mittels Vis im IO-Broker einbinden. Da ich Neuling auf dem Gebiet bin, bitte ich um einen Tip zum weiteren vorgehen.

      Muss ich den Sensor ersteinmal als Objekt in IO-Broker einbinden oder erfolgt die Abfrage direkt per Vis?

      Danke und Gruß!

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Testpilot 0 last edited by

        @testpilot-0 sagte in Temperatur/Luftfeuchtigkeitssensor einbinden:

        Diesen Sensor möchte ich nun mittels Vis im IO-Broker einbinden

        Vis dient ausschließlich (??) der Visualisierung von Datenpunkten aus dem ioBroker.

        Also musst du

        @testpilot-0 sagte in Temperatur/Luftfeuchtigkeitssensor einbinden:

        den Sensor ersteinmal als Objekt in IO-Broker einbinden

        Da du keine weiteren Infos lieferst kann ich dir nicht sagen wie.

        @testpilot-0 sagte in Temperatur/Luftfeuchtigkeitssensor einbinden:

        mit einem ESP8266

        könnte MQTT möglich sein oder ESPHome???

        T 1 Reply Last reply Reply Quote 0
        • T
          Testpilot 0 @Homoran last edited by

          @homoran ok, so langsam verstehe ich. D.h. ich muss den Sensor z.B. mit dem MQTT-Client in den IO-Broker einbinden?

          Homoran M 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Testpilot 0 last edited by

            @testpilot-0 sagte in Temperatur/Luftfeuchtigkeitssensor einbinden:

            D.h. ich muss den Sensor z.B. mit dem MQTT-Client in den IO-Broker einbinden?

            Ja, aber...
            Ob dein Sensor MQTT spricht und dementsprechend konfiguriert ist weiß ich nicht

            T 1 Reply Last reply Reply Quote 0
            • T
              Testpilot 0 @Homoran last edited by

              @homoran So sieht der Code aus:

              #include <ESP8266WiFi.h>
              #include "DHT.h"
               
              const char* ssid = ""; //SSID aus dem Router
              const char* password = ""; //Passwort für den Zugang zum WLAN
               
              int ledPin = D5; //digitaler PIN 5 des Wemos D1 an welchem die LED angeschlossen ist.
              int ledStatus = LOW; //aktueller Status der LED (default / start  -> AUS)
              WiFiServer server(80); //Port auf welchem der Server laufen soll.
              
               #define DHT11PIN 2 
               #define DHT11TYPE DHT11
               DHT dht11(DHT11PIN, DHT11TYPE);
               
              void setup() {
                Serial.begin(115200); //Baudrate für die Serielle Geschwindigkeit.
                delay(10); //10ms. Warten damit die Seriele Kommunikation aufgebaut wurde.
                
                pinMode(ledPin, OUTPUT); //Den LEDPin als ausgang setzen.
                digitalWrite(ledPin, ledStatus); //Die LED initial auf den Status "AUS" setzen.
                 
                Serial.print("Aufbau der Verbindung zu: "); //Ausgabe der SSID auf der Seriellen Schnittstelle.
                Serial.println(ssid);
                
                WiFi.begin(ssid, password); //Initialisieren der Wifi Verbindung.
               
                while (WiFi.status() != WL_CONNECTED) { //Warten bis die Verbindung aufgebaut wurde.
                  delay(500);
                  //Einen Punkt auf der Seriellen Schnittstelle ausgeben so das der Benutzer erkennt dass, das Sketch noch läuft.
                  Serial.print("."); 
                }
                //Bei erfolgreicher Verbindung wird der folgende Text ausgeben.
                Serial.print("Mit ");
                Serial.print(ssid);
                Serial.print("erfolgreich verbunden!");
              
                dht11.begin();
                
                server.begin(); // Starten des Servers.
                Serial.println("Server gestartet"); //Ausgabe auf der Seriellen Schnittstelle das der Server gestartet wurde.
               
                // Ausgabe der IP Adresse 
                Serial.print("Adresse : http://");
                Serial.print(WiFi.localIP());
                Serial.println("/");
              }
              
              /**
               * Die Funktion gibt den HTML Kopf auf dem Client aus.
               * Dieses wird für jeden Respond verwendet.
               **/
              void writeResponse(WiFiClient client, float tempValue, float humidityValue){  
                client.println("HTTP/1.1 200 OK");
                client.println("Content-Type: text/html");
                client.println("");
                client.println("<!DOCTYPE HTML>");
                client.println("<html>"); 
                client.println("<head>"); 
                client.println("<script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>"); 
                client.println("<script type='text/javascript' src='http://progs.draeger-it.blog/wemosd1/dht11/gauges.js'></script>"); 
                client.println("<link rel='stylesheet' href='http://progs.draeger-it.blog/wemosd1/dht11/styles.css'/>");   
                client.println("</head>"); 
                client.println("<body>"); 
                client.println("<div id='tempChart' class='chartContainer'></div>"); 
                client.println("<div id='pressChart' class='chartContainer'></div>"); 
                client.println("<script>"); 
                client.println("google.charts.load('current', {'packages':['gauge']});"); 
                client.println("google.charts.setOnLoadCallback(drawCharts);"); 
                client.println("function drawCharts() {"); 
                client.print("drawTempChart(");
                client.print(tempValue); 
                client.print(");");
                client.print("drawPressChart(");
                client.print(humidityValue); 
                client.print(");");
                client.println("}"); 
                client.println("</script>"); 
                client.println("</body>"); 
                client.println("</html>"); 
              }
              
              void loop() {
                //Prüfen ob sich ein Client verbunden hat, wenn nicht die Loop "verlassen"
                WiFiClient client = server.available();
                if (!client) {
                  return;
                }
               
                // Wenn sich ein Client verbunden hat solange warten bis Daten gesendet werden.
                Serial.println("Neuer Client verbunden.");
                while(!client.available()){
                  delay(1);
                }
               
                String request = client.readStringUntil('\r');
                Serial.println(request);
                client.flush(); 
              
                float tempValue = dht11.readTemperature(); //Temperatur vom Sensor DHT11 lesen
                float humidityValue = dht11.readHumidity(); //relative Luftfeuchtigkeit vom Sensor DHT11 lesen
              
               if (isnan(tempValue) || isnan(humidityValue)) {
                   Serial.println("DHT11 konnte nicht ausgelesen werden");
                   tempValue = 0;
                   humidityValue = 0;
               }
               
                writeResponse(client, tempValue, humidityValue);
                
                delay(1); //1ms. Pause
              }
              
              Homoran M 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Testpilot 0 last edited by

                @testpilot-0 sagte in Temperatur/Luftfeuchtigkeitssensor einbinden:

                So sieht der Code aus:

                ist das chinesisch?
                Sorry, aber davon verstehe ich absolut nichts

                1 Reply Last reply Reply Quote 0
                • M
                  Michi_Pi @Testpilot 0 last edited by

                  @testpilot-0 ja genau, wenn du die den Code genau so übernommen hast wie in dem Link den du eingestellt hast. Werden deine Daten nur an die Seriale Schnittstelle weitergegeben.
                  Das heißt du musst deinen ESP erst mal auch umprogrammieren.

                  T 1 Reply Last reply Reply Quote 0
                  • M
                    Michi_Pi @Testpilot 0 last edited by

                    @testpilot-0 MQTT verwendest du nicht, du schickst dass über einen HTTP-Request wo hin.

                    1 Reply Last reply Reply Quote 0
                    • T
                      Testpilot 0 @Michi_Pi last edited by

                      @michi_pi Verstehe, ich dachte es kann der Webserver abgefragt werden. Dann muss ich ein Script suchen welches die Daten per IP übergibt?

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        Michi_Pi @Testpilot 0 last edited by

                        @testpilot-0 ob die Dinger auch per HTTP eingebunden werden, weiß ich nicht, damit hab ich mich noch nicht befasst. Ich mach das per MQTT.

                        Ja genau, die Daten werden dann per MQTT an den Broker gesendet. Dazu gibt es eh etliche Beispiele in Netz.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        585
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        326
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo