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. Off Topic
  4. Temperaturwert per GSM an Webseite senden?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    779

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Temperaturwert per GSM an Webseite senden?

Geplant Angeheftet Gesperrt Verschoben Off Topic
25 Beiträge 6 Kommentatoren 2.5k Aufrufe 4 Watching
  • Ä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.
  • FeuersturmF Online
    FeuersturmF Online
    Feuersturm
    schrieb am zuletzt editiert von
    #4

    @beowolf Ich hab gerade mal etwas gesucht und bin auf dieses Projekt gestoßen https://randomnerdtutorials.com/esp32-sim800l-publish-data-to-cloud/
    Das klingt nachdem was du suchst. Das ganze läuft dann unabhängig von ioBroker.

    Den Temperatur / Luftfeuchtesensor schließt du direkt am Mikrocontroller an und die Daten werden dort verarbeitet und dann zum "Cloud Server" übertragen.

    333c8a83-066c-4ac9-b379-66a302f13ac7-grafik.png
    Quelle: https://randomnerdtutorials.com/esp32-sim800l-publish-data-to-cloud/

    B 1 Antwort Letzte Antwort
    0
    • FeuersturmF Feuersturm

      @beowolf Ich hab gerade mal etwas gesucht und bin auf dieses Projekt gestoßen https://randomnerdtutorials.com/esp32-sim800l-publish-data-to-cloud/
      Das klingt nachdem was du suchst. Das ganze läuft dann unabhängig von ioBroker.

      Den Temperatur / Luftfeuchtesensor schließt du direkt am Mikrocontroller an und die Daten werden dort verarbeitet und dann zum "Cloud Server" übertragen.

      333c8a83-066c-4ac9-b379-66a302f13ac7-grafik.png
      Quelle: https://randomnerdtutorials.com/esp32-sim800l-publish-data-to-cloud/

      B Offline
      B Offline
      Beowolf
      schrieb am zuletzt editiert von
      #5

      @feuersturm

      Hey, vielen Dank.

      Ich hatte jetzt schon ein paar Videos über das Sim900A GSM Modul mir angeschaut. Dort ging es aber immer um den SMS Versand.

      Das was Du gefunden hast, ist glaube ich schon das was ich suche.

      Ich liebe dieses Forum. :+1: :+1: :+1: :+1: :flushed: :flushed: :flushed:

      Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

      FeuersturmF 1 Antwort Letzte Antwort
      0
      • B Beowolf

        @feuersturm

        Hey, vielen Dank.

        Ich hatte jetzt schon ein paar Videos über das Sim900A GSM Modul mir angeschaut. Dort ging es aber immer um den SMS Versand.

        Das was Du gefunden hast, ist glaube ich schon das was ich suche.

        Ich liebe dieses Forum. :+1: :+1: :+1: :+1: :flushed: :flushed: :flushed:

        FeuersturmF Online
        FeuersturmF Online
        Feuersturm
        schrieb am zuletzt editiert von
        #6

        @beowolf Dann viel Erfolg mit dem Projekt :grinning:

        B 1 Antwort Letzte Antwort
        0
        • FeuersturmF Feuersturm

          @beowolf Dann viel Erfolg mit dem Projekt :grinning:

          B Offline
          B Offline
          Beowolf
          schrieb am zuletzt editiert von
          #7

          @feuersturm

          So, alles funktioniert so wie es soll.

          Jetzt habe ich aber noch ein Frage. Das Modul schreibt ja die Werte in eine Datenbank auf meiner Webseite. Wie bekomme ich die Daten von da nach ioBroker?
          Ich habe schon den SQL-Adapter ausprobiert.

          https://www.iobroker.net/docu/index-254.htm?page_id=3772&lang=de

          Dort bekomme ich aber immer ein Timeout wenn ich auf die Datenbank der Webseite zugreifen möchte.

          Grüße
          Manfred

          Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

          HomoranH FeuersturmF 2 Antworten Letzte Antwort
          0
          • B Beowolf

            @feuersturm

            So, alles funktioniert so wie es soll.

            Jetzt habe ich aber noch ein Frage. Das Modul schreibt ja die Werte in eine Datenbank auf meiner Webseite. Wie bekomme ich die Daten von da nach ioBroker?
            Ich habe schon den SQL-Adapter ausprobiert.

            https://www.iobroker.net/docu/index-254.htm?page_id=3772&lang=de

            Dort bekomme ich aber immer ein Timeout wenn ich auf die Datenbank der Webseite zugreifen möchte.

            Grüße
            Manfred

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #8

            @beowolf sagte in Temperaturwert per GSM an Webseite senden?:

            ch habe schon den SQL-Adapter ausprobiert.

            Ganz abgesehen davon, dass du da eine uralte Doku hast, die schon seit Jahren vom Netz genommen wurde, ist der SQL-Adapter nur für Daten, die über ioBroker gesammelt wurden zu gebrauchen.

            Du musst also deine Daten zuerst irgendwie in ioBroker bekommen und dann in Datenpunkte speichern
            Diese kannst du anschließend historisieren

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • B Beowolf

              @feuersturm

              So, alles funktioniert so wie es soll.

              Jetzt habe ich aber noch ein Frage. Das Modul schreibt ja die Werte in eine Datenbank auf meiner Webseite. Wie bekomme ich die Daten von da nach ioBroker?
              Ich habe schon den SQL-Adapter ausprobiert.

              https://www.iobroker.net/docu/index-254.htm?page_id=3772&lang=de

              Dort bekomme ich aber immer ein Timeout wenn ich auf die Datenbank der Webseite zugreifen möchte.

              Grüße
              Manfred

              FeuersturmF Online
              FeuersturmF Online
              Feuersturm
              schrieb am zuletzt editiert von
              #9

              @beowolf du könntest mal auf die Suche gehen, wie du über ein Javascript Skript auf die MySQL Datenbank zugreifen kannst, um dort die Werte auszulesen und um sie danach in iobroker weiter zu verarbeiten. Eine erste Suche findet z.b. das https://forum.iobroker.net/topic/4014/zugriff-auf-eigene-mysql-datenbank

              HomoranH B 2 Antworten Letzte Antwort
              0
              • FeuersturmF Feuersturm

                @beowolf du könntest mal auf die Suche gehen, wie du über ein Javascript Skript auf die MySQL Datenbank zugreifen kannst, um dort die Werte auszulesen und um sie danach in iobroker weiter zu verarbeiten. Eine erste Suche findet z.b. das https://forum.iobroker.net/topic/4014/zugriff-auf-eigene-mysql-datenbank

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #10

                @feuersturm ich hatte @Beowolf so verstanden, dass er in die ioBroker SQL-Datenbank schreiben will

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                FeuersturmF B 2 Antworten Letzte Antwort
                0
                • HomoranH Homoran

                  @feuersturm ich hatte @Beowolf so verstanden, dass er in die ioBroker SQL-Datenbank schreiben will

                  FeuersturmF Online
                  FeuersturmF Online
                  Feuersturm
                  schrieb am zuletzt editiert von
                  #11

                  @homoran @Beowolf Für weitere Ratschläge bräuchte man ein paar mehr Details welche Daten von wo nach wo gehen und wo sie weiter verarbeitet werden sollen.

                  1 Antwort Letzte Antwort
                  1
                  • HomoranH Homoran

                    @feuersturm ich hatte @Beowolf so verstanden, dass er in die ioBroker SQL-Datenbank schreiben will

                    B Offline
                    B Offline
                    Beowolf
                    schrieb am zuletzt editiert von
                    #12

                    @homoran sagte in Temperaturwert per GSM an Webseite senden?:

                    @feuersturm ich hatte @Beowolf so verstanden, dass er in die ioBroker SQL-Datenbank schreiben will

                    Nein, das ist wohl falsch rüber gekommen.

                    Also: Der Temperatursensor sendet seine Daten zu dieser Webseite in eine mysql Datenbank

                    https://www.glanemanns.de/public_html/esp-chart.php

                    mit diesem Arduino Programm.

                    /*
                      Rui Santos
                      Complete project details at https://RandomNerdTutorials.com/esp32-sim800l-publish-data-to-cloud/
                      
                      Permission is hereby granted, free of charge, to any person obtaining a copy
                      of this software and associated documentation files.
                      
                      The above copyright notice and this permission notice shall be included in all
                      copies or substantial portions of the Software.
                    */
                    
                    // Your GPRS credentials (leave empty, if not needed)
                    const char apn[]      = ""; // APN (example: internet.vodafone.pt) use https://wiki.apnchanger.org
                    const char gprsUser[] = ""; // GPRS User
                    const char gprsPass[] = ""; // GPRS Password
                    
                    // SIM card PIN (leave empty, if not defined)
                    const char simPIN[]   = ""; 
                    
                    // Server details
                    // The server variable can be just a domain name or it can have a subdomain. It depends on the service you are using
                    const char server[] = "example.com"; // domain name: example.com, maker.ifttt.com, etc
                    const char resource[] = "/post-data.php";         // resource path, for example: /post-data.php
                    const int  port = 80;                             // server port number
                    
                    // Keep this API Key value to be compatible with the PHP code provided in the project page. 
                    // If you change the apiKeyValue value, the PHP file /post-data.php also needs to have the same key 
                    String apiKeyValue = "tPmAT5Ab3j7F9";
                    
                    // TTGO T-Call pins
                    #define MODEM_RST            5
                    #define MODEM_PWKEY          4
                    #define MODEM_POWER_ON       23
                    #define MODEM_TX             27
                    #define MODEM_RX             26
                    #define I2C_SDA              21
                    #define I2C_SCL              22
                    // BME280 pins
                    #define I2C_SDA_2            18
                    #define I2C_SCL_2            19
                    
                    // Set serial for debug console (to Serial Monitor, default speed 115200)
                    #define SerialMon Serial
                    // Set serial for AT commands (to SIM800 module)
                    #define SerialAT Serial1
                    
                    // Configure TinyGSM library
                    #define TINY_GSM_MODEM_SIM800      // Modem is SIM800
                    #define TINY_GSM_RX_BUFFER   1024  // Set RX buffer to 1Kb
                    
                    // Define the serial console for debug prints, if needed
                    //#define DUMP_AT_COMMANDS
                    
                    #include <Wire.h>
                    #include <TinyGsmClient.h>
                    
                    #ifdef DUMP_AT_COMMANDS
                      #include <StreamDebugger.h>
                      StreamDebugger debugger(SerialAT, SerialMon);
                      TinyGsm modem(debugger);
                    #else
                      TinyGsm modem(SerialAT);
                    #endif
                    
                    #include <Adafruit_Sensor.h>
                    #include <Adafruit_BME280.h>
                    
                    // I2C for SIM800 (to keep it running when powered from battery)
                    TwoWire I2CPower = TwoWire(0);
                    
                    // I2C for BME280 sensor
                    TwoWire I2CBME = TwoWire(1);
                    Adafruit_BME280 bme; 
                    
                    // TinyGSM Client for Internet connection
                    TinyGsmClient client(modem);
                    
                    #define uS_TO_S_FACTOR 1000000UL   /* Conversion factor for micro seconds to seconds */
                    #define TIME_TO_SLEEP  3600        /* Time ESP32 will go to sleep (in seconds) 3600 seconds = 1 hour */
                    
                    #define IP5306_ADDR          0x75
                    #define IP5306_REG_SYS_CTL0  0x00
                    
                    bool setPowerBoostKeepOn(int en){
                      I2CPower.beginTransmission(IP5306_ADDR);
                      I2CPower.write(IP5306_REG_SYS_CTL0);
                      if (en) {
                        I2CPower.write(0x37); // Set bit1: 1 enable 0 disable boost keep on
                      } else {
                        I2CPower.write(0x35); // 0x37 is default reg value
                      }
                      return I2CPower.endTransmission() == 0;
                    }
                    
                    void setup() {
                      // Set serial monitor debugging window baud rate to 115200
                      SerialMon.begin(115200);
                    
                      // Start I2C communication
                      I2CPower.begin(I2C_SDA, I2C_SCL, 400000);
                      I2CBME.begin(I2C_SDA_2, I2C_SCL_2, 400000);
                    
                      // Keep power when running from battery
                      bool isOk = setPowerBoostKeepOn(1);
                      SerialMon.println(String("IP5306 KeepOn ") + (isOk ? "OK" : "FAIL"));
                    
                      // Set modem reset, enable, power pins
                      pinMode(MODEM_PWKEY, OUTPUT);
                      pinMode(MODEM_RST, OUTPUT);
                      pinMode(MODEM_POWER_ON, OUTPUT);
                      digitalWrite(MODEM_PWKEY, LOW);
                      digitalWrite(MODEM_RST, HIGH);
                      digitalWrite(MODEM_POWER_ON, HIGH);
                    
                      // Set GSM module baud rate and UART pins
                      SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
                      delay(3000);
                    
                      // Restart SIM800 module, it takes quite some time
                      // To skip it, call init() instead of restart()
                      SerialMon.println("Initializing modem...");
                      modem.restart();
                      // use modem.init() if you don't need the complete restart
                    
                      // Unlock your SIM card with a PIN if needed
                      if (strlen(simPIN) && modem.getSimStatus() != 3 ) {
                        modem.simUnlock(simPIN);
                      }
                      
                      // You might need to change the BME280 I2C address, in our case it's 0x76
                      if (!bme.begin(0x76, &I2CBME)) {
                        Serial.println("Could not find a valid BME280 sensor, check wiring!");
                        while (1);
                      }
                    
                      // Configure the wake up source as timer wake up  
                      esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
                    }
                    
                    void loop() {
                      SerialMon.print("Connecting to APN: ");
                      SerialMon.print(apn);
                      if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
                        SerialMon.println(" fail");
                      }
                      else {
                        SerialMon.println(" OK");
                        
                        SerialMon.print("Connecting to ");
                        SerialMon.print(server);
                        if (!client.connect(server, port)) {
                          SerialMon.println(" fail");
                        }
                        else {
                          SerialMon.println(" OK");
                        
                          // Making an HTTP POST request
                          SerialMon.println("Performing HTTP POST request...");
                          // Prepare your HTTP POST request data (Temperature in Celsius degrees)
                          String httpRequestData = "api_key=" + apiKeyValue + "&value1=" + String(bme.readTemperature())
                                                 + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
                          // Prepare your HTTP POST request data (Temperature in Fahrenheit degrees)
                          //String httpRequestData = "api_key=" + apiKeyValue + "&value1=" + String(1.8 * bme.readTemperature() + 32)
                          //                       + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
                              
                          // You can comment the httpRequestData variable above
                          // then, use the httpRequestData variable below (for testing purposes without the BME280 sensor)
                          //String httpRequestData = "api_key=tPmAT5Ab3j7F9&value1=24.75&value2=49.54&value3=1005.14";
                        
                          client.print(String("POST ") + resource + " HTTP/1.1\r\n");
                          client.print(String("Host: ") + server + "\r\n");
                          client.println("Connection: close");
                          client.println("Content-Type: application/x-www-form-urlencoded");
                          client.print("Content-Length: ");
                          client.println(httpRequestData.length());
                          client.println();
                          client.println(httpRequestData);
                    
                          unsigned long timeout = millis();
                          while (client.connected() && millis() - timeout < 10000L) {
                            // Print available data (HTTP response from server)
                            while (client.available()) {
                              char c = client.read();
                              SerialMon.print(c);
                              timeout = millis();
                            }
                          }
                          SerialMon.println();
                        
                          // Close client and disconnect
                          client.stop();
                          SerialMon.println(F("Server disconnected"));
                          modem.gprsDisconnect();
                          SerialMon.println(F("GPRS disconnected"));
                        }
                      }
                      // Put ESP32 into deep sleep mode (with timer wake up)
                      esp_deep_sleep_start();
                    }
                    
                    

                    das ich von dieser Webseite

                    https://randomnerdtutorials.com/esp32-sim800l-publish-data-to-cloud/

                    habe. Dort wird eigentlich alles erklärt (ist nicht ganz so wichtig).

                    Jetzt möchte ich die Daten eben von der Webseite auch in ioBroker haben bzw. ioBroker soll die Daten von dort abholen und dann als Datenpunkt für die weitere Verarbeitung darstellen.

                    Ist das so verständlich erklärt? :blush:

                    Grüße
                    Manfred

                    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                    1 Antwort Letzte Antwort
                    0
                    • FeuersturmF Feuersturm

                      @beowolf du könntest mal auf die Suche gehen, wie du über ein Javascript Skript auf die MySQL Datenbank zugreifen kannst, um dort die Werte auszulesen und um sie danach in iobroker weiter zu verarbeiten. Eine erste Suche findet z.b. das https://forum.iobroker.net/topic/4014/zugriff-auf-eigene-mysql-datenbank

                      B Offline
                      B Offline
                      Beowolf
                      schrieb am zuletzt editiert von
                      #13

                      @feuersturm

                      Bin gerade dabei mir das Skript anzuschauen.

                      Danbke für die Hilfe

                      Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                      B 1 Antwort Letzte Antwort
                      0
                      • B Beowolf

                        @feuersturm

                        Bin gerade dabei mir das Skript anzuschauen.

                        Danbke für die Hilfe

                        B Nicht stören
                        B Nicht stören
                        bommel_030
                        schrieb am zuletzt editiert von
                        #14

                        @beowolf
                        Wenn ich dich richtig verstehe willst du die Daten aus der Webseite im iobroker?
                        Klingt nach Parser und dann Webseite auslesen.
                        Oder du kannst dein Ardunio Programm so umbauen, dass es zusätzlich über die simple API direkt in den iobroker schreibt.

                        B 1 Antwort Letzte Antwort
                        0
                        • B bommel_030

                          @beowolf
                          Wenn ich dich richtig verstehe willst du die Daten aus der Webseite im iobroker?
                          Klingt nach Parser und dann Webseite auslesen.
                          Oder du kannst dein Ardunio Programm so umbauen, dass es zusätzlich über die simple API direkt in den iobroker schreibt.

                          B Offline
                          B Offline
                          Beowolf
                          schrieb am zuletzt editiert von Beowolf
                          #15

                          @bommel_030 sagte in Temperaturwert per GSM an Webseite senden?:

                          @beowolf
                          Wenn ich dich richtig verstehe willst du die Daten aus der Webseite im iobroker?
                          Klingt nach Parser und dann Webseite auslesen.
                          Oder du kannst dein Ardunio Programm so umbauen, dass es zusätzlich über die simple API direkt in den iobroker schreibt.

                          Direkt nach ioBroker wäre natürlich der beste Weg.

                          Aber

                          Man kann das bestimmt - Ich leider nicht. Ich will ja auch nicht die ioBroker Datenbank zerschießen.

                          Ach ja. Auf der Empfänger Webseite ist dieses Skript.

                          <?php
                          /*
                            Rui Santos
                            Complete project details at https://RandomNerdTutorials.com
                            
                            Permission is hereby granted, free of charge, to any person obtaining a copy
                            of this software and associated documentation files.
                            
                            The above copyright notice and this permission notice shall be included in all
                            copies or substantial portions of the Software.
                          */
                          
                          $servername = "localhost";
                          
                          // REPLACE with your Database name
                          $dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
                          // REPLACE with Database user
                          $username = "REPLACE_WITH_YOUR_USERNAME";
                          // REPLACE with Database user password
                          $password = "REPLACE_WITH_YOUR_PASSWORD";
                          
                          // Keep this API Key value to be compatible with the ESP32 code provided in the project page. If you change this value, the ESP32 sketch needs to match
                          $api_key_value = "tPmAT5Ab3j7F9";
                          
                          $api_key = $value1 = $value2 = $value3 = "";
                          
                          if ($_SERVER["REQUEST_METHOD"] == "POST") {
                              $api_key = test_input($_POST["api_key"]);
                              if($api_key == $api_key_value) {
                                  $value1 = test_input($_POST["value1"]);
                                  $value2 = test_input($_POST["value2"]);
                                  $value3 = test_input($_POST["value3"]);
                                  
                                  // Create connection
                                  $conn = new mysqli($servername, $username, $password, $dbname);
                                  // Check connection
                                  if ($conn->connect_error) {
                                      die("Connection failed: " . $conn->connect_error);
                                  } 
                                  
                                  $sql = "INSERT INTO Sensor (value1, value2, value3)
                                  VALUES ('" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
                                  
                                  if ($conn->query($sql) === TRUE) {
                                      echo "New record created successfully";
                                  } 
                                  else {
                                      echo "Error: " . $sql . "<br>" . $conn->error;
                                  }
                              
                                  $conn->close();
                              }
                              else {
                                  echo "Wrong API Key provided.";
                              }
                          
                          }
                          else {
                              echo "No data posted with HTTP POST.";
                          }
                          
                          function test_input($data) {
                              $data = trim($data);
                              $data = stripslashes($data);
                              $data = htmlspecialchars($data);
                              return $data;
                          }
                          
                          

                          Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                          B 1 Antwort Letzte Antwort
                          0
                          • B Beowolf

                            @bommel_030 sagte in Temperaturwert per GSM an Webseite senden?:

                            @beowolf
                            Wenn ich dich richtig verstehe willst du die Daten aus der Webseite im iobroker?
                            Klingt nach Parser und dann Webseite auslesen.
                            Oder du kannst dein Ardunio Programm so umbauen, dass es zusätzlich über die simple API direkt in den iobroker schreibt.

                            Direkt nach ioBroker wäre natürlich der beste Weg.

                            Aber

                            Man kann das bestimmt - Ich leider nicht. Ich will ja auch nicht die ioBroker Datenbank zerschießen.

                            Ach ja. Auf der Empfänger Webseite ist dieses Skript.

                            <?php
                            /*
                              Rui Santos
                              Complete project details at https://RandomNerdTutorials.com
                              
                              Permission is hereby granted, free of charge, to any person obtaining a copy
                              of this software and associated documentation files.
                              
                              The above copyright notice and this permission notice shall be included in all
                              copies or substantial portions of the Software.
                            */
                            
                            $servername = "localhost";
                            
                            // REPLACE with your Database name
                            $dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
                            // REPLACE with Database user
                            $username = "REPLACE_WITH_YOUR_USERNAME";
                            // REPLACE with Database user password
                            $password = "REPLACE_WITH_YOUR_PASSWORD";
                            
                            // Keep this API Key value to be compatible with the ESP32 code provided in the project page. If you change this value, the ESP32 sketch needs to match
                            $api_key_value = "tPmAT5Ab3j7F9";
                            
                            $api_key = $value1 = $value2 = $value3 = "";
                            
                            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                                $api_key = test_input($_POST["api_key"]);
                                if($api_key == $api_key_value) {
                                    $value1 = test_input($_POST["value1"]);
                                    $value2 = test_input($_POST["value2"]);
                                    $value3 = test_input($_POST["value3"]);
                                    
                                    // Create connection
                                    $conn = new mysqli($servername, $username, $password, $dbname);
                                    // Check connection
                                    if ($conn->connect_error) {
                                        die("Connection failed: " . $conn->connect_error);
                                    } 
                                    
                                    $sql = "INSERT INTO Sensor (value1, value2, value3)
                                    VALUES ('" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
                                    
                                    if ($conn->query($sql) === TRUE) {
                                        echo "New record created successfully";
                                    } 
                                    else {
                                        echo "Error: " . $sql . "<br>" . $conn->error;
                                    }
                                
                                    $conn->close();
                                }
                                else {
                                    echo "Wrong API Key provided.";
                                }
                            
                            }
                            else {
                                echo "No data posted with HTTP POST.";
                            }
                            
                            function test_input($data) {
                                $data = trim($data);
                                $data = stripslashes($data);
                                $data = htmlspecialchars($data);
                                return $data;
                            }
                            
                            
                            B Nicht stören
                            B Nicht stören
                            bommel_030
                            schrieb am zuletzt editiert von
                            #16

                            @beowolf
                            Bin wahrlich kein IT-Fachmann, aber die simple API ist tatsächlich so simpel wie sie klingt...
                            Einzige "Hürde" ob bzw. wie dein iobroker von außen erreichbar ist. Hab es bei mir mit nem Reverse Proxy gelöst, klappt problemlos.

                            B 1 Antwort Letzte Antwort
                            0
                            • B bommel_030

                              @beowolf
                              Bin wahrlich kein IT-Fachmann, aber die simple API ist tatsächlich so simpel wie sie klingt...
                              Einzige "Hürde" ob bzw. wie dein iobroker von außen erreichbar ist. Hab es bei mir mit nem Reverse Proxy gelöst, klappt problemlos.

                              B Offline
                              B Offline
                              Beowolf
                              schrieb am zuletzt editiert von
                              #17

                              @bommel_030

                              Das mit dem "von außen erreichbar" möchte ich eigentlich nicht. Sicherer wäre es, wenn ioBroker es sich holt.

                              Reverse Proxy? Muß ich mir anschauen.

                              Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                              B 1 Antwort Letzte Antwort
                              0
                              • B Beowolf

                                @bommel_030

                                Das mit dem "von außen erreichbar" möchte ich eigentlich nicht. Sicherer wäre es, wenn ioBroker es sich holt.

                                Reverse Proxy? Muß ich mir anschauen.

                                B Nicht stören
                                B Nicht stören
                                bommel_030
                                schrieb am zuletzt editiert von
                                #18

                                @beowolf
                                Wenn du deinen iobroker "nur" lokal nutzt dann schau dir den Parser Adapter an, damit Holst sich der iobroker die Daten ohne das irgendwas von außen geöffnet ist. Auf jeden Fall kein Portforwading, das ist böse ;-)

                                B 1 Antwort Letzte Antwort
                                0
                                • B bommel_030

                                  @beowolf
                                  Wenn du deinen iobroker "nur" lokal nutzt dann schau dir den Parser Adapter an, damit Holst sich der iobroker die Daten ohne das irgendwas von außen geöffnet ist. Auf jeden Fall kein Portforwading, das ist böse ;-)

                                  B Offline
                                  B Offline
                                  Beowolf
                                  schrieb am zuletzt editiert von
                                  #19

                                  @bommel_030

                                  Den Parser Adapter hatte ich mir schon angeschaut. Das ist im Moment noch ein Ding mit sieben Siegeln.

                                  Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                  W 1 Antwort Letzte Antwort
                                  0
                                  • B Beowolf

                                    @bommel_030

                                    Den Parser Adapter hatte ich mir schon angeschaut. Das ist im Moment noch ein Ding mit sieben Siegeln.

                                    W Offline
                                    W Offline
                                    watcherkb
                                    schrieb am zuletzt editiert von
                                    #20

                                    @beowolf hi, hast du hier schon eine Lösung gefunden? Stehe vor der selben Frage, wie ich remote an mein iobroker Daten senden kann.

                                    CC2538+CC2592 PA-Zigbee-Funkmodul

                                    B BananaJoeB 2 Antworten Letzte Antwort
                                    0
                                    • W watcherkb

                                      @beowolf hi, hast du hier schon eine Lösung gefunden? Stehe vor der selben Frage, wie ich remote an mein iobroker Daten senden kann.

                                      B Offline
                                      B Offline
                                      Beowolf
                                      schrieb am zuletzt editiert von
                                      #21

                                      @watcherkb

                                      Hallo,

                                      ich habe das Projekt nicht weiter verfolgt, da sich die Notwendigkeit erledigt hatte. Ich kann dir da leider nicht weiter helfen.

                                      Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                      1 Antwort Letzte Antwort
                                      0
                                      • W watcherkb

                                        @beowolf hi, hast du hier schon eine Lösung gefunden? Stehe vor der selben Frage, wie ich remote an mein iobroker Daten senden kann.

                                        BananaJoeB Online
                                        BananaJoeB Online
                                        BananaJoe
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #22

                                        @watcherkb man kann per Python leicht einen eigenen "Webserver" aufsetzen der die aufgerufene URL dann weiter verarbeitet.
                                        Ich hab das mal genutzt um Werte per Befehlsaufruf an Zabbix zu senden:

                                        https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen

                                        wie man sieht ist das mehr als einfach, man definiert die URL und die einzelnen Abschnitte zwischen den / stehen als Parameter zur Verfügung.
                                        Darüber könntest du das dann intern per Simple API etc. an ioBroker weiterleiten (oder per mosquitto_pub an einen MQTT-Broker senden)

                                        Wie man daraus einen Dienst macht habe ich auch beschrieben

                                        Das kann man auch noch mit einer Anmeldung absichern wenn man will. Nach außen bräuchtest du halt den Port weiter geleitet (den du im Skript auch aussuchen kannst). Absicherung über einen Reverse-Proxy ginge auch.

                                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                        W 1 Antwort Letzte Antwort
                                        0
                                        • BananaJoeB BananaJoe

                                          @watcherkb man kann per Python leicht einen eigenen "Webserver" aufsetzen der die aufgerufene URL dann weiter verarbeitet.
                                          Ich hab das mal genutzt um Werte per Befehlsaufruf an Zabbix zu senden:

                                          https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen

                                          wie man sieht ist das mehr als einfach, man definiert die URL und die einzelnen Abschnitte zwischen den / stehen als Parameter zur Verfügung.
                                          Darüber könntest du das dann intern per Simple API etc. an ioBroker weiterleiten (oder per mosquitto_pub an einen MQTT-Broker senden)

                                          Wie man daraus einen Dienst macht habe ich auch beschrieben

                                          Das kann man auch noch mit einer Anmeldung absichern wenn man will. Nach außen bräuchtest du halt den Port weiter geleitet (den du im Skript auch aussuchen kannst). Absicherung über einen Reverse-Proxy ginge auch.

                                          W Offline
                                          W Offline
                                          watcherkb
                                          schrieb am zuletzt editiert von
                                          #23

                                          @bananajoe sagte in Temperaturwert per GSM an Webseite senden?:

                                          Das kann man auch noch mit einer Anmeldung absichern wenn man will. Nach außen bräuchtest du halt den Port weiter geleitet (den du im Skript auch aussuchen kannst). Absicherung über einen Reverse-Proxy ginge auch.

                                          Hi, danke dir. Ich hadere noch damit, einen Port nach außen aufzumachen. Ich möchte mir nicht unnötig eine Sicherheitslücke ins System holen. Mit reverse-proxy habe ich mich bisher nicht beschäftigt. Wie aufwändig ist es denn, das aufzusetzen?

                                          CC2538+CC2592 PA-Zigbee-Funkmodul

                                          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

                                          831

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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