Forum: Mikrocontroller und Digitale Elektronik ESP8266 Klingel - kein Call


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian S. (chris02)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von LongNoseLion (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fehlermeldung beim Kompilieren:

WiFiClientSecure * _tcps;

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

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von Weihnachtsmann (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Du musst in der Fritzbox die Wählhilfe aktivieren.

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

: Bearbeitet durch User
von LongNoseLion (Gast)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von LongNoseLion (Gast)


Bewertung
0 lesenswert
nicht lesenswert
OK, Danke! Compilieren funktioniert

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
LongNoseLion schrieb:
> OK, Danke! Compilieren funktioniert

Mit welcher Version hat es geklappt?

von LongNoseLion (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.