Een relay is een van de handigste bouwstenen binnen een smart home. Waar een sensor vooral meet, zorgt een relay er juist voor dat je iets echt kunt schakelen. In dit project bouw je een Homeyduino relay switch die via wifi samenwerkt met Homey en ook met Google Assistent bediend kan worden.

Het project is vooral interessant als je een betaalbaar alternatief zoekt voor een wifi-schakelaar en graag zelf controle houdt over de opbouw. Tegelijk hoort hier ook een duidelijke waarschuwing bij: werken met elektriciteit is gevaarlijk. Zorg dus dat je alles deugdelijk aansluit en nooit onder spanning werkt.

Belangrijke veiligheidswaarschuwing

Werken met elektriciteit is gevaarlijk. Zorg dat je alleen met dit project aan de slag gaat als je weet wat je doet, nooit onder spanning werkt en behuizing, trekontlasting en aansluitingen deugdelijk uitvoert. Publiceer of gebruik dit project niet als losse proefopstelling wanneer er netspanning in het spel is.

Wat ga je bouwen?

Je bouwt een relay-schakelaar op basis van een Wemos D1 Mini en een relay-module voor de Wemos. Via Homeyduino wordt de relay zichtbaar in Homey als schakelbaar apparaat, zodat je hem met de app, met flows en via Google Assistent kunt bedienen.

  • Wifi-schakelaar → de relay schakelt een uitgang op basis van een commando vanuit Homey.
  • Spraakbediening → door de relay een logische naam te geven kun je hem via Google Assistent aan- en uitzetten.

Daarmee bouw je geen theoretisch testproject, maar een praktische schakelmodule die direct toepasbaar is. In het oorspronkelijke voorbeeld wordt hij gebruikt om een televisie in de tuin te bedienen.

Benodigdheden

  • Wemos D1 Mini
  • Relay speciaal voor de Wemos D1 Mini
  • Micro USB lader
  • Homey Smart Home HUB met Homeyduino app geïnstalleerd
  • Arduino IDE software

Handige links bij dit project

Dit zijn producten die aansluiten op de benodigdheden in dit artikel.

Stap-voor-stap uitleg

1. Sluit de relay aan op de Wemos D1 Mini

Begin met het juist aansluiten van de relay op je board. In de gebruikte opstelling is de relay gekoppeld aan D0. Volgens het schema zijn dit de drie belangrijke aansluitingen voor de relay-module op de Wemos D1 Mini.

  • IN / SD0
  • VCC / +5V
  • GND / –GND
Aansluitschema van een relay-module op een Wemos D1 Mini voor Homeyduino
De basisopstelling is eenvoudig: de relay wordt op D0, 5V en GND aangesloten en vormt zo de schakelbare uitgang van het project.

2. Installeer Arduino IDE en de juiste libraries

Om de code op de Wemos D1 Mini te zetten heb je Arduino IDE nodig. Installeer daarin eerst de Homeyduino library via Schets > Bibliotheek gebruiken > Bibliotheken beheren. Zoek daarnaast ook op ESP8266 en Relay en installeer die libraries eveneens. Installeer vervolgens via Hulpmiddelen > Board > Board Beheer ook het board voor de Wemos D1 Mini als dat nog niet aanwezig is.

3. Upload de Homeyduino code

Open daarna een nieuw venster in Arduino IDE en vervang de standaardtekst door onderstaande code. Vul hierbij je eigen netwerkgegevens in. Geef de relay ook een unieke naam als je later meerdere relais in huis wilt gebruiken, zodat Homey ze als losse apparaten herkent.

// Code aangepast voor Homeyduino door Domoticablog https://huisvanvandaag.nl.
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
// Origineel afkomstig van: https://github.com/athombv/homey-arduino-library
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
#include <Relay.h>

#define PIN_RELAY D0 // PIN was cruciaal hier, met D2 werkte niet, met D0 wel

void wifi() {
  if (WiFi.status() != WL_CONNECTED) {
    WiFi.begin("<SSID>", "<PASSWORD>");
    uint8_t timeout = 30;
    while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      if (timeout<1) break;
    }
    if (WiFi.status() == WL_CONNECTED) {
      Serial.print("Verbonden met WiFi! (");
      Serial.print(WiFi.localIP());
      Serial.println(")");
    }
  }
}

bool state = false;
unsigned long previousMillis = 0;
const unsigned long interval = 100; //Interval in milliseconds

void setup() {
  Serial.begin(115200);
  pinMode(PIN_RELAY, OUTPUT); //Set relay pin to output
  digitalWrite(PIN_RELAY, LOW); //Turn output off

  Homey.begin("Relay"); // vul hier de gewenste unieke naam in
  Homey.setClass("socket");
  Homey.addCapability("onoff", setState);
  Homey.addAction("output", setState);
  Homey.addCondition("state", getState);
}

void loop() {
  wifi();
  Homey.loop();
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;
  }
}

void setState() {
  state = Homey.value.toInt();
  applyState();
}

void applyState() {
  digitalWrite(PIN_RELAY, state);
  Serial.println("applyState(): new state is " String(state));
  Homey.setCapabilityValue("onoff", state);
  Homey.trigger("state", state);
}

void getState() {
  Serial.println("getState(): state is " String(state));
  return Homey.returnResult(state);
}

4. Koppel de relay aan Homey

Zodra de code draait, kun je de relay via de Homey app koppelen. Daarna verschijnt hij als schakelbaar apparaat in je slimme huis. Vanaf dat moment kun je hem bedienen via een schakelaar in de Homey app of opnemen in flows.

5. Bedien de relay via app, flows of stem

De relay is niet alleen via de app te bedienen, maar ook via Google Home. Na een Ok, Google-commando kun je simpelweg zeggen: Schakel <naam relay> aan of Schakel <naam relay> uit. Juist daarom is een duidelijke en unieke naam per relay handig als je er later meer toevoegt.

Eindresultaat van een zelfgebouwde Homeyduino relay veilig weggewerkt in een behuizing
In het eindresultaat zijn de Wemos D1 Mini en de relay netjes en veilig weggewerkt in een kunststof behuizing.

Integratie met Homey

De kracht van dit project zit in de koppeling met Homey. Doordat de relay als socket met de capability onoff wordt toegevoegd, voelt hij in Homey aan als een gewone schakelbare module. Daardoor kun je hem logisch inpassen in bestaande flows of gebruiken als los bedienpunt in de app.

Dat maakt deze relay interessant voor meerdere toepassingen, zoals:

  • Een apparaat schakelen via de Homey app
  • Een uitgang automatisch bedienen via een flow
  • Een apparaat met stem aan- en uitzetten via Google Assistent
Zelfgebouwde Homeyduino relay zichtbaar in Homey als schakelbaar apparaat
Zodra de relay aan Homey is gekoppeld, kun je hem gebruiken als schakelaar in de app en in automatiseringen.

Praktisch gebruik

Het beschreven praktijkvoorbeeld laat goed zien waar dit soort zelfbouwprojecten sterk in zijn. De eerste relay wordt gebruikt om de televisie in de tuin te bedienen. Eerst zat daar een RF-schakelaar tussen, maar omdat de tv verder alleen met stem werd gebruikt voor bijvoorbeeld Netflix of YouTube, was het logisch om ook het in- en uitschakelen op diezelfde manier te doen. Daarmee wordt de relay een concrete schakel tussen handmatig schakelen en echt slim bedienen.

Praktische toepassing van een zelfgebouwde Homeyduino relay voor het schakelen van een apparaat
Een relay als deze is vooral handig op plekken waar je een bestaand apparaat slim wilt schakelen via Homey of spraakbediening.

Aandachtspunten

  • Werken met elektriciteit is gevaarlijk, dus sluit alles deugdelijk aan en werk nooit onder spanning.
  • Gebruik D0 voor de relay zoals in de gebruikte code; daarbij wordt expliciet genoemd dat D2 in deze opstelling niet werkte en D0 wel.
  • Geef iedere relay een unieke naam als je meerdere exemplaren wilt gebruiken, zodat Homey ze goed uit elkaar kan houden.

Conclusie

Met dit project bouw je een praktische en betaalbare Homeyduino relay switch die meer doet dan alleen schakelen. Door de koppeling met Homey en de ondersteuning voor Google Assistent ontstaat een flexibel project dat direct bruikbaar is in huis. Juist de combinatie van eenvoudige hardware, duidelijke software en concrete toepassingen maakt dit een sterk zelfbouwproject voor iedereen die slim wil schakelen zonder direct naar duurdere kant-en-klare modules te grijpen.