Je wilt graag je douche netjes houden en je afzuiging niet uren en uren laten draaien zolang dit niet nodig is, ik schakel hem bijvoorbeeld uit met een klik aan klik uit wandcontactdoos. Nu kan je dit zelf doen maar dit kan je ook automatische uit laten schakelen. Dit gaat met een timer die je zelf in kunt stellen.
Om te beginnen ga je naar instellingen
en daarna ook instellingen
daarna klik je het knopje overige aan
Nu zal bijna onder aan het vakje DZEVENTS staan hier moet het vinkje voor staan. En nu moet je boven aan de pagina op Bewaar Instellingen drukken anders slaat hij het niet op.
Advertentie :
Het script en de behorende uitleg volgt hieronder:
Nu mag je weer naar instellingen gaan , daarna naar meer opties.
Daarna naar Gebeurtenissen.
En mag je op het plusje drukken. (plaatje is van pvoutput maar stappen zijn het zelfde)
Hier ga je naar DZEVENTS en dan Timer.
(dit zorgt er voor dat het script een aantal minuten gaat aftellen en dan de schakelaar om haalt en je een bericht via telegram krijgt wat er gebeurd)
En hier geef je aan welke gegevens je wilt gaan gebruiken, verander de tijden naar je eigen tijden welke je wilt gaan gebruiken.
local klaarDelay = 30 -- tijd in minuten
local OffDelay = 60 - klaarDelay -- tijd in minuten
Verander hier de naam van je Badkamer_afzuiging of een ander apparaat wat je automatische uit wilt laten schakelen en ook bij de andere plekken waar die naam staat.
local myDevicename = 'Badkamer_afzuiging'
[wpdm_package id=’6348′]
De Complete gebruikte code staat hieronder en na eigen instellingen veranderen.
Nu selecteer je onderstaande script en plakt deze er in :
--[[ Badkamer_afzuiging dzVents script time
Script gedownload van huizebruin.nl
Te gebruiken voor domoticz versie >= V4.11305
]]--
local myDevicename = 'Badkamer_afzuiging'
local myEvent = 'Badkamer'
return
{
on =
{
devices =
{
myDevicename,
},
customEvents =
{
myEvent,
},
},
logging =
{
level = domoticz.LOG_DEBUG, -- change to LOG_ERROR when ok
marker = 'Badkamer_afzuiging',
},
execute = function(dz, item)
local myDevice = dz.devices(myDevicename)
local msgAan = 'De Badkamer_afzuiging is aangezet!'
local msgKlaar = 'Het douchen is klaar om Badkamer_afzuiging na te laten draaien!'
local msgWordt = 'De Badkamer_afzuiging staat nog aan en wordt nu uitgezet!'
local msgUit = 'De Badkamer_afzuiging is uitgezet!'
local klaarDelay = 30 -- tijd in minuten
local OffDelay = 60 - klaarDelay -- tijd in minuten
local function osCommand(cmd, foreGround)
local foreGround = foreGround and '' or ' &'
local cmd = cmd .. foreGround
dz.log('Executing Command: ' .. cmd,dz.LOG_DEBUG)
local fileHandle = assert(io.popen(cmd .. ' 2>&1 || echo ::ERROR::', 'r'))
local commandOutput = assert(fileHandle:read('*a'))
local returnTable = {fileHandle:close()}
if commandOutput:find '::ERROR::' then -- something went wrong
dz.log('Error ==>> ' .. tostring(commandOutput:match('^(.*)%s+::ERROR::') or ' ... but no error message ' ) ,dz.LOG_DEBUG)
else -- all is fine!!
dz.log('ReturnCode: ' .. returnTable[3] .. '\ncommandOutput:\n' .. commandOutput, dz.LOG_DEBUG)
end
return commandOutput,returnTable[3] -- rc[3] contains returnCode
end
local function sendMQTT(message, topic)
local MQTTTopic = topic or 'domoticz/out'
local json = {} json.msg = message
json = dz.utils.toJSON(json)
osCommand ( 'mosquitto_pub' .. ' -t ' .. MQTTTopic .. " -m '" .. json .. "'")
end
local function sendMessage(message, emitMinutes)
local subject = (dz.moduleLabel or 'Badkamer_afzuiging'):gsub('#','')
dz.notify(subject, message, dz.PRIORITY_MEDIUM, dz.SOUND_PERSISTENT, nil, dz.NSS_TELEGRAM)
sendMQTT(message)
dz.log(message,dz.LOG_DEBUG)
if emitMinutes ~= nil then dz.emitEvent(myEvent, emitMinutes).afterMin(emitMinutes) end
-- if emitMinutes ~= nil then dz.emitEvent(myEvent, emitMinutes).afterSec(emitMinutes) end -- for test only
end
if item.isDevice and item.state == 'On' then
sendMessage(msgAan, klaarDelay)
elseif item.isCustomEvent and myDevice.state == 'On' and tonumber(item.data) == klaarDelay then
sendMessage(msgKlaar, OffDelay)
elseif item.isCustomEvent and myDevice.state == 'On' and tonumber(item.data) == OffDelay then
myDevice.switchOff().silent()
sendMessage(msgWordt)
elseif item.isDevice and item.state == 'Off' then
sendMessage(msgUit)
end
end
}
Deze sla je op als Badkamer_fan dzVents script
Nu druk je op AAN en daarna op OPSLAAN.
Nu zou je script moeten gaan lopen zodra je de schakelaar van je Badkamer_afzuiging hebt aangezet. .
( voor de test of het werkt kan je de tijd aanpassen naar een paar minuten later nadat je hem hebt aangezet )
Mits je dit verandert hebt.
check je log voor eventuele fouten
Zorg wel dat je telegram al hebt ingesteld zie ook
Zorg ook dat je al een schakelaar hebt met de naam Badkamer_afzuiging en deze al werkt.
Spelfouten, taalfouten of inhoudelijke fouten ontdekt?
Stuur dan een mailtje naar de auteur van dit artikel!
Tevreden met deze website?
Als je dit artikel met interesse hebt gelezen klik dan op Vind ik Leuk .
Voor u een kleine moeite voor mij een compliment.
Alvast Bedankt.
Als je feedback, tips of iets anders hebt,
Aarzel dan niet om hieronder een reactie achter te laten.
Andere discussie wellicht, maar er zit niet voor niets geen uit knop op je mechanische ventilatie. Deze hoort altijd aan te staan. Iets met lucht kwaliteit in huis
Hallo ralph.
Bedankt voor je reactie.
Hier zit hij alleen aangesloten op de douche en niet voor het gehele huis.
vandaar dat hij soms uit staat.
Ik meen vast te stellen dat dit script alleen gaat werken als je MQTT werkend hebt. Ik wil dat wel overwegen te gaan bouwen. Maar alleen als andere vraag ook helder voor me is…
Verder zou ik willen weten of de timer ook verlengd wordt als er na de start van de eerste puls van sensor een nieuwe puls volgt bij latere beweging die door sensor wordt waargenomen en door Domoticz wordt geregistreerd. Dat is het probleem van mijn huidige script: als de eerste gebruiker 20 minuten gedouched heeft is de naloop nog 10 minuten. Als de volgende gebruiker dan 3 minuten doucht is de naloop nog maar 7 minuten. Timer wordt tussentijds niet gereset. Ik zou dan graag reset van timer willen zien. Maar ik kan dat in jouw script nergens terug vinden. Kun je daar iets over zeggen?
Hallo Pieter,
Persoonlijk ben ik overgestapt naar de Het maken van de auto off device domoticz. deze staat in het voorbeeld op een 45min, en dit is voldoende bij ons. ik schakel de afzuiging momenteel nog met een 433Mhz (klik aan klik uit) ontvanger. hij is bij ons dus aan of uit.
zodra ik hem nu langer wil gebruiken zet ik hem zelf even uit en weer aan met de knop in domoticz of op de afstandsbediening.
voordeel van dit script dat je hem bij meerdere apparaten kunt gebruiken.
Voor wie een Itho ventilatiebox heeft is dit misschien interessant: http://www.fam-oldenburger.nl/2020/04/22/itho-mechanische-ventilatie/
hallo Gertjan,
Bedankt voor je aanvulling.
Ik heb je link even aangepast naar de juiste link, kreeg 404 error’s.
Mijn volgende idee was ook om een print te gaan maken met sensoren.
Maar dit werkt voorlopig.