Ik gebruikte tot nu toe voornamelijk KlikAanKlikUit (KAKU) devices in mijn Domoticz server en op zich werkt dat prima met de RFXCom die een beduidend beter bereik heeft als vroeger met mijn Pimatic setup. Het nadeel van KAKU blijft echter dat het geen 2-richtings verkeer is en onbeveiligd. Je weet dus nooit of een device daadwerkelijk aan of uit is gezet en dat knaagt bij mij toch weleens.

Mogelijk oplossing is gebruik maken van Z-Wave, maar hiervan is de apparatuur redelijk prijzig. Er is echter een goedkoper alternatief met behulp van bijvoorbeeld een Sonoff S20 (EU – Type F) device. Ik leg hieronder uit hoe dat werkt. Overigens werken deze instructies voor bijna alle Sonoff types.

MQTT

MQTT is een veilig 2-richtings communicatie protocol wat vooral voor IOT (Internet Of Things) devices wordt toegepast.

MQTTT (Message Queuing Telemetry Transport) is een ISO-norm (ISO/IEC PRF 20922 publiceer-abonneer gebasseerd berichten protocol. Het werkt bovenop het TCP/IP-protocol. Het is ontworpen voor verbindingen met externe locaties waar een “kleine code footprint” vereist is of waar de bandbreedte van het netwerk beperkt is. Het publish-subscribe berichtenpatroon vereist een broker.

Je moet hiervoor wel eerst een MQTT broker opzetten waar je berichten naar toe kunt publiceren en uitlezen. Voor de Raspberry met Raspbian (= Debian) kun je hiervoor gebruik maken van Mosquitto.

Om deze te installeren moet je eerst weten welke versie van Raspbian je draait. Dit doe je met het commando:

cat /etc/debian_version

7 = Wheezy
8 = Jessie
9 = Stretch

In mijn geval had ik versie 9.6, dus ik gebruik de ‘Stretch’ variant. Om vervolgens Mosquitto te installeren voer je de volgende commando’s uit:

sudo wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

Tenslotte moet je in Domoticz nog deze ‘Mosquitto MQTT message broker’ toevoegen. Ga hiervoor in Domoticz naar Hardware en voeg het het device ‘MQTT Client Gateway with LAN interface’ met de volgende settings:



Sonoff S20

Nu we een MQTT broker hebben opgezet hebben we nog devices nodig die daar mee samenwerken. Ik ben begonnen met een Sonoff S20 (EU – Type F). Deze zijn in de aanbieding al voor ongeveer Euro 10,= verkrijgbaar.

Standaard werkt deze alleen via een speciale Smartphone App, maar door deze van alternatieve firmware te voorzien kun je deze ook met Domoticz laten samenwerken over Wifi via het MQTT protocol.

Ik gebruik hiervoor de Sonoff Tasmota Firmware. Om deze te installeren moet je wel wat acties uitvoeren. Dit lijkt veel werk, maar als je het eenmaal hebt gedaan vallen de stappen best mee en kun je snel meerdere Sonoff S20 van Tasmota firmware voorzien.

Verder raad ik op dit moment Tasmota versie 6.3.0 aan, daar met versie 6.4.1 auto-discovery niet lijkt te werken (zie verderop wat ik hiermee bedoel).

Edit 5 februari 2019: Ik heb de maker van de Domoticz MQTT Discovery Plugin hierop geattendeerd en hij heeft dit opgelost. Je kunt nu dus ook de laatste Tasmato firmware gebruiken.

Tasmota Firmware

Ik gebruik de instructies zoals je hier kunt vinden. Zorg er verder voor dat je een USB-to-Serial Converter van goede kwaliteit hebt en die genoeg power kan leveren. Ik raad de ‘SparkFun Beefy 3’ aan die je bij Antratek kunt kopen.

Alle volgende handelingen gebeuren op eigen risico. Belangrijk is dat je de Sonoff niet op de spanning hebt aangesloten, maar dat is natuurlijk logisch. Open de Sonoff S20 door 3 schroefjes aan de achterkant los te schroeven en deze voorzichtig ‘open’ te trekken.




Nu moet je een 4-pin header op de print solderen vlak bij het knopje zodat je gemakkelijk later verbinding kunt maken. Eventueel kun je het solderen achterwege laten als je een 4-pins header zonder te solderen tijdelijk goed contact kunt laten maken met je printplaat.







Sluit vervolgens de USB-to-Serial Converter aan op je 4-pin header van je Sonoff. Gebruik hiervoor de volgende aansluitingen:

Sonoff S20 met versie < V1.3

Sonoff VCC - Vcc Converter
Sonoff TXD - RXD Converter
Sonoff RXD - TXD Converter
Sonoff GND - GND Converter

Sonoff S20 met versie V1.3+

Sonoff VCC - Vcc Converter
Sonoff TXD - TXD Converter
Sonoff RXD - RXD Converter
Sonoff GND - GND Converter

Houd nu het Wifi knopje gedurende 2 seconden ingedrukt terwijl je USB-to-Serial Converter op je computer aansluit. Op deze manier staat de Sonoff in zogenaamde ‘flash-mode’. Het lampje zal dan niet knipperen. We gaan nu de alternatieve firmware uploaden. Het snelste gaat dit door de juiste firmware te downloaden en deze via ESPEasy te flashen.

Ik gebruik de ‘sonoff.bin’ firmware. Deze flash je als volgt:

    1. Plaats de ‘sonoff.bin’ file in de bin directory waar je ESPEasy hebt uitgepakt
    2. Boot de Sonoff in ‘flash’ mode
    3. Start ESPEasy en kies de COM poort en je firmware versie. Vink verder [x] Force DOUT aan
    4. Druk de [Flash ESP Easy FW] knop rechtsonder en wacht




Na ongeveer 1 minuut zal je Sonoff S20 geflasht zijn.

Nu moeten we de Sonoff gaan verbinden met je Wifi network. Met de nieuwe firmware heeft de drukknop op de Sonoff speciale functies gekregen.

1 korte druk Schakelt het relais rechtstreeks of verzend een MQTTT-bericht zoals cmnd/sonoff/POWER1 ON. Hierdoor zal de LED twee keer knipperen en een MQTTT statusbericht sturen zoals stat/sonoff/POWER1 ON. Als cmnd/sonoff/ButtonRetain on is gebruikt zal het MQTTT bericht ook de MQTTT retain flag bevatten.
2 korte drukken Schakelt tussen relais 2 indien beschikbaar op het apparaat zoals Sonoff Dual. De LED zal twee keer knipperen en een MQTTT statusbericht sturen zoals stat/sonoff/POWER2 aan.
3 korte drukken Start Wifi smartconfig voor SSID en wachtwoord configuratie met behulp van een Android mobiele telefoon met de ESP8266 SmartConfig app. De LED knippert tijdens de configuratieperiode. Een enkele druk op de knop tijdens deze periode zal de sonoff afbreken en herstarten.
4 korte drukken Start Wifi manager met een Access Point met IP-adres 192.168.4.1 en een webserver voor de configuratie van Wifi. De LED knippert tijdens de configuratieperiode. Een enkele druk op de knop tijdens deze periode zal de sonoff afbreken en herstarten.
5 korte drukken Start Wifi Protected Setup (WPS) voor SSID- en wachtwoordconfiguratie met behulp van de WPS-knop of webpagina van de router. De LED knippert tijdens de configuratieperiode. Een enkele druk op de knop tijdens deze periode zal de sonoff afbreken en opnieuw starten.
6 korte drukken Hiermee wordt de module opnieuw opgestart
7 korte drukken Start het downloaden van de firmware door OTA (Over The Air). De groene LED brandt tijdens de update
Meer dan 40 seconden lang drukken Reset de instellingen naar de standaardinstellingen zoals gedefinieerd in user_config.h en start het apparaat opnieuw op.

 

Door deze dus 4 kort te drukken zet je de Sonoff dus in Access-Point mode waarmee je via Wifi kunt verbinden. Vervolgens kun je de Sonoff benaderen op IP-adres 192.168.4.1. Verbind met dit netwerk en stel je SSID en wachtwoord van je Wifi netwerk in.




Als dit allemaal goed is gegaan kun je de Sonoff weer helemaal in elkaar schroeven en in het stopcontact stoppen. We gaan nu de Sonoff configuren. Ga naar het IP-adres dat je Sonoff gekregen heeft:

http://[sonoff-ip]/cn

Vul hier de volgende gegevens in bij de configuratie









Zorg er vooral voor dat je unieke ‘topic’ naam kiest, bijvoorbeeld door je Sonoff devices te nummeren (01, 02, etc.).

Toevoegen aan Domoticz

Eerst moet je enablen dat de je Sonoff ‘auto-discoverable’ is. Dit doe je door het volgende commando in de Console window van Sonoff in te voeren:

SetOption19 On



Tenslotte gaan we de Sonoff nog toevoegen aan de Domoticz configuratie. Ik heb hiervoor deze instructies gebruikt. Installeer de Domoticz MQTT Discovery Plugin. Deze hebben we nodig om handig devices met de Sonoff Tasmota Firmware toe te voegen aan Domoticz.

Volg de volgende stappen:

cd /home/pi/domoticz/plugins
git clone https://github.com/emontnemery/domoticz_mqtt_discovery
sudo /etc/init.d/domoticz.sh restart

Voeg nu in Domoticz bij hardware de ‘MQTT Discovery’ toe en vul de volgende gegevens in:




Domoticz zal automatisch alle devices vinden die Tasmota firmware hebben. Deze kun je in je devices van Domoticz vinden.



Eventueel kun je de ‘Setoption19’ optie nu weer ‘Off’ zetten in de Sonoff Console.

Update 16 December 2022
Sinds R12.x van Tasmota werkt MQTT Discovery (SetOption19) niet meer. Zie ook deze link met meer informatie. In plaats hiervan moet je ‘SetOption19’ op 0 zetten en de ingebouwde ‘MQTT Auto Discovery Client Gateway with LAN interface’ hardware plugin gebruiken.

Updaten Sonoff

Als je de firmware van Sonoff later wilt updaten dan kun je dat via de web-interface van Tasmota doen. Je download dan ‘sonoff.bin’ en deze kun je dan flashen. Het is aan te raden om ook ‘sonoff-minimal.bin’ te downloaden en deze eerst te flashen en later pas ‘sonoff.bin’. Vaak kun je namelijk vanwege het beperkt geheugen niet direct ‘sonoff.bin’ uploaden. Doe je dit wel dan krijg je een foutmelding. Upload dan eerst ‘sonoff-minimal.bin’ en daarna pas ‘sonoff.bin’.

TasmoAdmin

Als je meerdere Sonoff S20 devices hebt is het handig als je deze allemaal tegelijk automatisch kunt updaten. Je kunt hiervoor gebruik maken van TasmoAdmin. Om deze te installeren volg je deze instructies.





Conclusie

Voor weinig geld en een kleine inspanning kun je eenvoudig en betrouwbaar (vanwege Wifi) gebruik maken van Sonoff switches via het MQTT protocol in Domoticz. Dit bevalt me erg goed en het geeft me een goed gevoel dat ik nu zeker weet dat een device daadwerkelijk aan of uit is gezet.