# Esp8266 met 4 relais

**URL:** <https://community.homey.app/t/esp8266-met-4-relais/27301>\
**Category:** Vragen & hulp\
**Created:** [March 19, 2020, 3:05pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301 "2020-03-19T15:05:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 19, 2020, 3:05pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/1 "2020-03-19T15:05:14Z")

</div>

Ik ben nieuw met het coderen van een esp8266.  
Ik ben wat aan het proberen met 4 relais.  
Nou vroeg ik me af of het eigenlijk wel mogelijk is wat is wil 😅  
Ik zou graag mijn badkamer fan aan willen sturen in snelheid met 3 relais dus 3 standen, maar is het mogelijk om in homey een 3 standen schakelaar te maken of een dimmer die dan de 3 relais te schakelen bij  
0-33% relais 1  
34-66% relais 2  
67-100% relais 3  
En dan met de voorwaarden dat als 1 aangestuurd van uit homey dat de andere 2 uit gaan.  
Kan ik die programmeren in de esp8266 of moet ik met 4 losse relais/ schakelaars in homey dit ineen flow maken?

Ik heb het homeyduino relay voorbeeld code gezien maar kan is daar zo 3 relais bij zetten?

Heeft misschien iemand daar voorbeeld codes van?

En is het eventueel ook mogelijk om daar dan nog een temp sensor aan te hangen en die apart in homey als apparaat toe te voegen.

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [March 19, 2020, 3:12pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/2 "2020-03-19T15:12:31Z")

</div>

> [@Steven\_Mollema](#):
>
> Kan ik die programmeren in de esp8266 of moet ik met 4 losse relais/ schakelaars in homey dit ineen flow maken?

Ik zou het in de ESP8266 code doen: de `dim` waarde uitlezen en al naar gelang de waarde (die van 0 tot 1 loopt) de verschillende relais schakelen. Zo “ziet” Homey slechts één apparaat, dus dan hoef je in flows ook niet ingewikkeld te doen.

Temperatuursensor kun je toevoegen maar niet als apart apparaat. Het wordt dan in feite één apparaat dat kan dimmen én een temperatuurswaarde heeft.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 19, 2020, 3:30pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/3 "2020-03-19T15:30:43Z")

</div>

Oké dat zou perfect wezen.  
3 relais in een dimmer, 1 relais als schakelaar en een temperatuur meting.  
Dit kan dan via de homey app homeyduino?

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [March 19, 2020, 4:53pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/4 "2020-03-19T16:53:44Z")

</div>

Ik heb nog nooit zoiets zelf gemaakt, dus 100% zeker weten doe ik het niet, maar ik zie geen reden waarom het niet zou kunnen werken met Homeyduino.

---

<div class="post-metadata">

**Author:** ![JPe4619](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jpe4619/32/9017_2.png) [@JPe4619](https://community.homey.app/u/JPe4619)\
**Post date:** [March 19, 2020, 5:20pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/5 "2020-03-19T17:20:23Z")

</div>

Misschien kan je hier iets uit halen

> **[Multi sensor Homeyduino | Huisvanvandaag.nl](https://huisvanvandaag.nl/multi-sensor-homeyduino/)**
>
> Multi-sensor die luchtvochtigheid, temperatuur, lichtstintensiteit en beweging meet in één. En het mooiste van alles? Je maakt hem eenvoudig zelf!

Zoek op dit forum eens op ESP8266.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 19, 2020, 6:08pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/6 "2020-03-19T18:08:00Z")

</div>

Die had ik ook al gevonden maar als ik de codes lees zie ik er nog weinig logica in hoe ik daar zo iets aan kan toevoegen 😅  
Staat er ook ergens beschreven welke code deel wat doen?

Had deze ook al bekeken [Homeyduino relay](https://huisvanvandaag.nl/homeyduino-relay/)maar zie niet hoe ik van beide 1 maak 😄

Of is hier misschien ook iemand die mij op weg kan helpen met het schrijven van de code of kan vertellen hoe ik dit kan doen.

---

<div class="post-metadata">

**Author:** ![JPe4619](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/jpe4619/32/9017_2.png) [@JPe4619](https://community.homey.app/u/JPe4619)\
**Post date:** [March 19, 2020, 9:14pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/7 "2020-03-19T21:14:26Z")

</div>

Zelf maken is natuurlijk het leukst, kijk eens op Randomnerdtutorials, daar staan veel voorbeelden met uitleg, probeer daarmee wat ervaring op te doen en door te krijgen hoe zo’n programma in elkaar zit. Dan kun je daarna het HomeyDuino programma naar je eigen wensen aanpassen. Je mag natuurlijk altijd hulp vragen voor problemen die je daarbij tegen komt, maar deze weg is leuker dan dat iemand een compleet werkend iets voor je schrijft.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 19, 2020, 10:12pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/8 "2020-03-19T22:12:00Z")

</div>

Zelf maken is ook zeker leuker.  
Ik zal daar eens gaan kijken op de site, bedankt voor de tip.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 23, 2020, 10:28pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/9 "2020-03-23T22:28:03Z")

</div>

Het schijven van de code is gelukt en werkt goed. Met dank aan @JPe4619

Heb nu een 4 relais module een DS18B20 temperatuur sensor en een DHT11 sensor aan de Nodemcu ESP8266 gemaakt.  
3 van de 4 relais werken met een dimmer van 0 tot 1  
relais 4 is aan uit  
DS18B20 temperatuur sensor heb ik als dB waarde ingevoerd omdat 2 temperatuur sensoren niet wil in homey.?  
en de DHT11 sensor maar die heb ik nog niet aangesloten.

> **De Code**
>
> #include \<ESP8266WiFi.h\>  
> #include \<WiFiClient.h\>  
> #include \<Homey.h\>  
> #include \<OneWire.h\>  
> #include \<DallasTemperature.h\>  
> #include \<SimpleDHT.h\>
> 
> #define PIN\_RELAY\_1 D0  
> #define PIN\_RELAY\_2 D1  
> #define PIN\_RELAY\_3 D2  
> #define PIN\_RELAY\_4 D3  
> #define PIN\_DHT D4  
> #define ONE\_WIRE\_BUS D5
> 
> OneWire oneWire(ONE\_WIRE\_BUS);  
> SimpleDHT11 dht11;  
> DallasTemperature sensors(&oneWire);
> 
> float Celcius=0;  
> float Fahrenheit=0;  
> float ledBrightness = 0;
> 
> void wifi() {  
> if (WiFi.status() != WL\_CONNECTED) {  
> WiFi.begin(“WIFI”, “Wachtwoord”);  
> uint8\_t timeout = 30;  
> while (WiFi.status() != WL\_CONNECTED) {  
> delay(500);  
> Serial.print(".");  
> if (timeout\<1) break;  
> }  
> if (WiFi.status() == WL\_CONNECTED) {  
> //Print IP address  
> 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(void){  
> Serial.begin(115200); // indien niet werkt, veranderen in 9600
> 
> pinMode(PIN\_RELAY\_1, OUTPUT); //Set relay pin to output  
> digitalWrite(PIN\_RELAY\_1, HIGH); //Turn output on  
> pinMode(PIN\_RELAY\_2, OUTPUT); //Set relay pin to output  
> digitalWrite(PIN\_RELAY\_2, HIGH); //Turn output on  
> pinMode(PIN\_RELAY\_3, OUTPUT); //Set relay pin to output  
> digitalWrite(PIN\_RELAY\_3, HIGH); //Turn output on  
> pinMode(PIN\_RELAY\_4, OUTPUT); //Set relay pin to output  
> digitalWrite(PIN\_RELAY\_4, HIGH); //Turn output on
> 
> Homey.begin(“Bk\_ESP8266”);  
> Homey.setClass(“sensor”);  
> Homey.addCapability(“measure\_noise”); // DS18B20 temp measure\_luminance  
> Homey.addCapability(“measure\_humidity”); // DHT11  
> Homey.addCapability(“measure\_temperature”);// DHT11
> 
> Homey.setClass(“light”);  
> Homey.addCapability(“dim”, setLightDim); //number 0.00 - 1.00
> 
> Homey.setClass(“socket”);  
> Homey.addCapability(“onoff”, setState);  
> Homey.addAction(“output”, setState);  
> Homey.addCondition(“state”, getState);  
> }
> 
> void loop(void) //temp  
> {  
> wifi();  
> Homey.loop();  
> // unsigned long currentMillis = millis();  
> sensors.requestTemperatures();  
> Celcius=sensors.getTempCByIndex(0);  
> Fahrenheit=sensors.toFahrenheit(Celcius);  
> Serial.print(Celcius);  
> Serial.print (" C ");  
> Homey.setCapabilityValue(“measure\_noise”, (int) Celcius);  
> delay(1000);  
> }  
> void setState() {  
> state = Homey.value.toInt();  
> applyState();  
> }
> 
> void applyState() { //Relay4  
> digitalWrite(PIN\_RELAY\_4, !state);  
> Serial.println("applyState(): new state is " + String(state));  
> Homey.setCapabilityValue(“onoff”, state);  
> Homey.trigger(“state”, state);  
> }
> 
> void updateSensor() { // DHT11  
> byte temperature = 0;  
> byte humidity = 0;  
> int err = SimpleDHTErrSuccess;  
> if ((err = dht11.read(PIN\_DHT, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {  
> Serial.print(“Read DHT11 failed, err=”); Serial.println(err);  
> return;  
> }
> 
> Serial.print((int)temperature); Serial.print(" \*C, “);  
> Serial.print((int)humidity); Serial.println(” H");
> 
> Homey.setCapabilityValue(“measure\_temperature”, (int) temperature);  
> Homey.setCapabilityValue(“measure\_humidity”, (int) humidity);  
> }
> 
> void getState() {  
> Serial.println("getState(): state is " + String(state));  
> return Homey.returnResult(state);  
> }
> 
> void setLightDim( void ) {  
> float ledBrightness = Homey.value.toFloat(); //number 0.00 - 1.00  
> Serial.print (String (ledBrightness));
> 
> if (ledBrightness \> 0.66 ) { activate\_R3();}  
> else if (ledBrightness \> 0.33 ) {activate\_R2();}  
> else if (ledBrightness \> 0.02 ) {activate\_R1();}  
> else {activate\_R0();}  
> }
> 
> void activate\_R0() {  
> digitalWrite(PIN\_RELAY\_1, HIGH);  
> digitalWrite(PIN\_RELAY\_2, HIGH);  
> digitalWrite(PIN\_RELAY\_3, HIGH);  
> }
> 
> void activate\_R1() {  
> digitalWrite(PIN\_RELAY\_1, LOW);  
> digitalWrite(PIN\_RELAY\_2, HIGH);  
> digitalWrite(PIN\_RELAY\_3, HIGH);  
> }
> 
> void activate\_R2() {  
> digitalWrite(PIN\_RELAY\_1, HIGH);  
> digitalWrite(PIN\_RELAY\_2, LOW);  
> digitalWrite(PIN\_RELAY\_3, HIGH);  
> }
> 
> void activate\_R3() {  
> digitalWrite(PIN\_RELAY\_1, HIGH);  
> digitalWrite(PIN\_RELAY\_2, HIGH);  
> digitalWrite(PIN\_RELAY\_3, LOW);  
> }

Werkt perfect alleen jammer van de temperatuur in dB maar dat gaat om de waarde.

[https://www.youtube.com/watch?v=mTQ33byq6u8](https://www.youtube.com/watch?v=mTQ33byq6u8)

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [March 24, 2020, 6:50am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/10 "2020-03-24T06:50:48Z")

</div>

> [@Steven\_Mollema](#):
>
> omdat 2 temperatuur sensoren niet wil in homey.

Dat kan Homey wel, maar dan moet je [“sub-capabilities”](https://developer.athom.com/docs/apps/tutorial-Drivers-Capabilities.html) gebruiken. Dus bijvoorbeeld `measure_temperature.sensor1` en `measure_temperature.sensor2`. Ik weet alleen niet of Homeyduino dat wel ondersteunt.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 24, 2020, 7:16am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/11 "2020-03-24T07:16:40Z")

</div>

> [@robertklep](#):
>
> measure\_temperature.sensor1

Dan zou dat tussen de " tekens" moeten?

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [March 24, 2020, 7:33am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/12 "2020-03-24T07:33:47Z")

</div>

> [@Steven\_Mollema](#):
>
> Dan zou dat tussen de " tekens" moeten?

```auto
Homey.addCapability("measure_temperature.sensor1");
Homey.addCapability("measure_temperature.sensor2");

```

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 24, 2020, 7:41am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/13 "2020-03-24T07:41:01Z")

</div>

Top gaan we proberen.

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [March 24, 2020, 10:26am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/14 "2020-03-24T10:26:54Z")

</div>

> [@robertklep](#):
>
> Homey.addCapability(“measure\_temperature.sensor1”); Homey.addCapability(“measure\_temperature.sensor2”);

Helaas wordt niet herkend, geeft nu geen enkele weer in de app.

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [March 24, 2020, 11:02am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/15 "2020-03-24T11:02:32Z")

</div>

Dat vreesde ik al, Homeyduino ondersteunt sub-capabilities dus niet ☹

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [April 10, 2020, 9:29am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/16 "2020-04-10T09:29:14Z")

</div>

Kan ik de "noise"in dB ook laten weer geven met 2 decimalen achter de komma?  
Het lijkt wel dat de Homeyduino app dit kan, heb ik dat iets verkeerd staan in de code?  
hij verspringt per 1 dB.

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [April 10, 2020, 10:23am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/17 "2020-04-10T10:23:02Z")

</div>

De capability kan 2 cijfers achter de komma aan:

 ![Screenshot 2020-04-10 at 12.21.43](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/1/414047d9da33fd7ed5caea604b1084df75c881e9.png)

Maar ik vermoed dat de UI die simpelweg niet laat zien. Als dat zo is, dan kun je daar ook niks aan doen ☹

---

<div class="post-metadata">

**Author:** ![Steven\_Mollema](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/steven_mollema/32/21128_2.png) [@Steven\_Mollema](https://community.homey.app/u/Steven_Mollema)\
**Post date:** [April 10, 2020, 10:27am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/18 "2020-04-10T10:27:37Z")

</div>

ja dat had ik ook gelezen, ik dacht misschien staat er iets verkeerd in mijn code

> [@Steven\_Mollema](#):
>
> De Code

ik zal eens kijken of hij het wel leest in de Seriële monitor

---

<div class="post-metadata">

**Author:** ![Casper\_van\_M](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/casper_van_m/32/86503_2.png) [@Casper\_van\_M](https://community.homey.app/u/Casper_van_M)\
**Post date:** [September 13, 2023, 7:26pm UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/19 "2023-09-13T19:26:43Z")

</div>

Hoi Robert,  
Ik heb recent een Homey Pro aangeschaft en ben nieuw op het forum.  
Ik had al een smarthome light, maar wil het nu met Homey gaan uitbreiden 🙂  
Ik ben bezig om met Homeyduino meerdere temperatuursensoren aan te sluiten. Destijds, in 2020, was het niet mogelijk zag ik in dit topic. Weet jij toevallig of het inmiddels al wel mogelijk is?  
Ik heb gezocht, maar niets gevonden. En als ik meerdere waardes naar “Homey.setCapabilityValue(“measure\_temperature”, tempC[1]);” stuur worden ze heel snel overschreven.  
Momenteel stuur ik 4 waardes naar een RaspberryPi (vanuit een ESO8266) Zou het, zo ver jij weet, een optie zijn om ze dan op een andere manier te importeren naar Homey?

Alvast dank,  
Casper

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [September 14, 2023, 9:38am UTC](https://community.homey.app/t/esp8266-met-4-relais/27301/20 "2023-09-14T09:38:01Z")

</div>

> [@Casper\_van\_M](#):
>
> En als ik meerdere waardes naar “Homey.setCapabilityValue(“measure\_temperature”, tempC[1]);” stuur worden ze heel snel overschreven.

Je kunt maar één `measure_temperature` capability hebben, die kun je dus niet “delen” tussen de verschillende sensoren.

HomeyDuino wordt niet echt meer onderhouden, dus het gebruiken van subcapabilities is nog steeds niet mogelijk.

> [@](#):
>
> Momenteel stuur ik 4 waardes naar een RaspberryPi (vanuit een ESO8266) Zou het, zo ver jij weet, een optie zijn om ze dan op een andere manier te importeren naar Homey?

Je kunt eens kijken naar de ESPhome app: [ESPhome App voor Homey | Homey](https://homey.app/nl-nl/app/nl.inversion.esphome/ESPhome/)

ESPhome werkt best goed, ik gebruik het zelf veel in combinatie met Home Assistant. Ik weet niet hoe goed de Homey app werkt, en of/hoe die kan omgaan met meerdere temperatuursensoren.

[Next page](https://community.homey.app/t/esp8266-met-4-relais/27301.md?page=2)
