Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. ESP8266 an ioBroker Adapter über Simple.api

    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

    ESP8266 an ioBroker Adapter über Simple.api

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      klassisch Most Active last edited by 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 1 Reply Last reply Reply Quote 0
      • A
        Andreas_ @klassisch last edited by

        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 pille0557 2 Replies Last reply Reply Quote 1
        • paul53
          paul53 @TomT last edited by paul53

          Beitrag gelöscht.

          1 Reply Last reply Reply Quote 0
          • K
            klassisch Most Active @Andreas_ last edited by

            @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 Reply Quote 0
            • pille0557
              pille0557 @Andreas_ last edited by

              @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.
              ?

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @pille0557 last edited by

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

                pille0557 1 Reply Last reply Reply Quote 0
                • pille0557
                  pille0557 @Codierknecht last edited by Homoran

                  @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

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @pille0557 last edited by

                    @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

                    pille0557 1 Reply Last reply Reply Quote 0
                    • pille0557
                      pille0557 @Codierknecht last edited by

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

                      Ralla66 1 Reply Last reply Reply Quote 0
                      • Ralla66
                        Ralla66 Most Active @pille0557 last edited by Ralla66

                        @pille0557

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

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        522
                        Online

                        31.7k
                        Users

                        79.9k
                        Topics

                        1.3m
                        Posts

                        9
                        24
                        5893
                        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