Go Down

Topic: Wlan-Klingel mit ESP8266 für Fritzbox (Read 457 times) previous topic - next topic

ardubu

May 04, 2019, 10:10 pm Last Edit: May 04, 2019, 10:34 pm by ardubu
Hallo,
ich habe mir die Wlan-Klingel mit ESP8266 für Fritzbox nach dem Beitrag von Reichelt How-To nachgebaut.
Hierfür habe ich mir Platinen in China fertigen lassen. Da ich natürlich keine 10 Platinen benötige, würde ich die Überzähligen für 1€ + Porto / Stk. hergeben. Bei Interesse schickt mir einfach eine PN.

Schaltplan

Platine

Platine bestückt

Sketch
Code: [Select]
/*https://www.reichelt.de/magazin/how-to/smarte-tuerklingel/
* http://arduino.esp8266.com/stable/package_esp8266com_index.json
* https://github.com/Aypac/Arduino-TR-064-SOAP-Library
* Einstellungen FritzBox:
* neuer Benutzer mit Kennwort Berechtigungen-->Sprachnachrichten
* Heimnetz Heimnetzübersicht Netzwerkeinstellungen Zugriff für Anwendungen zulassen
* Telefoniegeräte Neues Gerät einrichten Telefon z.B. Fon S0 oder FON1; Name z.B. Haustür
* Telefonbuch Wählhilfe, Wählhilfe verwenden Verbindung mit Name des S0 Gerätes
* IDE 1.8.1
* 24.02.2019
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <tr064.h>

const char WIFI_SSID[] = "FRITZ!Box XXXX";   // <-- ändern
const char WIFI_PASSWORD[] = "XXXXXXXXXXXX"; // <-- ändern
const char USER[] = "esp_klingel";    //Benutzer
const char PASSWORD[] = "123456"; // <-- ändern Kennwort
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() {
  //Serial.begin(115200);
  //Serial.println("Setup");
  WiFi.hostname(DEVICE_NAME);
  WiFi.config(STATIC_IP, GATEWAY, SUBNET, DNS);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  WiFi.mode(WIFI_STA);

  while (WiFi.status() != WL_CONNECTED) {
   delay(50);
  }
  //Serial.println("mit WLA verbunden");
  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);
  //Serial.println("jetzt müssten die Telefone klingeln");
  // Warte 9 Sekunden bis zum auflegen
  delay(9000);
  tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup");

  ESP.deepSleep(0);
}

void loop() {}

postmaster-ino

anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Doc_Arduino

Hallo,

nette Geste, nur vermisse ich gewisse Schutzmaßnahmen. Mit welcher Spannung läuft das denn? Wie gezeichnet sicherlich mit 3,3V. Dann steckt jemand sein serielles Kabel an, TTL-USB Wandler, womit 5V anliegen und schon ist der ESP und vielleicht auch der Akku hinüber. Mit dem Reichelt DingsBums hat das nichts zu tun. Klingt jetzt hart, aber an deiner Stelle würde ich hier Vorsicht walten lassen. Sonst zerschießen sich unbedarfte Platinenkäufer noch ihre ESPs.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

noiasca

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

ardubu

Hallo,

nette Geste, nur vermisse ich gewisse Schutzmaßnahmen. Mit welcher Spannung läuft das denn? Wie gezeichnet sicherlich mit 3,3V. Dann steckt jemand sein serielles Kabel an, TTL-USB Wandler, womit 5V anliegen und schon ist der ESP und vielleicht auch der Akku hinüber. Mit dem Reichelt DingsBums hat das nichts zu tun. Klingt jetzt hart, aber an deiner Stelle würde ich hier Vorsicht walten lassen. Sonst zerschießen sich unbedarfte Platinenkäufer noch ihre ESPs.
Die Schaltung läuft mit 3,3V. Ich hatte das Reichelt DingsBums auch erst mit dem NodeMCU nachgebaut, hatte aber festgestellt, dass die Schaltung im DeepSleep immernoch 9mA zieht. Darauf habe ich es mit einem nackten ESP8266 12F versucht, der zog nur noch 20µA. Da ich das ganze mit einem LiFePo4 (1000mA Akku betreiben wollte, habe ich mich für die eigene Platine (ohne drumherum) entschieden. Es ist mir auch schon passiert, dass ich den ESP mit einem USB-TTL Wandler mit 5V programmiert habe, hat er schadlos überstanden (ich weiß, außerhalb jeglicher Spezifikation, sollte man auch nicht nach machen). Dem Akku wird beim Programmieren nichts passieren, der kann mit bis zu 1C geladen werden, da geht eher der Wandler in die Knie.

Doc_Arduino

Hallo,

ein einfacher Node, nicht die völlig nackten, zieht bei mir im Sleep 190µA. Man darf nicht diese Vollbestückten verwenden. Ich betreibe einen mit 2 Varta Lithium AA-Batterien (je 2900 mAh).
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Go Up