Elektrisch rolgordijn bedienen met Domoticz via RFXCom
Enige tijd geleden had ik al een elektrisch rolgordijn met afstandsbediening aangeschaft en dat beviel me prima. Nadat ik ook in het bezit was gekomen van een RFXCom was een nieuw plan geboren: het elektrisch rolgordijn geheel automatisch bedienen met Domoticz. Allereerst was het van belang om te achterhalen wat voor een motor er in het elektrisch rolgordijn zit. Bij mij bleek dat een DM25LE van Dooya te zijn (met een DC1600 afstandsbediening). Deze motor is voorzien van een lithium accu, wat als voordeel heeft dat het elektrisch rolgordijn maar eens in de 3-4 maanden aangesloten hoeft te worden op het netstroom.
Benodigdheden
Elektrisch rolgordijn koppelen
Uiteraard moet het elektrisch gordijn gekoppeld worden aan Domoticz. In feite ga je dus een extra afstandsbediening registreren. Op de eerste afbeelding hieronder zie je hoe je een eerste afstandsbieding kunt aanmelden. Indien je al een reeds werkend rolgordijn hebt kun je deze stap overslaan.
Een extra afstandbediening toevoegen aan een DM25LE motor van Dooya is erg eenvoudig. Als voorbereiding sluiten we de RFXCom op een PC aan en starten het programma RFXmngr op. Zorg dat je verbinding hebt en ga naar tabblad Blinds1. Neem de instellingen van onderstaande afbeelding over, maar druk nog niet (!) op Transmit. Dit zijn alleen de voorbereidingen, aangezien we onderstaande stappen in een beperkt aantal seconden moeten uitvoeren.
Pak je werkende afstandsbediening en druk op P2 aan de achterkant waar de batterij zit. Nadat je een piep hebt gehoord herhaal je dit nog een keer. Na de tweede piep klik je in RFXmngr op Transmit. Het elektrisch rolgordijn is nu gekoppeld aan Domoticz via RFXCom.
Schakelaar in Domoticz
De volgende stap is om een schakelaar in Domoticz te maken, zodat het elektrisch rolgordijn bediend kan worden. Bij Hardware kies je voor de RFXCom, bedenk zelf een naam, klik Blinds aan bij Switch Type en kies het Type wat van toepassing is op je rolgordijn. Om erachter te komen welk type je moet gebruiken kun je het beste de leverancier vragen of op internet zoeken, zo ben ik er ook achter gekomen. Bij ID en Unit Code neem je dezelfde waarden als je in RFXmngr gebruikt hebt. Tot slot klik je op Add Device om de schakelaar toe te voegen.
Automatisch open en dicht
Om het elektrisch rolgordijn automatisch open en dicht te laten gaan moeten we een zogenaamde Gebeurtenis in Domoticz aanmaken. Dit kan eenvoudig via Blocky: Instellingen -> Meer opties -> Gebeurtenissen. Ik heb onderstaand blok aangemaakt. Het elektrisch rolgordijn gaat nu automatisch open en dicht:
- Open om 07.50 uur indien het een werkdag is en de zon reeds opgekomen is. Als de zon nog niet opgekomen is gaat het rolgordijn open bij zonsopkomst. In het weekend gaat het elektrisch rolgordijn om 09.30 uur open.
- Dicht op iedere dag van de week, zodra het donker is. Voor ‘Het is donker’ heb ik een dummy schakelaar aangemaakt. Deze schakelaar staat op aan een half uur voor zonsondergang en gaat uit een half uur na zonsopkomst.
In eerste instantie had ik de voorwaarde “Stop after 1,7 seconds” er niet bij staan. Het rolgordijn ging toen helemaal omhoog, iets wat ik niet wil. Door deze voorwaarde toe te voegen gaat het rolgordijn maar een stukje open. Uiteraard is het aantal seconden afhankelijk van de snelheid van de motor in het elektrisch rolgordijn en moet je dit zelf even finetunen. Let er op dat Off omhoog is en On omlaag is!
Update 20-09-2019: Het blockly is enige tijd geleden vervangen door een LUA-script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
commandArray = {} -- Get System Time/Date time = os.date("*t") weekday = os.date("%A") minutes = time.min + time.hour * 60 function timebetween(s,e) timenow = os.date("*t") year = timenow.year month = timenow.month day = timenow.day s = s .. ":00" -- add seconds in case only hh:mm is supplied e = e .. ":00" shour = string.sub(s, 1, 2) sminutes = string.sub(s, 4, 5) sseconds = string.sub(s, 7, 8) ehour = string.sub(e, 1, 2) eminutes = string.sub(e, 4, 5) eseconds = string.sub(e, 7, 8) t1 = os.time() t2 = os.time{year=year, month=month, day=day, hour=shour, min=sminutes, sec=sseconds} t3 = os.time{year=year, month=month, day=day, hour=ehour, min=eminutes, sec=eseconds} sdifference = os.difftime (t1, t2) edifference = os.difftime (t1, t3) isbetween = false if sdifference >= 0 and edifference <= 0 then isbetween = true end print(" s:" .. s .. " e:" .. e .. " sdifference:" .. sdifference.. " edifference:" .. edifference) return isbetween end if otherdevices['Rolgordijn']=='Closed' and weekday ~= 'Sunday' and weekday ~= 'Saturday' and otherdevices['Aanwezigheid']~='Vakantie' then if (time.hour == 7 and time.min == 49 and otherdevices['Donker buiten']=='Off') or (otherdevices['Donker buiten']=='Off' and timebetween("07:50:05","09:00:00")) then commandArray[1]={['Rolgordijn']='Off'} commandArray[2]={['Rolgordijn']='Stop AFTER 1.7'} commandArray[3]={['SendNotification']='#Rolgordijn in dagstand gezet op werkdag#0#pushover#'} end elseif (weekday == 'Sunday' or weekday == 'Saturday') and time.hour == 9 and time.min == 30 and otherdevices['Rolgordijn']=='Closed' and otherdevices['Aanwezigheid']~='Vakantie' then commandArray[1]={['Rolgordijn']='Off'} commandArray[2]={['Rolgordijn']='Stop AFTER 1.7'} commandArray[3]={['SendNotification']='#Rolgordijn in dagstand gezet op weekenddag#0#pushover#'} elseif time.hour > 14 and otherdevices['Donker buiten']=='On' and otherdevices['Rolgordijn']~='Closed' and otherdevices['Aanwezigheid']~='Vakantie' then commandArray[1]={['Rolgordijn']='On'} commandArray[2]={['SendNotification']='#Rolgordijn in nachtstand gezet#0#pushover#'} end return commandArray |
En dit is het uiteindelijke resultaat (kleur klopt niet helemaal, in werkelijkheid is het rolgordijn veel lichter van kleur):
Uiteraard kun je bovenstaande stappen niet alleen gebruiken voor een elektrisch rolgordijn, maar ook voor bijvoorbeeld rolluiken of zonnewering.
Instellingen Dooya DM25LE motor / DC1600 afstandsbediening
Tot slot onderstaand nog wat uitleg m.b.t. de DM25LE motor. Je kunt een hoogte-positie, laagte-positie en een half-open positie instellen. De het elektrisch rolgordijn half-open te zetten moet je de stop-knop van je afstandsbediening ingedrukt houden. Helaas werkt deze functie niet in Domoticz.
Helemaal geweldig jouw site/ blogs!
Leer er veel van.
Nu heb ik nog wel een vraag betreffende de rolgordijnen;
Mijn huidige rolgordijn wil ik ook electrisch maken, maar de buis is 28mm, ik zie dat de Dooya buizen, 38 mm zijn.
Jij hebt de rolgordijn inclusief de motor besteld bij Ali, kreeg je daar nog import kosten bij?
Ja, ik moest iets van 22 euro betalen (invoerrechten/BTW)
Ik heb de mijne vervangen door een 38mm. gewoon te koop bij zonnewering winkel.
€ 20 voor 2 meter
Ik kan bevestigen dat deze motor ook werkt via RFLINK met Domoticz. Je hoeft hiervoor geen codes in te leren maar Domoticz herkent deze motor (als brelmotor) automatisch via ‘devices’ als je de afstandbediening (2700) gebruikt.
Het blockly is enige tijd geleden reeds vervangen door een LUA-script. Dit script vind je hierboven in het artikel.
Goedenavond,
Wij hebben een rolluik met domoticz verbonden via “ASUN-650” van klik aan klik uit, nu hebben we een deursensor aangeschaft “aeotec recessed door sensor gen 5” Nu zou ik deze graag zo instellen dat als de deur open staat dat het rolluik niet kan worden ingeschakeld. Ik heb dit geprobeerd via blockly maar krijg het niet voor elkaar…..Hebben jullie hier tips voor om te proberen ?
Alvast bedankt voor het meedenken,!
Met vriendelijke groet,
Roger Smits
Hallo,
Ik heb een probleempje met het script:
op regel 27:
if sdifference >= 0 and edifference <= 0 then
krijg ik deze foutmelding:
2020-07-30 11:22:53.665 Error: EventSystem: in rolluik_boven_voor_sk: [string “commandArray = {}…”]:27: ’then’ expected near ‘;’
Weet jij wat daar verkeerd gaat?
Met vriendelijke groet,
Richard
Het LUA-script werd niet geheel juist getoond op de website, dit is nu aangepast.
Wat is het voordeel van een LUA-script t.o.v. Blockly?
Met scripts (LUA, dzVents, PHP, etc.) ben je veel flexibeler en is er veel meer mogelijk. Voor recht-toe-recht-aan dingen kun je blockly ook gebruiken, maar ik ben er helemaal van af gestapt.
Hallo,
leuk dat je je ervaringen en oplossingen deelt.
Ik heb onlangs een motion motor van de Hornbach in mij rolgordijn geschoven. het is een 433.925mhz ab&motor, en natuurlijk had ik hoop met een avondje proberen de boel te kunnen koppelen, maar ik krijg het nog niet voorelkaar.
Heb jij een idee waar ik naar moet zoeken om uit te vinden welk ‘protocol’ dit ding gebruikt?
Ik realiseer me nu pas dat die .925 misschien niet gaat passen aan elkaar, misschien moet ik naar een ander RFXcom transmitter. Anyway, misschien vind ik een route.