Forum: Mikrocontroller und Digitale Elektronik ESP8266 Klingel - kein Call


von Christian S. (chris02)


Lesenswert?

Hallo zusammen,

würde gerne meine Klingel mit einem ESP8266 erweitern, da ich das 
Klingeln im Keller nicht höre.

Bei Reichelt gibt es dazu einen kleinen Sketch und eine Anleitung.

https://www.reichelt.de/magazin/how-to/smarte-tuerklingel/

Da ich sowieos noch ein Wemo D1 mini hier liegen haben, würde ich diesen 
gerne dafür nutzen. Bin nach der Anleitung vorgegangen. Bei bei den 
Arduino Board den Wemos D1 R1 ausgewählt und den angepassten Scatch 
hochgeladen.

Das sich der Wemo im Wifi anmeldet sehe ich in der Fritzbox. Ein Call 
geht aber leider nicht raus.
Admin Passwort habe ich angepasst. Das sollte ja das Selbe sein, mit dem 
ich mich sonst auch anmelde?

Haken bei "Zugriff für Anwendungen zulassen" in der FritzBox ist auch 
gesetzt.

Habt ihr noch eine Idee wie ich prüfen könnte, wo das Problem liegt?

Dasnke & Gruß
Chris



SKETCH:

#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() {}

von Stefan F. (Gast)


Lesenswert?

Geht ein "Call" raus, wenn du den Ausgang des Optokopplers manuell mit 
einer Drahtbrücke verbindest (Pin 3 und 4)?

von Christian S. (chris02)


Lesenswert?

Sorry, hab ich vergessen dazu zu schreiben. Habe aktuell nur den Wemos 
am USB Kabel. Reset mach ich händisch über den Rest Taster am Wemos oder 
Power ab/an.

von Stefan F. (Gast)


Lesenswert?

Dann informiere dich mal, welche Debug Möglichkeiten diese tr064 Klasse 
bereit stellt.

Alternativ könntest du auf deinem PC einen Apache HTTP Server als Proxy 
einrichten, der alle Anfragen 1:1 an die Fritzbox weiter leitet. Dann 
änderst du dein ESP Programm so, dass es mit deinem PC redet. Dann 
kannst du auf dem PC Wireshark benutzen, um die Netzwerk-Kommunikation 
zu untersuchen.

Was die Anmeldung angeht: Du kannst in der Fritzbox einstellen, welcher 
User-Account für die TR064 Schnittstelle zu verwenden ist.

von LongNoseLion (Gast)


Lesenswert?

Fehlermeldung beim Kompilieren:

WiFiClientSecure * _tcps;

Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

von Stefan F. (Gast)


Lesenswert?

LongNoseLion schrieb:
> Fehlermeldung beim Kompilieren:
>
> WiFiClientSecure * _tcps;
>
> Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

Zitiere bitte die vollständige Ausgabe des Compiler. Denn mit diesem 
verkürzten Text kann ich nichts anfangen. Außerdem füge bitte den 
vollständigen Quelltext ein, der diese Meldung hervorgebracht hat, und 
benenne die Version des betroffenen Arduino Core.

von Weihnachtsmann (Gast)


Lesenswert?

Stefanus F. schrieb:
> Alternativ könntest du auf deinem PC einen Apache HTTP Server als Proxy
> einrichten, der alle Anfragen 1:1 an die Fritzbox weiter leitet. Dann
> änderst du dein ESP Programm so, dass es mit deinem PC redet. Dann
> kannst du auf dem PC Wireshark benutzen, um die Netzwerk-Kommunikation
> zu untersuchen.


Oder, falls er es nicht so unsinnig umständlich machen möchte, er läßt 
die Fritzbox die Pakete protokollieren:
http://fritz.box/html/capture.html

von Timo N. (tnn85)


Lesenswert?

Du musst in der Fritzbox die Wählhilfe aktivieren.

Fritzbox -> Telefonie -> Anrufe -> Reiter "Wählhilfe"

: Bearbeitet durch User
von LongNoseLion (Gast)


Lesenswert?

Hallo Stefanus,

vielen Dank für die rasche Antwort.

Der Quelltext stammt von Chris02 weiter oben (ich wollte es halt auf die 
billige Tour machen). Die entsprechenden Passwörter, SSID etc. wurden 
gesetzt. Fritzbox 7590. Der ESP ist ein LoLin V3. Arduino IDE ist 
1.6.10, oder 1.8.5, oder 1.8.9.

Bricht aber schon mit der Fehlermeldung beim Compilieren ab!

Bisher gab es keine Probleme mit dem ESP. Ich habe u.a komplette 
Gewächshausheizungssteuerung mit WLAN, Abfrage und html Ausgabe laufen. 
Da gibt es keine Probleme.

Compiler-Ausgabe:

In file included from 
C:\Users\xxx\Documents\Arduino\libraries\TR-064\tr064.h:18:0,

                 from 
C:\Users\xxx\Documents\Arduino\libraries\TR-064\tr064.cpp:9:

C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:167:9:  error: 
'WiFiClient' does not name a type

         WiFiClient & getStream(void)  _attribute_ ((deprecated)) ;

         ^

C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:168:9:  error: 
'WiFiClient' does not name a type

         WiFiClient * getStreamPtr(void);

         ^

C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:182:9:  error: 
'WiFiClient' does not name a type

         WiFiClient * _tcp;

         ^

C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:183:9:  error: 
'WiFiClientSecure' does not name a type

         WiFiClientSecure * _tcps;

         ^

Bibliothek ESP8266WiFi in Version 1.0 im Ordner: 
C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266WiFi   wird verwendet
Bibliothek ESP8266HTTPClient in Version 1.0 im Ordner: 
C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2 
.1.0\libraries\ESP8266HTTPClient   wird verwendet
Bibliothek TR-064 in Version 0.0.1 im Ordner: 
C:\Users\xxx\Documents\Arduino\libraries\TR-064  wird verwendet
exit status 1
Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

von Stefan F. (Gast)


Lesenswert?

> \packages\esp8266\hardware\esp8266\2.1.0

Das ist eine ziemlich alte Version. Versuche es mal mit der Version 
2.3.0 und wenn die nicht geht, dann die aktuellste.

von LongNoseLion (Gast)


Lesenswert?

OK, Danke! Compilieren funktioniert

von Stefan F. (Gast)


Lesenswert?

LongNoseLion schrieb:
> OK, Danke! Compilieren funktioniert

Mit welcher Version hat es geklappt?

von LongNoseLion (Gast)


Lesenswert?

ESP 2.5.2 und Arduino IDE 1.8.9

Nur klingelt Fritz noch nicht--- liegt aber sicher an den FB 
Einstellungen

von Timo N. (tnn85)


Lesenswert?

LongNoseLion schrieb:
> ESP 2.5.2 und Arduino IDE 1.8.9
>
> Nur klingelt Fritz noch nicht--- liegt aber sicher an den FB
> Einstellungen

Versuch das mit der Wählhilfe. Das war es bei mir.

von Kai (Gast)


Lesenswert?

Hallo,

ich habe das selbe Problem alles schon kreuz und quer ausprobiert, kann 
es daran liegen das der Sketch nicht zum letzen update zur Fritzbox 
passt...

Sketch wird hochgeladen aber kein Klingeln mir fällt auch nichts mehr 
ein...

von Camille Mahowald (Gast)


Lesenswert?

Hallo,

es gibt zwei Hürden zu nehmen bei diesem Klingel Projekt :

- Die passende Bibliothek für das WLAN Modul.

- Die richtige Fritzbox Konfiguration.

Mit dem WLAN Modul klappte das bei mir auf Anhieb nur die 7390 Fritzbox 
wollte nicht mitspielen. Denn mit Wahlhilfe einrichtem alleine ist es 
nicht getan, da muss noch etwas mehr getan werden. Auf dieser Webseite 
bin ich fündig geworden : 
http://www.roehrenkramladen.de/Tuerklingel/TK-FB-V1a-1.html.

Da hat sich Jemand richtig Arbeit gemacht und nicht nur den Arduino Code 
dokumentiert sondern auch die Konfiguration der Fritzbox. Mit der Doku 
für die Fritzbox klappte es dann auch bei mir.

MfG Camille

von Manfred S. (manfred_s127)


Lesenswert?

Hallo Leute,

Ich verzweifle langsam.
Mein Programm sieht ähnlich aus wie vom "Röhrenkranladen".
Das tr064 Protokoll scheint auch zu funktionieren. IP Adresse ist da. Es 
werden fleissig Daten zwischen Fritz Box und esp8266 ausgetauscht. Nur 
klingelt kein Telefon (**9)/rundruf.
Meine Fritz Box 7530 meldet den ESP nicht an, scheint es mir.
Der Grund liegt wahrscheinlich daran, das man ein simuliertes "analoges" 
Telefon definieren müsste. Das genau geht aber nicht, weil analoge 
Telefone an der Fritz Box hängen.
Man könnte ja noch IP Telefone anbinden klappt aber irgendwie erst Recht 
nicht.
Hat jemand Erfahrung mit dem Problem oder kann mir weiter helfen....
H I L F E....
LG Manfred

von stieneker@web.de (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

die TR064 Ptotokolle sind eine Katastrophe- da blick mal einer durch.
Ich suche immer noch nach der Lösung und kann hier schon verschiedene 
Sachen positiv vermelden.
Der Netzaufbau (IP und so): Funktioniert
Der Tr064 Protokollaufabeu: Funktioniert eigentlich auch
Das "klingeln lassen": Funtioniert leider nicht (Rückmeldung Code 500 - 
interner Server-Fehler, Bearbeitung abgebrochen...???)

Kann das die Syntax sein?
Ich habe mal die Befehle und die Rückmeldungen als JPG angehängt.
Habt ihr eine Idee?

LG Manfred

von sunwalkerr (Gast)


Lesenswert?

Hallo zusammen,

ich habe die ESP Klingel ca. 3 Jahre erfolgreich im Einsatz gehabt. 
Zuerst mit einer 7390, seit etwa einem halben Jahr mit der 7590. Seit 
dem Update auf Fritz.OS 7.25 klingeln die Telefone leider nicht mehr.
Kurze Recherche zeigte das die Anmeldung an der Box sich mit dem Update 
geändert hat. Also im sketch bei fuser aus admin den adminxxxx gemacht. 
AVM vergibt für den Standart User ja jetzt einen usernamen aus admin und 
generischer Zahlenfolge. Leider auch ohne Erfolg. Die Anmeldung im WLAN 
kann ich im Fritzbox Log sehen, beim TR64 komme ich leider nicht weiter. 
Kein Ahnung wie man hier einen Log erhält bzw. Debug Infos.
Daher hoffe ich, das mir hier vielleicht jemand helfen kann.

Vielen Dank und schöne Grüße
sunwalkerr

von temp (Gast)


Lesenswert?

Dann geh direkt über SIP, das sollte immer gehen.

Beitrag "Sipdial per ESP8266 an Fritzbox"

von jtreumer (Gast)


Lesenswert?

@ sunwalkerr,

gleiches Problem hier, habe den neuen User gelöscht und wieder den alten 
'admin' verwendet, danach funktioniert wieder alles - auch ohne Änderung 
im Sketch.

Beste Grüße,  Jürgen

von sunwalkerr (Gast)


Lesenswert?

Danke für eure Antworten.

@jtreumer:
den fritz1234 Nutzer konnte ich leider nicht löschen. Ein Umbenennen war 
möglich, führte aber leider nicht zum Erfolg.
Ich sah das sich der ESP im WLAN anmeldete, mehr passierte nicht. 
Auffällig war, das der ESP eine andere IP hatte, als im sketch 
angegeben. Habe dann im sketch die IP, die von der Box erhalten hat 
eingetragen. Leider ohne Veränderung am Verhalten.

@temp:
Ich habe nach erstem Zögern die SIP Variante probiert. Zum Glück, wie 
ich jetzt sagen kann. Die Config des sketchs auf das Eigene System ist 
kein Problem, wenn man die TR64 schon mal gemacht und und halbwegs 
vertraut mit der Fritzbox ist. Über den TR64 hatte ich von Klingel 
drücken bis Klingeln der Telefone eine Latenz von 4-6s. Mit der SIP 
Lösung beträgt die Latenz etwa 1s, was natürlich sehr positiv ist und 
ich Nachhinein froh sein kann, das meine Klingel nicht mehr 
funktionierte und hier den Rat bekommen habe.

Was ich aber mit meinen Kenntnissen nicht finden konnte, wo kann man die 
Klingeldauer einstellen? Also wie lange die Telefone klingeln.

Vielen Dank für die Unterstützung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.