Domoticz heeft standaard al erg veel ondersteuning voor diverse hardware. Verder kun je Domoticz helemaal naar je eigen behoeften tunen.

Start

Default start Domoticz als volgt op in je web-browser en kun je dus nog niet veel doen.




We gaan daarom eerst Domoticz configureren. Ga hiervoor naar ‘Setup > Settings’ en pas deze naar jouw behoeften aan:



Ik heb zelf eerst in ‘System’ de taal op Nederlands (Dutch) gezet. Vervolgens heb ik nog aanpassingen gemaakt bij ‘Notification’, ‘E-Mail’ en ‘Meters/Tellers’.

Let’s Encrypt

Om je let’s encrypt certificaat te gebruiken moet je eerst de ‘server_cert.pem’ maken als volgt:

cd /home/pi
rm server_cert.pem
cp /etc/letsencrypt/live/YOURDOMAIN.COM/privkey.pem >> server_cert.pem
cat /etc/letsencrypt/live/YOURDOMAIN.COM/fullchain.pem >> server_cert.pem
cat /etc/ssl/certs/dhparam.pem >> server_cert.pem

Zet deze ‘server_cert.pem’ file in de directory ‘/opt/domoticz/’ (aanmaken met ‘mkdir’ als deze nog niet bestaat). Verander verder nog de file ‘/etc/init.d/domoticz.sh’. Voeg hier de volgende regel aan toe:

DAEMON_ARGS="$DAEMON_ARGS -sslcert file_path /opt/domoticz/server_cert.pem"

Herstart hierna je Domoticz proces. Aangezien je Let’s Encrypt certificaat om de 3 maanden verloopt raad ik aan om bovenstaande acties in een cron job te zetten. Ik zet het certificaat in de ‘/opt/domoticz’ directory zodat deze bij een update van Domoticz niet verdwenen is.

Hardware

Hierna ga je meestal je hardware toevoegen. Ik heb hierbij o.a. gekozen voor:

  • Dummy Devices voor mijn eigen temperatuur devices (Arduino) uit te lezen (meer hierover in een toekomstige blog)
  • Dummy Devices (voor knoppen om de gordijnen te bedienen van mijn ‘eCurtains’ project)
  • Dummy (voor knop om IP Camera snapshots te maken)
  • Dummy Device om mijn garagedeur te openen
  • Nefit Easy (zie hier voor meer info)
  • Open Weather Map
  • P1 Smart Meter
  • Philips Hue Bridge
  • RFXCOM – RFXtrx433 USB 433.92MHz Transceiver
  • System_Alive_Checker (zie hier voor meer info)
  • Wake-on-LAN

IP Cam Snapshots maken en tonen

Mijn IP Camera’s kunnen geen live stream laten zien op een website. Ik heb echter zelf een goed alternatief bedacht. Mijn IP Camera’s kunnen nl. wel een snapshot maken. Ik heb daarom een virtueel device gemaakt met een deurbel-knop en als je deze activeert dan wordt een LUA script aangeroepen die snapshots maakt met al mijn IP camera’s.

Dit LUA script ziet er als volgt uit:

commandArray = {}

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do

    -- Device 'Foto Maken' changed    
    if (deviceName=='Foto Maken') then

        -- Button 'Activeer' pressed
        if deviceValue == "Activeer" then

            print("Snapshot Voordeur")
            os.execute("curl --anyauth http://user:password@192.168.1.201/cgi-bin/snapshot.cgi > /home/pi/domoticz/www/photo_voordeur.jpg 2> /dev/null &")

            print("Snapshot Tuin")
            os.execute("curl --anyauth http://user:password@192.168.1.203/cgi-bin/snapshot.cgi > /home/pi/domoticz/www/photo_tuin.jpg 2> /dev/null &")

            print("Snapshot Garage")
            os.execute("curl --anyauth http://user:password@192.168.1.205/cgi-bin/snapshot.cgi > /home/pi/domoticz/www/photo_garage.jpg 2> /dev/null &")

        end
    end
end

return commandArray

Verder heb ik een custom HTML pagina gemaakt in ‘/home/ip/domoticz/www/templates/webcam.html’ met de volgende inhoud:

<!DOCTYPE html>
  <html>
    <body>
      <img src="photo_voordeur.jpg" alt="Laatste Foto Voordeur" style="width:400px;height:225px">
      <img src="photo_garage.jpg" alt="Laatste Foto Garage" style="width:400px;height:225px">
      <img src="photo_tuin.jpg" alt="Laatste Foto Tuin" style="width:400px;height:225px>"
   <br>
</html>

Als laatste heb ik ook nog een script runnen dat elke 15 minuten de snapshots maakt.



Nefit Easy

Je moet hiervoor een een aantal voorbereidingen treffen. Zie hier voor meer info.

Update node.js naar 10.x versie

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

Installeer pm2 om device te beheren

sudo npm install pm2 -g
pm2 startup

Je krijgt nu vraag om de volgende regel uit te voeren:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi

Installeer de EasyServer

git clone https://github.com/robertklep/nefit-easy-http-server.git
cd nefit-easy-http-server
sudo npm i nefit-easy-http-server -g

Creëer startup script

sudo vi /etc/init.d/nefiteasyhttpserver.sh

Voeg de volgende regels toe:

#!/bin/bash
/usr/bin/easy-server --serial=jouw_serie_nummer --access-key=jouw_access_key --password=pasword_opgegeven_bij_app --host=127.0.0.1 >/dev/null

Sla deze file op en maak het script uitvoerbaar:

chmod 755 nefiteasyhttpserver.sh
update-rc.d nefiteasyhttpserver defaults

Update 9 februari 2020: Aanpassing indien je op Raspberry Buster draait:
Indien je je Raspberry Pi hebt geupdate naar Buster moet je helaas een aanpassing maken in je gebruikte encryptie. Edit de file ‘/etc/ssl/openssl.cnf’ en verander de volgende regels:

MinProtocol = None
CipherString = DEFAULT

Start nu de server voor je Nefit Easy:

pm2 start /etc/init.d/nefiteasyhttpserver.sh
pm2 save

Check het script

pm2 list
pm2 show nefiteasyhttpserver

In de hardware setup van Domoticz gebruik je de volgende instellingen:




Er verschijnen nu een aantal nieuwe devices in je lijst bij Domoticz die je kunt toevoegen. Deze verschijnen bij ‘Schakelaars’, ‘Temperatuur’ en ‘Overige’.


Om de temperatuur van de Nefit Easy via een LUA script aan te passen moet je een 3-tal curl commando’s uitvoeren. In het voorbeeld hieronder zet ik het setPoint op 22 graden.

curl -XPOST http://127.0.0.1:3000/bridge/heatingCircuits/hc1/temperatureRoomManual -d '{"value":22}' -H 'Content-Type: application/json'
curl -XPOST http://127.0.0.1:3000/bridge/heatingCircuits/hc1/manualTempOverride/status -d '{"value":"on"}' -H 'Content-Type: application/json'
curl -XPOST http://127.0.0.1:3000/bridge/heatingCircuits/hc1/manualTempOverride/temperature -d '{"value":22}' -H 'Content-Type: application/json'

Customs icons

De meeste icons van je apparaten kun je aanpassen. Default worden er een aantal icons met Domoticz meegeleverd, maar je kunt ook heel eenvoudig eigen icons toevoegen. Hier wordt uigelegd hoe je dat doet.




Nu kun je zelf aan de slag gaan, maar er is ook al heel veel op internet te vinden. Ik heb mijn meeste eigen icons hier gevonden.

KAKU devices toevoegen

Aangezien Domoticz een goede indruk bij mij achterliet heb ik toch de dure RFXcom RFXtrx433 aangeschaft en heb hiervan geen spijt. Deze heeft een goed bereik en lijkt betrouwbaar te werken tot nu toe. Het is een stuk beter als met mijn Pimatic installatie van het verleden. Ik haal nu zonder ‘fratsen’ de achterkant van mijn tuin.

KlikAanKlikUit (KAKU) gebruikt het AC protocol Voor dit protocol moet je een ID van 4 velden en een unitcode opgeven. Weet je die, dan kan je die invoeren en vervolgens met Add Device de ontvanger toevoegen. Weet je hem niet, dan verzin je een nog niet gebruikte code en zet je een zelflerende ontvanger in de leer-modus. Bij KAKU ontvangers doe je dat bijvoorbeeld door ze in het stopcontact te steken. Ze staan dan gedurende 5 seconden in “leer-modus”. Druk, zodra de ontvanger in de leer-modus staat, direct op de knop Test op de pagina waar je de gegevens invoert. De RFXtrx433 zendt het signaal uit en de ontvanger slaat het op.




Andersom kun je ook Domoticz in een “leer-modus” status zetten zodat hij een apparaat dat een RF signaal stuurt (bijvoorbeeld draadloze deurbel) zelf aanleert.

RFXmngr

Niet alles wordt meteen herkent. Zo zul je vooral bij Chinees spul zien dat je het juiste protocol moet enablen bij je RFXcom receiver aangezien deze default niet allemaal aan staan. Welk protocol je eventueel nog moet enablen kun je het eenvoudig met het Windows programma RFXmngr achterhalen.




Indien je RF device een signaal uitzend dan wordt dit getoond in het gele gedeelte indien het protocol wordt herkend. Is dit niet het geval enable dan het volgende protocol en probeer opnieuw. Zo kwam ik er achter dat ik voor mijn contact sensors het protocol ‘Lightning4’ moest enablen in RFXCom bij Domoticz.

Kamer indeling

Voor elke ‘schakelaar’ kun je aangeven of je deze in het Dashboard wilt zien. Op deze manier kun je je Dashboard overzichtelijk houden met alleen de belangrijkste ‘schakelaars’.




Tevens kun je in het Dashboard aangeven om alleen de ‘schakelaars’ van die ruimte te zien.



Hiervoor moet je wel eerst voor elke ‘schakelaar’ aangeven in je configuratie bij welke kamer deze hoort. Dit is heel eenvoudig in te stellen.



Het zijn deze zaken die me erg aanspreken van Domoticz. Overal is erg goed over nagedacht.

Temperatuur Sensors

In het verleden heb ik een draadloze temperatuur sensor voor Pimatic beschreven op mijn blog, maar deze werkte natuurlijk niet samen met Domoticz. Ik heb dit verder uitgezocht en besloten dit opnieuw op te zetten en deze keer mijn eigen software hiervoor te schrijven (nu 2500 regels code). Ik heb nu draadloze temperatuur sensors die perfect uitgelezen worden in Domoticz en waarbij alles via software configureerbaar is.




Binnenkort kun je een blog artikel hierover verwachten met een complete handleiding hoe je dit zelf ook kunt doen.

Smartphone Detectie

Tegenwoordig heeft iedereen een Smartphone. Dit is tevens een handig manier om te kijken of iemand thuis is en gebasseerd hierop acties uit te voeren. Denk bijvoorbeeld aan alle lichten uit te doen indien niemand thuis is. Nu kun je een ‘geofence’ oplossing kiezen met een App op de Smartphone maar dit heeft meerdere nadelen.

De handigste oplossing is dit via de iDetect Wifi plugin uit te voeren. Volg de stappen op van deze plugin en er verschijnen automatisch devices met je ingestelde smartphones en of deze gedetecteerd zijn via Wifi of niet.




Als je er niet helemaal uit komt dan kun je even zoeken in het betreffende Forum.

Conclusie

Als je nu nog op Pimatic zit dan zou ik sterk aanraden om over te stappen op Domoticz. In het begin was ik wat huiverig, maar de overstap is me erg meegevallen en ik ben erg tevreden over Domoticz. Domoticz werkt erg prettig en een stuk sneller als Pimatic. Er is ook heel veel documentatie en support te vinden als je eventueel ergens niet uitkomt. Er zit dan ook een veel grotere community achter dan bij Pimatic. Ook grafisch ziet Domoticz er erg mooi uit. Zo is de Nefit Easy en P1 Smart Meter integratie een stuk mooier en handiger in gebruik, met mooie grafieken en overzichten. Een ander sterk punt is dat je Domoticz ‘vrij’ kunt programmeren op verschillende manieren:

  • Blockly – Een grafische blok editor
  • Python – Zelf je eigen Python Scripts schrijven
  • Lua – Zelf je eigen Lua scripts schrijven (ik heb deze nu vooral gebruikt)
  • dzVents – Zelf je eigen Events gedreven scripts schrijven

Dit geeft je enorm veel flexibiliteit en mogelijkheden om Domoticz helemaal naar je hand te zetten.

Tenslotte kun je ook nog ‘Groepen’ maken waarbij je als het ware een recept maakt wat er moet gebeuren als je deze start. Bij de groep ‘Film Kijken’ kun je bijvoorbeeld instellen om de gordijnen te sluiten, de lampen te dimmen en je media-center, Receiver en TV aanzetten op het juiste kanaal.

Ik denk dat ik nog heel veel plezier aan Domoticz ga beleven en je kunt dan ook zeker nog meerdere blog artikelen hierover in de toekomst verwachten.