Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Fritzbox TR064 ESP Klingel Datenpunkt ?

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Fritzbox TR064 ESP Klingel Datenpunkt ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skokarl last edited by

      Hallo,
      hat irgendjemand von Euch eine Fritzbox mit TR064, und eine ESP Klingel ( Weiterleitung an Telefon ) ?
      Die Kombination geht super,.... aber im TR Adapter gibt es keinen Datenpunkt für die Auslösung der Klingel, oder ?
      d.h. ich kann beim Klingeln KEIN Bild der Kamera anzeigen, weil ich nicht weiß wann es geklingelt hat, oder ?

      Ich hab es jetzt nicht so ausführlich erklärt, aber diejenigen unter Euch die eine ESP Klingel benutzen wissen
      was ich meine.

      1 Reply Last reply Reply Quote 0
      • SBorg
        SBorg Forum Testing Most Active last edited by

        Hi,
        kannst du es nicht über die Telefonnummer festmachen? Ich habe zwar keine, aber IMHO wird das doch per Rundruf (#9) realisiert?
        ...oder den Sketch um MQTT aufbohren bzw. per Simple-API einen Datenpunkt setzen.

        S 1 Reply Last reply Reply Quote 0
        • S
          skokarl @SBorg last edited by

          @SBorg Ich habe zwar keine, aber IMHO wird das doch per Rundruf (#9) realisiert?

          ...oder den Sketch um MQTT aufbohren bzw. per Simple-API einen Datenpunkt setzen.

          Richtig, wird per Rundruf gemacht, ....aber der zweite Teil Deiner Aussage ist der, der mich geistig völlig überfordert 😰 .... nee, das kann ich nicht.

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active last edited by

            Ok, MQTT ist schon nicht einfach, Simple-API ist ein Adapter für den ioB. Damit kann man per Aufruf z.B. einen Datenpunkt setzen. Man würde also, wenn der Rundruf vom ESP ausgelöst wird, per zusätzlichem Befehl im Sketch des ESP den Datenpunkt setzen.

            Oder du baust ein Blockly, welches den Datenpunkt setzt wenn im TR064 die Rufnummer **9 auftaucht (werden Interne Anrufe überhaupt im TR064 angezeigt...grübel).

            S 1 Reply Last reply Reply Quote 0
            • W
              weimaraner last edited by

              Hilft dir das weiter? Link Text

              S 1 Reply Last reply Reply Quote 0
              • S
                skokarl @SBorg last edited by skokarl

                @SBorg
                cool dass Du mich verstehst 👍

                schade dass Du keinen ESP hast, .... genau diesen benötigten Datenpunkt gibt es nicht, oder ich sehe ihn nicht.
                Alternativ könnte man überlegen den Quellcode der ESP Klingel zu ändern und einfach einen Datenpunkt zweckentfremden 😬

                #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <tr064.h> const char WIFI_SSID[] = "WLANNAME(SSID)"; // <-- ändern const char WIFI_PASSWORD[] = "WLANPASSWORT"; // <-- ändern const char USER[] = "admin"; const char PASSWORD[] = "PASSWORT"; // <-- ändern const char FRITZBOX_IP[] = "192.168.178.1"; const int FRITZBOX_PORT = 49000; TR064 tr064_connection(FRITZBOX_PORT, FRITZBOX_IP, USER, PASSWORD); const IPAddress STATIC_IP(192, 168, 178, 230); const IPAddress GATEWAY(192, 168, 178, 1); const IPAddress SUBNET(255, 255, 255, 0); const IPAddress DNS(GATEWAY); const char DEVICE_NAME[] = "ESP-Klingel"; void setup() { WiFi.hostname(DEVICE_NAME); WiFi.config(STATIC_IP, SUBNET, GATEWAY, DNS); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); WiFi.mode(WIFI_STA); while (WiFi.status() != WL_CONNECTED) { delay(50); } tr064_connection.init(); String tr064_service = "urn:dslforum-org:service:X_VoIP:1"; // Die Telefonnummer **9 ist der Fritzbox-Rundruf. String call_params[][2] = {{"NewX_AVM-DE_PhoneNumber", "**9"}}; tr064_connection.action(tr064_service, "X_AVM-DE_DialNumber", call_params, 1); // Warte vier Sekunden bis zum auflegen delay(4000); tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup"); ESP.deepSleep(0); } void loop() {}

                SBorg 1 Reply Last reply Reply Quote 0
                • S
                  skokarl @weimaraner last edited by

                  @weimaraner sagte in Fritzbox TR064 ESP Klingel Datenpunkt ?:

                  Hilft dir das weiter? Link Text

                  Danke, lese ich mir mal durch, vielleicht verstehe ich es

                  1 Reply Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @skokarl last edited by

                    @skokarl sagte in Fritzbox TR064 ESP Klingel Datenpunkt ?:

                    ...schade dass Du keinen ESP hast,

                    Mehr als genug, nur dafür nicht. Meine Siedle hängt schon per Koppler an der FB 🙂
                    Ungetestet:

                    #include <Arduino.h>
                    #include <ESP8266WiFi.h>
                    #include <ESP8266HTTPClient.h>
                    #include <tr064.h>
                    
                    const char WIFI_SSID[] = "WLANNAME(SSID)";   // <-- ändern
                    const char WIFI_PASSWORD[] = "WLANPASSWORT"; // <-- ändern
                    const char USER[] = "admin";
                    const char PASSWORD[] = "PASSWORT"; // <-- ändern
                    const char FRITZBOX_IP[] = "192.168.178.1";
                    const int FRITZBOX_PORT = 49000;
                    const char* IOBROKER = "192.168.178.99"; // <-- ändern auf ioBroker-IP
                    const int IOBROKER_PORT = 8087;
                    String IOBROKER_DP = "/set/javascript.0.ESP_Klingel?value=";
                    
                    TR064 tr064_connection(FRITZBOX_PORT, FRITZBOX_IP, USER, PASSWORD);
                    
                    const IPAddress STATIC_IP(192, 168, 178, 230);
                    const IPAddress GATEWAY(192, 168, 178, 1);
                    const IPAddress SUBNET(255, 255, 255, 0);
                    const IPAddress DNS(GATEWAY);
                    
                    const char DEVICE_NAME[] = "ESP-Klingel";
                    
                    void setup() {
                      WiFi.hostname(DEVICE_NAME);
                      WiFi.config(STATIC_IP, SUBNET, GATEWAY, DNS);
                      WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
                      WiFi.mode(WIFI_STA);
                    
                      while (WiFi.status() != WL_CONNECTED) { 
                       delay(50);
                      }
                    
                      tr064_connection.init();
                    
                      String tr064_service = "urn:dslforum-org:service:X_VoIP:1";
                    
                      // Die Telefonnummer **9 ist der Fritzbox-Rundruf.
                      String call_params[][2] = {{"NewX_AVM-DE_PhoneNumber", "**9"}};
                      tr064_connection.action(tr064_service, "X_AVM-DE_DialNumber", call_params, 1);
                    
                    
                      //ioB-Part Datenpunkt per Simple-API setzen##############
                       // Use WiFiClient class to create TCP connections
                          WiFiClient client;
                          if (!client.connect(IOBROKER, IOBROKER_PORT)) {
                             Serial.println("connection failed");
                          return;
                          }
                        client.print(String("GET ") + IOBROKER_DP + "true HTTP/1.1\r\n" +
                                   "Host: " + IOBROKER + "\r\n" + 
                                   "Connection: close\r\n\r\n");
                      //#######################################################    
                    
                      // Warte vier Sekunden bis zum auflegen
                      delay(4000);
                      tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup");
                    
                      //ioB-DP löschen
                      client.print(String("GET ") + IOBROKER_DP + "false HTTP/1.1\r\n" +
                                   "Host: " + IOBROKER + "\r\n" + 
                                   "Connection: close\r\n\r\n");
                    
                      ESP.deepSleep(0);
                    }
                    
                    void loop() {}
                    

                    Du musst dazu noch den Simple-API-Adapter im ioB installieren, dann einen Datenpunkt unter javascript.0.ESP_Klingel anlegen (wenn er anders lauten soll im Sketch ebenfalls ändern 😉 )
                    Wenn es funktioniert sollte nun für 4 Sekunden true im DP stehen, danach wird er wieder auf false gesetzt.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      skokarl @SBorg last edited by

                      @SBorg
                      Das programmierst Du mal eben aus dem Kopf ?😱
                      Besten Dank, werde es testen und berichten.

                      Gruß Bernd
                      p.s. sorry für meinen unübersichtlichen Spoiler, hab ich vorhin vom Handy gemacht.
                      Handy und Forum ist Mist 😬

                      1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active last edited by

                        Wenn es nicht geht flashe ich es mal auf einen ESP. Der Klingelteil funktioniert ja, da muss ich nix anklemmen und kann nur das schreiben des Datenpunktes emulieren.

                        Der Sketch ist eher einfach. Ich sitze gerade an einer Erweiterung für meine Heizung mit MQTT, Gas-Sensor, OLED, Raumtemperatur, Stromverbrauch, WW-Zirkulation... das ist ein "klein wenig" komplizierter 😀

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          skokarl @SBorg last edited by skokarl

                          @SBorg

                          klingelt, alles gut....

                          geht aber nicht auf true .....

                          Simple API installiert, keine Fehlermedung im Log oderso....

                          1.PNG

                          1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active last edited by

                            Hi,
                            zumindest einen Fehler habe ich eben entdeckt. Ich komme notfalls wohl erst am WE zum flashen.
                            Ändere mal WiFiClient client; in ESP8266HTTPClient client; , sonst kann er einfach keine WiFI-Verbindung mit dem Broker herstellen.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              skokarl @SBorg last edited by

                              @SBorg

                              mmhh
                              1.PNG

                              1 Reply Last reply Reply Quote 0
                              • SBorg
                                SBorg Forum Testing Most Active last edited by

                                Wenn man es halt nicht ausprobiert... 😉
                                Der ESP...Client kann es nicht. Ändere es wieder zurück in WiFiClient und füge ganz oben noch #include <WiFiClient.h> ein, dann funktioniert es auch.

                                S 1 Reply Last reply Reply Quote 1
                                • S
                                  skokarl @SBorg last edited by skokarl

                                  @SBorg sagte in Fritzbox TR064 ESP Klingel Datenpunkt ?:

                                  Wenn man es halt nicht ausprobiert... 😉
                                  Der ESP...Client kann es nicht. Ändere es wieder zurück in WiFiClient und füge ganz oben noch #include <WiFiClient.h> ein, dann funktioniert es auch.

                                  Vielen Dank für Deine Mühen .....
                                  Wir sind fast am Ziel..... kleines Problem noch auf der Zielgeraden 😎
                                  Der Datenpunkt geht nicht zurück auf false ... 😭

                                  Ich hab zwar keine Ahnung, aber kann es sein, dass der ESP zu schnell wieder schlafen geht ?

                                  oder liegt es daran, dass nach dem ersten Setzen auf True die "Connection: close\r\n\r\n"); steht ?

                                  Wie gesagt, bin erst noch ganz am Anfang 😬

                                  Ich könnte ja den Datenpunkt auch einfach über Blocky zurücksetzen,
                                  aber wie ich Dich einschätze willst Du schon wissen warum es nicht zurück auf false geht 😀
                                  Möchte aber auch Deine Zeit nicht strapazieren, also alles gut.

                                  aktueller Code

                                  //ioB-Part Datenpunkt per Simple-API setzen##############
                                     // Use WiFiClient class to create TCP connections
                                        WiFiClient client;
                                        if (!client.connect(IOBROKER, IOBROKER_PORT)) {
                                           Serial.println("connection failed");
                                        return;
                                        }
                                      client.print(String("GET ") + IOBROKER_DP + "true HTTP/1.1\r\n" +
                                                 "Host: " + IOBROKER + "\r\n" + 
                                                 "Connection: close\r\n\r\n");
                                    
                                    
                                    
                                    // Warte 12 Sekunden bis zum auflegen
                                    delay(12000); // <-- Zeit wie lange es klingeln soll
                                    tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup");
                                  
                                    //ioB-DP löschen
                                    client.print(String("GET ") + IOBROKER_DP + "false HTTP/1.1\r\n" +
                                                 "Host: " + IOBROKER + "\r\n" + 
                                                 "Connection: close\r\n\r\n");
                                    
                                    
                                    
                                    ESP.deepSleep(0);
                                  }
                                  
                                  void loop() {}
                                  
                                  SBorg 1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @skokarl last edited by SBorg

                                    @skokarl sagte in Fritzbox TR064 ESP Klingel Datenpunkt ?:

                                    Möchte aber auch Deine Zeit nicht strapazieren, also alles gut.

                                    Kein Problem 🙂
                                    Ich bin auch so langsam wieder auf der Zielgeraden. Nach updaten der Arduino IDE will diese zwar immer noch nicht, aber mein zerschossener Atom (hatte sich beim kompilieren aufgehängt, danach ging nix mehr) läuft wieder halbwegs. Gestern 6 Stunden installiert/deinstalliert, danach alles "per Hand" vom System geputzt...

                                    ...und du liegst mit deinem "Connection: close..." richtig. WiFiClient baut eine Verbindung zum Broker auf, die mit "close" wieder beendet wird. Ich habe einfach, faul wie ich (und wohl die meisten Anderen auch) bin, beim C&P zu wenig erwischt. Du/man könntest auch einfach den 1. Part + "Connection: close\r\n\r\n" entfernen, aber du lässt es 12 Sekunden klingeln und danach baut der TR064 noch die Verbindung wieder ab. In der Zeit könnte auch die WiFi-Verbindung verloren gehen. Da wäre es besser wieder eine aufzubauen. Kostet zwar Zeit, aber der ESP macht zu 99.9% eh nix außer schlafen und ob das "false" nun 20ms früher oder später gesetzt wird fällt wohl auch nicht ins Gewicht ^^
                                    Diesmal hoffentlich alles C&P richtig; einfach den "ioB-DP löschen" mit ersetzen (oder den WiFiClient...} Teil hinzufügen):

                                    //ioB-DP löschen
                                          WiFiClient client;
                                          if (!client.connect(IOBROKER, IOBROKER_PORT)) {
                                             Serial.println("connection failed");
                                          return;
                                          }
                                    
                                        client.print(String("GET ") + IOBROKER_DP + "false HTTP/1.1\r\n" +
                                                   "Host: " + IOBROKER + "\r\n" + 
                                                   "Connection: close\r\n\r\n");
                                    
                                    S 1 Reply Last reply Reply Quote 1
                                    • S
                                      skokarl @SBorg last edited by

                                      @SBorg
                                      Du bist nen geiler Typ,.... !!
                                      Viel Erfolg mit Deinem System.

                                      Ich starte dann auch noch nen Versuch, dass meine Frau endlich sehen kann wer klingelt.... 👍

                                      1 Reply Last reply Reply Quote 1
                                      • SBorg
                                        SBorg Forum Testing Most Active last edited by

                                        Danke für die Blumen 🙂
                                        Ich werde den kpl. (+ dann richtigen) Sketch bei Gelegenheit noch auf GitHub packen, ev. braucht es ja noch jemand.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          skokarl @SBorg last edited by skokarl

                                          @SBorg sagte in Fritzbox TR064 ESP Klingel Datenpunkt ?:

                                          Danke für die Blumen 🙂
                                          Ich werde den kpl. (+ dann richtigen) Sketch bei Gelegenheit noch auf GitHub packen, ev. braucht es ja noch jemand.

                                          mach das ...die ESP Klingel Lösung ist schon geil ....
                                          p.s. probier ihn aber vorher mal in Ruhe, es funktioniert immer noch nicht..... ich lasse es jetzt bei true, und setze das false mit dem Anzeigen der View.
                                          Irgendwas ist da komisch....., aber mach jetzt erstmal Deins,...
                                          Danke für alles.

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            skokarl last edited by skokarl

                                            das geht perfekt ....

                                            #include <Arduino.h>
                                            #include <ESP8266WiFi.h>
                                            #include <ESP8266HTTPClient.h>
                                            #include <tr064.h>
                                            #include <WiFiClient.h>
                                            
                                            const char WIFI_SSID[] = "meineFritzbox";   // <-- ändern
                                            const char WIFI_PASSWORD[] = "12345678!"; // <-- ändern
                                            const char USER[] = "userklingel"; <-- Fritzbox User
                                            const char PASSWORD[] = "userklingel123"; // Fritzbox User Kennwort <-- ändern
                                            const char FRITZBOX_IP[] = "192.168.178.1";
                                            const int FRITZBOX_PORT = 49000;
                                            const char* IOBROKER = "192.168.178.56"; // <-- ändern auf ioBroker-IP
                                            const int IOBROKER_PORT = 8087;
                                            String IOBROKER_DP = "/set/javascript.0.ESP_Klingel?value=";
                                            
                                            TR064 tr064_connection(FRITZBOX_PORT, FRITZBOX_IP, USER, PASSWORD);
                                            
                                            const IPAddress STATIC_IP(192, 168, 178, 61);
                                            const IPAddress GATEWAY(192, 168, 178, 1);
                                            const IPAddress SUBNET(255, 255, 255, 0);
                                            const IPAddress DNS(GATEWAY);
                                            
                                            const char DEVICE_NAME[] = "ESP-Klingel";
                                            
                                            void setup() {
                                              WiFi.hostname(DEVICE_NAME);
                                              WiFi.config(STATIC_IP, SUBNET, GATEWAY, DNS);
                                              WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
                                              WiFi.mode(WIFI_STA);
                                            
                                              while (WiFi.status() != WL_CONNECTED) {
                                               delay(50);
                                              }
                                            
                                              tr064_connection.init();
                                            
                                              String tr064_service = "urn:dslforum-org:service:X_VoIP:1";
                                            
                                              // Die Telefonnummer **9 ist der Fritzbox-Rundruf.
                                              String call_params[][2] = {{"NewX_AVM-DE_PhoneNumber", "**9"}};
                                              tr064_connection.action(tr064_service, "X_AVM-DE_DialNumber", call_params, 1);
                                            
                                               //ioB-Part Datenpunkt per Simple-API setzen##############
                                               // Use WiFiClient class to create TCP connections
                                                  WiFiClient client;
                                                  if (!client.connect(IOBROKER, IOBROKER_PORT)) {
                                                     Serial.println("connection failed");
                                                  return;
                                                  }
                                              client.print(String("GET ") + IOBROKER_DP + "true HTTP/1.1\r\n" +
                                                           "Host: " + IOBROKER + "\r\n" + 
                                                           "Connection: close\r\n\r\n");
                                            
                                              // Warte 12 Sekunden bis zum auflegen
                                              delay(12000); // <-- Zeit wie lange es klingeln soll
                                            
                                              tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup");
                                              
                                              ESP.deepSleep(0);
                                            }
                                            
                                            void loop() {}
                                            

                                            Danach mit Script die View Cam einschalten, und den Datenpunkt auf False setzen.
                                            Danke an SBorg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            406
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            3
                                            26
                                            2468
                                            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