Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Ich baue eine Türsprechstelle ohne Cloud !

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ich baue eine Türsprechstelle ohne Cloud !

    This topic has been deleted. Only users with topic management privileges can see it.
    • Wal
      Wal Developer last edited by Wal

      Einführung
      Da ich vor ca. 4 Jahren eine neue Sprechanlage anschaffen musste, es aber keine gab die meinen Bedürfnissen entsprach, fand ich übers Inet das Projekt "DoorPi" und beschloss, das ich das haben "will".
      Ohne Cloud, Sip Client und vor allem erweiterbar. Leider ist das Projekt in Python 2.7 entwickelt, das bald nicht mehr von Debian unterstützt wird. Das Gleiche gilt für die Sip-Client Python Wrapper von Linphone und PJSip.
      Ich begann deshalb eine Sip-Client zu suchen der aktuell ist und fand Baresip. Ich habe mir einen ioBroker-Adapter erstellt. Falls jemand auf die Idee kommt das auch umzusetzten, möchte ich hier eine Hilfestellung geben.

      Hardware
      Sprechstelle.jpg
      Sprechstellenrahmen kommt aus meinem 3D-Drucker.
      Schalter sind links angebracht, damit der Besucher näher an die Sprechstelle muß.

      Mein System,
      Fritzbox
      Fritz Fon
      Raspberry 3
      Piface2
      USB-Hub
      USB-Kabel 5m
      USB-Cam
      Fisheye
      Led-Taster
      Relaiskarte
      USB-Seriell
      Nextion 3,2"
      Lautsprecher
      Plantronics Calisto 610

      Torsprechstelle.png

      Software
      pi-mqtt-gpio von flyte
      Der ioBroker-Piface-Adapter brachte bei mir zeitweise Phantomklingeln (Input kam ohne betätigt zu werden), deshalb wurde das Piface über den MQTT-Adapter eingelesen.
      Baresip als Sip-Client.
      MJPG-Streamer für die Kamera.

      Andreas Pässler 1 Reply Last reply Reply Quote 3
      • Wal
        Wal Developer last edited by Wal

        Tip1 "Senden einer Mail/Telegramm-Nachricht incl. Bild beim Klingeln"

        var request = require('request');
        var fs      = require('fs');
        var bell = true;
        
        function sendImage() {
            request.get({url: 'http://mjpegstreamer:9100/?action=snapshot', encoding: 'binary'}, function (err, response, body) {
                fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) {
        
                if (err) {
                    console.error(err);
                } else {
                    console.log('Snapshot sent');
                    sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: 'Jemand klingelt an der Haustür !!!'});   
                    sendTo("email", {
                        to:      "deinname@gmx.de",
                        subject: "Message from ioBroker",
                        text:    "Jemand klingelt an der Haustür !!!",
                        attachments: [{path: "/tmp/snap.jpg"}]
                    });
                }
              });
            });
        }
        
        on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                if (bell) sendImage(); 
                bell = false;    
                timer = setTimeout(function() {
                    bell = true;    
                }, 120000);
        });
        
        1 Reply Last reply Reply Quote 1
        • Wal
          Wal Developer last edited by Wal

          Tip2 "mute/unmute mit dem Shell Action Adapter"

          Die Befehle lauten bei meiner Sprechstelle:

          /usr/bin/amixer -D pulse set Master 1+ mute
          /usr/bin/amixer -D pulse set Master 1+ unmute
          

          Wir installieren den Shell Action Adapter und legen uns zwei Befehle an mit euren Daten. Die Befehle vorher auf dem DoorIO testen.

          Wir erstellen uns ein Blockly, Beispiel :

          <xml xmlns="http://www.w3.org/1999/xhtml">
            <block type="on" id="G)7BMnpJ9@XD2NPVU5tg" x="63" y="38">
              <field name="OID">doorio.0.CALL_ACTIVE</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="controls_if" id="8NqX8gsH-d2i?MQsCIg!">
                  <mutation else="1"></mutation>
                  <value name="IF0">
                    <block type="logic_compare" id="8Z0$)Rp+{T/N8)rp~bKt">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="on_source" id="KaLH)!{C}ds~e_{c0,!Y">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="1%0O|,.g^NkNruxYCgJL">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="-l~lN)G@gQf(04L8iJUg">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">shellaction.0.DoorIO_unmute</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="^g:^7U+|!c265KbQFHHE">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <statement name="ELSE">
                    <block type="control" id="0!c{b^0-+6[G^=T0,Yzi">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">shellaction.0.DoorIO_mute</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="J%%.p#SP2n,d?kp7X@cy">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                </block>
              </statement>
            </block>
          </xml>
          

          In dem Blockly eure Objekte einfügen.

          Edit: Das Blockly-Script wird nicht mehr benötigt, der DoorIO-Adapter kann das jetzt direkt.

          1 Reply Last reply Reply Quote 1
          • S
            schmid_no1 last edited by

            @Wal
            Guten Abend wal

            Wie schwer ist es das ganze umzusetzen bzw kann man da noch einen USB fingerprinter und oder einen rfid Empfänger anschließen?

            Wal 1 Reply Last reply Reply Quote 0
            • Wal
              Wal Developer @schmid_no1 last edited by Wal

              @schmid_no1
              umsetzen ist ganz einfach, das was am meisten aufhält ist die Frontplatte.
              Fingerprinter oder RFID hat ja nichts mit Klingeln oder sprechen zu tun, wenn es ein Adapter für ioBroker dafür gibt (weiss ich jetzt nicht) geht das.
              Ich nutze z.B. ein Nextion Display an der Sprechstelle das ich mit einer Pineingabe programmiert habe um das Garagentor zu öffnen. Das läuft aber nicht über den DoorIO-Adapter, sondern über den MQTT-Adapter.

              Edit: Der Adapter ist nur für die Kommunikation zuständig und kümmert sich für den Ruf und kann auch bei bestimmten Ereignissen Aktionen ausführen. Was du zum rufen nimmst (Bewegungsmelder, Klingeltaster auf GPIO oder PiFace, Sonoffschalter u.s.w) muß im ioBroker eingelesen sein und wird dem DoorIO-Adapter zugewiesen.

              S 1 Reply Last reply Reply Quote 0
              • S
                schmid_no1 @Wal last edited by

                @Wal alles klar
                Dann werde ich mal alles besorgen.
                Und mit deiner Hilfe werde ich bestimmt alles zum laufen bringen

                1 Reply Last reply Reply Quote 0
                • Andreas Pässler
                  Andreas Pässler @Wal last edited by

                  Ich bin begeistert!
                  Seit 2015 betreibe ich Doorberry. Das System ist etwas in die Jahre gekommen. Inzwischen nutze ich auch IOBroker und würde daher gerne auf DOORIO umsteigen. Gibt es eine Anleitung zur Konfiguration von Baresip (die Installation ist ja ganz einfach). Den Mjpg-Streamer nutze ich ohnehin schon. Über eine kurze Hilfestellung mit kommentierten Konfigurationsdateien würde ich mich sehr freuen.

                  Wal 1 Reply Last reply Reply Quote 0
                  • Wal
                    Wal Developer @Andreas Pässler last edited by Wal

                    @Andreas-Pässler sagte in Ich baue eine Türsprechstelle ohne Cloud !:

                    Über eine kurze Hilfestellung mit kommentierten Konfigurationsdateien würde ich mich sehr freuen.

                    da gibt es nicht viel zu sagen, die Dateien sind in .baresip zu finden.

                    Anmeldung an den Sipserver:
                    accounts -> sip:doorio2sip@fritz.box;auth_pass=passwort;answermode=auto

                    TCP-Socket aktivieren:
                    config-> module_app ctrl_tcp.so
                    Soundkarte konfigurieren.

                    das wars auch schon.

                    hier meine config:

                    #
                    # baresip configuration
                    #
                    
                    #------------------------------------------------------------------------------
                    
                    # Core
                    poll_method		epoll		# poll, select, epoll ..
                    
                    # SIP
                    sip_listen		0.0.0.0:5060
                    #sip_certificate	cert.pem
                    
                    # Call
                    call_local_timeout	20
                    call_max_calls		2
                    
                    # Audio
                    #audio_path		/usr/local/share/baresip
                    audio_player            pulse,noecho.sound_out
                    audio_source            pulse,noecho.mic_in
                    audio_alert             pulse,null
                    #ausrc_srate		48000
                    #auplay_srate		48000
                    #ausrc_channels		0
                    #auplay_channels	0
                    #audio_txmode		poll		# poll, thread
                    audio_level		no
                    ausrc_format		s16		# s16, float, ..
                    auplay_format		s16		# s16, float, ..
                    auenc_format		s16		# s16, float, ..
                    audec_format		s16		# s16, float, ..
                    
                    # Video
                    #video_source		v4l2,/dev/video0
                    #video_display		x11,nil
                    video_size		352x288
                    video_bitrate		500000
                    video_fps		25.00
                    video_fullscreen	yes
                    videnc_format		yuv420p
                    
                    # AVT - Audio/Video Transport
                    rtp_tos			184
                    #rtp_ports		10000-20000
                    #rtp_bandwidth		512-1024 # [kbit/s]
                    rtcp_mux		no
                    jitter_buffer_delay	5-10		# frames
                    rtp_stats		no
                    #rtp_timeout		20
                    
                    # Network
                    #dns_server		10.0.0.1:53
                    #net_interface		eth0
                    
                    # BFCP
                    #bfcp_proto		udp
                    
                    #------------------------------------------------------------------------------
                    # Modules
                    
                    module_path		/usr/local/lib/baresip/modules
                    
                    # UI Modules
                    #module			stdio.so
                    #module			cons.so
                    #module			evdev.so
                    #module			httpd.so
                    
                    # Audio codec Modules (in order)
                    #module			opus.so
                    #module			amr.so
                    #module			g7221.so
                    module			g722.so
                    #module			g726.so
                    #module			g711.so
                    #module			gsm.so
                    #module			l16.so
                    #module			bv32.so
                    #module			mpa.so
                    #module			codec2.so
                    #module			ilbc.so
                    #module			isac.so
                    
                    # Audio filter Modules (in encoding order)
                    #module			vumeter.so
                    #module			sndfile.so
                    #module			speex_aec.so
                    #module			speex_pp.so
                    #module			plc.so
                    
                    # Audio driver Modules
                    #module			alsa.so
                    module			pulse.so
                    #module			jack.so
                    #module			portaudio.so
                    #module			aubridge.so
                    #module			aufile.so
                    
                    # Video codec Modules (in order)
                    #module			avcodec.so
                    #module			vp8.so
                    #module			vp9.so
                    #module			h265.so
                    
                    # Video filter Modules (in encoding order)
                    #module			selfview.so
                    #module			snapshot.so
                    #module			swscale.so
                    #module			vidinfo.so
                    
                    # Video source modules
                    #module			v4l2.so
                    #module			v4l2_codec.so
                    #module			avformat.so
                    #module			x11grab.so
                    #module			cairo.so
                    #module			vidbridge.so
                    
                    # Video display modules
                    #module			directfb.so
                    #module			x11.so
                    #module			sdl2.so
                    #module			fakevideo.so
                    
                    # Audio/Video source modules
                    #module			rst.so
                    #module			gst1.so
                    #module			gst_video1.so
                    
                    # Media NAT modules
                    #module			stun.so
                    #module			turn.so
                    #module			ice.so
                    #module			natpmp.so
                    #module			pcp.so
                    
                    # Media encryption modules
                    #module			srtp.so
                    #module			dtls_srtp.so
                    #module			zrtp.so
                    
                    
                    #------------------------------------------------------------------------------
                    # Temporary Modules (loaded then unloaded)
                    
                    #module_tmp		uuid.so
                    module_tmp		account.so
                    
                    
                    #------------------------------------------------------------------------------
                    # Application Modules
                    
                    #module_app		auloop.so
                    #module_app		b2bua.so
                    #module_app		contact.so
                    module_app		debug_cmd.so
                    #module_app		dtmfio.so
                    #module_app		echo.so
                    #module_app		gtk.so
                    module_app		menu.so
                    #module_app		mwi.so
                    #module_app		presence.so
                    module_app		syslog.so
                    #module_app		mqtt.so
                    module_app		ctrl_tcp.so
                    #module_app		vidloop.so
                    
                    
                    #------------------------------------------------------------------------------
                    # Module parameters
                    
                    
                    # UI Modules parameters
                    cons_listen		0.0.0.0:5555 # cons
                    
                    http_listen		0.0.0.0:8000 # httpd - server
                    
                    ctrl_tcp_listen		0.0.0.0:4444 # ctrl_tcp
                    
                    evdev_device		/dev/input/event0
                    
                    # Opus codec parameters
                    opus_bitrate		28000 # 6000-510000
                    #opus_stereo		yes
                    #opus_sprop_stereo	yes
                    #opus_cbr		no
                    #opus_inband_fec	no
                    #opus_dtx		no
                    #opus_mirror		no
                    #opus_complexity		10
                    #opus_application		audio	# {voip,audio}
                    
                    # Opus Multistream codec parameters
                    #opus_ms_channels	2	#total channels (2 or 4)
                    #opus_ms_streams		2	#number of streams
                    #opus_ms_c_streams	2	#number of coupled streams
                    
                    vumeter_stderr		yes
                    
                    # Selfview
                    video_selfview		window # {window,pip}
                    #selfview_size		64x64
                    
                    # ICE
                    ice_turn		no
                    ice_debug		no
                    ice_nomination		regular	# {regular,aggressive}
                    ice_mode		full	# {full,lite}
                    
                    # ZRTP
                    #zrtp_hash		no  # Disable SDP zrtp-hash (not recommended)
                    
                    # Menu
                    #menu_bell		yes
                    #redial_attempts	3 # Num or <inf>
                    #redial_delay		5 # Delay in seconds
                    #ringback_disabled	yes
                    #statmode_default	off
                    
                    # avcodec
                    #avcodec_h264enc	libx264
                    #avcodec_h264dec	h264
                    
                    # h265
                    #h265_encoder		libx265
                    #h265_decoder		hevc
                    
                    # MQTT
                    #mqtt_broker_host	localhost
                    #mqtt_broker_port	1883
                    #mqtt_broker_clientid	baresip
                    #mqtt_broker_user	pi
                    #mqtt_broker_password	raspberry
                    #mqtt_basetopic		doorio
                    
                    

                    Wird Baresip über den Paketmanager installiert, müssen die Ordner mit "/usr/share/..." beginnen.
                    Wird Alsa genutzt lauten die Audioeinstellungen "Alsa,default", für Pulseaudio gibt es eine Anleitung im DoorIO Thread, da gibt es auch ein Image für RPI3 und 4.

                    1 Reply Last reply Reply Quote 0
                    • R
                      Roelli last edited by

                      Hab ne Frage:

                      Was passiert da genau wenn's klingelt?
                      Wird dann per SIP-Protokoll ein SIP-Client angerufen? Ist das dann "nur audio" oder ist das "video-sip"?
                      D.h. man kann am SIP-fähigen Telefon auch das Bild sehen?

                      Hintergrund:
                      Ich suche seit 10 Jahren nach einer Videotürsprechanlage. Hab auch keine kommerzielle Anlage gefunden die das macht was ich will:

                      Ich will keine Push-Benachrichtigung. (denn die hört man nicht gut, und ich habe auch keine Lust das iPhone noch entsperren zu müssen)
                      Aber ich habe einen SIP Client auf dem iPhone und würde gern dahin angerufen werden - und zwar MIT Videobild.
                      Und das Videobild soll angezeigt werden BEVOR man das Gespräch annimmt.

                      Ich habe auch schon im Internet gesehen wo RTSP Streams an SIP Verbindungen angebunden werden. (soll mit irgendeiner neueren Asterisk-Version angebeblich schon von Haus aus gehen)

                      Danke!

                      Wal 1 Reply Last reply Reply Quote 0
                      • Wal
                        Wal Developer @Roelli last edited by Wal

                        @Roelli
                        das kann ich dir so nicht beantworten. Du musst dir Baresip anschauen, alles was damit gemacht werden kann würde mit dem Adapter auch gehen. Ich nutze halt die Fritzbox mit Fritzphone, da funktioniert das was du möchtest. Ich habe das Bild vor der Annahme des Gesprächs.

                        Die Fritzbox ist mein Sipserver und die Sprechstelle ist ein Sipclient. Wird das dem Adapter zugeortnete Klingelereigniss erkannt, wird Baresip der Befehl erteilt die Rufnummer in deinem Fall das IPhone zu rufen.
                        Wenn du abnimmst, kommt das Gespräch zustande. Man kann auch direkt mit der Sprechstelle kommunizieren.

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          genau_der @Wal last edited by genau_der

                          @Wal
                          Hallo,

                          spiele schon länger mit dem Gedanken, meine Klingel und Türsprechanlage Smart zu machen, da die bestehende sowieso nicht mehr richtig funktioniert und man z.B. im Garten nicht mitbekommt, wenn es geklingelt hat.

                          Da ich gerade eine iobroker Installation für weitere Automationszwecke ans laufen gebracht habe, wäre die hier gezeigte Lösung eigentlich genau das Richtige für mich, da die meisten Fertiglösungen entweder Cloud Zwang mitbringen oder schlicht ein Vermögen kosten. Jetzt stellen sich mir aber noch ein paar Detailfragen, die für mich aus diesem und dem Thread des Adapters noch nicht ganz klar hervor gingen.

                          Ich habe in dem Unterputzkasten meiner bisherigen Klingel relativ wenig Platz, müsste aber den Raspberry Pi auch dort mit unterbringen. Von daher kommt wahrscheinlich nur ein Pi 3A+ in Frage. Als Kamera könnte ich ja die Raspberry Cam verwenden, dann hätte ich den einen vorhandenen USB-Anschluss noch für das Mikrofon zur Verfügung. Lautsprecher kann ja wahrscheinlich auch irgendwie an den Klinkenanschluss, falls er nicht sowieso in der Mikrofon Lösung integriert ist. Bildschirm wäre für mich verzichtbar oder ggf. über GPIO zu lösen. Aus Platzgründen wäre es auch gut auf das PiFace verzichten zu können. Ist das essenziell oder macht es den Aufbau lediglich einfacher?

                          EDIT: Was die Platzverhältnisse zusätzlich einschränkt, ist auch die zusätzliche Elektronik, um den Pi über den Klingeltrafo mit Strom versorgen zu können.

                          Vielen Dank schon mal für die Hilfe!

                          Grüße

                          Wal 1 Reply Last reply Reply Quote 0
                          • Wal
                            Wal Developer @genau_der last edited by

                            @genau_der ,
                            Piface braucht man nicht unbedingt, du kannst auch die GPIOs nehmen oder irgend ein Schalter(sonoff,HM-IP u.s.w.) der ein Objekt in ioBroker setzt. Für Audio ist z.B. ein RPI von Nöten, alles andere kannst du auch autark machen. WLan-Kamera fürs Video, Funkschalter für die Klingel, Sonoff für den Türöffner u.s.w.

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              GeRei @Wal last edited by

                              Hallo,

                              ich hatte auch vor ca. zwei Jahren noch DoorPi am laufen. Irgendwann gab es ein Update und dann ging leider nichts mehr. Habe vor vier Wochen meinen alten DoorPi zum ioBroker umgewandelt. Jetzt habe ich den Doorio Adapter entdeckt und möchte gerne auch das Projekt nachbauen bzw. inbetriebnehmen, da ja alles schon vorhanden ist.

                              Ein Frage ist aber mir noch nicht ganz klar, vielleicht könnt ihr mir da weiterhelfen.

                              Benutze ich ich jetzt zwei Pi's einer für den ioBroker und einen als Slave mit dem PiFace oder kann ich beide in einem Pi betreiben.

                              Was sind so eure Empfehlungen?

                              Gruß

                              Wal 1 Reply Last reply Reply Quote 0
                              • Wal
                                Wal Developer @GeRei last edited by Wal

                                @gerei ,
                                bei mir läuft ioBroker auf einem Proxmox Server und auf dem RPI4 läuft Baresip und der mjpg-streamer für die Kamera.
                                ioBroker muß nicht auf dem RPI4 laufen auch nicht als Slave.

                                R 1 Reply Last reply Reply Quote 0
                                • R
                                  Renegade 0 @Wal last edited by

                                  @wal
                                  Moin Dir, mal eine Frage, wozu nutzt du das piface2 und eine Relaiskarte? Wäre es nicht einfacher die Relais vom piface zu nutzen, bzw. falls diese nicht reichen von der Schaltleistung die GPIO direkt auf die Relaiskarte zu verbinden?

                                  mfG
                                  da rene

                                  Wal 1 Reply Last reply Reply Quote 0
                                  • Wal
                                    Wal Developer @Renegade 0 last edited by

                                    @renegade-0 ,
                                    ich nutze das Relais autark vom Piface, damit der Gong noch gongt auch wenn alles andere versagt. Hatte ich zwar noch nicht, aber siiicher ist siiicher.

                                    R 1 Reply Last reply Reply Quote 1
                                    • R
                                      Renegade 0 @Wal last edited by

                                      @wal

                                      also würde der piface alleine reichen, wenn man keine doppelte Sicherheit benötigt? Ich würde halt auch gerne den Status der Türe (offen/geschlossen) und das Schloss überwachen. Kontakte sind türseitig da. Darum gefällt mir das piface eigentlich sehr gut. 2 Relais und genug Eingangskontakte.

                                      Wal 1 Reply Last reply Reply Quote 0
                                      • Wal
                                        Wal Developer @Renegade 0 last edited by

                                        @renegade-0 ,
                                        ja das würde reichen.

                                        R 1 Reply Last reply Reply Quote 0
                                        • R
                                          Renegade 0 @Wal last edited by

                                          @wal
                                          super, dann läufts soweit zumindest aufm Pi 3 und 4. Komischerweise auf dem Pi 4 Compute Modul hab ich Probleme mim Pulseaudio. Da muss ich nochmal forschen.

                                          Wal 1 Reply Last reply Reply Quote 0
                                          • Wal
                                            Wal Developer @Renegade 0 last edited by

                                            @renegade-0 ,
                                            es gibt auch eine neue Anleitung.

                                            K 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            955
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            doorio sip
                                            9
                                            37
                                            14405
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo