Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. ESP8266 an ioBroker Adapter über Simple.api

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

ESP8266 an ioBroker Adapter über Simple.api

Scheduled Pinned Locked Moved Hardware
24 Posts 9 Posters 7.0k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Telefisch
    wrote on last edited by
    #9

    Hallo…

    ich habe dank der Anregung durch diesen Threat ein paar Leuchten mit einem Nextion-Display geschaltet.

    Schalten tue ich mittels

          String url = "/set/";
          url += Lights[value];
          url += "?value=";
          url += "true";
    
    	client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                    "Host: " + host + "\r\n" +
                    "Connection: close\r\n\r\n");
    
    

    Wie kann ich denn jetzt vom Client aus den Status einer Lampe auslesen?

    Statt /set/ müsste /getPlainValue/ zwar funktionieren aber sicher nicht mit client.print.

    Zumindest kommt bei mir immer das gleiche Ergebnis, egal welchen Zustand die Lampe hat.

    danke und Gruß

    Carsten

    Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

    1 Reply Last reply
    0
    • T Offline
      T Offline
      Telefisch
      wrote on last edited by
      #10

      Kleines Update:

      //Darstellung der "Tasten" aktualisieren
      void update_buttons()
      {
        // Status über WiFi holen
        WiFiClient client;
        delay(50);
        if(!client.connect(host, port)){
              return;
        }
        //Anforderung zusammenbauen
        String url = "/getPlainValue/";
        url += "Beckhoff.0.EG.Esstisch-Licht.state";
        client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                      "Host: " + host + "\r\n" +
                      "Connection: close\r\n\r\n");
      
          while(client.connected()){
          String line = client.readStringUntil('\n');
            if(line=="\r"){
              //Serial.println("headers received");
              break;
            }
          }
          String line = client.readStringUntil('\n');
          if(line=="true"){
            btnBulbCeiling.setPic(2);	//Bild für "An" zuweisen
          }else{
            btnBulbCeiling.setPic(1);  	//Bild für "Aus" zuweisen
          }
      
        //Zweiten Button setzen
        if(!client.connect(host, port)){
              return;
        }
        url = "/getPlainValue/";
        url += "Beckhoff.0.EG.Esszimmer-Licht.state";
        client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                      "Host: " + host + "\r\n" +
                      "Connection: close\r\n\r\n");
      
          while(client.connected()){
          String line = client.readStringUntil('\n');
            if(line=="\r"){
              //Serial.println("headers received");
              break;
            }
          }
          line = client.readStringUntil('\n');
          if(line=="true"){
            btnBulbDesk.setPic(2);		//Bild für "An" zuweisen
          }else{
            btnBulbDesk.setPic(1);		//Bild für "Aus" zuweisen
          }
      }
      
      

      Jetzt dauert es aber bis zu zwei Sekunden ehe der Status ankommt, daher meine Frage nach Optimierung.

      Muss immer "Connection: close\r\n\r\n" an die "Anfrage" angehängt werden?

      Das klingt für mich nach unnötigem Auf- und abbau der Verbindung. Allerdings ohne diesen String scheint sich der ESP vollends wegzuhängen.

      Gibt es vielleicht einen eleganteren Weg?

      Irgendwie habe ich noch keine (mir) verständliche Dokumentation zu ESP8266WiFi gefunden, um die es hier ja geht.

      Da wird zwar in allen Erklärungen ein Status abgeschickt aber so richtig die Zusammenhänge kapiere ich da noch nicht. :(

      greets Carsten

      Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

      1 Reply Last reply
      0
      • K Offline
        K Offline
        klassisch
        Most Active
        wrote on last edited by
        #11

        Das Connection close hat mit dem ESP 8266 wifi nichts zu tun, sondern ist wohl eher ein Standard der HTTP Übertragung. Früher haben wir das einfach weggelassen . Aber dann wurde die CCU plötzlich schulmeisterlich und hat nicht mehr reagiert, wenn die Anfrage nicht nach Vorschrift erfolgt ist. Wie der ioBroker damit umgeht weiß ich nicht.

        Gesendet von meinem ZTE A2016 mit Tapatalk

        1 Reply Last reply
        0
        • T Offline
          T Offline
          Telefisch
          wrote on last edited by
          #12

          …dann ist mein „Vorhaben“ technisch wahrscheinlich nicht schneller zu lösen :( ?

          Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

          1 Reply Last reply
          0
          • K Offline
            K Offline
            klassisch
            Most Active
            wrote on last edited by
            #13

            Keine Ahnung, ich weiss nicht, wo die (milli)Sekunden verloren gehen. Die paar Bytes sollten schnell ausgetauscht sein. Hast Du iregendwo noch delay() eingebaut?

            Ich weiss auch nicht, wie responsiv der ioBroker ist. Aber Du kannst es ja mal im Browser testen. Einfach das GET weglassen, das macht der Browser dazu.

            Bei mir geht das praktisch instantan:

            Sowas wie

            http://192.168.178.33:8087/getPlainValue/data.0.weather.garden.rainVelocity
            

            abgefeuert und die Zahl steht plain und schnörkellos da. So schnell kann ich gar nicht schauen.

            Also wenn es bei Deinem Browser auch so schnell geht, dann liegt es irgendwie am ESP8266. Wenn aber die Antwort zum Browser schon lange dauert, dann am ioBroker, WLAN oder sowas.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              Telefisch
              wrote on last edited by
              #14

              …im Browser ist es auch Instant bei mir.

              Dann muss ich den Code nochmal durchsuchen...

              Danke erstmal

              Synology DS916+ (Docker), 2x Echo, 2x Dot, 2x Show

              1 Reply Last reply
              0
              • K Offline
                K Offline
                klassisch
                Most Active
                wrote on last edited by klassisch
                #15

                Der Vollständigkeit halber:

                Die Datenstruktur auf dem ioBroker muß nicht unter dem SimpleAi-Adapter liegen. Man kann auch eine eigene wie z.B.
                > daten.0 manuell anlegen.

                Der simpleApi Adapter verkraftet auch Strings. Sonderzeichen können dank Apollons Arbeit mit UTF-8 kodiert werden.

                Edit > daten.0 war ein singulärer Ansatz. Der richtige Weg, aber mittlerweile der falsche Name
                Die Community nutzt und unterstützt:

                0_userdata
                
                A 1 Reply Last reply
                0
                • K klassisch

                  Der Vollständigkeit halber:

                  Die Datenstruktur auf dem ioBroker muß nicht unter dem SimpleAi-Adapter liegen. Man kann auch eine eigene wie z.B.
                  > daten.0 manuell anlegen.

                  Der simpleApi Adapter verkraftet auch Strings. Sonderzeichen können dank Apollons Arbeit mit UTF-8 kodiert werden.

                  Edit > daten.0 war ein singulärer Ansatz. Der richtige Weg, aber mittlerweile der falsche Name
                  Die Community nutzt und unterstützt:

                  0_userdata
                  
                  A Offline
                  A Offline
                  Andreas_
                  wrote on last edited by
                  #16

                  Ich krame das Thema mal wieder aus.
                  Da ich ein einfaches Thermometer mit einem ESP8266 und zwei DS18B20 bauen wollte, war ich auf der Suche nach einer einfachen Möglichkeit Datenpunkte zu lesen und zu schreiben.
                  MQTT, Tasmota etc. sind aus meiner Sicht für so ein kleines Projet der Overkill.

                  Hier eine kurze Beschreibung:

                  Es wurden in den Objekten die Datenpunkte Temp_1 und Temp_2 angelegt um die Temperaturen vom ESP8266 zu empfangen.
                  Takt ist die Anzahl der Sekunden nach denen gemessen werden soll. Den Wert soll der ESP8266 lesen.

                  Datenpunkte.jpg

                  Hier der Code dazu:

                  /*
                      Datenpunkte lesen und schreiben mit dem simple api Adapter
                  
                      Github des Adapters:
                      https://github.com/ioBroker/ioBroker.simple-api
                  
                      Installation und Grundlagen:
                      https://www.smarthome-tricks.de/software-iobroker/iobroker-simple-api-adapter/
                  
                      Gelernt bei:
                      https://makesmart.net/esp8266-http-get-request/
                  
                      Mögliche Kommandos:
                      http://192.168.33.80:8087/help   // Adresse anpassen
                  
                  */
                  
                  #include <ESP8266WiFi.h>
                  #include <ESP8266HTTPClient.h>
                  
                  HTTPClient sender;
                  WiFiClient wifiClient;
                  
                  // WLAN-Daten
                  const char* ssid = "die SSID";
                  const char* password = "das Passwort";
                  const String host = "192.168.33.80:8087";	// anpassen
                  
                  String payload;           // String vom Webseiteninhalt
                  float tempValue_01 = 18;
                  float tempValue_02 = 3;
                  
                  // Datenpunkte
                  String strTakt = "http://192.168.33.80:8087/getPlainValue/0_userdata.0.Temperatursensor.Takt";
                  String strTemp_01 = "0_userdata.0.Temperatursensor.Temp_1";    // "_id" aus dem Datenpunkt
                  String strTemp_02 = "0_userdata.0.Temperatursensor.Temp_2";    // "_id" aus dem Datenpunkt
                  
                  //...........................................................................................................................
                  
                  void setup() {
                    Serial.begin(115200);  
                    
                    WiFi.begin(ssid, password);
                  
                    verbinden();
                    Serial.println("Verbunden!");  
                  }
                  
                  //...........................................................................................................................
                  
                  void verbinden(){
                    while (WiFi.status() != WL_CONNECTED) {
                      delay(200);
                      Serial.println();
                      Serial.print(".");
                    }  
                  }
                  
                  //...........................................................................................................................
                  
                  void get_Aufruf(String URL){
                  
                    if (WiFi.status() != WL_CONNECTED) {
                      verbinden();
                    }
                     
                    if (sender.begin(wifiClient, URL)) {  
                  
                      // HTTP-Code der Response speichern
                      int httpCode = sender.GET();
                     
                  
                      if (httpCode > 0) {
                        
                        // Anfrage wurde gesendet und Server hat geantwortet      
                        if (httpCode == HTTP_CODE_OK) {       
                          // Hier wurden die Daten vom Server empfangen, String vom Webseiteninhalt speichern
                          payload = sender.getString(); 
                        }
                        
                      }else{
                        // Falls HTTP-Error
                        Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str());
                      }
                  
                      // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet
                      sender.end();
                      
                    }else {
                      Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!");
                    }
                  }  
                  //...........................................................................................................................
                  
                  
                  void loop() {
                  
                    // Wert aus Datenpunkt lesen
                    get_Aufruf(strTakt);
                    Serial.println(payload);
                    
                    
                    //Werte in Datenpunkt schreiben
                    //String url = "http://" + host + "/set/" + strTemp_01 + "?value=" + String(tempValue_01);    // für einen Datenpunkt
                                 // http://192.168.33.80:8087/set/0_userdata.0.Temperatursensor.Temp_1?value=81.1 // das soll dabei herauskommen und kann so im Browser getestet werden
                                 
                    String url = "http://" + host + "/setBulk?" + strTemp_01 + "=" + String(tempValue_01) + "&" + strTemp_02 + "=" + String(tempValue_02);    // für mehrere Datenpunkte
                               // http://192.168.33.80:8087/setBulk?0_userdata.0.Temperatursensor.Temp_1=0.7&0_userdata.0.Temperatursensor.Temp_2=12.3
                    
                    //Serial.println();
                    //Serial.println(url);
                      
                    get_Aufruf(url);
                    
                    
                    tempValue_01 += 0.1; 
                    tempValue_02 += 0.1; 
                    delay(6000);  // Werte schreiben ist etwas langsam, 6sec sollten nicht unterschritten werden
                    
                  
                  }
                  
                  K pille0557P 2 Replies Last reply
                  1
                  • TomTT TomT

                    Hallo,

                    Ich hab den ioBroker zwar erst seit vorgestern am laufen, aber den ESp8266 direkt an den ioBroker gebunden.

                    Einfachste Möglichkeit ist der simple.api Adapter.

                    Dazu hab ich in der Objekte Ansicht auf das + zuerst ein neues Device hinzugefügt mit Namen Wemos

                    und darunter 2 Values Wemos_Temp & Wemos_Hum
                    3351_image3.jpg

                    Dann habe ich den Arduino Script von m.yoda https://homematic-forum.de/forum/viewtopic.php?f=31&t=29321&start=20#p264856 auf die Schnelle mal etwas erweitert um folgende Zeilen :

                    // ******* Einstellungen fuer ioBroker, bitte anpassen! *******
                    String apiDeviceName = "Wemos"; // Bezeichnung des ioBroker.SimpleApi Devise
                    String tempIOBname = "Wemos_Temp"; // Bezeichnung der ioBroker Variable für die gemessene Temperatur
                    String feuchtIOBname = "Wemos_Hum"; // Bezeichnung der ioBroker Variable für die gemessene Luftfeuchtigkeit
                    const char* hostIOBroker = "192.168.XXX.YYY"; // IP-Adresse des ioBroker 
                    const int httpPortBroker = 8087; //eingetragener Port des simpleApi Adapters
                    
                    
                    
                    void melde_ioBroker() { // Werte an ioBroker melden
                      WiFiClient client;
                      if (!client.connect(hostIOBroker, httpPortBroker)) {
                      return;
                      }
                    
                      //String url = "/set/system.adapter.simple-api.0.'" + String(tempIOBname) + "'?value='" + String(temp) + "'&prettyPrint";
                      String url = "/setBulk?system.adapter.simple-api.0." + apiDeviceName + "." + tempIOBname + "=" + String(temp) + "&system.adapter.simple-api.0." + 
                      apiDeviceName + "." + feuchtIOBname + "=" + String(feucht) + "&prettyPrint";
                      // Serial.print("Requesting URL: ");
                      // Serial.println(url);
                      // This will send the request to the server
                      client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                      "Host: " + host + "\r\n" +
                      "Connection: close\r\n\r\n");
                      delay(100);
                    
                      // Read all the lines of the reply from server and print them to Serial
                      while (client.available()) {
                      String line = client.readStringUntil('\r');
                      }
                      Serial.println("Werte an iOBroker gemeldet");
                    }   
                    
                    

                    in die void Loop() Funktion wird dann noch hinter melde_CCU(); noch ein

                        melde_ioBroker();
                    
                    

                    gehangen, und gut ist.

                    Die Werte stehen dann im ioBroker und im VIS unter

                    system.adapter.simple-api.0.Wemos.Wemos_Temp

                    und

                    system.adapter.simple-api.0.Wemos.Wemos_Hum

                    zur Verfügung.

                    Vielleicht hilft es ja einem von euch :D

                    Kommentare ?

                    Grüße

                    Tom

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #17

                    Beitrag gelöscht.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • A Andreas_

                      Ich krame das Thema mal wieder aus.
                      Da ich ein einfaches Thermometer mit einem ESP8266 und zwei DS18B20 bauen wollte, war ich auf der Suche nach einer einfachen Möglichkeit Datenpunkte zu lesen und zu schreiben.
                      MQTT, Tasmota etc. sind aus meiner Sicht für so ein kleines Projet der Overkill.

                      Hier eine kurze Beschreibung:

                      Es wurden in den Objekten die Datenpunkte Temp_1 und Temp_2 angelegt um die Temperaturen vom ESP8266 zu empfangen.
                      Takt ist die Anzahl der Sekunden nach denen gemessen werden soll. Den Wert soll der ESP8266 lesen.

                      Datenpunkte.jpg

                      Hier der Code dazu:

                      /*
                          Datenpunkte lesen und schreiben mit dem simple api Adapter
                      
                          Github des Adapters:
                          https://github.com/ioBroker/ioBroker.simple-api
                      
                          Installation und Grundlagen:
                          https://www.smarthome-tricks.de/software-iobroker/iobroker-simple-api-adapter/
                      
                          Gelernt bei:
                          https://makesmart.net/esp8266-http-get-request/
                      
                          Mögliche Kommandos:
                          http://192.168.33.80:8087/help   // Adresse anpassen
                      
                      */
                      
                      #include <ESP8266WiFi.h>
                      #include <ESP8266HTTPClient.h>
                      
                      HTTPClient sender;
                      WiFiClient wifiClient;
                      
                      // WLAN-Daten
                      const char* ssid = "die SSID";
                      const char* password = "das Passwort";
                      const String host = "192.168.33.80:8087";	// anpassen
                      
                      String payload;           // String vom Webseiteninhalt
                      float tempValue_01 = 18;
                      float tempValue_02 = 3;
                      
                      // Datenpunkte
                      String strTakt = "http://192.168.33.80:8087/getPlainValue/0_userdata.0.Temperatursensor.Takt";
                      String strTemp_01 = "0_userdata.0.Temperatursensor.Temp_1";    // "_id" aus dem Datenpunkt
                      String strTemp_02 = "0_userdata.0.Temperatursensor.Temp_2";    // "_id" aus dem Datenpunkt
                      
                      //...........................................................................................................................
                      
                      void setup() {
                        Serial.begin(115200);  
                        
                        WiFi.begin(ssid, password);
                      
                        verbinden();
                        Serial.println("Verbunden!");  
                      }
                      
                      //...........................................................................................................................
                      
                      void verbinden(){
                        while (WiFi.status() != WL_CONNECTED) {
                          delay(200);
                          Serial.println();
                          Serial.print(".");
                        }  
                      }
                      
                      //...........................................................................................................................
                      
                      void get_Aufruf(String URL){
                      
                        if (WiFi.status() != WL_CONNECTED) {
                          verbinden();
                        }
                         
                        if (sender.begin(wifiClient, URL)) {  
                      
                          // HTTP-Code der Response speichern
                          int httpCode = sender.GET();
                         
                      
                          if (httpCode > 0) {
                            
                            // Anfrage wurde gesendet und Server hat geantwortet      
                            if (httpCode == HTTP_CODE_OK) {       
                              // Hier wurden die Daten vom Server empfangen, String vom Webseiteninhalt speichern
                              payload = sender.getString(); 
                            }
                            
                          }else{
                            // Falls HTTP-Error
                            Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str());
                          }
                      
                          // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet
                          sender.end();
                          
                        }else {
                          Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!");
                        }
                      }  
                      //...........................................................................................................................
                      
                      
                      void loop() {
                      
                        // Wert aus Datenpunkt lesen
                        get_Aufruf(strTakt);
                        Serial.println(payload);
                        
                        
                        //Werte in Datenpunkt schreiben
                        //String url = "http://" + host + "/set/" + strTemp_01 + "?value=" + String(tempValue_01);    // für einen Datenpunkt
                                     // http://192.168.33.80:8087/set/0_userdata.0.Temperatursensor.Temp_1?value=81.1 // das soll dabei herauskommen und kann so im Browser getestet werden
                                     
                        String url = "http://" + host + "/setBulk?" + strTemp_01 + "=" + String(tempValue_01) + "&" + strTemp_02 + "=" + String(tempValue_02);    // für mehrere Datenpunkte
                                   // http://192.168.33.80:8087/setBulk?0_userdata.0.Temperatursensor.Temp_1=0.7&0_userdata.0.Temperatursensor.Temp_2=12.3
                        
                        //Serial.println();
                        //Serial.println(url);
                          
                        get_Aufruf(url);
                        
                        
                        tempValue_01 += 0.1; 
                        tempValue_02 += 0.1; 
                        delay(6000);  // Werte schreiben ist etwas langsam, 6sec sollten nicht unterschritten werden
                        
                      
                      }
                      
                      K Offline
                      K Offline
                      klassisch
                      Most Active
                      wrote on last edited by
                      #18

                      @andreas_ Vielen Dank für die Ergänzung!
                      Was ich vor Jahren mal selbst geschrieben habe bleibt so und liefert zuverlässig über simpleApi ein.
                      Mittlerweile hat sich aber bei den "Fertig-Frameworks" recht viel getan.
                      Für die meisten Neuprojekte nutze ich ESPHome oder ESPEasy über MQTT Schnittstelle . Wenn MQTT schon mal installiert ist, bin ich unterm Strich schneller und bequemer unterwegs.

                      1 Reply Last reply
                      0
                      • A Andreas_

                        Ich krame das Thema mal wieder aus.
                        Da ich ein einfaches Thermometer mit einem ESP8266 und zwei DS18B20 bauen wollte, war ich auf der Suche nach einer einfachen Möglichkeit Datenpunkte zu lesen und zu schreiben.
                        MQTT, Tasmota etc. sind aus meiner Sicht für so ein kleines Projet der Overkill.

                        Hier eine kurze Beschreibung:

                        Es wurden in den Objekten die Datenpunkte Temp_1 und Temp_2 angelegt um die Temperaturen vom ESP8266 zu empfangen.
                        Takt ist die Anzahl der Sekunden nach denen gemessen werden soll. Den Wert soll der ESP8266 lesen.

                        Datenpunkte.jpg

                        Hier der Code dazu:

                        /*
                            Datenpunkte lesen und schreiben mit dem simple api Adapter
                        
                            Github des Adapters:
                            https://github.com/ioBroker/ioBroker.simple-api
                        
                            Installation und Grundlagen:
                            https://www.smarthome-tricks.de/software-iobroker/iobroker-simple-api-adapter/
                        
                            Gelernt bei:
                            https://makesmart.net/esp8266-http-get-request/
                        
                            Mögliche Kommandos:
                            http://192.168.33.80:8087/help   // Adresse anpassen
                        
                        */
                        
                        #include <ESP8266WiFi.h>
                        #include <ESP8266HTTPClient.h>
                        
                        HTTPClient sender;
                        WiFiClient wifiClient;
                        
                        // WLAN-Daten
                        const char* ssid = "die SSID";
                        const char* password = "das Passwort";
                        const String host = "192.168.33.80:8087";	// anpassen
                        
                        String payload;           // String vom Webseiteninhalt
                        float tempValue_01 = 18;
                        float tempValue_02 = 3;
                        
                        // Datenpunkte
                        String strTakt = "http://192.168.33.80:8087/getPlainValue/0_userdata.0.Temperatursensor.Takt";
                        String strTemp_01 = "0_userdata.0.Temperatursensor.Temp_1";    // "_id" aus dem Datenpunkt
                        String strTemp_02 = "0_userdata.0.Temperatursensor.Temp_2";    // "_id" aus dem Datenpunkt
                        
                        //...........................................................................................................................
                        
                        void setup() {
                          Serial.begin(115200);  
                          
                          WiFi.begin(ssid, password);
                        
                          verbinden();
                          Serial.println("Verbunden!");  
                        }
                        
                        //...........................................................................................................................
                        
                        void verbinden(){
                          while (WiFi.status() != WL_CONNECTED) {
                            delay(200);
                            Serial.println();
                            Serial.print(".");
                          }  
                        }
                        
                        //...........................................................................................................................
                        
                        void get_Aufruf(String URL){
                        
                          if (WiFi.status() != WL_CONNECTED) {
                            verbinden();
                          }
                           
                          if (sender.begin(wifiClient, URL)) {  
                        
                            // HTTP-Code der Response speichern
                            int httpCode = sender.GET();
                           
                        
                            if (httpCode > 0) {
                              
                              // Anfrage wurde gesendet und Server hat geantwortet      
                              if (httpCode == HTTP_CODE_OK) {       
                                // Hier wurden die Daten vom Server empfangen, String vom Webseiteninhalt speichern
                                payload = sender.getString(); 
                              }
                              
                            }else{
                              // Falls HTTP-Error
                              Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str());
                            }
                        
                            // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet
                            sender.end();
                            
                          }else {
                            Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!");
                          }
                        }  
                        //...........................................................................................................................
                        
                        
                        void loop() {
                        
                          // Wert aus Datenpunkt lesen
                          get_Aufruf(strTakt);
                          Serial.println(payload);
                          
                          
                          //Werte in Datenpunkt schreiben
                          //String url = "http://" + host + "/set/" + strTemp_01 + "?value=" + String(tempValue_01);    // für einen Datenpunkt
                                       // http://192.168.33.80:8087/set/0_userdata.0.Temperatursensor.Temp_1?value=81.1 // das soll dabei herauskommen und kann so im Browser getestet werden
                                       
                          String url = "http://" + host + "/setBulk?" + strTemp_01 + "=" + String(tempValue_01) + "&" + strTemp_02 + "=" + String(tempValue_02);    // für mehrere Datenpunkte
                                     // http://192.168.33.80:8087/setBulk?0_userdata.0.Temperatursensor.Temp_1=0.7&0_userdata.0.Temperatursensor.Temp_2=12.3
                          
                          //Serial.println();
                          //Serial.println(url);
                            
                          get_Aufruf(url);
                          
                          
                          tempValue_01 += 0.1; 
                          tempValue_02 += 0.1; 
                          delay(6000);  // Werte schreiben ist etwas langsam, 6sec sollten nicht unterschritten werden
                          
                        
                        }
                        
                        pille0557P Offline
                        pille0557P Offline
                        pille0557
                        wrote on last edited by
                        #19

                        @andreas_
                        ich wollte das jetzt auch umsetzen ...
                        unter simple.api steht mir das "+" zum Hinzufügen nicht zur Verfügung?
                        Bildschirmfoto 2023-03-22 um 10.11.14.png
                        unter 0_userdata schon!
                        Bildschirmfoto 2023-03-22 um 10.11.24.png
                        da klappt das
                        Bildschirmfoto 2023-03-22 um 10.16.25.png
                        ich habe allerdings überhaupt keine Ahnung wo der Code hin soll / eingetragen wird.
                        ?

                        CodierknechtC 1 Reply Last reply
                        0
                        • pille0557P pille0557

                          @andreas_
                          ich wollte das jetzt auch umsetzen ...
                          unter simple.api steht mir das "+" zum Hinzufügen nicht zur Verfügung?
                          Bildschirmfoto 2023-03-22 um 10.11.14.png
                          unter 0_userdata schon!
                          Bildschirmfoto 2023-03-22 um 10.11.24.png
                          da klappt das
                          Bildschirmfoto 2023-03-22 um 10.16.25.png
                          ich habe allerdings überhaupt keine Ahnung wo der Code hin soll / eingetragen wird.
                          ?

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          wrote on last edited by
                          #20

                          @pille0557
                          Was willst Du denn da einrichten?
                          Möglicherweise bist Du da mit z.B. EspEasy schneller am Start.

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          pille0557P 1 Reply Last reply
                          0
                          • CodierknechtC Codierknecht

                            @pille0557
                            Was willst Du denn da einrichten?
                            Möglicherweise bist Du da mit z.B. EspEasy schneller am Start.

                            pille0557P Offline
                            pille0557P Offline
                            pille0557
                            wrote on last edited by Homoran
                            #21

                            @codierknecht
                            einen Wemos_D1 mit Tempertursensor DS18B20
                            analog zu ... Wemos_D1 + DS18B20 https://github.com/jp112sdl/WemosD1_ioBroker_DS18B20/blob/master/README.md
                            Hardware läuft schon

                            CodierknechtC 1 Reply Last reply
                            0
                            • pille0557P pille0557

                              @codierknecht
                              einen Wemos_D1 mit Tempertursensor DS18B20
                              analog zu ... Wemos_D1 + DS18B20 https://github.com/jp112sdl/WemosD1_ioBroker_DS18B20/blob/master/README.md
                              Hardware läuft schon

                              CodierknechtC Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              wrote on last edited by
                              #22

                              @pille0557
                              Kann man dem kein EspEasy verpassen?
                              Dann einfach über den MQTT-Adapter verbinden und fertig.

                              Dein Link ist steinalt.
                              c6f057ca-1768-493d-aa15-80cd476eb7fc-image.png

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              pille0557P 1 Reply Last reply
                              0
                              • CodierknechtC Codierknecht

                                @pille0557
                                Kann man dem kein EspEasy verpassen?
                                Dann einfach über den MQTT-Adapter verbinden und fertig.

                                Dein Link ist steinalt.
                                c6f057ca-1768-493d-aa15-80cd476eb7fc-image.png

                                pille0557P Offline
                                pille0557P Offline
                                pille0557
                                wrote on last edited by
                                #23

                                @codierknecht
                                Ok danke, dann werde ich mir das mal ansehen …
                                Ich fand das hier:
                                bastelgarage
                                aber leider keine Hinweise zum hardwaremäßigen Aufbau

                                Ralla66R 1 Reply Last reply
                                0
                                • pille0557P pille0557

                                  @codierknecht
                                  Ok danke, dann werde ich mir das mal ansehen …
                                  Ich fand das hier:
                                  bastelgarage
                                  aber leider keine Hinweise zum hardwaremäßigen Aufbau

                                  Ralla66R Offline
                                  Ralla66R Offline
                                  Ralla66
                                  Most Active
                                  wrote on last edited by Ralla66
                                  #24

                                  @pille0557

                                  nimm doch einfach eine Tasmota Version. Dann haste alles einfachst im IO per Mqtt.

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  578

                                  Online

                                  32.5k

                                  Users

                                  81.7k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Home
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe