In deze blog leg ik uit hoe je je garagedeur kunt openen door gebruik te maken van Domoticz in combinatie met een ESP8266 met een aangesloten Relais.
Zoals je wellicht al gemerkt hebt in mijn vorige blogs ben ik langzaam aan al mijn KAKU devices aan het vervangen door alternatieven gebasseerd op Wifi en/of Zigbee. de reden hiervoor is dat dit betrouwbaarder werkt en ook veiliger is.
In een vorige blog heb ik uitgelegd hoe ik mijn garagedeur met een KAKU Asun-650 kon openen. Dit werkt op het principe dat je op je garagedeur-opener een extern pulse-contact kunt aansluiten.
Ik heb nu een Hormann Garagedeur Aandrijving. Als je de handleiding van de betreffende Promatic Garagedeur Aandrijving erbij pakt dan zul je zien dat je een externe pulsschakelaar kunt aansluiten.
Volgens de handleiding kunnen er één of meerdere schakelaars met sluitercontact (zoals drukknop- of sleutelschakelaars) parallel aangesloten worden (afbeelding 11).
Benodigheden
Ik zocht nu dus naar een vervanging van de Asun-650 en besloot om zelf maar wat in elkaar te zetten. Dit is erg eenvoudig te realiseren met een ESP8266 met een aangesloten relais. Je hebt hiervoor nodig:
1 x NodeMcu ESP8266 (CH340/CP2102)
1 x SYB-170 Mini Breadboard
1 x 1 Channel Relay Module interface Board
Uiteindelijk ben je dus ongeveer Euro 4,70 kwijt aan materialen.
Aansluiten
Het aansluiten is heel eenvoudig als je de pin-aansluitingen van je ESP8266 module weet:
Plaats de ESP8266 op het breadboard en sluit deze als volgt aan:
- VCC pin van het relais op 3V3 van ESP8266 module
- GND pin van het relais op GND van ESP8266 module
- IN pin van het relais op D5 van ESP8266 module.
De ESP8266 zelf kun je eenvoudig met een USB stekker van stroom voorzien.
Als je de Promatic Garagedeur Aandrijving opent dan zie je dat je het relais op de rood omcircelde connectors hieronder moet aansluiten.
Als je alles hebt aangesloten dan ziet het er als volgt uit:
Zoals je ziet gaan er 2 draden (vanaf relais) naar je Garagedeur aandrijving en 1 kabel (vanaf ESP8266) naar je USB stekker (die je op 220V aansluit).
Programmeren
Het aansturen van het relais is heel eenvoudig. We gebruiken hiervoor de Arduino IDE software die je hier kunt downloaden. Voordat we aan de slag gaan moet we nog wat instellingen in de Arduino IDE veranderen. Vul bij ‘File > Preferences’ voor ‘Additional Boards Manager URLs’ de volgende waarde in:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Ga naar Open Boards Manager vanaf ‘Tools > Board’. Scroll naar beneden en selecteer ‘esp8266 by ESP8266 Community’. Kies nu ‘install’.
We zijn nu klaar om eindelijk te gaan programmeren. Om het relais aan te sturen kun je onderstaande code-snippet gebruiken
// For ESP8266 // ----------------------------------------------------------------------------------------- // setup // Default setup() method called once by Arduino // ----------------------------------------------------------------------------------------- void setup() { // Setup serial port for your Serial Monitor Serial.begin( 115200 ); // Activate Relay pinMode(14, OUTPUT); // pin 14 = D5 digitalWrite(14, HIGH); // Wait configured milli-seconds delay(300); // in milli-seconds // De-Activate Relay digitalWrite(14, LOW); // // loop () // Here you find the main code which is run repeatedly // void loop() { }
Ik ben hiermee verder aan de slag gegaan en heb uitgebreide software geschreven voor mijn ‘eGarageOpener’ project. De software bestaat uit meer dan 1500 regels source-code en hiermee kun je via een Web-Interface of API call het relais aansturen. Om de software op je ESP8266 te krijgen moet je de volgende stappen doorlopen:
- In de Arduino IDE kies je in ‘File > Open’ menu de file ‘eGarageOpener.ino’ in de directory waar je deze hebt opgeslagen
- Zet in ‘File > Preferences’ je ‘Sketchbook location’ naar de lokatie waar je ‘eGarageOpener’ hebt opgeslagen
- Kies nu ‘Sketch > Verify/Compile’
- Sluit je ESP8266 board via USB aan op je computer
- Stel je upload poort in bij ‘Tools > Port’ (bijvoorbeeld /dev/ttyUSB0 op Debian of COM4 op Windows)
- Kies ‘Sketch > Upload’
Als je Port niet juist ingesteld krijgt met Windows dan moet je wellicht nog de FTDI USB Drivers installeren op je computer
eGarageOpener software
Initiëel zal je ESP8266 opstarten als een Access Point (AP Mode). Wacht totdat je ‘eGarageOpener’ ziet verschijnen bij je draadloze netwerken. Maak verbinding met de SSID ‘eGarageOpener‘ en vul voor wachtwoord ‘eGarageOpener’ in. Ga vervolgens met je browser naar 192.168.4.1 en vul de Wifi gegevens van je lokale Wifi netwerk in en druk op [Submit].
Als het goed is gegaan verschijnt er OK op het browser-scherm. Herstart nu de ESP8266 (door reset knopje op ESP8266 te drukken of even de stroom eraf halen). De ESP8266 zal na de herstart automatisch verbinding maken met je Wifi Netwerk. Controleer welk IP adres je ESP8266 heeft gekregen van je DHCP server en ga met je browser naar dit IP-adres. Je krijgt nu een login-scherm te zien.
De standaard gebruikers-naam is ‘admin‘ en hier hoort standaard het wachtwoord ‘notdodo‘ bij. Deze gegevens kun je eventueel later in de Web-Interface van ‘eGarageOpener’ aanpassen bij [Instellingen]. Na het invullen van deze gegevens verschijnt de web-interface.
Wil je het relais activeren dan druk je op de ‘Activeer’ knop. Je kunt met [Instellingen] de taal, hostnaam en hardware instellingen veranderen.
API
Je kunt de ESP8266 ook via een API besturen. Dat is handig om zodoende dit project in Domoticz te integreren.
Het formaat van de API actions is als volgt:
http://ip-address/api?action=xxx&value=yyy&api=zzz
De ‘value’ is afhankelijk van de ‘action’ optioneel. De API moet altijd (vanuit veiligheids oogpunt) meegegeven worden. De default API key waarde is ‘27031969’. Je kunt deze eenmalig met ‘set_api’ veranderen. Op dit moment worden de volgende API actions ondersteund:
reboot, value (value=false of true) reset, value (value=false of true) set_api, value (value=nieuwe API key) set_host, value (value=nieuwe host-name) set_language, value (0=Engels, 1=Nederlands) relais, value (value in milli-seconds)
Om bijvoorbeeld de host-name van je ESP8266 te veranderen gebruik je:
http://ip-address/api?action=set_host&value=my_host&api=your_api
Upgraden eGarageOpener
Je kunt tenslotte ook nog ‘eGarageOpener’ via de Web-Interface updaten (dus via Wifi zonder draad). Dat is handig als je alles al ingebouwd hebt. Hiervoor maak je gebruik van de gecompileerde code. Dit doe je door in de Arduino IDE ‘Sketch > Export Compiled Binary’ te kiezen. Er zal dan een ‘bin’ file gegenereerd worden in de directory van je ‘eGarageOpener.ino’ sketch file. Deze kun je dan uploaden via de volgende verborgen URL van de ‘eGarageOpener’ Web-Interface:
http://ip-adres/upgradefw
Uit veiligheids oogpunt moet je wel eerst in de web-interface ingelogd zijn wil je deze URL kunnen gebruiken.
Kies de file-naam van je ‘bin’ en druk op de [Upgrade] knop. Na 1 minuutje zal je ESP8266 van nieuwe software zijn voorzien en automatisch worden herstart. Indien de major versie (getal voor de punt) van ‘eGarageOpener’ is veranderd dan zal de software weer in AP mode opstarten en worden alle instellingen gereset. Je moet dan alles weer opnieuw instellen.
Domoticz
Voor Domoticz maak je een Dummy Switch aan waaraan je een virtuele sensor hangt.
Vervolgens maak je een rule aan waarin je reageert op het drukken van de User-Interface knop door het juiste curl commando aan te roepen.
-------------------------------------------------------------------------------- -- Activeer Garage Roldeur -------------------------------------------------------------------------------- -- Check if 'Garage Roldeur Knop' is pressed on the UI and if yes then activate -- the 'Garage Roldeur' and send pushover message. -------------------------------------------------------------------------------- commandArray = {} -- Loop through all the changed devices for deviceName,deviceValue in pairs(devicechanged) do if (deviceName=='Garage Roldeur Openen') then if deviceValue == "Activeer" then -- Activate Garagedeur print("Activeer Garage Roldeur Openen") -- Send message with Pushover os.execute("curl -s --form-string \"token=my_token\" --form-string \"user=my_user\" --form-string \"message=Garage Roldeur Actief gemaakt\" https://api.pushover.net/1/messages.json 2> /dev/null &") -- Activate Garage Roldeur os.execute("curl -s http://192.168.1.84/api?action=relay'&'value=300'&'api=12345678 2> /dev/null &") end end end return commandArray
Hoe kom ik aan de software?
Ik ben nu bijna 8 jaar met deze blog bezig en heb in die tussentijd alles bij elkaar opgeteld ongeveer 1.200.000 hits gehad en 950.000 bezoekers. In al die tijd hebben tot nu toe 11 mensen de moeite genomen om een kleine bijdrage te leveren omdat de informatie hen geholpen had. Dit terwijl bijvoorbeeld mijn blogs over reparatie van de Humax Receiver, Vaatwas Machine en Combi-Magnetron vele mensen honderden Euro’s hebben bespaard.
Daarom wil ik eens wat anders proberen deze keer. Je kunt de software van dit ‘eGarageOpener’ project bij mij kopen voor een kleine bijdrage van Euro 5,=. Als je deze wilt hebben moet je dit bedrag overmaken naar mijn bankrekeningnummer NL70RABO0145390640 ten name van H.M.M. Matthijssen onder vermelding van je email-adres en de toevoeging ‘eGarageOpener’. Ik stuur je dan de source-code toe zodat je zelf de code kunt compileren en/of aanpassen. Ik hoop dat je begrip hebt voor deze actie.
Als alternatief (indien je de software niet wilt kopen) kun je zelf aan de slag gaan. Dit artikel zou genoeg input moeten bevatten om je op weg te helpen.
Hoe voorzie jij het geheel van stroom? Daar wordt nergens iets van vermeld?
De ESP8266 kun je met USB van power voorzien (5V) en het relais is weer met de ESP8266 verbonden.
Hmm in de “kast” van m’n poort heb je een 220v aansluiting, dan moet ik daar nog iets tussen zetten dat ik het geheel van daar kan voeden met een USB kabel. Ken je de ESP8266 ook ergens voeden rechtstreeks op de print met 5v?
Ja dat kan, dat is de Vin pin. Maar je kunt gemakkelijker een simpele USB stekker gebruiken waarbij je bij de stekker USB aansluit die met een kabel naar mini-USB gaat die je in de ESP8266 kunt stoppen.
Je moet zoizo al een transformator in de kast gaan zetten om aan 5 volt te geraken. Van die transformator kan je dan even goed 2 draadjes rechtstreeks op de print solderen of je moet eerst nog een usb stekker gaan voorzien. Het is niet dat in de controlekast een 5v USB aansluiting klaar ligt 🙂 Daar doelde ik vooral op
Ik denk dat je veel te moelijk denkt Kenny. Ik gebruik gewoon een simpele USB stekker. Voor Euro 0.80 ben je dan klaar. Deze verbind je met de ESP8266. Geen moeilijk “gedoe”
Ik denk dat jij mij niet begrijpt: De “controller”/bak van de poort staat buiten (het is een poort van een oprit). Deze bak is waterdicht afgesloten met een deksel. Op het grote printbord van deze controller kan ik 220volt aftakken, geen stopcontact dus.. Maw ik kan geen simpele USB stekker inpluggen en ik moet dus een kleine transformator gaan plaatsen die aangesloten is op de 220v aansluiting van het printbord van de poort 🙂
Je had niet van tevoren aangegeven dat dit over een poort gaat die buiten staan ;-).
Een garage opener (waar deze blog over gaat) werkt vaak met 220V en dan is er dus vaak een stopcontact dichtbij aanwezig.
In jouw geval zou je toch een opbouw stopcontact in je ‘bak’ kunnen maken (afgeleid van de printboard van je controller)? Hier kun je dan een USB-stekker instoppen.
Henri, in de bak is niet veel meer ruimte dan enkel ruimte voor het printbord van de poort zelf. Een stekker inbouwen is dus geen optie. Dit daarentegen wel: http://s.click.aliexpress.com/e/cShdJOQG
Weinig ruimte had je ook al niet verteld Kenny. Wellicht de volgende keer met een foto beginnen ;-).
Ik denk dat je dan beter deze kunt bestellen. Ik gebruik die voor mijn Zigbee2MQTT router en hiermee kun je prima van 220V AC naar 3.3V DC gaan.
Ik heb de eerste nu reeds besteld 🙂 Buiten dat die een behuizing heeft nog een andere reden om eerder voor die versie te gaan? Gezien alles in 1 grote waterdichte bak zit zie ik het voordeel niet meteen.
Prima Kenny. Succes en hopelijk gaat het allemaal lukken!
Wat is de reden dat je een esp8266 en relais hebt gekozen en niet een sonoff met custom firmware? Ik ben ook bezig dit te maken maar ga voor de sonoff ivm directe 220v aansluiting.
Ps, waar is pimatic gebleven? Ik lees domotics.
Ik heb in eerste instantie ook aan Sonoff gedacht, maar daarbij zet je op je relais dus 220V. Voor mijn toepassing moet ik alleen maar een drukknop simuleren via een Relais zonder dat er spanning op staat. Vandaar dat ik voor een ESP8266 met Relais heb gekozen. Ik vond het leuk om hier zelf software voor te schrijven.
Je zou eventueel ook voor ESP8266 met Relais en Tasmato firmware kunnen kiezen. Zie hier waarbij ik dat heb uitgelegd.
Ik ben overgestapt van Pimatic naar Domoticz. Zie deze blog voor de reden hierachter.
Klopt inderdaad, je hebt even een drempel en soldeerbout nodig bij de Sonoff. Zijn we beide niet vies van als ik je blogs lees. Ik ga eens kijken welke ik ga gebruiken.
Je reden om pimatic te vervangen begrijp ik.. Ik zie er alleen tegen op… Heb enorm veel gekoppeld dus hell of a job 😞
Ik heb ook echt naar Sonoff gekeken en heb er ook mee geexperimenteerd. Bij de vorige revisies kon je de printbaan naar het relais doorzagen om 220 ‘af te leiden’ en zodoende alleen het relais te schakelen zonder 220V erop te zetten. Dat gaat tegenwoordig niet meer zo eenvoudig met de laatste revisies van Sonoff. Je zult dan echt het relais eraf moeten solderen.
Een simpelere oplossing was dus voor mijn om ESP8266 met Relais te kiezen en zelf software ervoor te schrijven.
Ik zag er in het begin ook tegenop om over te schakelen van Pimatic naar Domoticz, maar dat is mij reuze meegevallen! ik was sceptisch over Domoticz, maar dit zet echt goed in elkaar en biedt meer mogelijkheden dan Pimatic. Vooral het zelf kunnen schrijven van scripts is erg handig en er wordt veel meer hardware ondersteund. Ik zou je toch aanraden om op bijvoorbeeld een tweede Raspberry Pi eens te kijken of dat wat voor je is. Pimatic lijkt wel nagenoeg dood om dit moment.
Gisteren mijn Sonoff basic binnen gekregen en vandaag mee aan de slag gegaan. Naar mijn weten de nieuwe versie maar helemaal zeker weet ik het niet. Ik wilde toch graag de sonoff omdat ik dan geen extra voeding nodig had.
Ik heb deze versie:
Ik heb gelijk de dremel gepakt en de plaat bewerkt zoals in het filmpje. Even nul draad los gesoldeerd en weer vast aan de relais. Vervolgens even doormeten, allemaal goed. Koppelen met de app (ik moet hem nog flashen maar mijn usb adapter is nog niet binnen dus maar even zo geprobeerd). Werkt perfect. Daarna in mijn garage deur opener gezet en het werkt perfect. Volgende stap is tasmodo of ESPEasy flashen zodat het ook integreert met de rest.
En dan daarna wellicht nog maar eens de stap naar Domoticz maken.
Henri,
Ik heb exact dezelfde Hormann motor, en met domoticz, espeasy R120 en een sonoff s10 gekoppeld. Hiervoor inderdaad een spoortje doorgedremeld. Tevens laat ik de motor een “open-en-dicht-status” doorgeven aan de GPIO die je nog over hebt. Deze stuurt weer een mailtje als de garagedeur open, of weer dicht is.
Hi Jeroen, hoe geef jij dat open/dicht signaaltje door? Dat wil ik ook maken bij mijn deur.
Er zit op de motor een configureerbare output waar je een relais mee kunt schakelen. Dit relais heb ik meebesteld bij de deur, maar het is een klein dingetje dat je vast zelf ook kunt bestellen. Je kunt zelf instellen wanneer het contact moet sluiten. Bij mij meldt hij dus “deur open”
Hallo Jeroen,
Is dit de PR1?
https://www.garagedeur-onderdelen.nl/p/pr1-relaisprintplaat-artnr-437130
Zou je iets meer kunnen uitleggen welke aansluiting op de GPIO hebt aangesloten en de mails laat versturen? Dank.
Is het ook mogelijk om de garage deur van “buiten af” te openen? Dus als je niet met het wifi netwerk verbonden bent?
Dat is mogelijk Youri en kan op verschillende manieren:
1. Als je het integreert in Domoticz hoef je niks verder te doen indien Domoticz van buitenaf beschikbaar is (b.v. door een port-forward in je router).
2. Wil je enkel via eGarageOpener werken dan moet je een port-forward maken op je router naar het ip-adres op de ESP8266 MPU waarop eGarageOpener draait. Dat is ook de reden dat ik een user-name/paswoord op heb gezet voor een extra layer van veiligheid
Ik weet dat dit en wat oud draadje is maar ik vraag het toch maar: is het mogelijk om de deur (ik neem aan een Hörmann) naar boven en naar beneden te sturen? Dat ipv een puls waar je niet weet wat de begin-state is (maw hij kan naar boven OF naar beneden gaan).
Doel van mijn vraag: ik wil aan het eind van de dag mijn deuren op slot en mijn garage deur dicht sturen: deuren doe ik met een magneetpin, garagedeur heb ik nog steeds geen goed beeld van.
Complimenten voor de manier waarop je dit in een site zet: ik probeer ook alles waar ik mn handen op leg te “domoticeren” (als er al zo’n werkwoord is)
Dat is helemaal afhankelijk hoe je garagadeur werkt. Je stuurt alleen een puls. In mijn geval is eerste puls de ene kant uitdraaien, volgende puls stop (of totdat hij aan het einde is) en tenslotte volgende puls andere kant uit. Je zou m.b.v. open/dicht device kunnen checken waar je deur ergens is. Ik heb er zelf 1 zitten zodat ik kan controleren of garageduer dicht of (gedeeltelijk) open is.
Dank voor deze info. Ik zie in de handleiding van Hormann dat naast de pulsschakelaar er ook een optie is om een sleutelschakelaar aan te sluiten met seperaat een op en neer contact. Is er een reden om deze niet te gebruiken? Ik zit er over na te denken een Fibaro rolluik contact hiervoor te gebruiken. Zo kun je, verwacht ik, met 2 schakelaars los omhoog en omlaag schakelen en de status checken. Of zou dit niet kunnen werken?
Ik heb me daar niet in verdiept Jilles. Nu is de werking bij mij als volgt:
Op deze manier kun je dus ook redelijk precies de garagedeur positioneren met kleine nadeel dat je bij 2e keer drukken dit wel op het juiste moment moet doen als je deze niet helemaal open wilt doen.
Je kunt ook gewoon 1x drukken en dan gaat de garagedeur helemaal open en stopt automatisch als hij helemaal open is. Als je dan weer drukt dan gaat hij weer helemaal dicht.
Ik heb een handmatige garagedeur – kanteldeur. Kunnen jullie deze open en dicht laten gaan via een Android/iOS app? Wat zijn de kosten?
Je hebt toch echt een garagedeur motor nodig die je extern kunt triggeren. Wat dat kost en of dat mogelijk is met jouw garagedeur zul je zelf moeten uitzoeken. Daar kan ik zo niks over vertellen wat de mogelijkheden zijn.
Ik zie veel interessante info op uw blog. Ook over het aansluiten van klikaanklikuit op een marantec poortopener.
Ik heb de marantec comfort 500 dubbele poortopener. Ik wil die graag koppelen aan kaku.
Volgens marantec gaat dat niet. Ik twijfel daarover.
Heeft u tips of ervaring hiermee?
Ik heb even op internet naar de handleiding van de Marantec Comfort 500 gezocht. Zover ik hier op pagina 9 kan beoordelen kun je wel voor elkaar krijgen met Aansluitingen T, U en W:
Je zou dit eenvoudig kunnen checken door als test hierop een drukknop te zetten (b.v. deurbelknop) en kijken hoe het reageert.
Hoi Henri,
bij de U en W zijn er meerdere mogelijkheden. Ik heb een kaku asu500 liggen. Maar weet nu nog niet waarop ik moet testen 🙈
Ik heb destijds de Asus 650 gebruikt en deze ingesteld zodat deze als een pulsschakelaar werkt (zie ook deze blog). Ik verwacht dat je met Asun 500 hetzelfde kunt doen? Je zou vooraf kunnen testen met een drukknop of het werkt.