Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Siedle Klingel / Türöffner mit ESP8266 und MQTT

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Siedle Klingel / Türöffner mit ESP8266 und MQTT

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
235 Beiträge 68 Kommentatoren 117.9k Aufrufe 56 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • EisbaeeerE Eisbaeeer

    @basti97 Hi Basti
    Ich habe diese Quelle für mich angepasst, bzw. einfach um die WS2812 Funktionen erweitert:

    Master-repo: marelab/esp-rfid

    Du kannst über MQTT so ziemlich alles machen. Hier mal ein Auszug aus der API:

    • Reading all user data over MQTT
    • Sending User data to RFID-DOOR/ESP-RFID over MQTT
    • Sending door open command over MQTT
    • Sending Sync of a RFID-DOOR (IP/Hostname) over MQTT
    • Configure Sync interval over ESP-RFID GUI
    • Deleting all User of a ESP-RFID device over MQTT

    Die Befehle müssen als JSON gesendet werden. Z.B. Tür öffnen mit;

    {
        cmd:'opendoor',
        doorip:'(The ESP-RFID IP of the door to open as String)'
    }
    

    Es gibt auch eine fertige Hardware, die ohne weitere Komponenten auskommt.
    Diese findest du hier: maelab RFID-DOOR

    Grüße Eisbaeeer

    Basti97B Offline
    Basti97B Offline
    Basti97
    Most Active
    schrieb am zuletzt editiert von
    #137

    @eisbaeeer Danke wie wird dann aus den Siedle Bus ausgewertet. Ob es nun oben (Wohnungstür) oder unten (Haustür) klingelt.
    Weißt du wo ich das Abgreifen kann und wie ich das umwandeln muss.

    Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

    EisbaeeerE 1 Antwort Letzte Antwort
    0
    • Basti97B Basti97

      @eisbaeeer Danke wie wird dann aus den Siedle Bus ausgewertet. Ob es nun oben (Wohnungstür) oder unten (Haustür) klingelt.
      Weißt du wo ich das Abgreifen kann und wie ich das umwandeln muss.

      EisbaeeerE Offline
      EisbaeeerE Offline
      Eisbaeeer
      Developer
      schrieb am zuletzt editiert von
      #138

      @basti97 Hi. Bei Siedle wird das mit 7.1 und 7.2 unterschieden. Die Punktierung sind die entsprechenden Stockwerke bzw. Wohnungen. Schau dir mal das Schaltbild der Siedle Anlage an. Da sieht man das ganz gut.
      Die RFID Schaltung wertet aber das Türklingeln nicht mit aus. Das musst du dann schon an dem jeweiligen Handapparat machen.

      Kein support per PM. Bitte im Forum Fragen stellen!

      Basti97B ChristophCainaC 2 Antworten Letzte Antwort
      0
      • michif100M michif100

        Hallo zusammen,

        bei mir klappt alles wunderbar, also mit HTS-811 und 18/24 V DC.
        Benutze eine 20V Z-Diode und 480 Ohm Widerstand vor dem Ontokoppler.
        Aktuell betreibe ich die NodeMCU per USB.

        Ich wollte nun direkt aus den 18V 5V machen und an VIN anschließen.
        Habe dazu ein solches, noch vorhandenes Teil angefacht:

        https://www.reichelt.de/spannungsregler-fest-7-v-30-vin-5-vout-0-1-aout-to-92-lm-78l05-acz-p187799.html

        Das wird aber nicht funktionieren mit 0,1 Aout nehme ich an.

        Kann jemand einen DC-DC Wandler dafür empfehlen?

        Ich habe die Schaltung übrigens in einem in Fusion360 erstellten und dann gedruckten Gehäuse untergebracht.AAA96F31-0CC7-4C38-9B31-0D31339A7A13.jpeg

        C Offline
        C Offline
        claus1993
        schrieb am zuletzt editiert von
        #139

        @michif100 said in Siedle Klingel / Türöffner mit ESP8266 und MQTT:

        Hallo zusammen,

        bei mir klappt alles wunderbar, also mit HTS-811 und 18/24 V DC.
        Benutze eine 20V Z-Diode und 480 Ohm Widerstand vor dem Ontokoppler.
        Aktuell betreibe ich die NodeMCU per USB.

        habe bei mir die gleiche Siedle Anlage verbaut und habe ein paar Fragen an dich. Hoffe du kannst mir behilflich sein damit ich zukünftig auch mein Klingelsignal im ioBroker habe 🙂

        An welchen Klemmen von Siedle hast du den die Bauteile angeklemmt?
        Wo hast du die Spannung abgenommen?

        EisbaeeerE 1 Antwort Letzte Antwort
        0
        • C claus1993

          @michif100 said in Siedle Klingel / Türöffner mit ESP8266 und MQTT:

          Hallo zusammen,

          bei mir klappt alles wunderbar, also mit HTS-811 und 18/24 V DC.
          Benutze eine 20V Z-Diode und 480 Ohm Widerstand vor dem Ontokoppler.
          Aktuell betreibe ich die NodeMCU per USB.

          habe bei mir die gleiche Siedle Anlage verbaut und habe ein paar Fragen an dich. Hoffe du kannst mir behilflich sein damit ich zukünftig auch mein Klingelsignal im ioBroker habe 🙂

          An welchen Klemmen von Siedle hast du den die Bauteile angeklemmt?
          Wo hast du die Spannung abgenommen?

          EisbaeeerE Offline
          EisbaeeerE Offline
          Eisbaeeer
          Developer
          schrieb am zuletzt editiert von Eisbaeeer
          #140

          @claus1993 Hatte ich schon hier beschrieben.

          Du benötigst die Klemmen 7 und 1. Die Versorgungsspannung musst du dir irgend wo herholen. Im besten Fall hast du noch 2 Adern frei und kannst dir vom Netzteil die benötigte Spannung holen.
          Gruß Eisbaeeer

          Kein support per PM. Bitte im Forum Fragen stellen!

          1 Antwort Letzte Antwort
          1
          • EisbaeeerE Eisbaeeer

            @basti97 Hi. Bei Siedle wird das mit 7.1 und 7.2 unterschieden. Die Punktierung sind die entsprechenden Stockwerke bzw. Wohnungen. Schau dir mal das Schaltbild der Siedle Anlage an. Da sieht man das ganz gut.
            Die RFID Schaltung wertet aber das Türklingeln nicht mit aus. Das musst du dann schon an dem jeweiligen Handapparat machen.

            Basti97B Offline
            Basti97B Offline
            Basti97
            Most Active
            schrieb am zuletzt editiert von
            #141

            @eisbaeeer
            Ich habe diese Klingel von Siedle mit folgender Bezeichnung HTS 71101

            Und so sieht die Platine aus. Bis jetzt habe ich nur das Etagen Klingeln abgegriffen.
            Die weiteren Punkte habe ich noch nicht gefunden.
            s-l1600.jpg

            945fc44e-1cdd-41c9-b0fa-a53b2edf5281-grafik.png

            Wenn ich das richtig gelesen habe kann ich nur mit der Software meine Tür per RFID öffnen bzw verwalten. Da ich mich bis jetzt sonst noch nie mit Bus fähigen Klingelanlagen beschäftigt habe.

            Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

            1 Antwort Letzte Antwort
            0
            • B Banjo89

              @Eisbaeeer

              Vielen Dank für deine Anleitung, war etwas kniffelig aber habe es umgesetzt bekommen!!

              IMG_1298.jpg IMG_1297.jpg

              Basti97B Offline
              Basti97B Offline
              Basti97
              Most Active
              schrieb am zuletzt editiert von
              #142

              @banjo89 Ich habe zwar unten bereits ein Kommentar wie man die Siedle HTS711 smart machen kann. Nun habe ich gesehen das du die gleiche Version wie ich habe. Kannst du mir bitte mal Beschreiben wie du das ganze umgesetzt hast + benötigte Bauelemente. Bis jetzt werte ich nur den Etagen Klingel per Logo 8 aus. Bei dir sieht es auf dem ersten Blick so einfach aus. 🙂

              Danke für deine Hilfe 🙂

              Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

              1 Antwort Letzte Antwort
              0
              • Basti97B Offline
                Basti97B Offline
                Basti97
                Most Active
                schrieb am zuletzt editiert von
                #143

                @Banjo89 Kannst du mir bitte dein Schaltplan zu deiner siedle schicken da ich verscheinlich eine ähnliche habe.😁😁

                Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                1 Antwort Letzte Antwort
                0
                • EisbaeeerE Eisbaeeer

                  Zum Thema Türöffner habe ich nochmals nachgelegt. Ich habe nun meine Außenstation mit einem RFID-Leser nachgerüstet und auch die Siedle Beleuchtung "enhanced".
                  Jetzt kann ich per Weboberfläche Zutrittsberechtigungen vergeben und muss nicht die ganze Schließanlage tauschen, wenn mal ein Schlüssel verloren geht.
                  Hier ein paar Bilder vom Umbau:

                  20210429_220729.jpg
                  20210501_144436.jpg
                  20210501_145117.jpg
                  20210501_153354.jpg
                  20210501_162042.jpg
                  20210501_162056.jpg

                  Leider kann man hier ja keine Videos hochladen. Aber den Rest kann man sich ja vorstellen 😉

                  Web.png

                  Ciaran BauligC Offline
                  Ciaran BauligC Offline
                  Ciaran Baulig
                  schrieb am zuletzt editiert von
                  #144

                  @eisbaeeer kannst deinen Umbau mit rfid mal ein wenig genauer erläutern/Pläne ergänzen? Finde die Idee mega!

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    StefanR1984
                    schrieb am zuletzt editiert von StefanR1984
                    #145

                    Edit: Hat sich erledigt. Läuft super! Besten Dank. Lag an einer kalten Lötstelle.

                    Vlg

                    Hallo zusammen,

                    ich bin neu im Forum und habe eine Frage bezüglich der ESP8266 mit einer Siedle HTA 711-01

                    Es liegt zwischen 1 und 7 20V Spannung an und ich bin nach Eisbeers Bauplan vorgeganen.

                    Zur Ausführung des Scipts verwende ich einen ESP8266 mit einem Arduino Script:

                    // https://www.mikrocontroller.net/topic/444994?goto=new#new
                    
                    #include <ESP8266WiFi.h>
                    #include <WiFiUdp.h>
                    #include <WiFiClientSecure.h> 
                    #include <UniversalTelegramBot.h>
                    #include <ArduinoJson.h>
                    
                    
                    //------------------------------------------------
                    // configuration with fix ip
                    //------------------------------------------------
                    
                    // MAC-ID: 
                    
                    // Telegram BOT Token (Get from Botfather)
                    #define botToken "********************************************"
                    
                    WiFiClientSecure secured_client;
                    UniversalTelegramBot bot(botToken, secured_client);
                    
                    //Deine User ID oder Chat_ID
                    #define userID "********************************************"
                    
                    
                    
                    X509List cert(TELEGRAM_CERTIFICATE_ROOT);
                    
                    
                    
                    // wlan param
                    const char* ssid    = "********************************************";
                    const char* WLANKEY = "********************************************";   
                    
                    // sip params
                    const char *sipip       = "192.168.5.1";
                    int         sipport     = 5060;
                    const char *sipuser     = "********************************************";         // angelegter Nutzername vom Telefoniegerät
                    const char *sippasswd   = "********************************************";           // PW vom Nutzername vom Telefoniegerät
                    
                    // dial params
                    const char *sipdialnr   = "**701";                // Rundruf an alle         
                    const char *sipdialtext = "Haustuer";
                    
                    // network params
                    const char *ip          = "192.168.5.20";     // ESP IP Adresse eintragen
                    const char *gw          = "192.168.5.1";      
                    const char *mask        = "255.255.255.0";
                    const char *dns         = "192.168.5.1";
                    //------------------------------------------------
                    
                    #define DEBUGLOG
                    WiFiUDP Udp;
                    
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    //
                    // hardware and api independent Sip class
                    //
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    
                    class Sip
                    {
                        char       *pbuf;
                        size_t      lbuf;
                        char        caRead[256];
                    
                        const char *pSipIp;
                        int         iSipPort;
                        const char *pSipUser;
                        const char *pSipPassWd;
                        const char *pMyIp;
                        int         iMyPort;
                        const char *pDialNr;
                        const char *pDialDesc;
                    
                        uint32_t    callid;
                        uint32_t    tagid;
                        uint32_t    branchid;
                    
                        uint32_t    iAuthCnt;       // original 'int'
                        uint32_t    iRingTime;
                        uint32_t    iMaxTime;
                        uint32_t    iDialRetries;   // original 'int'
                        int         iLastCSeq;
                        void        AddSipLine(const char* constFormat , ... );
                        bool        AddCopySipLine(const char *p, const char *psearch);
                        bool        ParseParameter(char *dest, int destlen, const char *name, const char *line, char cq = '\"');
                        bool        ParseReturnParams(const char *p);
                        int         GrepInteger(const char *p, const char *psearch);
                        void        Ack(const char *pIn);
                        void        Cancel(int seqn);
                        void        Bye(int cseq);
                        void        Ok(const char *pIn);
                        void        Invite(const char *pIn = 0);
                    
                        uint32_t    Millis();
                        uint32_t    Random();
                        int         SendUdp();
                        void        MakeMd5Digest(char *pOutHex33, char *pIn);
                    
                      public:
                        Sip(char *pBuf, size_t lBuf);
                        void        Init(const char *SipIp, int SipPort, const char *MyIp, int MyPort, const char *SipUser, const char *SipPassWd, int MaxDialSec = 10); //10
                        void        HandleUdpPacket(const char *p);
                        bool        Dial(const char *DialNr, const char *DialDesc = "");
                        bool        IsBusy() {
                          return iRingTime != 0;
                        }
                    };
                    
                    Sip::Sip(char *pBuf, size_t lBuf)
                    {
                      pbuf = pBuf;
                      lbuf = lBuf;
                      pDialNr = "";
                      pDialDesc = "";
                    }
                    
                    bool Sip::Dial(const char *DialNr, const char *DialDesc)
                    {
                      if (iRingTime)
                        return false;
                    
                      iDialRetries = 0;
                      pDialNr = DialNr;
                      pDialDesc = DialDesc;
                      Invite();
                      iDialRetries++;
                      iRingTime = Millis();
                      return true;
                    }
                    
                    void Sip::Cancel(int cseq)
                    {
                      if (caRead[0] == 0)
                        return;
                      pbuf[0] = 0;
                      AddSipLine("%s sip:%s@%s SIP/2.0",  "CANCEL", pDialNr, pSipIp);
                      AddSipLine("%s",  caRead);
                      AddSipLine("CSeq: %i %s",  cseq, "CANCEL");
                      AddSipLine("Max-Forwards: 70");
                      AddSipLine("User-Agent: sip-client/0.0.1");
                      AddSipLine("Content-Length: 0");
                      AddSipLine("");
                      SendUdp();
                    }
                    
                    void Sip::Bye(int cseq)
                    {
                      if (caRead[0] == 0)
                        return;
                      pbuf[0] = 0;
                      AddSipLine("%s sip:%s@%s SIP/2.0",  "BYE", pDialNr, pSipIp);
                      AddSipLine("%s",  caRead);
                      AddSipLine("CSeq: %i %s", cseq, "BYE");
                      AddSipLine("Max-Forwards: 70");
                      AddSipLine("User-Agent: sip-client/0.0.1");
                      AddSipLine("Content-Length: 0");
                      AddSipLine("");
                      SendUdp();
                    }
                    
                    void Sip::Ack(const char *p)
                    {
                      char ca[32];
                      bool b = ParseParameter(ca, (int)sizeof(ca), "To: <", p, '>');
                      if (!b)
                        return;
                    
                      pbuf[0] = 0;
                      AddSipLine("ACK %s SIP/2.0", ca);
                      AddCopySipLine(p, "Call-ID: ");
                      int cseq = GrepInteger(p, "\nCSeq: ");
                      AddSipLine("CSeq: %i ACK",  cseq);
                      AddCopySipLine(p, "From: ");
                      AddCopySipLine(p, "Via: ");
                      AddCopySipLine(p, "To: ");
                      AddSipLine("Content-Length: 0");
                      AddSipLine("");
                      SendUdp();
                    }
                    
                    void Sip::Ok(const char *p)
                    {
                      pbuf[0] = 0;
                      AddSipLine("SIP/2.0 200 OK");
                      AddCopySipLine(p, "Call-ID: ");
                      AddCopySipLine(p, "CSeq: ");
                      AddCopySipLine(p, "From: ");
                      AddCopySipLine(p, "Via: ");
                      AddCopySipLine(p, "To: ");
                      AddSipLine("Content-Length: 0");
                      AddSipLine("");
                      SendUdp();
                    }
                    
                    void Sip::Init(const char *SipIp, int SipPort, const char *MyIp, int MyPort, const char *SipUser, const char *SipPassWd, int MaxDialSec)
                    {
                      caRead[0] = 0;
                      pbuf[0] = 0;
                      pSipIp = SipIp;
                      iSipPort = SipPort;
                      pSipUser = SipUser;
                      pSipPassWd = SipPassWd;
                      pMyIp = MyIp;
                      iMyPort = MyPort;
                      iAuthCnt = 0;
                      iRingTime = 0;
                      iMaxTime = MaxDialSec * 2000;   // 1500
                    }
                    
                    void Sip::AddSipLine(const char* constFormat , ... )
                    {
                      va_list arglist;
                      va_start( arglist, constFormat);
                      uint16_t l = (uint16_t)strlen(pbuf);
                      char *p = pbuf + l;
                      vsnprintf(p, lbuf - l, constFormat, arglist );
                      va_end( arglist );
                      l = (uint16_t)strlen(pbuf);
                      if (l < (lbuf - 2))
                      {
                        pbuf[l] = '\r';
                        pbuf[l + 1] = '\n';
                        pbuf[l + 2] = 0;
                      }
                    }
                    
                    // call invite without or with the response from peer
                    void Sip::Invite(const char *p)
                    {
                      // prevent loops
                      if (p && iAuthCnt > 3)
                        return;
                    
                      // using caRead for temp. store realm and nonce
                      char *caRealm = caRead;
                      char *caNonce = caRead + 128;
                    
                      char *haResp = 0;
                      int   cseq = 1;
                      if (!p)
                      {
                        iAuthCnt = 0;
                        if (iDialRetries == 0)
                        {
                          callid = Random();
                          tagid = Random();
                          branchid = Random();
                        }
                      }
                      else
                      {
                        cseq = 2;
                        if (   ParseParameter(caRealm, 128, " realm=\"", p)
                               && ParseParameter(caNonce, 128, " nonce=\"", p))
                        {
                          // using output buffer to build the md5 hashes
                          // store the md5 haResp to end of buffer
                          char *ha1Hex = pbuf;
                          char *ha2Hex = pbuf + 33;
                          haResp = pbuf + lbuf - 34;
                          char *pTemp = pbuf + 66;
                    
                          snprintf(pTemp, lbuf - 100, "%s:%s:%s", pSipUser, caRealm, pSipPassWd);
                          MakeMd5Digest(ha1Hex, pTemp);
                    
                          snprintf(pTemp, lbuf - 100, "INVITE:sip:%s@%s", pDialNr, pSipIp);
                          MakeMd5Digest(ha2Hex, pTemp);
                    
                          snprintf(pTemp, lbuf - 100, "%s:%s:%s", ha1Hex, caNonce, ha2Hex);
                          MakeMd5Digest(haResp, pTemp);
                        }
                        else
                        {
                          caRead[0] = 0;
                          return;
                        }
                      }
                      pbuf[0] = 0;
                      AddSipLine("INVITE sip:%s@%s SIP/2.0", pDialNr, pSipIp);
                      AddSipLine("Call-ID: %010u@%s",  callid, pMyIp);
                      AddSipLine("CSeq: %i INVITE",  cseq);
                      AddSipLine("Max-Forwards: 70");
                      // not needed for fritzbox
                      // AddSipLine("User-Agent: sipdial by jl");
                      AddSipLine("From: \"%s\"  <sip:%s@%s>;tag=%010u", pDialDesc, pSipUser, pSipIp, tagid);
                      AddSipLine("Via: SIP/2.0/UDP %s:%i;branch=%010u;rport=%i", pMyIp, iMyPort, branchid, iMyPort);
                      AddSipLine("To: <sip:%s@%s>", pDialNr, pSipIp);
                      AddSipLine("Contact: \"%s\" <sip:%s@%s:%i;transport=udp>", pSipUser, pSipUser, pMyIp, iMyPort);
                      if (p)
                      {
                        // authentication
                        AddSipLine("Authorization: Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"sip:%s@%s\", response=\"%s\"", pSipUser, caRealm, caNonce, pDialNr, pSipIp, haResp);
                        iAuthCnt++;
                      }
                      AddSipLine("Content-Type: application/sdp");
                      // not needed for fritzbox
                      // AddSipLine("Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO");
                      AddSipLine("Content-Length: 0");
                      AddSipLine("");
                      caRead[0] = 0;
                      SendUdp();
                    }
                    
                    // parse parameter value from http formated string
                    bool Sip::ParseParameter(char *dest, int destlen, const char *name, const char *line, char cq)
                    {
                      const char *qp;
                      const char *r;
                      if ((r = strstr(line, name)) != NULL)
                      {
                        r = r + strlen(name);
                        qp = strchr(r, cq);
                        int l = qp - r;
                        if (l < destlen)
                        {
                          strncpy(dest, r, l);
                          dest[l] = 0;
                          return true;
                        }
                      }
                      return false;
                    }
                    
                    // search a line in response date (p) and append on
                    // pbuf
                    bool Sip::AddCopySipLine(const char *p, const char *psearch)
                    {
                      char *pa = strstr((char*)p, psearch);
                      if (pa)
                      {
                        char *pe = strstr(pa, "\r");
                        if (pe == 0)
                          pe = strstr(pa, "\n");
                        if (pe > pa)
                        {
                          char c = *pe;
                          *pe = 0;
                          AddSipLine("%s", pa);
                          *pe = c;
                          return true;
                        }
                      }
                      return false;
                    }
                    
                    int Sip::GrepInteger(const char *p, const char *psearch)
                    {
                      int param = -1;
                      const char *pc = strstr(p, psearch);
                      if (pc)
                      {
                        param = atoi(pc + strlen(psearch));
                      }
                      return param;
                    }
                    
                    // copy Call-ID, From, Via and To from response
                    // to caRead
                    // using later for BYE or CANCEL the call
                    bool Sip::ParseReturnParams(const char *p)
                    {
                      pbuf[0] = 0;
                      AddCopySipLine(p, "Call-ID: ");
                      AddCopySipLine(p, "From: ");
                      AddCopySipLine(p, "Via: ");
                      AddCopySipLine(p, "To: ");
                      if (strlen(pbuf) >= 2)
                      {
                        strcpy(caRead, pbuf);
                        caRead[strlen(caRead) - 2] = 0;
                      }
                      return true;
                    }
                    
                    void Sip::HandleUdpPacket(const char *p)
                    {
                      uint32_t iWorkTime = iRingTime ? (Millis() - iRingTime) : 0;
                      if (iRingTime && iWorkTime > iMaxTime)
                      {
                        // Cancel(3);
                        Bye(3);
                        iRingTime = 0;
                      }
                    
                      if (!p)
                      {
                        // max 5 dial retry when loos first invite packet
                        //     int                int              uint32         int
                        if (iAuthCnt == 0 && iDialRetries < 5 && (iWorkTime > (iDialRetries * 200)) )
                        {
                          iDialRetries++;
                          delay(30);
                          Invite();
                        }
                        return;
                      }
                    
                      if (strstr(p, "SIP/2.0 401 Unauthorized") == p)
                      {
                        Ack(p);
                        // call Invite with response data (p) to build auth md5 hashes
                        Invite(p);
                      }
                      else if (strstr(p, "BYE") == p)
                      {
                        Ok(p);
                        iRingTime = 0;
                      }
                      else if (strstr(p, "SIP/2.0 200") == p)    // OK
                      {
                        ParseReturnParams(p);
                        Ack(p);
                      }
                      else if (   strstr(p, "SIP/2.0 183 ") == p // Session Progress
                                  || strstr(p, "SIP/2.0 180 ") == p ) // Ringing
                      {
                        ParseReturnParams(p);
                      }
                      else if (strstr(p, "SIP/2.0 100 ") == p)   // Trying
                      {
                        ParseReturnParams(p);
                        Ack(p);
                      }
                      else if (   strstr(p, "SIP/2.0 486 ") == p // Busy Here
                                  || strstr(p, "SIP/2.0 603 ") == p // Decline
                                  || strstr(p, "SIP/2.0 487 ") == p) // Request Terminatet
                      {
                        Ack(p);
                        iRingTime = 0;
                      }
                      else if (strstr(p, "INFO") == p)
                      {
                        iLastCSeq = GrepInteger(p, "\nCSeq: ");
                        Ok(p);
                      }
                    }
                    
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    //
                    // hardware dependent interface functions
                    //
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    
                    int Sip::SendUdp()
                    {
                      Udp.beginPacket(pSipIp, iSipPort);
                      Udp.write(pbuf, strlen(pbuf));
                      Udp.endPacket();
                    #ifdef DEBUGLOG
                      Serial.printf("\r\n----- send %i bytes -----------------------\r\n%s", strlen(pbuf), pbuf);
                      Serial.printf("------------------------------------------------\r\n");
                    #endif
                      return 0;
                    }
                    
                    // generate a 30 bit random number
                    uint32_t Sip::Random()
                    {
                      // return ((((uint32_t)rand())&0x7fff)<<15) + ((((uint32_t)rand())&0x7fff));
                      return secureRandom(0x3fffffff);
                    }
                    
                    uint32_t Sip::Millis()
                    {
                      return (uint32_t)millis() + 1;
                    }
                    
                    void Sip::MakeMd5Digest(char *pOutHex33, char *pIn)
                    {
                      MD5Builder aMd5;
                      aMd5.begin();
                      aMd5.add(pIn);
                      aMd5.calculate();
                      aMd5.getChars(pOutHex33);
                    }
                    
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    //
                    // Arduino setup() and loop()
                    //
                    /////////////////////////////////////////////////////////////////////////////////////////////////////
                    
                    char caSipIn[2048];
                    char caSipOut[2048];
                    Sip aSip(caSipOut, sizeof(caSipOut));
                    
                    void setup()
                    {
                      
                      Serial.begin(115200);
                      Serial.println();
                    
                      WiFi.disconnect(true);
                      delay(10);
                      WiFi.mode(WIFI_STA);
                      delay(10);
                    
                      WiFi.begin("********************************************", "********************************************");  // SSID und WLAN-Key eintragen
                      
                      Serial.print("Connecting");
                    
                      while (WiFi.status() != WL_CONNECTED)
                      {
                        delay(100);
                        Serial.print(".");
                      }
                    
                      Serial.println();
                      Serial.print("Connected, IP address: ");
                      Serial.println( WiFi.macAddress() );
                      Serial.println( WiFi.localIP() );
                      Serial.println( ESP.getChipId() );
                      
                    
                      int i = 0;
                      for (i = 0; i < 100; i++)
                      {
                        if (WiFi.status() == WL_CONNECTED)
                          break;
                        delay(100);
                        Serial.print(".");
                      }
                    
                      if (i >= 100)
                      {
                        // without connection go to sleep
                        delay(500);
                        ESP.deepSleep(0);
                      }
                    
                      WiFi.persistent(true);
                      Serial.printf("\r\nWiFi connected to: %s\r\n", WiFi.localIP().toString().c_str());
                      Udp.begin(sipport);
                      aSip.Init(sipip, sipport, ip, sipport, sipuser, sippasswd, 15);
                      aSip.Dial(sipdialnr, sipdialtext);
                    
                      secured_client.setTrustAnchors(&cert);
                      bot.sendMessage(userID, "Es hat an der Tür geklingelt!", "");
                      
                    }
                    
                    int deepSleepDelay = 0;
                    void loop(void)
                    {
                      
                      int packetSize = Udp.parsePacket();
                      if (packetSize > 0)
                      {
                        caSipIn[0] = 0;
                        packetSize = Udp.read(caSipIn, sizeof(caSipIn));
                        if (packetSize > 0)
                        {
                          caSipIn[packetSize] = 0;
                          #ifdef DEBUGLOG
                          IPAddress remoteIp = Udp.remoteIP();
                          Serial.printf("\r\n----- read %i bytes from: %s:%i ----\r\n", (int)packetSize, remoteIp.toString().c_str(), Udp.remotePort());
                          Serial.print(caSipIn);
                          Serial.printf("----------------------------------------------------\r\n");      
                          #endif
                        }
                      }
                      aSip.HandleUdpPacket((packetSize > 0) ? caSipIn : 0 );
                    
                      if (!aSip.IsBusy() && deepSleepDelay == 0)
                        deepSleepDelay = millis();
                    
                      if (deepSleepDelay && (millis() - deepSleepDelay) > 3000) {
                        ESP.deepSleep(0);
                      }
                    }
                    

                    Das Script funktioniert und wenn ich GND und RST kurzschließe wird das Script ausgeführt.

                    Sobald ich das Konstrukt aus Zener Diode - Widerstand - Optokoppler an die Klingel anschließe und diese betätige, tut sich leider nichts.

                    Anbei noch eine Liste meiner verwendeten Bauteile:

                    Board:
                    https://www.reichelt.com/de/en/developer-boards-nodemcu-esp8266-wi-fi-module-debo-jt-esp8266-p219900.html?&trstct=pos_4

                    Optokoppler
                    https://www.reichelt.com/1-fach-optokoppler-5kv-35v-50ma-50-600-dip-4-ltv-817-p76173.html?CCOUNTRY=445&LANGUAGE=de&trstct=pos_0&&r=1

                    Widerstand
                    https://www.reichelt.de/widerstand-metalloxyd-560-ohm-0207-1-0-w-5--1w-560-p1832.html?trstct=magaz_txtlink

                    Zener Diode
                    https://www.ebay.de/itm/380928180250?var=650272010680

                    Ich hoffe mir kann hier jemand helfen 🙂

                    Eine Vermutung wäre, dass ich den Widerstand zu hoch gewählt habe?

                    Danke und VLG

                    Stefan

                    1 Antwort Letzte Antwort
                    0
                    • N Offline
                      N Offline
                      nullfreizeit
                      schrieb am zuletzt editiert von
                      #146

                      Hallo zusammen,

                      habe eine Siedle Anlage mit dem Netzteil BNG 650 im Keller und 3 x das Haustelefon AIB 150. Würde gerne das Klingelsignal abgreifen und den Türöffner betätigen. Gibt es hier schon eine Abhilfe/Ideen? Vielen Dank.

                      1 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        med3
                        schrieb am zuletzt editiert von
                        #147

                        Hi, weiß jemand ob das mit einem Siedle HT 611-01 genau so funktioniert?

                        EisbaeeerE tobasiumT 2 Antworten Letzte Antwort
                        0
                        • M med3

                          Hi, weiß jemand ob das mit einem Siedle HT 611-01 genau so funktioniert?

                          EisbaeeerE Offline
                          EisbaeeerE Offline
                          Eisbaeeer
                          Developer
                          schrieb am zuletzt editiert von
                          #148

                          @med3 ja geht genau so. Habe ich hier auch im Einsatz.

                          Kein support per PM. Bitte im Forum Fragen stellen!

                          1 Antwort Letzte Antwort
                          0
                          • L Offline
                            L Offline
                            lonetom
                            schrieb am zuletzt editiert von
                            #149

                            Hallo Zusammen
                            Hat jemand Erfahrung mit einer Urmet 4+N (Innenstelle Urmet 1133 mit elektronischen Signalgeber) Erfahrung?
                            Welche Änderungen wären erforderlich bei Bedarf?
                            thx tom

                            1 Antwort Letzte Antwort
                            0
                            • M Marcel512

                              Soo, ich habe das ganze gestern Abend fertig gestellt. Für alle Interessierten anbei mal die Schaltung, der ESP-Code und ein paar Fotos vom Aufbau!

                              16715_img_5099.jpg

                              Die Oberseite des ESP habe ich dabei fachmännisch mit Isolierband isoliert, da im Gehäuse direkt untendrunter eine Schraube sitzt 🙂

                              In der LTSpice Simulation erkennt man gut die ca 1.05 V die dann beim Klingeln (12 VAC an 7/1) am Optokoppler anliegen.

                              16715_ltspice.png

                              Die Spannungsversorgung ist aktuell über einen LD1117V33 und einen normalen 5V USB Netzstecker realisiert.

                              Prinzipiell könnte man mit einer Erweiterung (die in der Software auch vorgesehen ist) auch über ein Relais den Türöffner betätigen, was ich

                              aber bei mir jetzt noch nicht realisiert habe.

                              Bauteile ESP / Spannungsversorgung

                              • ESP-01

                              • LD1117V33

                              • 😄 100µF

                              • 😄 100nF

                              Bauteile Klingelerkennung

                              • PC817

                              • 1N4007 (hatte keine 1N4148 da, geht aber genauso!)

                              • R: 2k2

                              • 😄 10µF

                              Schaltung

                              16715_kicad.png

                              Programmiert habe ich das ganze mit Arduino.

                              (*.ino Dateien mag das Board nicht, das .c einfach wieder weg machen 🙂 )

                              16715_siedleesp.h
                              16715_siedleesp.ino.c

                              Wen es interessiert: auf der anderen Seite sitzt ein NodeRED was eine Pushover Nachricht verschickt.

                              Viele Grüße,

                              Marcel

                              T Offline
                              T Offline
                              TheHellSite
                              schrieb am zuletzt editiert von TheHellSite
                              #150

                              EDIT: Eben erst gesehen, du hast ja ein anderes Telefon mit einer anderen Spannung.

                              1 Antwort Letzte Antwort
                              0
                              • M med3

                                Hi, weiß jemand ob das mit einem Siedle HT 611-01 genau so funktioniert?

                                tobasiumT Offline
                                tobasiumT Offline
                                tobasium
                                schrieb am zuletzt editiert von
                                #151

                                @med3

                                Ich habe mir das ganze auch gebaut aber mit Tasmota im Einsatz. Es fehlt eben noch ein Gehäuse.
                                Sobald es klingelt bekomme ich über mehre Kanäle eine Benachrichtigung (Telegram, Alexa)
                                Über mein normales Telegram Menü kann ich dann Türe öffnen auslösen.

                                Siedle-Gehirn_Steckplatine.jpg
                                MVIMG_20210225_162428.jpg

                                Basti97B M 2 Antworten Letzte Antwort
                                1
                                • EisbaeeerE Eisbaeeer

                                  Hallo zusammen

                                  Da es schon viele Fragen bezüglich Anbindung einer Siedle Türklingel gab, möchte ich hier kurz zeigen, wie man auch ohne den Teuren NSC 602 Nebensignal-Controller die Klingel und Türöffner Funktion integrieren kann.

                                  Kosten sind ca. 9 Euro. Man braucht dafür:

                                  1 x NodeMCU (ESP8266)

                                  1 x DC-DC Wandler

                                  1 x PC817 (Optokopller)

                                  1 x Widerstand 470 Ohm

                                  Optional (wenn man Türe auch öffnen möchte), Relais als Fertigmodul für ESP8266 oder

                                  1 x BC547 (Transistor)

                                  1 x Widerstand 470 Ohm

                                  ACHTUNG VERALTET! Neue Schaltung hier: viewtopic.php?p=175100#p175100

                                  Die Anbindung kann über jeden beliebigen Handapparat (in meinem Fall ein Siedle HTA-711) erfolgen. Folgende Schritte sind zu tun:

                                  • Vom Siedle Netzgerät die 24V Spannung zum Handappart bringen (2 freie Adern). Kennzeichnung am Netzteil + und -

                                  • Über den DC-DC Wandler (eingestellt auf 5V oder 3,3V, je nach NodeMCU) auf den ESP8266 anschließen

                                  • Den Optokoppler (3 im Bild) mit Pin2 auf die Schraubklemme (Siedle Klemmblock 1) löten. An Pin1 des Optokopplers einen 470 Ohm Widerstand anlöten (4 im Bild) und an (1 im Bild) anlöten. (1 im Bild ist der Anschluss des Reed-Relais vom Hörer). Am besten einen Schrumpfschlauch verwenden, um Kurzschlüsse zu vermeiden.
                                    139_platine_li__2_.jpg

                                  Jetzt geht es beim NodeMCU weiter. Als Betriebssystem habe ich das EASY Esp verwendet. Wie ihr den Kontakt zu iobroker bringt, bleibt Euch überlassen. Ich habe MQTT verwendet. Der Pin 3 des PC817 (Optokoppler) schließt ihr auf Masse des NodeMCU, den Pin 4 des PC817 auf den Eingangspin Eurer Wahl am NodeMCU. Diesen jetzt noch in EASY Esp mit "internal pullup" konfigurieren. Nun habt ihr schon mal das Signal der Klingel in iobroker. Wer noch möchte, kann einen Pin des NodeMCU als Ausgang konfigurieren und per Transistor und Vorwiderstand an der Basis den Türöffner Taster brücken. Ich habe das bei mir "noch" nicht realisert. Derzeit sehe ich keine Notwendigkeit, die Tür über iobroker zu öffnen. Ich lasse mir Bilder per Telegram senden, wenn jemand an der Tür klingelt.

                                  Hier noch ein paar Bilder, wie das im Gehäuse des HTA-711 untergebracht ist.

                                  Viel Spaß beim nachbauen, ich übernehme keine Garantie. Macht nur das, was ihr euch auch zutraut!

                                  Eisbaeeer

                                  139_20170916_135206.jpg
                                  139_20170916_135304.jpg
                                  139_20170916_135412.jpg

                                  T Offline
                                  T Offline
                                  TheHellSite
                                  schrieb am zuletzt editiert von
                                  #152

                                  Hallo @Eisbaeeer ,

                                  erstmal vielen Dank für deine Lösung!!!

                                  Ich habe bei mir ein Siedle HTS 711-0 verbaut.
                                  Aktuell möchte ich dies zwar noch nicht in mein Smart Home integrieren, aber ich bin sehr an einer Funk Klingel Erweiterung interessiert.

                                  Siedle bietet dafür den NSC 602-00 Adapter an. https://www.siedle.de/de-de/produkte/nsc-602-0-nebensignal-controller/
                                  In meinen Augen ist das Abzocke...

                                  Jetzt meine Frage:
                                  Kann ich deine Bauteile zur Klingelerkennung nutzen, um eine Funkerweiterung anzuschließen?
                                  www.heidemann-handel.de/details-produkte/funkkonverter-hx.html
                                  Den Rest für die Smart Home integration benötige ich aktuell nicht.

                                  Viele Grüße
                                  TheHellSite

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • T TheHellSite

                                    Hallo @Eisbaeeer ,

                                    erstmal vielen Dank für deine Lösung!!!

                                    Ich habe bei mir ein Siedle HTS 711-0 verbaut.
                                    Aktuell möchte ich dies zwar noch nicht in mein Smart Home integrieren, aber ich bin sehr an einer Funk Klingel Erweiterung interessiert.

                                    Siedle bietet dafür den NSC 602-00 Adapter an. https://www.siedle.de/de-de/produkte/nsc-602-0-nebensignal-controller/
                                    In meinen Augen ist das Abzocke...

                                    Jetzt meine Frage:
                                    Kann ich deine Bauteile zur Klingelerkennung nutzen, um eine Funkerweiterung anzuschließen?
                                    www.heidemann-handel.de/details-produkte/funkkonverter-hx.html
                                    Den Rest für die Smart Home integration benötige ich aktuell nicht.

                                    Viele Grüße
                                    TheHellSite

                                    T Offline
                                    T Offline
                                    TheHellSite
                                    schrieb am zuletzt editiert von TheHellSite
                                    #153

                                    Da hier keiner geantwortet hat, habe ich es einfach mal getestet. Mit Erfolg!
                                    Vielen Dank @Eisbaeeer für die ursprüngliche Lösung.

                                    Nachfolgend noch eine Liste der Bauteile und Bilder.

                                    Viele Grüße
                                    TheHellSite


                                    Verwendete Bauteile

                                    • Gegensprechstelle: Siedle HTS 711-0
                                    • Funksender: Heidemann Funkkonverter HX
                                    • Funkempfänger: Heidemann HX One
                                    • Optokoppler (PC817X1NSZ1B)
                                    • Zenerdiode (BZX85C20V = 1N4747A)
                                    • Widerstand (560 Ohm)

                                    Bilder

                                    Gegensprechstelle ohne Funkerweiterung
                                    001_gegensprechstelle_ohne_funkerweiterung.jpg

                                    Gegensprechstelle mit Funkerweiterung
                                    002_gegensprechstelle_mit_funkerweiterung.jpg

                                    DIY-Adapter und Funkkonverter
                                    003_adapter_und_funkkonverter.jpg

                                    EisbaeeerE 1 Antwort Letzte Antwort
                                    1
                                    • T TheHellSite

                                      Da hier keiner geantwortet hat, habe ich es einfach mal getestet. Mit Erfolg!
                                      Vielen Dank @Eisbaeeer für die ursprüngliche Lösung.

                                      Nachfolgend noch eine Liste der Bauteile und Bilder.

                                      Viele Grüße
                                      TheHellSite


                                      Verwendete Bauteile

                                      • Gegensprechstelle: Siedle HTS 711-0
                                      • Funksender: Heidemann Funkkonverter HX
                                      • Funkempfänger: Heidemann HX One
                                      • Optokoppler (PC817X1NSZ1B)
                                      • Zenerdiode (BZX85C20V = 1N4747A)
                                      • Widerstand (560 Ohm)

                                      Bilder

                                      Gegensprechstelle ohne Funkerweiterung
                                      001_gegensprechstelle_ohne_funkerweiterung.jpg

                                      Gegensprechstelle mit Funkerweiterung
                                      002_gegensprechstelle_mit_funkerweiterung.jpg

                                      DIY-Adapter und Funkkonverter
                                      003_adapter_und_funkkonverter.jpg

                                      EisbaeeerE Offline
                                      EisbaeeerE Offline
                                      Eisbaeeer
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #154

                                      @thehellsite Freut mich, wenn es bei Dir funktioniert hat!

                                      Kein support per PM. Bitte im Forum Fragen stellen!

                                      1 Antwort Letzte Antwort
                                      0
                                      • f0m3F Offline
                                        f0m3F Offline
                                        f0m3
                                        schrieb am zuletzt editiert von f0m3
                                        #155

                                        ups. dummer Post meinerseits, löschen geht aber anscheinend nicht 😞

                                        1 Antwort Letzte Antwort
                                        0
                                        • tobasiumT tobasium

                                          @med3

                                          Ich habe mir das ganze auch gebaut aber mit Tasmota im Einsatz. Es fehlt eben noch ein Gehäuse.
                                          Sobald es klingelt bekomme ich über mehre Kanäle eine Benachrichtigung (Telegram, Alexa)
                                          Über mein normales Telegram Menü kann ich dann Türe öffnen auslösen.

                                          Siedle-Gehirn_Steckplatine.jpg
                                          MVIMG_20210225_162428.jpg

                                          Basti97B Offline
                                          Basti97B Offline
                                          Basti97
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #156

                                          @tobasium Wo hast du die Spannung hergeholt ich habe bei mir Wechselspannung an der Klingel.
                                          Welchen Optokoppler bzw Diode hast du für das Etagen und für das Klingeln vor dem Haus benutzt.

                                          Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                                          tobasiumT 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          581

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe