Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Temperaturwert per GSM an Webseite senden?

    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

    Temperaturwert per GSM an Webseite senden?

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bommel_030 @Beowolf last edited by

      @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 Reply Last reply Reply Quote 0
      • B
        Beowolf @bommel_030 last edited by 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 1 Reply Last reply Reply Quote 0
        • B
          bommel_030 @Beowolf last edited by

          @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 Reply Last reply Reply Quote 0
          • B
            Beowolf @bommel_030 last edited by

            @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 1 Reply Last reply Reply Quote 0
            • B
              bommel_030 @Beowolf last edited by

              @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 Reply Last reply Reply Quote 0
              • B
                Beowolf @bommel_030 last edited by

                @bommel_030

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

                W 1 Reply Last reply Reply Quote 0
                • W
                  watcherkb @Beowolf last edited by

                  @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 BananaJoe 2 Replies Last reply Reply Quote 0
                  • B
                    Beowolf @watcherkb last edited by

                    @watcherkb

                    Hallo,

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

                    1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @watcherkb last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • W
                        watcherkb @BananaJoe last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • BananaJoe
                          BananaJoe Most Active last edited by

                          @watcherkb wenn du das noch nicht gemacht hast ist es aufwendig, jupp.

                          Ich persönlich hätte keine Bauchschmerzen einen - ggf. separaten MQTT-Broker über einen nicht Standardport von außen erreichbar machen - natürlich mit Benutzername + Passwort, eventuell auch noch SSL.

                          Es gibt aber auch "freie" MQTT-Broker im Internet. Dur könntest auch dorthin publishen und dir gezielt die Werte per Client wiederholen. Musst halt damit leben das jeder andere auch die Werte lesen könnte, je nach Anbieter

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            watcherkb @BananaJoe last edited by

                            @bananajoe hey, bin dir noch eine Rückmeldung schuldig 😉
                            Ich habe das jetzt folgendermaßen gelöst und es läuft bisher ganz gut.
                            ESP32 GSM Modul mit kostenloser SIM-Datenkarte von Netzclub. Dieser sendet einen http request an meinen reverse-proxy. Reverse-proxy ist mit Zugangsdaten abgesichert und leitet den request an iobroker und dort an die rest-api Adapter weiter.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            810
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            6
                            25
                            1432
                            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