Christion T. hat neulich im Beitrag:
Beitrag "Türklingel per ESP32 (WLAN, SIP) an Fritzbox"
den Code für seine ESP Klingel veröffentlicht. Das hat mich dazu
gebracht auch mal wieder etwas in dieser Richtung zu machen. Allerdings
benötige ich den Code um per Sip die Fritzbox klingeln zu lassen
ausdrücklich nicht in Verbindung mit dem ESPxxx. Bisher mache ich das
über einen Asterisk-Server der auf meinem NAS läuft. Nun soll so etwas
in den Code meines selbst geschriebenen Servers für die Heimautomation.
Allerdings ist Christians Code zu sehr von der ESP Infrastruktur
abhängig. Das Anzupassen kommt einer Neuentwicklung gleich. Das habe ich
dann gemacht. Im angehängten Code ist eine C++ Classe Sip enthalten die
bis auf die Funktionen Sip::SendUdp(), Sip::Random(), Sip::Millis()und
Sip::MakeMd5Digest() Plattform unabhängig ist. Entwickelt habe ich das
als Windows-Konsolen Programm. Das kann ich aber aus lizensrechtlichen
Gründen nicht veröffentlichen. Deshalb hier das ganze als Arduino ino
für den Esp8266.
Das ist wohl gemerkt kein fertiges Projekt für ahnungslose Bastler. Es
ist nur als Demo zu verstehen. Nach dem Reset und Connecten an die
Fritzbox wählt der ESP die festgelegte Nummer und legt sich dann nach
15s in den Tiefschlaf.
Wer etwas sinnvolles damit machen will, muss den Rest dann noch selbst
entwickeln.
Ich selbst nutze die Arduino IDE nicht, sondern eine makefile Umgebung
wie ich sie heir schon mal beschrieben haben.
Beitrag "Re: ESP32 & ESP8266 etc ohne Arduino?"
Der gesamte Code der Sip-Klasse kommt ohne dynamischen Speicher aus. Es
wird nur ein char Buffer für das Zusammenbauen der UDP Packete benötigt,
den ich selbst nicht in der Klasse halte. Zu beachten ist weiterhin,
dass sich die Klasse die Konfigurationsdaten die in der init-Funktion
übergeben werden nicht buffert, die Pointer müssen deshalb über die
Laufzeit gültig bleiben. Bei meiner Fritzbox kommt es oft vor, dass das
erste UDP-Packet irgendwie verloren geht. Im Gegensatz zu Christians
Code versuche ich das INVITE zu wiederholen wenn die Fritzbox nicht
antwortet.
Marc G. schrieb:> nachdem auskommentieren/einkommentieren des return-werts in der> Sip::Random() Funktion wegen folgendem Fehler :
Du solltest mal deine Entwicklungsumgebung aktualisieren. Aktuell ist
Arduino ESP bei 2.4. Die Funktion war auch in 2.3 schon drin.
Du solltes aber besser nicht das auskommentierte Standard rand()
verwenden ohne einen srand() mit einem zufälligen Wert. Anderenfalls
erzeugt die rand() Funktion nach jedem Reset die gleichen Zahlen, was
bei dieser Anwendung nicht besonders gut ist. Hier die Funktion wie sie
in neueren Esp-Arduinos enthalten ist und die Hardware des ESP8266
nutzt:
1
#define RANDOM_REG32 ESP8266_DREG(0x20E44)
2
longsecureRandom(longhowbig){
3
if(howbig==0){
4
return0;
5
}
6
returnRANDOM_REG32%howbig;
7
}
Marc G. schrieb:> Auch wenn ich noch> hier drüber gestolpert bin und der Fehler anscheinend im Fritz!OS 6.83> meiner 7390 immernoch nicht behoben ist... :
Damit hat mich AVM auch schon zur Weißglut gebracht. Erst gingen kurze
Passwörter nicht mehr, in aktuellen Firmware-Versionen auch keine kurzen
Usernamen mehr. Es gab mal einen Stand, da musste man alle!
Telefongeräte löschen, danach die Fritzbox zwingend neu starten und erst
danach konnte man sie wieder einrichten. Das war bei mir zu Hause und
bei beiden Fritzboxen in der Firma nachvollziehbar.
Jürgen L. schrieb:> Du solltest mal deine Entwicklungsumgebung aktualisieren. Aktuell ist> Arduino ESP bei 2.4. Die Funktion war auch in 2.3 schon drin.
Ja das ist bestimmt der Grund. Es war eine alte Arduino 1.6.8 IDE mit
der ESP 2.0 Bibliothek im Einsatz
Danke schön
Marc
Vielen Dank für das schön schlanke Programm. Bei mir hat es - nach
Anpassen auf meine Umgebung - sofort funktioniert. Ich wußte gar nicht,
daß man das SIP-Protokoll auch mit Udp machen kann. Damit geht es m.E.
viel einfacher als mit Tcp.
Harald
Eigentlich ist bei Sip UDP Standard. Das macht es auch immer etwas
komplizier wenn Router dazwischen sind.
Das Programm ist deshalb relativ schlank, weil ich nicht versucht habe
das Protokoll komplett zu implementieren. Es ist auch nicht angedacht
irgendwelche Audio-Daten zu verarbeiten. Allerdings kann man immerhin
die Tastencodes des angerufenen Telefons abgreifen wenn man das will.
Vielen Dank für die Demo, es funktioniert bei mir wie geplant. Ich bin
relativ unerfahren in der Progarmmierung in C, deswegen bitte ich etwas
um Verständnis für mein "Unverständnis"
Ich möchte ich einen Sip-Dial bei einem Druck eines Tasters auslösen,
der ESP8266 soll anschließend nicht in den DeepSleep fallen sondern auf
die nächste Betätigung warten.
Hat jemand einen Tipp für mich an welcher Stelle ich die Aktion auf die
Tasterbetätigung einfüge? Das ganze muss ja auch im loop funktionieren
so dass ständig der Pin abgefragt wird.
Obi
Hallo ,
Ich finde die sip Türklingel echt gut
habe aber Probleme , vielleicht kann mir jemand helfen ?.
ich würde gerne den klingel Aufruf per void aufrufen
beispiel : wenn Taster gedrückt dann 3 Sekunden klingeln.
ich hab es versucht zu machen , hab es aber nicht hinbekommen.
wenn ich den loop in einen Unterprogramm packe , klingelt es unendlich.
leider verstehe ich das Programm nicht.
Bitte um Hilfe !
Danke.
Endlich !
Hab ich es hinbekommen ,
ich habe alle seriellen Debug ausgaben entfernt.
abfrage zwei taste , wenn taste gedrückt ---> meldung
Kein Deep Standby
viel Spass damit
Grüße Nicki
Hallo,
eine Frage dazu. Die Fritzbox wird hier rein per WLAN kontaktiert?
TR064 muss in der Fritzbox nicht aktiviert werden? Oder doch?
Danke im voraus.
Marc G. schrieb:> Der ESP wird hier als IP-Telefoniegerät an der Fritzbox angemeldet.> Sonst muss da nichts weiter gemacht werden>> Marc
aha, sehr schön. Weil das Bsp. aus der c't 17/2018 nutzt TR064 und das
muss erst aktiviert werden. Mit Raspi c't 17/2017 hatte ich es damals
zum laufen bekommen.
Hallo,
tolles Projekt ! Welchen 8266 habt Ihr denn dafür genommen und was als
Akku und wie lange hält der ? Und wie lange dauert es, bis vom Klingeln
am Tor dann die Telefone klingeln ?
Grüße
Christian
Hallo,
ich bin noch am Überlegen, ob ich das Ganze mit einem Pi oder ESP machen
soll.
Ich möchte allerdings zwei Klingel (Zweifamilienhaus) unterstützen.#
Dazu bräuchte ich dann aber 2 ESPs, oder?
Gruß
Michael
...noch eine Frage: Wie wird der EPS denn geschaltet ? Nur mit dem
klingeltaster an den Akku wird ja nicht reichen oder ? Ich würde den
gerne am Tor draussen anbringen, weil die Funkklingel dort funktioniert
meist nicht
...ich beantworte meine Fragen mal einfach selber, nachdem ich das ans
Laufen bekommen habe:
ESP an Akku, Klingeltaster an GND und Reset. Zeit zwischen drücken des
Tasters und Anfang Klingeln der Telefone nur ca. 1s !!! Sehr cool !!!
Mir gefällt die hier vorgestellt Lösung sehr gut, zusammen mit der
Schaltung aus dem heise-Artikel funktioniert sie nach Eingabe der
Zugangsdaten ohne Änderungen auf anhieb. Allerdings hört das klingeln
nicht auf, wenn man den ESP komplett vom Strom trennt, ohne das Ende des
15 Sekunden Programmzyklus abzuwarten.
Die Fritzbox klingelt allein mit ausgeschaltetem ESP munter weiter. Gibt
es dafür eine passende Einstellung in der Fritzbox oder kann man den
abgesetzten Befehl anpassen. Ich nutze den Rundruf (const char
*sipdialnr = "**9";) als Klingelzeichen.
Zum Thema Sicherheit: Man kann in der Fritzbox dem ESP dem Zugang vom
oder ins Internet verbieten. Man kann in der SIP-Telefon-Konfiguration
in der Fritzbox eine leere/keine Nummer für eingehende Nummern zuweisen
und man kann alle ausgehenden Nummern abwählen. Der interne Ruf "**9"
funktioniert weiterhin. Damit ist der ESP vor Einflüssen aus der Ferne
relativ sicher. Im ESP ist nur das WLAN-Passwort und die Sipzugangsdaten
gespeichert. Anders als bei der Heise-Klingel-Anleitung
(https://shop.heise.de/katalog/esp-uberallklingel), bei der zusätzlich
das kritische Admin-Passwort auf dem ESP unverschlüsselt gespeichert
werden muss.
Nochwas: Man kann in der Fritzbox eine "IP-Türsprechanlage" einrichten.
Die unterstütz zum einen mehrere Klingeln, zum anderen kann man eine
Code festlegen, mit dem sich die Türen öffnen lassen würden. Außerdem
ist bereits die Telefonierfunktion in der Standardkonfiguration
begrenzt.
Leider scheint das unaufhörliche Klingeln bei spontaner
Stromunterbrechung ein Problem von SIP oder der Fritzbox zu sein. Auch
mit einem Softwarephone, bei dem plötzlich die Netzverbindung getrennt
wird, stoppt das Klingeln nicht von allein.
Moin,
es funktioniert im Prinzip auf Anhieb! :)
Sehr toll, danke für diese Einführung.
Was nicht funktioniert, ist der Text den man übergibt.
An allen Endgeräten( DECT, ANALOG, WLAN ) erscheint im Display wahlweise
die
"**621" oder "ESP8266_TEST", in keinem Fall ist die von mir im Code
eingegebene Nachricht "TESTER" zu lesen.
In deinem Protokoll, stellst du dies so dar:
AddSipLine("From: \"%s\" <sip:%s@%s>;tag=%010u", pDialDesc, pSipUser,
pSipIp, tagid);
Sonst funktioniert ja alles, dennoch frage ich mich -> wieso geht das
nicht und wo is der Text geblieben? Ich kann den ja nirgends abfassen,
theoretisch könnte/müsste man den ja dann aus Dial entfernen, wenn der
eh nichts bringt...
Oder übersehe ich da was?
Grüße :)
Im DECT-Handteil werden die Namen so angezeigt, wie sie in der Fritzbox
hinterlegt sind. Bei dir ist das wahrscheinlich "**621" [kein Name] oder
"ESP8266_TEST". Der Sip-Name wird angezeigt, wenn dein Empfangsgerät die
Sip-Daten auswertet. Ist bei mir mit einem Soft-Phone (PhoneLite) auf
dem PC so, das wie der ESP als SIP-Telefon eingerichtet ist.
Ich habe eine kleine Platine entwickelt die in ein Siedle Haustelefon
HT-511 passt. Wer Lust hat, kann die Schaltung gerne nachbauen.
Die Schaltung besteht aus einem AC/DC Netzteil das die 12V
Wechselspannung in ca. 3,3V Gleichspannung zur Versorgung des ESP8285
ESP-1 Moduls wandelt. Außerdem sitzen zwei AC-Optokoppler auf der
Platine zur Abfrage von zwei Klingeltastern (getrennte Eingänge).
Aufgrund der besseren Reichweite habe ich ein ESP8285 ESP-1 WLAN
Funkmodul verwendet.
Die Versorgungsspannung habe ich an die Klemmen b und c des Siedle
Haustelefons HT-511 angeschlossen. Den Eingang habe ich parallel an das
Läutwerk (Summer) am Siedle Haustelefon HT-511 geklemmt.
Den Code habe ich von @Nicki verwendet:
https://www.mikrocontroller.net/attachment/371951/sip_klingel_ND.ino
Funktioniert prima :-)
Andreas G. schrieb:> Hi, hast du zufällig noch eine Platine übrig? Würde mich sehr> interessieren.
Ja, hab ich. Du hast eine Nachricht von mir bekommen.
Grüße :)
Ich habe den Code von Nicki erweitert und eine Türöffner-Funktion mit
implementiert.
Wenn man einen Anruf von der Tür entgegen nimmt, wird das Drücken einer
beliebigen Taste am Telefon jetzt erkannt.
Im SIP INFO-Paket steht die gedrückte Taste direkt im Klartext. Das
Parsen und das Auslösen einer Aktion der Taste wurde im Code
hinzugefügt.
Im Beispiel verwende ich als Ausgang GPIO14 für den Türöffner und die
Taste "6" am Telefon zum Auslösen des Türöffners. Die Einschaltzeit für
den Türöffner lässt sich ebenfalls einstellen.
Vielleicht hilft es jemandem -
Ich versuche den Sketch auf ESP32 zu portieren (mit beschränktem
Vorwissen) und nutze dabei die aktuelle (Mai 2019) Arduino IDE samt den
aktuellen ESP32 1.0.1 Libraries.
Mir gelang es leider nicht, die originale Zeilen
// generate a 30 bit random number
uint32_t Sip::Random()
{
// return ((((uint32_t)rand())&0x7fff)<<15) +
((((uint32_t)rand())&0x7fff));
return secureRandom(0x3fffffff);
}
gegen den ESP32 kompiliert zu bekommen, denn ich finde keine passende
Library, die secureRandom() per #include für den ESP32 nutzbar macht.
Der ESP32 hat aber einen HW RND Generator, den man per esp_random(void)
nutzt. Und so wird daraus:
// generate a 30 bit random number
uint32_t Sip::Random()
{
return esp_random();
}
Damit kommt der Compiler jedenfalls klar.
Mein Bitte: Kann einer der Wissenden hier bestätigen, dass esp_random()
hier richtig eingesetzt ist? Ich freue mich auch über Hinweise, wie ich
secureRandom() auf dem ESP32 doch noch ans Fliegen bekomme.
Danke vorab - Roger
Beim Portieren des Sketches auf ESP32 scheitere ich mangels C++
Kenntnissen an folgernder Fehlermeldung bezüglich Typkonvertierung.
Kann mir da jemand auf die Sprünge helfen?
Wo gleiche ich mit dem wenigsten Aufwand und Risiko den Typ an? In der
Definition, im Aufruf und welchen Typ nehme ich? Danke, Roger
--------------------------------------------------------------------
1
/Volumes/data/Meine Geräte/Arduino UNO/Roger Test/ESP32_SIP_Tuerklingel/ESP32_SIP_Tuerklingel.ino: In member function 'int Sip::SendUdp()':
2
ESP32_SIP_Tuerklingel:439:13: error: invalid conversion from 'char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
3
Udp.write(pbuf, strlen(pbuf));
4
^
5
In file included from /Users/roger/Library/Arduino15/packages/esp32/hardware/esp32/1.0.1/libraries/WiFi/src/WiFi.h:39:0,
6
from /Volumes/data/Meine Geräte/Arduino UNO/Roger Test/ESP32_SIP_Tuerklingel/ESP32_SIP_Tuerklingel.ino:1:
Roger Z. schrieb:> // generate a 30 bit random number> uint32_t Sip::Random()> {> // return ((((uint32_t)rand())&0x7fff)<<15) +> ((((uint32_t)rand())&0x7fff));> return secureRandom(0x3fffffff);> }>
wenn nichts hilft dann das auskommentierte benutzen:
dann solltest du aber in der setup() folgenden Code anpassen:
1
...
2
inti=0;
3
for(i=0;i<100;i++)
4
{
5
if(WiFi.status()==WL_CONNECTED)
6
break;
7
delay(100);
8
Serial.print(".");
9
}
10
...
11
12
ändernin:
13
14
inti=0;
15
for(i=0;i<10000;i++)
16
{
17
rand();
18
if(WiFi.status()==WL_CONNECTED)
19
break;
20
delay(1);
21
if((i%100)==0)
22
Serial.print(".");
23
}
Was für ein Random-Wert da am Ende herauskommt ist völlig egal. Nur wenn
es immer der gleiche ist kommt die Fritzbox durcheinander. Da rand()
nach dem Neustart aber gleiche Werte liefert ist das ein Problem. Mit
der Änderung von oben wird der Wert davon abhängig wie lange der
WLAN-Connect dauert. Das ist schon mal besser als nichts.
Noch ein Hinweis. Den ESP32 an dieser Stelle zu benutzen mach nur Sinn,
wenn der ESP32 nicht! in den Tiefschlaf geht. Die Zeit bis sich der
ESP32 nach dem Reset wieder im WLAN befindet ist deutlich länger als
beim ESP8622.
Für den Fall, dass sich der ESP32 dauerhaft im Betriebsmodus befindet
geht das auch mit dem rand() ohne die Sonderbehandlung am Anfang, da
dann der Zufallsgenerator nicht jedes mal mit dem Reset neu
initialisiert wird.
Aloha Freunde,
Ich hab mir das jetzt lauffähig für den ESP32 (In Verbindung mit einen
Mikrofon-Modul) umgebogen. Sobald meine 1970er Rappel-Glocke rappelt,
reagiert das Mikrofon und der ESP32 wählt **9. Soweit alles bestens.
Allerdings lässt der ESP32 so lange Klingeln bis jetzt abhebt. Hat
jemand eine Idee, wie man eine Art Timeout einbauen kann, das
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
Udp.begin(sipport);
aSip.Init(sipip, sipport, ip, sipport, sipuser, sippasswd, 15);
aSip.Dial(sipdialnr, sipdialtext); // Dial
digitalWrite(ledPin, HIGH); // Mikrofon schaltet HIGH
} else {
// nichts machen ...
digitalWrite(ledPin, LOW);
}
zB nach 10-15 Sekunden ESP-Seitig abgebrochen wird?
Um zu sehen wo das bei dir klemmt musst du schon mehr Code posten. Die
15 am Ende von aSip.Init ist die Zeit nach dem aufgelegt wird. Das kann
aber nur funktionieren wenn in einer Schleife wie im Originalprogramm
weiterhin ständig das aSip.HandleUdpPacket() gerufen wird solange bis
aSip.IsBusy() true liefert und darüber hinaus noch ein paar Sekunden. Im
Beispiel 2. Ich denke irgenwo da hast du was falsch gemacht.
temp schrieb:> musst du schon mehr Code posten
Stimmt. Ich wusste doch, das ich etwas vergessen habe :-)
Habe das Konstrukt gerade vor mir liegen, wenn ich auf das Mikro tippe,
geht die LED vom ESP auf HIGH und dial wird eingeleitet. Nur halt das
Stoppen klappt (noch) nicht.
Geniale Sache!
Auf der FritzBox ein weiteres IP-Telefon eingerichtet, die notwendigen
Strings in der ino Datei angepasst und in einen WeMos D1 mini geflasht
-> funktioniert.
So erspart man es sich gleich mit einer runden Himbeere auf Spatzen zu
schießen;)
Vielen Dank für die ESP Portierung und Implementierung und das
Veröffentlichen des Codes. Reset bis Anruf in ca. 1 bis 2s, Top.
Hallo,
möchte meinen Türöffner mit einem Rückruf ansteuern, bräuchte dazu noch
einen Lösungsansatz. Bin noch ein absoluter Anfänger in C, wäre um jede
Hilfe dankbar.
Grüße
Manuel
Hallo Leute,
folgendes Problem:
Ich habe eine Klingelschaltung mit dem ESP8266 gebaut.
Der klingt sich in mein WLAN ein und klingelt die Telefone an.
Das ist das Programm von J.Liegner aus 2018.
Eigentlich funktioniert das auch gut.
Es gibt nur einen "Haken", wo ich nicht weiter weiss.
Die Schaltung wird über einen Reed-Relais mit "Selbsthaltung" aus dem
ESP gesteuert.
Läuft also so:
1.Klingeltaster wird gedrückt,
2. Das reicht für kurze Zeit zum Start des ESP..
3. Das Programm läuft an und hält das Reed Relais.
4. Jetzt "klingelt" das Programm meine Telefone an.
5. Nach einer Zeit (bei mir 2 Minuten) fällt nach Inaktivität das Relais
ab.
Jetzt zum Problem:
Es werden etwa 500 Zeilen mit Definitionen des Programms etc. Verbracht,
bis das eigentliche Setup kommt, wo ich den Ausgang sinnvoll setzen kann
(die Selbsthaltung).
Das ist oft zu lang, wenn nur kurz der Klingelknopf gedrückt wird.
Wenn ich ganz vorne einen Loop (z.b. Start) einfüge wo ich das mache,
fällt das Relais beim Verlassen des loops sofort ab ;(
Hat jemand eine Idee?
LG Manfred
...eigentlich kommt der Taster ja an Reset, wenn der gedrückt wird,
resettet der ESP, klingelt die Telefone an und nach der vordefinierten
Zeit geht der in den Deepsleep Modus. Ein Relais brauchst du da nicht...
Moin
@Manfred
Findest Du Cross-posting toll oder uns, auf der anderen Seite des
Universum, so schlimm?
Auch hier solltest Du den fragen der Anderen nachkommen - wenn Du Dich
so zeigst, wie bei 'uns' - wird Das hier ebenfalls nicht sonderlich gut
für Dich ausgehen.
Erschwerend kommt hinzu, daß Du hier sogar noch einen fremden Thread
kaperst - aber so ist das Volk wohl heute.
Ach ja ... Cross-Post auf Arduino.cc
https://forum.arduino.cc/index.php?topic=648475.msg4373829#msg4373829
stieneker@web.de schrieb:> Jetzt zum Problem:> Es werden etwa 500 Zeilen mit Definitionen des Programms etc. Verbracht,> bis das eigentliche Setup kommt, wo ich den Ausgang sinnvoll setzen kann> (die Selbsthaltung).
Das ist völliger Schwachsinn. Selbst wenn in der C++ Datei ein paar
Millionen Zeilen davor stehen hat das überhaupt nichts zu sagen. Was der
ESP vor dem setup() macht ist zuerst vom reinen Initalisierunsgcode
abhängig der für den ESP nötig ist um überhaupt erst mal bis zur main()
Methode zu kommen. Beim ESP gehört (m.W.n) auch dazu den Code aus dem
externen Flash erst mal in den RAM zu kopieren. Das kann sicher etwas
dauern. Sämtliche C++ Kontruktoren werden auch vor der main() gerufen.
Was der Arduino-Code ab main() bis zum setup() macht kannst du in den
Arduino Quellen nachlesen. Der her verlinkte Code benötigt jedenfalls
weniger als 1µs für die Intitialisiering von einigen wenigen variablen.
Eventuell könnte es helfen eine spezielle C++ Klasse zu schreiben in
deren Konstruktor der Pin für die Selbsthaltung gesetzt wird. Der
GPIO-Port muss dazu sicher auch erst mal initialisiert werde. Und das
alles mit der ESP-Api und nicht mit Arduino, das dürfte zu dem Zeitpunkt
noch nicht initialisiert sein. Ob das jetzt zeitlich was bringt kriegst
du aber nur mit probieren raus.
Die Hardware kann dir auch einen Strich durch die Rechnung machen. Der
ESP benötigt ja nicht unbedingt kleine Elkos, die müssen auch erst mal
ab Tastendruck geladen werden.
Also, wie beschrieben, Reset drücken, ca. 1s später klingeln die
Telefone für ca. 15s, bzw. Bis einer abnimmt, dann deepsleep bis zum
nächsten Köingelknopf (tatsächlich der Resettaster) drücken. Flutscht
wie doof, out of the box aus dem Thread(code)...
Grüsse Christian
Klasse Projekt, vielen Dank an Jürgen und alle Beteiligten!
Ein Problem habe ich dabei aber: wird die Klingel und damit der Reset
mehrmals betätigt innerhalb der 15s, dann klingelt die Fritzbox ewig!
Gibts da eine Lösung?
Danke und Grüße, Nico
Hi,
ich ahbe das original Script genommen und auf einen ESp geflasht.
Funktioniert grundsätzlich.
Leider klingelt das Ding immer mal ohne das der Taster gedrückt wird.
Und ab und zu regaiert es nicht. Nach aab und wieder anstöpseln des
Stroms geht es dann erstmal wieder.
Hat jemand von euch auch noch dieses Problem?
Ich habe es mit dauerstrom, usb netzteil und mit Batteriepack versucht.
Danke und Gruß
Michael
Aufbau der Schaltung.... hmm. Ich bin elektronisch nicht mit viel Wissen
bestückt. Falls das folgende nicht reicht, bitte genauer erklären was du
brauchst :)
Ich habe einfach einen Anpro ESP8266 microcontroller ESP-12E WiFi
bestellt, mir Arduino runtergeladen und das Ding geflasht.
Der Klingeldraht überbrückt G und D6.
Geändert im Script habe ich nur:
if (digitalRead(12) == LOW) {
//aSip.Dial("**9", "GPIO D6 !");
aSip.Dial("**610", "Klingel Tor");
}
wie gesagt geht das eigentlich ganz gut. Nur Ausfälle und Klingeln ohne
Tasterdruck ab und zu.
Hallo Michael,
mit Klingeldraht meinst Du die 9 - 12 Volt Klingelspannung vom
Klingeltaster oder ist der Taster direkt zwischen GND und dem Eingang D6
angeschlossen (potential getrennt)?
Gruß Alois
Michael R. schrieb:> if (digitalRead(12) == LOW) {> //aSip.Dial("**9", "GPIO D6 !");> aSip.Dial("**610", "Klingel Tor");> }
Und das in der loop()? Wundert mich jetzt dass da überhaupt was geht.
Aber selbst wenn man wenig Ahnung von Elektronik hat sollte man seinen
Kopf einschalten oder es lassen.
Das ist der Original code von Jürgen Liegner. Nur meine Daten
eingetragen und die Nummer anstatt dem Sammelruf **9 in meine ganz unten
im Script verändert.
Hallo Michael,
im loop wird die Abfrage des Digitalen Eingang ständig abgefragt und bei
einem Tastendruck die Routine aSip.Dial("**610", "Klingel Tor"); gleich
mehrmals aufgerufen (solange der Taster gedrückt wird). Ich vermute das
der Stack überläuft und das Programm abstürzt und dann das von Dir
beschriebene Phänomen zeigt.
Welches ESP Modul hast Du den? Kannst Du ein Link oder ein Bild posten.
Ich passe den Source Code für Dich an.
Siehe: Beitrag "Re: Sipdial per ESP8266 an Fritzbox"
Gruß Alois
Hi Alois,
vielen Dank dafür schonmal im vorraus. Was ich nicht verstehe ist, das
niemand anderes dieses Problem hat. ich habe doch im originalcode nichts
verändert ausser der Rufnummer...
Alois, Ich habe gerade mal geprüft welches Script ich da habe. es ist
wohl doch ein irgendwie geändertes Script, nicht ganz das original.
daher haben wohl nicht viele dasselbe Problem.
Es wäre trotzdem toll wenn du den Fehler ausbügeln könntest :)
Nico, Vom Klingeltaster zum ESP sind es etwa 8m. USB Netzteil bzw. auch
Batteriepack.
Hallo ich möchte mich auch bei euch bedanken, ich konnte nun meinen
unzuverlässigen RPI1 in den verdienten Ruhestand schicken. Weiterer
Vorteil, die Telefone klingen quasi instant mit, statt erst mit
sekundenlanger Verzögerung.
Hallo Michael,
ich habe den Source-Code überarbeitet und etwas übersichtlicher
gestaltet.
NodemMCU V3:
Klingeltaster 1 = GPIO12 (D6)
Klingeltaster 2 = GPIO13 (D7)
Türöffner = GPIO14 (D5)
Wenn ein Klingeltaster gedrückt wird, geht die BUILTIN-LED solange an
das Klingeln aktiv ist.
Durch Abheben des Telefonhörers und betätigen der Ziffer "5" am Telefon
wird der Türöffner für 2 Sekunden ausgelöst.
Gruß Alois.
Hallo Michael,
und hier ein Bilder von meinem Siedle Haustelefon HT-511 mit eingebauter
selbstentwickelter Platine (Format 37.9 x 36.1 mm).
ESP-01:
Klingeltaster 1 = GPIO02
Klingeltaster 2 = GPIO00
Türöffner = GPIO01
Die Klingeltaster Eingänge sowie der Türöffner Ausgang sind LOW
schaltend. Das hat den Hintergrund das die Pins des ESP-01 Moduls
nachdem Anlegen der Versorgungsspannung alle erst HIGH aktiv sind.
Ich hatte die Schaltung zuvor mit einem NPN Transistor für die
Relaisansteuerung aufgebaut. Das hatte aber den Effekt das der
Türöffner beim Anlegen der Versorgungsspannung kurzzeitig
angesteuert wurde.
Auf der Platine befindet sich auch ein 3,3V Step-Down-Abwärtswandler
und eine Gleichrichtung. Die Schaltung lässt sich somit mit Gleich-
und Wechselspannung versorgen.
Gruß Alois.
Hallo Alois,
hier noch ein Hinweis, wenn man die ganz alten ESP01 verwendet.
Der wollte mit deiner Schaltung erstmal nicht funktionieren. Hier musste
der Pin CH_PD mit einem PullUp von 10kOhm auf 3,3V gelegt werden.
Jetzt funktioniert es.
Vielen Dank für deine Schaltung. :)
Alois N. schrieb:> Hallo Michael,>> ich habe den Source-Code überarbeitet und etwas übersichtlicher> gestaltet.
Ich habe zwar keine Einschränkungen bei der Verwendung meines Codes
gemacht, finde es aber trotzdem relativ anmassend, wenn du in der sip.h
bzw. sip.cpp angibts der Author des Codes zu sein.
Jürgen L. schrieb:> Ich habe zwar keine Einschränkungen bei der Verwendung meines Codes> gemacht, finde es aber trotzdem relativ anmassend, wenn du in der sip.h> bzw. sip.cpp angibts der Author des Codes zu sein.
Hallo Jürgen,
Sorry, aber das war ein versehen. Ich habe sofort eine Löschanforderung
für den Beitrag gestellt. Eigentlich war das nur mein privater Code den
ich für meine kleine Siedele Türklingel und -öffner Schaltung auf meinem
Rechner hatte. Bei der Anfrage von dem Benutzer Michael habe ich den
Source ohne Verweis auf den eigentlichen Autor hier veröffentlicht. Ich
kann mich nur bei Dir dafür entschuldigen.
Ich wünsche trotz allem einen schönen Sonntag
Alois
Hallo Jürgen,
Die Mods haben den Anhang aus dem ursprünglichen Beitrag gelöscht und
mich gebeten den Source Code erneut mit entsprechender Quellenangabe
hochzuladen.
Ist das so ok für dich?
Gruß Alois
Hallo Zusammen,
nach einem Umzug möchte ich von einer "2-Kanal" Klingen auf "3-Kanal"
erweitern.
Soll heißen bisher waren nur Haustür und Wohnungstür am ESP8266
angeschlossen.
Jetzt soll noch das Gartentor dazu kommen.
Bisher (bis zum Umzug) war es so, dass unterschieden wurde über den Text
"DialDesc" was auf dem DECT Telefon angezeigt werden soll.
Jetzt nach der Erweiterung ist mir aufgefallen, dass dies nicht mehr
funktioniert.
Auch mit der "alten" Version mit 2 Tasten, geht es nun nicht mehr.
Auf dem Display erscheint nun immer der Name des Gerätes wie es in der
FB eingerichtet ist, nicht mehr wie zuvor "Haustuer" oder "Wohnungstuer"
oder wie geplant "Gartentor".
Es kommt immer nur "Türklingel" :-(
Der INVITE sieht wie folgt aus:
In zwischen habe ich mal das Support-Log ausgelesen.
Die Invite Message schein korrekt in der FB anzukommen.
Selbst nach einem Firmware Downgrade auf 7.12 geht es nicht mehr.
Hat jemand ähnliches beobachtet?
Hallo @Dennis, wenn Du den Original-Code von hier:
Beitrag "Re: Sipdial per ESP8266 an Fritzbox"
verwendet hast, sollte es eigentlich funktionieren.
Auch ich habe eine Fritzbox 7590 mit aktueller Labor-Version:
07.19-78990 und es funktioniert schon seit längerem ohne Probleme. Keine
Aufhänger oder Aussetzer. Wirklich genial.
Was mir in Deinem Log auffällt ist, das die ESP-Klingel nicht im
gleichen IP-Segment hängt, wie deine Fritzbox.
192.168.2.1 -> IP deiner Fritzbox
192.168.3.10 -> IP deiner ESP-Klingel
Bei mir hängt alles im gleichen Segment 192.168.178.x
Du rufst **777. Ich mache einen Rundruf mit **9
Alois N. schrieb:> Hallo @Dennis, wenn Du den Original-Code von hier:> Beitrag "Re: Sipdial per ESP8266 an Fritzbox"> verwendet hast, sollte es eigentlich funktionieren.>> Auch ich habe eine Fritzbox 7590 mit aktueller Labor-Version:> 07.19-78990 und es funktioniert schon seit längerem ohne Probleme. Keine> Aufhänger oder Aussetzer. Wirklich genial.> Was mir in Deinem Log auffällt ist, das die ESP-Klingel nich zut im> gleichen IP-Segment hängt, wie deine Fritzbox.>> 192.168.2.1 -> IP deiner Fritzbox> 192.168.3.10 -> IP deiner ESP-Klingel>> Bei mir hängt alles im gleichen Segment 192.168.178.x>> Du rufst **777. Ich mache einen Rundruf mit **9
Ja, soweit korrekt! Leider geht es auch nicht mit dem Original Code.
Im 192.168.2 sind alle "normalen" IP Geräte wie Router, Repeater, NAS,
Drucker, Smartphones und PCs
Im .3 er alles SmartHome Geräte, Alexa, Zigbee Gateway, etc.
**777 ist ein Gruppenruf, da mit **9 sonst auch das Fax mit klingelt.
Im Prinzip geht ja alles, nur das nicht mehr der Text angezeigt wird.
Als ob die FB diesen nicht mehr auswertet.
@Dennis,
hast Du die ESP-Klingel einfach mal aus dem Netzwerk gelöscht?
HEIMNETZ -> NETZWERK -> Gerät löschen
Danach kurzen RESET am ESP machen. Wirkt manchmal Wunder.
Die SIP-Einstellungen in der Fritzbox können erhalten bleiben.
Der ESP sollte sich erneut am WLAN und der Fritzbox anmelden und wie
gewohnt funktionieren.
Schau ob sich was am Verhalten ändert.
Alois N. schrieb:> @Dennis,>> hast Du die ESP-Klingel einfach mal aus dem Netzwerk gelöscht?> HEIMNETZ -> NETZWERK -> Gerät löschen> Danach kurzen RESET am ESP machen. Wirkt manchmal Wunder.>> Die SIP-Einstellungen in der Fritzbox können erhalten bleiben.> Der ESP sollte sich erneut am WLAN und der Fritzbox anmelden und wie> gewohnt funktionieren.>> Schau ob sich was am Verhalten ändert.
@Alois
Danke für den Tipp! Hat leider nichts geändert.
Guten Morgen,
Heute Morgen klingelte es an der Tür und meine Frau sagte "ohh, es geht
wieder!"...
Das "Problem" scheint sich isoliert auf ein neueres Mobilteil zu
beschränken.
Das Mittlere ist mein Büro Telefon das bisher meine Referenz war.
Vor ca. 3 Monaten gab es Aussetzer im Bluetooth worauf ein FW Update
folgte.
Es sieht so aus, als ob es danach nicht mehr so richtig will.
Trotzdem danke!
Dennis H. schrieb:> Das "Problem" scheint sich isoliert auf ein neueres Mobilteil zu> beschränken.> Das Mittlere ist mein Büro Telefon das bisher meine Referenz war.> Vor ca. 3 Monaten gab es Aussetzer im Bluetooth worauf ein FW Update> folgte.> Es sieht so aus, als ob es danach nicht mehr so richtig will.
Hi Dennis,
das wäre wenigstens eine Erklärung ich habe inzwischen verschiedene
Fritzbox Firmwarestände ausprobiert und konnte dein Phänomen nicht
nachstellen. Allerdings verwende ich Original AVM Mobilteile. (1 x
FRITZ!Fon MT-F und 3 x FRITZ!Fon C4).
Alois N. schrieb:> Hi Dennis,>> das wäre wenigstens eine Erklärung ich habe inzwischen verschiedene> Fritzbox Firmwarestände ausprobiert und konnte dein Phänomen nicht> nachstellen. Allerdings verwende ich Original AVM Mobilteile. (1 x> FRITZ!Fon MT-F und 3 x FRITZ!Fon C4).
Hi Alois,
danke, es lässt sich komplett auf das S850HX mit der FW 114.075.06
eingrenzen.
Warum und wieso? Keine Ahnung. Mit den 3x C430 DECT Telefonen geht es.
Für mich selbst, ordne ich diesem Verhalten jetzt eine niedrige Prio zu
und werde es nicht weiter verfolgen, da es im Büro keinen Mehrwert hat
zu wissen, wo es klingelt.
Hallo Dennis,
bei mir zeigen die Fritz!Fons auch den Namen aus dem Feld "Namen" des
IP-Telefons an und nicht den im ESP hinterlegten.
LÖSUNGSIDEE: Damit ich jeden Klingelknopf individuell anzeigen kann,
nutze ich die Funktion "Türsprechanlage" in der Fritz!Box. Du kannst
dann jeder Taste einen individuellen Namen vergeben (Wohnungstür, Tor
usw., auch Umlaute funktionieren!). Die vordefinierten Rufnummern für
Taste 1 (Rufnummer 11), Taste 2 (Rufnummer 12) usw. trägst du in deinem
ESP als Zielrufnummer ein, die bei der entsprechenden Taste gerufen
werden soll.
BEISPIEL: Für das Tor nutzt du die 12 im ESP als Rufnummer, du trägst in
der Fritz!Box bei der Taste 2 die Rufnummer 12 ein und als
Klingeltastenname Torklingel. Die Rufsignalisierung an den gewünschten
Geräten bzw. Gruppen kannst du im Nachgang jederzeit in der Fritz!Box
anpassen, ohne am ESP etwas ändern zu müssen. Der ESP ruft nun die "12"
beim Klingeln am Tor und du siehst auf dem Telefondisplay "Torklingel".
Die Variante läuft bei mir tadellos.
Alois N. schrieb:> SipDial.ino (5,1 KB, 92 Downloads)> | Codeansicht
Ich habe erfolgreich diesen Code als SIP-Klingel auf einem Wemos D1 mini
eingerichtet. Da das meine ersten Versuche mit der Technik sind, frage
ich hiermit, ob es möglich ist, diesen Code mit dem Code
https://github.com/letscontrolit/ESPEasy zu kombinieren (Verwendung
davon 1-Wire Temperatursensoren, Analogeingang mit Umrechnung,
Zeitserver, 1 Digitaleingang). Ausgewertet werden soll der Zustand des
Digitaleingangs, bei low soll der Sip-Anruf ausgelöst werden und/oder
beim Unterschreiten eines festzulegenden Wertes aus der Umrechnung.
Mailversand bekomme ich nicht gebacken, weil auch die Auslösefaktoren
für mich nicht einstellbar sind (kA). Der Zugriff über einen Browser ist
mir wichtig.
Kann mir bei der Lösung jemand helfen?
Guten Abend,
zunächst einmal herzlichen Dank für das hier vorgestellte hervorragende
Projekt und die damit verbundene Arbeit!
Mir ist es gelungen, auf einem ESP8266 die Sache ans Laufen zu bringen.
Gerne würde ich statt der statischen const char* Festlegung der
IP-Adresse im code diese dynamisch - konkret durch Auslesen aus dem
Spiffs/LittleFS zur Laufzeit im setup einstellen. Mangels ausreichender
c++ Kenntnisse ist mir das nach zwei Tagen leider immer noch nicht
gelungen. Vielleicht kann mir jemand dabei behilflich sein, herzlichen
Dank!
Dirk
Es klappt. Ich habe die Library nach meinen Bedürfnissen angepasst und
kann nun die aus dem FS gelesenen credentials übergeb.
Nochmal herzlichen Dank an die Bereitstellung dieser tollen Library!
Moin!
Ich weiß, dieser Thread ist Aßbach-Uralt, aber für mich aht er noch
große relevanz, da ich diese SIP-Implementierung nutze.
Ich nutze dies für eine der üblichen "FritzBox-SIP-Türklingeln". Wenn
ich eine Ziffer drücke, löse ich eine Aktion aus. Dazu nutze ich die
ESP8266Audio Bibliothek von
https://github.com/earlephilhower/ESP8266Audio um eine vorprogrammierte
Ansage über ein DAC durchzusagen.
Gibt es eine Change, eine unidirektionale Audio-Verbindung aufzubauen
und über den DAC am ESP auszugeben? Das wäre absolute Sahne.
Gruß und Dank!
Beitrag "Re: Sipdial per ESP8266 an Fritzbox"
Ist es möglich, einen Auslösewert vom Analogeingang zu programmieren,
der beim unterschreiten einen Sipcall auslöst?
Wie wäre das zu realisieren?
Integriert werden sollte der Code in den des oben genannten Beitrages.
Vielen Dank für dieses tolle Projekt!
Ich habe es mit der ESP8266-Arduino Lösung von
Alois nachbauen können. So etwas selber zu
programmieren würde aber meine Fähigkeiten
überschreiten. In dem Beispielcode arbeitet
der ESP als SIP-Telefon an der FritzBox.
Es kann wählen (Türklingel) und auch einen
Tastendruck der Gegenseite auswerten (Türöffner).
Meine Frage: Ist der Code so erweiterbar, daß
das ESP-SIP-Telefon auch eingehende Anrufe
erkennt und durch einen Portpin signalisiert?
Ich würde es dann gerne als opto-akustische
Zweitklingel verwenden.
Ist diese Ergänzung des Projekts auf Basis des
ESP8266 möglich? Ich habe leider kein Beispiel
für eine Lösung gefunden.
Gruß
Erni
Erni schrieb:> Ist der Code so erweiterbar, daß> das ESP-SIP-Telefon auch eingehende Anrufe> erkennt und durch einen Portpin signalisiert?
Klar, per REGISTER an der Telefonanlage anmelden (und regelmässig
auffrischen) und eingehende INVITEs verarbeiten.
Solange Du keinen Ton brauchst, ist das noch überschaubar.
Oh, das klingt einfach :-)
Das Anmelden an die Telefonanlage (Fritz) müsste in dem
bisherigen Code ja schon vorhanden sein. Dort vermutlich
ohne das Auffrischen, da die Verbindung nur kurz besteht.
Also muß hier über ein Zeitintervall gearbeitet werden.
Die Invites werde ich mir mal genauer anschauen, habe
wohl gesehen, daß der Öffner-Befehl auch darüber arbeitet.
Einen Signalton brauche ich nicht, es reicht die Aktivierung
eines Port-Pins (wie beim Tür-Öffner).
Vielen Dank für die Auskunft!
Erni schrieb:> Das Anmelden an die Telefonanlage (Fritz) müsste in dem> bisherigen Code ja schon vorhanden sein.
Nein, REGISTER ist im Code nicht vorhanden, für ausgehende Verbindungen
schickt man nur INVITEs, ggf. mit Authentifizierung.
Das Thema wird in Kapitel 10 von RFC3261 beschrieben.
Erni schrieb:> Einen Signalton brauche ich nicht
Lokal einen zu erzeugen, wäre kein Problem, aber das Handling von
SIP-Audiodaten ist deutlich komplexer als die nackte Signalisierung.
Moin,
kurze Frage ist das Problem gelöst? ich bin grade genau auf der suche
nach so etwas. Per Anruf auf Sipnummer einen LED Lampe im Silo als
Signal zu haben. meine Klingel ist eine AB Nebenstelle und kann/macht
einen Rundruf, so könnte auch die SIP Nebenstelle angerufen werden und
die Lampe als Signal fungieren.
Gruß
Paul
ramu schrieb im Beitrag #6770449:
> Im Standardfall bekomme> ich folgende Meldung
Das ist völlig normal. INVITE ohne Authentication hinschicken, 401 oder
407 mitsamt Challenge zurückbekommen, dann nochmal ein INVITE mit
passender Response schicken.
Hallo,
kennt deine Fritzbox denn schon den ESP? Sprich wurden neue WLAN Geräte
zugelassen? Nach Bekanntmachung Beider die Funktion wieder sperren.
Tipp: Zeige niemals im Internet deine Fritzbox Logindaten!
Gib einem Mod Bescheid er das korrigieren soll.
Veit D. schrieb:> Tipp: Zeige niemals im Internet deine Fritzbox Logindaten!> Gib einem Mod Bescheid er das korrigieren soll.
Was soll er da korrigieren lassen? Das ist eine Challenge ohne Response,
also zufällige Daten ohne Nutzwert.
Ich weiß schon was ich korrigoieren soll, ist mir leider erst nach dem
Upload aufgefallen.. Wie erreiche ich einen Mod?
Der ESP ist im Netz bekannt und ich kann auch drauf zugreifen...
Ich dachte, wenn 401 zurückkommt, würde in sip.ccp ein erneutes invite
aufgerufen? Bin etwas ratlos, wo genau ich was aufrufen sollte...
Und ist es richtig, dass ich am Anfang nicht wählen kann, solage die
Paketgröße = 0 ist?
ramu schrieb:> Ich dachte, wenn 401 zurückkommt, würde in sip.ccp ein erneutes invite> aufgerufen? Bin etwas ratlos, wo genau ich was aufrufen sollte...
Ein vollständiges Logfile (statt nur des 401 von der Fritzbox) würde
evtl. etwas aussagen.
Hmmm schrieb:> Ein vollständiges Logfile (statt nur des 401 von der Fritzbox) würde> evtl. etwas aussagen.
Aber erst nach dem das Delay(1000) raus ist. Der Code geht nicht davon
aus nur alle Sekunde mal ein UDP Packet verarbeiten zu können.
Hmmm hat recht, hab das delay rausgenommen und vor allen Dingen auch die
wiederholenden inits...
Jetzt klapps gut, nachdem ich den Taster zum Wählen noch entprellt habe,
da beim Einschalten des Kamerastreams manchmal die Zustandsabfrage des
Pins nicht richtig funktionierte...
Danke Euch!
ramu schrieb:> Ich weiß schon was ich korrigieren soll, ist mir leider erst nach dem> Upload aufgefallen. Wie erreiche ich einen Mod?
Entweder findest du zufällig in einem Thread einen User mit
Moderatorqualifikation im Zusatz. Oder du schreibst eine E-Mail an
webmaster@mikrocontroller.net mit deinem Anliegen und Link zum Beitrag.
Hmmm schrieb:> Erni schrieb:>> Ist der Code so erweiterbar, daß>> das ESP-SIP-Telefon auch eingehende Anrufe>> erkennt und durch einen Portpin signalisiert?>> Klar, per REGISTER an der Telefonanlage anmelden (und regelmässig> auffrischen) und eingehende INVITEs verarbeiten.>> Solange Du keinen Ton brauchst, ist das noch überschaubar.
Hallo, ich würde mich auch für eine derartige Lösung interessieren, aber
habe leider nicht das dafür notwendige Wissen um das
programmiertechnisch selbst zu lösen. Wäre echt toll, wenn jemand mir
hier etwas mit dem entsprechenden Code unter die Arme greifen könnte,
falls das nicht Zuviel verlangt ist. Danke!
Freundliche Grüße
Patrick
Hallo Patrick,
ich habe für mich eine andere Lösung gefunden,
um eingehende Anrufe zu signalisieren.
Die Fritzbox stellt einen CallMonitor zur
Verfügung, der mit der Telefon-Tasteneingabe
#96*5* aktiviert und mit #96*4* deaktiviert
werden kann.
Der ESP baut eine WLAN-Verbindung zum Port 1012
der Fritzbox auf und wertet die angezeigten
Zeichenketten aus. Enthält ein String die
Zeichenfolge "RING;" wird der Portpin gesetzt
und bei "CONNECT;" zurückgesetzt.
Es kann auch die Nummer des eingehenden Anrufs
ausgewertet werden.
Den Callmonitor kann man auch mit Putty/KiTTY
beobachten (Telnet Port 1012).
Gruß
Erni
Hallo Erni,
Ja, den Callmonitor kenne ich. Hab damit und einem Arduino UNO schon vor
Jahren meinen ersten Türöffner gebaut. Der UNO hat auf eine spezielle
Telefonnummer „gelauscht“, wenn diese angerufen wurde, hat er für 4
Sekunden ein Relais geschaltet, welches meinen Türöffner betätigt hat.
So konnte ich mit meinem Handy die Haustür öffnen.
Jetzt habe ich aber mehr damit vor und das macht notwendig, dass aus dem
ESP der Sip-Client läuft und ständig an der FritzBox angemeldet ist. Am
liebsten wäre mir, wenn der ESP nicht nur auf Anrufe regieren könnte,
sondern entweder Texte auswerten, die zusammen mit dem Anruf von einem
anderen ESP per SIP gesendet werden oder den Anruf annimmt und auf
Tastenbefehle reagiert. Möglich ist das doch bestimmt, ich weiß leider
nicht wie ich das bewerkstelligen soll. Kenne mich leider zuwenig mit
der Materie aus.
Gruß Patrick
berndt schrieb:> Tippfehler oder gibt es tatsächlich die verschiedenen Dateien?
Eher eine Nachlässigkeit, die unter Windows zufällig funktioniert, da
hier das Filesystem nicht zwischen Groß-/Kleinschreibung unterscheidet.
Moin,
ich bin am überlegen das ganze ein wenig zu erweitern und bei
Homeassistant mit zu integrieren um bei Abwesenheit z.B. eine
Push-Nachricht zu generieren. Hat jemand eine Idee, wie man das
hinbekommen könnte?
Hallo Andreas,
hast du schon was hinbekommen?
Beitrag "Re: Sipdial per ESP8266 an Fritzbox"
Ich würde ebenfalls noch gerne eine Nachricht per MQTT erhalten wollen.
Kenne mich aber mit C nicht so gut aus.
Möchte alles gerne auf einem ESP 01S laufen lassen.
Gruß Jürgen
Hey,
ich nutze erfolgreich das Script von Nicki.
Allerdings dauert das Klingelzeichen ca. 3-4 Sekunden. Gibt es
Möglichkeiten der schnelleren Signalisierung am DECT Telefon? Der
Postbost/ Paketbote ist bei uns sehr flott unterwegs.....
Die ESP Arduino Version >3.00 verhalten sich anders als die 2er.
Das mit dem WiFiManager bläht das alles noch mehr auf, dem müsste man
dann auch feste Ip Einstellungen geben, sonst hängt auch noch das DHCP
mit dazwischen.
Ich hab das mal mit einer 3.02er Version probiert und festgestellt dass
da ein voller WLAN-Scan gemacht wird. Bei mir hat diese Änderung wieder
für schnellen Connect gesorgt:
Hallo zusammen,
das ganze ist ohne Frage ein geiles Projekt und ich habe es in der
letzten Zeit nach und nach ein wenig erweitert. Es kam ja mittlerweile
hier auch schon die Frage auf nach MQTT, deswegen schmeiße ich mal meine
Version hier zur freien Verfügung dazu.
Gruß
Christian
Mit Homeassitant kenne ich mich leider nicht aus. Ich hab den IO-Broker
im Einsatz. Das funktioniert aber mit Sicherheit auch irgendwie.
PS. Bevor es mir jemand aufs Brot schmiert: Die WiFi-Daten im Screenshot
sind natürlich nicht die regulären ;-).
Christian schrieb:> letzten Zeit nach und nach ein wenig erweitert. Es kam ja mittlerweile> hier auch schon die Frage auf nach MQTT, deswegen schmeiße ich mal meine> Version hier zur freien Verfügung dazu.> Christian
Hallo Christian, ich hatte im
Beitrag "Re: Sipdial per ESP8266 an Fritzbox" eine Frage, die
sich mit deinem Projekt fast deckt.
Läßt sich der Code von ESPEasy auch integrieren, bzw durch Befehlszeilen
auf anderen Modulen die Eingänge schalten, das die Rufe ausgelöst
werden?
Mir gefällt an deinem Projekt, das alles über die Oberfläche einstellbar
ist.
Jens D. schrieb:> Christian schrieb:>> letzten Zeit nach und nach ein wenig erweitert. Es kam ja mittlerweile>> hier auch schon die Frage auf nach MQTT, deswegen schmeiße ich mal meine>> Version hier zur freien Verfügung dazu.>> Christian> Hallo Christian, ich hatte im> Beitrag "Re: Sipdial per ESP8266 an Fritzbox" eine Frage, die> sich mit deinem Projekt fast deckt.> Läßt sich der Code von ESPEasy auch integrieren, bzw durch Befehlszeilen> auf anderen Modulen die Eingänge schalten, das die Rufe ausgelöst> werden?> Mir gefällt an deinem Projekt, das alles über die Oberfläche einstellbar> ist.
Hallo Jens,
ich hoffe, ich hab das richtig verstanden:
Du hast also zwei ESP-Module, eins mit ESP-Easy und eins mit der
SIP-Dial Firmware und ESP-Easy soll auf dem anderen Modul den SIP-Call
auslösen?
ESP-Easy kann soweit ich weiß HTTP-Requests versenden.
Ich hab mal eine Version angehängt, bei der ein SIP-Call über ein HTTP
(Post) Request ausgelöst werden kann (http://xxx.xxx.xxx.xxx/dial).
Gruß
Christian
Habt ihr mit der fritzbox und dem esp8266 auch probleme? Ueber meine
5490 ist der esp zeitweise einfach nicht erreichbar, oder es dauert sehr
lange. Dasselbe mit einem xiaomi router funktioniert tadellos.
Das problem ist zwar bekannt, lösung gibts aber nicht.
Christian schrieb:> Du hast also zwei ESP-Module, eins mit ESP-Easy und eins mit der> SIP-Dial Firmware und ESP-Easy soll auf dem anderen Modul den SIP-Call> auslösen?
Das ist momentan so. Ich würde aber gerne das Sip-Modul in das
ESP-Easy-Modul integrieren. Mir fehlt dazu das Wissen.
Ich habe eine Hystereseauswertung von Sensorwerten, da soll beim
Unterschreiten eines festgelegten Wertes (ein GPIO definiert) ein
Sipdial ausgelöst werden.
@moriz996
Bei mir tritt das Problemchen mit der WLan Verbindung seit dem Update
auf 7.5 auch auf. Es half bisher nur, einen Kanal <10 zu setzen und bei
Bedarf die Fritte neu zu starten.
Christian schrieb:> Du hast also zwei ESP-Module, eins mit ESP-Easy und eins mit der> SIP-Dial Firmware und ESP-Easy soll auf dem anderen Modul den SIP-Call> auslösen?> ESP-Easy kann soweit ich weiß HTTP-Requests versenden.
Ich erhalte folgende Fehlermeldung:
Bei mir läuft der Compiler ohne Fehler durch.
Benutzt du die neueste Arduino Core-Version 3.1.2?
Wenn ja, weiss ich auch nicht was da los ist.
Versuchs mal mit der angehängten Version. Die ist ohne den Webupdater,
der ja scheinbar das Problem verursacht.
Hi Zusammen,
ich wollte mal das Script von Christian (12.05.23 & 01.08.23)
ausprobieren und habe es auch geschafft zu kompilieren und auf meine
NodeMCU zu flashen. Leider passiert danach garnichts.
Da ich im Script keine Option für die Änderung der Parameter von WiFi,
MQTT, SIP gefunden hatte, dachte ich, dass vielleicht ein eigener AP
entsteht, über dessen Website ich die Parameter ändern kann. Aber nichts
passiert...
Kann mir da bitte jemand weiterhelfen?
Jens D. schrieb:> Mehrere Bibliotheken wurden für "PubSubClient.h" gefunden
Ich habe bei mir die Dateien PubSubClient.h und PubSubClient.cpp aus dem
Projektverzeichnis gelöscht. Dann wird die über den Library Manager
installierte Lib verwendet.
> 'FS_end' was not declared in this scope; did you mean 'va_end'?[/c]
In der Datei ESP8266HTTPUpdateServer-impl die folgende Zeile
size_t fsSize = ((size_t)FS_end - (size_t)FS_start); // TODO: original
code doesn't compile
durch diese Zeile ersetzen, dann klappt es bei mir:
const size_t fsSize = FS_PHYS_SIZE;
Siehe dazu hier:
https://github.com/esp8266/Arduino/blob/a348833a817244ab7e3c65c78ad5fb3276bb6f35/cores/esp8266/flash_hal.h#L80
Bisher habe ich den Code nur übersetzt, aber noch nie geladen!
Michael
tolle Idee das mit der Sipdial Türklingel. Danke an Autor und
Mitentwickler.
Zwar passiert es selten doch es kann vorkommen das man sich aussperrt.
Für speziell diesen Zweck habe ich lange Zeit eine Öffnerschaltung
benutzt die per bestimmten Morsecode mit der Türklingel den Türöffner
betätigt. Könnte man diese Funktion auch in den Code des 8266
implementieren das wenn man per Handy die Fritzbox anruft plus
Zusatzcode diese dann den Türöffner betätigt?
Kann den teuren Schlüsseldienst ersparen. Oder man kann die Kinder schon
von Ferne reinlassen, wenn man sich verabredet aber verspätet hat usw.
Klaus B. schrieb:> wenn man per Handy die Fritzbox anruft
Es geht auch einfacher:
Du wählst dich per VPN mit dem Handy in dein internes Netzwerk ein,
rufst die IP von SipDial auf und betätigst den dort bereits vorhandenen
Türöffner Knopf
Hallo,
ich nutze die ESP-Klingel von J.Liegner jetzt schon seit mehreren Jahren
und bin begeistert.
Heute ist mir die Idee zu einer anderen Umsetzung mit der SIP-Funktion
gekommen, und zwar habe ich für unser automatisiertes Hoftor ein
GSM-Modul genutzt. Leider ist mal wieder die SIM-Karte wegen
'nichtNutzung' gesperrt und gelöscht worden. Nun möchte ich über die
SIP-Nummer anrufen und das Hoftor auffahren lassen, wenn die anrufende
Nummer mit den definierten zugelassenen Nummern übereinstimmt. Da ich
von Programmierung überhaupt keine Ahnung habe würde ich mich über eure
Hilfe sehr freuen.
Grüße sendet
Andre Z.
Andre Z. schrieb:> Nun möchte ich über die> SIP-Nummer anrufen und das Hoftor auffahren lassen, wenn die anrufende> Nummer mit den definierten zugelassenen Nummern übereinstimmt.
Dafür müsste der bestehende Code um REGISTER-Funktionalität (mitsamt
regelmässiger Auffrischung) erweitert werden, das ist nicht ganz so
trivial wie ausgehende Anrufe.
Hmm schade, weitere Möglichkeit wäre den Callmonitor der Fritzbox
nutzen.
Aber falls sich doch jemand dafür begeistert das Projekt umzusetzen, bin
ich bestimmt nicht der einzige dankbare Nutzer.
Thema ist auf jeden Fall aboniert.
Moin kurze Rückmeldung, meine Torsteuerung funktioniert jetzt.
Ich stelle nur kurz vor was ich gemacht habe, falls jemand dasselbe
Problem hat.
Umgesetzt wurde die Torsteuerung in NodeRed mit dem Fritzbox-Node
Callmonitor und einem TasmotaSchalter welcher die OrginalTorsteuerung
betätigt.
Im Anhang der NodeRed-Flow als .nfo
Hallo,
der Titel dieses Thread heißt zwar "... ESP8266 an Fritzbox", ich
erdreiste mich aber, hier trotzdem um Rat zu fragen.
Ich habe nämlich keine Fritzbox sondern verwende am Glasfaseranschluss
eine Gigaset GO Box 100. Auf dieses tolle SIP Klingel Projekt bin ich
erst jetzt aufmerksam geworden, weil ich von einem DSL Anschluss mit
einer Auerswald Telefonanlage inkl. Türsprechstelle und Klingel auf
Glasfaser umgestiegen bin.
Den sip_klingel Sketch habe ich auf einen ESP8266 geflasht, aber jetzt
hakt es an dem IP-Telefon, was hier immer wieder auftaucht und auf der
Fritzbox eingerichtet werden muss.
Kennt hier jemand die GO Box 100 und kann mir einen Tipp geben? Was muss
ich da einrichten, damit es funktioniert? Irgendwie muss es ja mögich
sein, über das LAN auf die GO Box zuzugreifen. Zurzeit stehe ich im
Dunklen :-(
Gruß,
Thomas
Thomas S. schrieb:> Kennt hier jemand die GO Box 100 und kann mir einen Tipp geben? Was muss> ich da einrichten, damit es funktioniert?
Gar nichts, die Go-Box ist auch nur ein SIP-Client.
Du musst Dich dort per SIP anmelden, wo sie es auch tut. Vermutlich ist
das ein Account auf dem ungenannten Router, könnte aber auch direkt beim
Telefonanbieter sein. Die Türklingel braucht dort auch einen.
Hmmm schrieb:> Du musst Dich dort per SIP anmelden, wo sie es auch tut. Vermutlich ist> das ein Account auf dem ungenannten Router, könnte aber auch direkt beim> Telefonanbieter sein.
Verkauft wird die Go-Box als Kiste die man direkt beim IP-Telefonie
Provider anmeldet, ohne noch lokal eine IP-Telefonanlage (z.B. in einem
Router) dazwischen zu haben. Sollte zwar gehen, aber dann wüste er dass
er das gemacht hat.
> Die Türklingel braucht dort auch einen.
Wenn es wirklich direkt der IP-Telefonie Provider ist, dann wird er mit
den Telefonnummern Probleme bekommen. Dann fehlen ihm die
Nebenstellenfunktionen (es sei denn er hat einen entsprechenden
Anschluss bei seinem IP-Telefonie Provider gekauft).
Hannes J. schrieb:> Sollte zwar gehen, aber dann wüste er dass> er das gemacht hat.
Geht auf jeden Fall, die Go-Boxen laufen hervorragend an Anlagen.
Wie es hier gelöst ist, kann der Fragesteller ja im Zweifelsfall im
Webinterface der Go-Box nachsehen.
Hannes J. schrieb:> Wenn es wirklich direkt der IP-Telefonie Provider ist, dann wird er mit> den Telefonnummern Probleme bekommen.
Die meisten Anbieter liefern gleich ein ganzes Rudel Rufnummern mit.
Hannes J. schrieb:> Dann fehlen ihm die> Nebenstellenfunktionen
Welche sollten das sein? Mehr als anrufen, wenn es klingelt, kann dieses
Tool doch gar nicht.
Für Telekom-VoIP-Anschlüsse mit aktivierter Authentifizierung ist
allerdings ein Patch notwendig, weil sich dort SIP-Username und
Auth-Username unterscheiden.
Danke für die spontanen Reaktionen!
Falls das weiterhilft, ich habe den GF Zugang bei der "Deutsche
Glasfaser", habe am ONT einen TP-Link Router ER605 angeschlossen und
daran am LAN die GO BOX 100. An der betreibe ich Gigaset DECT Mobilteile
und würde von denen gerne das Haustürklingeln anzeigen lassen.
Thomas S. schrieb:> Falls das weiterhilft, ich habe den GF Zugang bei der "Deutsche> Glasfaser", habe am ONT einen TP-Link Router ER605 angeschlossen und> daran am LAN die GO BOX 100.
OK, dann kommuniziert die Go-Box direkt mit dem Anbieter, da ist lokal
nichts zu machen.
Thomas S. schrieb:> An der betreibe ich Gigaset DECT Mobilteile> und würde von denen gerne das Haustürklingeln anzeigen lassen.
Du müsstest für die Türklingel einen Account des Telefonie-Anbieters
verwenden, also eine der anderen Rufnummern, sofern Du mehrere bekommen
hast. Theoretisch würde auch die bestehende funktionieren, dann kommt
der Klingel-Anruf halt von Deiner eigenen Nummer.
Wirklich elegant ist das aber nicht. Der jetzige Code beherrscht keine
DNS-Lookups, so dass Deine Klingel-Anrufe bei einer Änderung der
IP-Adresse des SIP-Servers ins Leere gehen würden.
Hmmm schrieb:> OK, dann kommuniziert die Go-Box direkt mit dem Anbieter, da ist lokal> nichts zu machen.
Das ist zwar schade, aber dann nicht zu ändern.
Hmmm schrieb:> Du müsstest für die Türklingel einen Account des Telefonie-Anbieters> verwenden, also eine der anderen Rufnummern, sofern Du mehrere bekommen> hast. Theoretisch würde auch die bestehende funktionieren, dann kommt> der Klingel-Anruf halt von Deiner eigenen Nummer.>
Eine eigene Rufnummer hätte ich dafür zur Verfügung.
Verstehe ich als relativer VoIP Anfänger richtig, dass sich der ESP8266
dann selbst, quasi neben der GO-Box, beim Registration Server anmelden
muss?
Diese Klingel Rufnummer darf dann auch nicht in der GO-Box eingetragen
werden?
Ich darf 2 Gespräche gleichzeitig führen, das würde dann beim klingeln
auch der Fall sein, und falls bereits 2 Gespräche laufen, kommt die
Klingel nicht durch?
> Wirklich elegant ist das aber nicht. Der jetzige Code beherrscht keine> DNS-Lookups, so dass Deine Klingel-Anrufe bei einer Änderung der> IP-Adresse des SIP-Servers ins Leere gehen würden.
Im ESP Sketch muss ich dann als sipip die ermittelte IPv4 Adresse des
SIP-Servers angeben?
Noch kann ich keine Experimente starten, die Rufnummern sind noch nicht
portiert und bisher habe ich nur eine temporäre Nummer und nur einen
Gesprächskanal.
Thomas S. schrieb:> Verstehe ich als relativer VoIP Anfänger richtig, dass sich der ESP8266> dann selbst, quasi neben der GO-Box, beim Registration Server anmelden> muss?
So in der Art. Technisch ist es keine Registrierung (die würde nur für
eingehende Anrufe benötigt werden), sondern bloss ein ausgehender Anruf
mit entsprechender Authentifizierung.
Thomas S. schrieb:> Diese Klingel Rufnummer darf dann auch nicht in der GO-Box eingetragen> werden?
Darf schon, macht aber keinen Unterschied.
Thomas S. schrieb:> Ich darf 2 Gespräche gleichzeitig führen, das würde dann beim klingeln> auch der Fall sein, und falls bereits 2 Gespräche laufen, kommt die> Klingel nicht durch?
Wenn sowohl eingehende als auch ausgehende Gespräche vom Budget abgehen,
geht es nur, wenn Du gar nicht telefonierst. Du erzeugst ja mit der
Klingel einen ausgehenden und einen eingehenden Anruf.
Thomas S. schrieb:> Im ESP Sketch muss ich dann als sipip die ermittelte IPv4 Adresse des> SIP-Servers angeben?
Genau. Und hoffen, dass sie sich nicht ändert.
Hallo
Super Projekt und Danke an alle
Hab die version von Christian getestet funktioniert auch soweit
würde es gern etwas erweitern und hab mal eine Frage zum aussehen der
Webansicht (Eingabe Maske) wo kommen die wirren Zeichen her ?? bzw. die
Zahlen bei den IP-Adressen ?
Bekommt man das irgendwie weg z.b. "lehre Eingabe Felder"
bin nicht der Profi in der Programmierung aber lernfähig :)
Gruß Ronald
Hallo
Habe wieder etwas Zeit gehabt mich mit dem Projekt zu beschäftigen
Ist es möglich eine einfache Web-Authentifizierung zu realisieren, da
das Wlan-Passwort ja frei sichtbar ist.Ich habe nach dem Beispiel „HTTP
Advanced Auth“ den code in der webserver.ino geändert ich komme aber nur
bis zur Eingabe Benutzer / Passwort danach passiert nix mehr.
Für einen Tip wäre ich dankbar.
Gruß Ronald
"webserver.ino"
Guten Tag zusammen !
Meinen grössten Respekt für alle, die diese Projekt hier auf die Beine
gestellt haben.
Ich habe es bei mir nun nach mehreren Versuchen auch ans Laufen
bekommen. Ich musste mir dafür alles quasi selber beibringen.
Nun, da ich es am Laufen habe, sogar ein paar kleine Änderungen - z.B.
bei der Klingelhäufigkei, welche dann per 2xDIP-Schalter eingestellt
wird - vornehmen konnte, habe ich aber noch folgendes Problem (dieses
ist von Anfang an aufgetreten):
ich schalte den ESP8266 D1 Mini (Clone von AZ-Delivery-MOD 12F) ein und
es klingelt nach ca. 1-2 Sekunden. Es wird nach der eingstellten Zeit
(in der "aSip.Init"-Zeile) aufgelegt. Wenn ich den ESP dann nochmal
klingeln lassen möchte, geht dies oft nicht direkt. Ich verbinde
entweder RST mit GND oder drücke den RST-Taster am ESP. Nichts passiert.
Beim 2. Mal geht es dann.
Wenn ich mir das Debugging-Fenster im Serial-Monitor ansehe, produziert
der ESP bei der Ausgabe im Seriellen-Monitor DANN auch Hiroglyphen als
TEXT, wenn der Fehler auftritt...
Was kann denn den Fehler verursachen ?
VG aus Kierspe
Mina K. schrieb:> Hiroglyphen als> TEXT
Dann startet der ESP8266 wohl neu (Absturz). Beim booten gibt er
Meldungen mit 74880 Baud aus, was im Terminal die Hieroglyphen
verursacht. Stell mal das Terminal auf die Boot-Baudrate und schau Dir
die Reset-Ursache an.
Hallo Mario !
Danke, daran hatte ich noch garnicht gedacht.
Werde ich gleich zuhause mal erledigen. Danke.
Was ich noch rausgefunden habe ist, dass dies nicht
passiert, wenn man den Ruf am Tel. annimmt und auflegt.
Danach kann man so oft wieder starten - solange man wieder
"ran geht" - wie man mag. Ich habe in der Doku für den ESP
gesehen, dass die "Software" (SDK), welche "auf dem ESP läuft",
wohl unvollendet/instabil ist (sein kann?) und man deshalb z.B.
nach ESP.deepSleep(0); noch ein delay(100); zufügen sollte...
Auch soll wohl GPIO(16) mit ins RESET einbezogen werden.
Da kann ich grade nicht sagen, inwiefern das auf meinem Board
von AZ-Deli so schon vorhanden ist.
Werde ich mal alles nacheinander angehen und dann berichten.
Gruß aus Kierspe
& vielen dank bis hierher.
Leider macht er jetzt auch nur bei jedem 2. Mal,
wenn man abgehoben hat, oder es ist sporadisch ?
Komme leider nicht dahinter. Kann es am DeepSleep selber liegen ?
Dann würde ich den weglassen, weil ich eh ein Netzteil nutze...
Gruß aus Kierspe
Guten Abend zusammen !
Ich habe das Problem dann gelöst, indem ich zum Einen den
Reset-Kreis extern anders beschaltet habe (Pullup 10K, 100N parallel,
Taster GND), einen Puffer-Elko VSS-GND und wohl hauptsächlich, indem
ich den DeepSleep komplett weggelassen habe. Ich betreibe die Schaltung
bei mir mit einem Netzteil (in allen 3 Fällen) und brauche daher den
DeepSleep zur Akku-Schonung nicht. Seitdem ist das Problem verschwunden.
Die Anwendung (Code und Schaltung) habe ich noch um eine
WLan-Verbindungs-LED erweitert. Blinkt diese wird die Verbindung
aufgebaut, steht diese bleibt die LED an. Ist sie aus, stimmt etwas im
Breich WLan oder Auth. nicht. Außerdem einen 2x-Dip-Schalter, mit dem
ich 4-fach die Klingeldauer
einstellen kann (Test - 1x, ca. 10 Sek., ca. 40 Sek. und 2 Minuten).
Danke und weiterhin viel Erfolg
-Gruß aus Kierspe/Solingen