Ring deurbel koppelen aan Domoticz

Als je een domotica systeem in je huis hebt, wil je ook een slimme camera deurbel daar aan gekoppeld hebben. Eerst hadden we een slimme camera deurbel uit het bekende Chinese warenhuis beginnende met een A. De drukknop daarvan werkte op de 433.92 mhz en werd dus door RFLink opgevangen, waardoor ik diverse acties kon triggeren, waaronder een melding naar Telegram.

De deurbel werkte niet altijd goed, dus de WAF werd steeds lager. Vervolgens ben ik voor een Ring wired gegaan. De installatie van de Ring spreekt verder voor zich en anders is daar elders genoeg over te vinden.

Met een werkende Ring ging ik zoeken op het internet en kwam ik het volgende tegen: https://github.com/tsightler/ring-mqtt/wiki. Ik heb voor de Docker installatie gekozen, omdat deze geadviseerd werd en ook de videostream integratie heeft.

Als iemand op de Ring drukt, triggerd dat onderstaande dzVents script:

return {
    on = {
            devices = {'Ring voordeur'}
        
         },
    
    execute = function(domoticz, item, info, timer, device, group)
 
        local deur = domoticz.devices('Ring voordeur')
        
        if deur.state == 'On' then
            domoticz.notify("Voordeur", "Deurbel voordeur", domoticz.PRIORITY_NORMAL,domoticz.SOUND_DEFAULT, "" , "")
            os.execute('/home/pi/domoticz/scripts/voorfoto.sh')
            os.execute('/home/pi/domoticz/scripts/voordeurvideo.sh')
          
        end
        
    end
}

De foto van het voorfoto.sh script is een foto van een camera met RTSP stream. Het script om een korte video van de Ring naar Telegram te sturen zie je hieronder:

#!/bin/sh
now=$(date +"%T")

SnapFile="/var/tmp/voordeur.mp4"    # Temp name of the video, change it when using this script for multiple cams
VideoLength=5     # Seconds to record
WaitTime=10       # Seconds the script waits before it sends another video
rtspUrl="rtsp://192.168.2.1:8554/343ea4dd2346_live"
ChatID="ZELF INVULLEN"    # Telegram chat ID
TelegramAPIToken="ZELF INVULLEN"    # Telegram API token

ffmpeg -y -i $rtspUrl -r 30 -vcodec copy -an -t $VideoLength $SnapFile
curl -s -F chat_id=$ChatID -F video="@$SnapFile" -F caption="$now Voordeur" https://api.telegram.org/bot$TelegramAPIToken/sendVideo

De rtspUrl is het IP adres van je MQTT server met poortnummer 8554 en het ID van de camera. Gebruik MQTT-Explorer om dit te achterhalen en test de stream in bijvoorbeeld VLC. Lees hier meer.

Bijgewerkt op 27 september 2024

Heeft dit artikel je geholpen?

Bedankt voor je feedback!

15 antwoorden naar “Ring deurbel koppelen aan Domoticz”

  1. Het klinkt heel leuk… Ik ben allemaal met python scripts bezig geweest, maar dat vergt veel onderhoud…
    Je schrijft “omdat deze geadviseerd werd”, heb je misschien meer informatie over installatie/configuratie, ik wil hier wel in duiken …

    MVG

  2. Ook die had al in Domoticz toegevoegd… Die zie ook verschijnen als ik die enable in domoticz (met MQTT explorer), maar ik zie geen ring verschijnen, en stoppen en starten van de ring-mqtt zie ik ook niets doen in mqtt explorer… wat ik zeg… ik mis een schakeltje…

  3. Dat is wat ik niet zo goed kon achterhalen… ik heb iets op google gevonden maar geen idee of dit het juiste/de juiste manier is…

    environment:
    – MQTTHOST=192.168.1.210
    – MQTTPORT=1883
    – MQTTUSER=mqtt
    – MQTTPASSWORD=xxxxxxxx

    En dat staat in mijn compose file erbij

    Hoe heb jij dit gedaan ?

    Ben trouwens al heel blij dat je hierop reageert en dit online hebt gezet 😉

    Mvg (uit zonnig spanje)

    Bas

    • Ik zie ook nog deze opties, maar geen idee hoe of waarmee ik die moet vullen…

      # – RINGTOKEN=[REMOVED]
      – ENABLEMODES=true
      – ENABLEVOLUME=true
      – ENABLECAMERAS=true
      – LIVESTREAMUSER=
      – LIVESTREAMPASSWORD=
      – RINGLOCATIONIDS=
      # – DEBUG=ring-mqtt

      Mvg

    • Ik heb de instellingen in een file: config.json

      {
      "mqtt_url": "mqtt://192.168.*.**:1883",
      "mqtt_options": "",
      "livestream_user": "",
      "livestream_pass": "",
      "disarm_code": "",
      "enable_cameras": true,
      "enable_modes": false,
      "enable_panic": false,
      "hass_topic": "homeassistant/status",
      "ring_topic": "ring",
      "location_ids": []
      }

  4. Hoi GertJan,

    Het is gelukt hoor… Door dat div instellingen in ring-mqtt niet goed stonden, stonden processen binnen de container opnieuw op te starten, wat logging doorgepluisd, en uiteindelijk een juiste config.json (haakje/quote-je verkeerd) en de ring-mqtt draait… (en blijkbaar moest je de prefix bij de domoticz hardware plugin op “homeassistant” invullen…

    Ik heb mijn KAKU bellen nu weer werkend op de RING (ding), en ga me nu verdiepen wat er extra mogelijk is …

    Thanks voor alle info

    • Dank voor de terugkoppeling, “homeassistant” is standaard, maar als je dat niet weet……. Verder komt de configuratie van een containers soms heel precies. Hopelijk hebben anderen ook wat aan jouw vragen en mijn antwoorden/opmerkingen.

      • Ik denk dat dit wel gevonden en gelezen wordt… Als je zoekt op domoticz integratie van de ring kom je al snel hier (en zeker als je zocht op de KAKU bellen), dit was dan 1 van de weinige topics.

        Ik heb overigens inmiddels al heel wat gestoeid met je shell script en ‘m helemaal naar mijn wensen geschreven… Ik roep ‘m overigens niet aan via een dzvents gebeurtenis maar rechtstreek in de aan script optie van de bel-schakelaar:

        script:///home/pi/domoticz/scripts/voordeurvideo_ding.sh

        geen gedoe met namen van devices in de dzvents scripts, en je kan makkelijk met een dummyschakellaar je scripts vanuit domoticz testen….

        Ik probeerde overigens ook wat achter beweging (motion) meldingen te hangen maar mij viel op dat die helemaal niet doorkomen… Er wordt wel een motion device (sensor) aangemaakt door ring-mqtt, maar na aanmaken helemaal niet getriggered.
        Heb jij een werkende motion sensor in domoticz? en zo ja, heb jij daar iets speciaals voor gedaan ?

        Groetjes

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

*