Page 1 of 1
Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 13:37
by pvklink
Hi, just bought my first eurotronic / spirit radiator valve. I used V4. 10363 and the valve was recognized immediately.
I got
three setpoints
a switch slider
Temperature and
valve mode device
The valve mode contains:
off = valve closed
heat = uses setpoint heat
heat eco= uses setpoint heat eco
Full power = for a couple of minutes maximum valve
and manufacturer specific.
some dzvents actions i tried and they work:
dz.devices('Slaapkamer Thermostat Mode').updateMode('Heat Eco')
dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
dz.devices('Slaapkamer Thermostat Mode').updateMode('Manufacturer Specific')
Some questions
1. i am looking how to read the value from 'Heat Eco' in dzvents
2. i have a third setpoint, when is this setpoint used?
3. when i select manufacturer specific,from the drop down bar it returns "heat"
4. What does "manufacturer specific" do ?
5. When i operate the valve manually it also changes the actual setpoint, that looks strange!
I expected that when you manually change the valve, a manual mode is selected and and a setpoint that belogs to manually changes...
script (first attempt) and not working
Code: Select all
-- i set the valve always to heat as a sort of default/actual thermo setting
-- at nighttime i change the current heat setpoint to the value from heat eco setpoint
-- i disable the slider switch
-- i disable the setpoint (one i dont know what it does)
-- i am looking how to read the value from 'Heat Eco' in dzvents and how to set heat sp with value from eco sp
return {
on = {devices = {'testverwarming'}},
logging = { level = domoticz.LOG_DEBUG ,
marker = "Security"},
execute = function(dz, device, info)
local currenttempset = dz.devices('slaapkamer_heat_temp')
local currenttempseteco = dz.devices('slaapkamer_heat_eco_temp')
if currenttempset.temperature <> currenttempseteco.temperature
currenttempset.updateSetPoint(currenttempseteco.temperature)
end
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 14:51
by waaren
pvklink wrote: Wednesday 23 January 2019 13:37
script (first attempt) and not working
try changing
Code: Select all
if currenttempset.temperature <> currenttempseteco.temperature
to
Code: Select all
if currenttempset.temperature ~= currenttempseteco.temperature
but do you want this or do you want to compare it to the current setpoint ?
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 15:08
by pvklink
Both currenttempset.temperature and currenttempseteco.temperature are setpoint.
If somebody changed the valve manually effect is that the sp(currenttempset.temperature) is also changed.
When the night comes i put the sp currenttempset.temperature back to defaults (value from sp currenttempseteco.temperature)
By the way currenttempset.temperature did not change when i pushed the pushbutton
think that : currenttempset.updateSetPoint(currenttempseteco.temperature) does not work
Code: Select all
return {
on = {devices = {'testverwarming'}}, -- alle devices die met Smoke beginnen worden door dit script opgepakt
logging = { level = domoticz.LOG_DEBUG , -- Uncomment to override the dzVents global logging setting
marker = "Security"},
execute = function(dz, device, info)
local currenttempset = dz.devices('slaapkamer_heat_temp')
local currenttempseteco = dz.devices('slaapkamer_heat_eco_temp')
if currenttempset.temperature ~= currenttempseteco.temperature -- if setpoints arer different make them equal
currenttempset.updateSetPoint(currenttempseteco.temperature)
end
- altijd op heat zetten
- rest modes niet gebruiken
- waarde van eco uitlezen en setpoint heat op waarde van eco zetten
-- how to read the value from heatpoint eco
--dz.devices('Slaapkamer Thermostat Mode').updateMode('Manufacturer Specific')
--dz.devices('Slaapkamer Thermostat Mode').updateMode('Heat')
--dz.devices('Slaapkamer Thermostat Mode').updateMode('Heat Eco')
--dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 16:19
by pvklink
Its working!
I already have a dvents script for evening and night etc.
Can these scripts trigger this script without using a dummyswitch like i do at this time?
Another option is that i make timer rules for this script....
Code: Select all
--- altijd op heat zetten
-- waarde van eco uitlezen en setpoint heat op waarde van eco zetten
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Manufacturer Specific')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat Eco')
-- dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
-- dz.devices('slaapkamer_heat_temp').setPoint uitlezen van setpoint
-- nog ophalen werkelijke temperatuur slaapkamer
return {
on = {
devices = {
'test'
}
},
execute = function(dz, device)
cur1 = dz.devices('Slaapkamer_thermostaat_instelling').setPoint -- werkt met mode 'Heat'
cur2 = dz.devices('Slaapkamer_thermostaat_nachtnorm').setPoint -- als mode 'Heat' actief is kunnen we deze als de nachtnorm gebruiken.
--cur3 = dz.devices('Slaapkamer_thermostaat_dagnorm').setPoint -- als mode 'Heat' actief is kunnen we deze als de dagnorm gebruiken.
if cur1 ~= cur2 then -- if setpoints are different make them equal
dz.devices('Slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log('Device ' .. device.name .. ' pvk was changed:' .. cur1 .. '/' .. cur2 .. ' ', dz.LOG_INFO)
end
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 17:56
by waaren
pvklink wrote: Wednesday 23 January 2019 16:19
Can these scripts trigger this script without using a dummyswitch like i do at this time?
You can use the technique used in scripts below.
Code: Select all
-- master
return {
on = { timer = { "every minute" }},
logging = { level = domoticz.LOG_DEBUG,
marker = "master" },
execute = function( dz )
local function delayedURL(callback,delay)
local logString = "/json.htm?type=command¶m=addlogmessage&message=" .. dz.utils.urlEncode("Mork calling Mindy")
local url= dz.settings['Domoticz url'] .. logString
dz.openURL({
url = url,
method = "GET",
callback = callback
}).afterSec(delay)
end
delayedURL("Wake_up_Mindy",12)
end
}
Code: Select all
--slave
return {
on = { httpResponses = { "Wake_up_Mindy" } },
logging = { level = domoticz.LOG_DEBUG,
marker = "slave" },
execute = function(dz)
dz.log("Hmmmm who is calling ? ",dz.LOG_DEBUG)
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 23 January 2019 22:09
by pvklink
Thanks, the solution does work!
But, i think it is a lot of code to simple call another script!
That should be one rule...
The function should be default part of dzvents..
With a dummy switch it only takes one rule....
Re: Dzvents and eurotronic / spirit radiator valve [Solved]
Posted: Friday 25 January 2019 23:06
by waaren
pvklink wrote: Wednesday 23 January 2019 22:09
Thanks, the solution does work!
But, i think it is a lot of code to simple call another script!
That should be one rule...
The function should be default part of dzvents..
With a dummy switch it only takes one rule....
That does not sound nice.
But anyway, just put the function in global_data.lua. Then you only need one line in your caller script and one line in your called script.
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Saturday 26 January 2019 10:09
by pvklink
Hi @waaren that wasnt my intention!
I am very happy with this code!, and you are by far my dzvents hero.
Without you, 50% of my scripts wont work!
And now i am completely moved from lua, blockly to dzvents with lots of fuctionality!
But, in my old days for exampe a call to another script in basic or fortran was sort off: call "scriptname, variable) etc.
In dzvents this function isnt available. So i understand that you have to write code to create the function, like you did for me...
If the function is available in dzvents, you need only one rule...
So again, i am very happy! and it was more a wish to get it into dzvents and get dzvents better with your function!
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 13:45
by EddyG
This is my dzVents script for this radiator valve and working perfectly.
My 'Heat' is set to 21 degreesCelsius and my 'Heat Eco' is set to 16 degreesCelsius
I have a button "Vakantie' (Holiday) in Domoticz which I use in a lot of scripts to get other settings for Holidays times.
Code: Select all
return {
active = true,
-- active = false,
on = {
-- timer = { 'every minute' }
timer = { 'at 08:01 on mon, tue, wed, thu, fri',
'at 08:31 on sat, sun',
'at 20:01' }
},
execute = function(domoticz)
-- local debug = false
local debug = true
local valVakantie = domoticz.devices("Vakantie").state
local t = domoticz.time
if debug then
print('Zolder Thermostat Mode: ' .. domoticz.devices('Zolder Thermostat Mode').state)
end
if valVakantie == "Off" then
if (t.matchesRule('at 08:01 on mon, tue, wed, thu, fri')) then
domoticz.devices('Zolder Thermostat Mode').updateMode('Heat')
elseif (t.matchesRule('at 08:31 on sat, sun')) then
domoticz.devices('Zolder Thermostat Mode').updateMode('Heat')
elseif (t.matchesRule('at 20:01')) then
domoticz.devices('Zolder Thermostat Mode').updateMode('Heat Eco')
end
else
domoticz.devices('Zolder Thermostat Mode').updateMode('Heat Eco')
end
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 15:48
by pvklink
Great!
I will combine the holiday button with my "button" anybody home which is trigger by arming and disarming my alarm unit!
Only thing in your script is that when somebody changes the radiator valve manually the corresponding setpoint of the actual mode is also changed and used the nexttime
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 16:22
by EddyG
You could just set "Heat" and "Heat Eco" every time in the script too, or do that once everyday, that way you could manual temporary override the settings.
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 16:24
by pvklink
That's exactly what i did, i am going to make a holiday button!
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 17:39
by pvklink
Hi Eddy,
what sort off heating devices do you have? I am just starting with:
- a nefit smartline 24 2009 no opentherm
- nefit roomthermostat moduline 300 (manual, no opentherm, it does modulate)
- 8 low temperature jagra, 7 with an old manual thermostat and 1 with a spirit zwave plus.
at the moment i cant trigger my smartline24
and i cant manage my roomthermostat with domoticz dzvents
I am thinking of placing a Nefit EMS-OT converter Opentherm module 7746901847 and a new room thermostat.
Do you know a roomthermostat that i can manage by dzvents commands, i am orientating devices like toon
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 30 January 2019 18:59
by EddyG
I have a dedicated heating system which is autonoom and not connected to Domoticz.
I only use domoticz with this valve to seperately control the temperature in 3 rooms.
So sorry, I am not familiar with any thermostats that could be connected to Domoticz.
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Thursday 31 January 2019 22:03
by pvklink
I also have made my script more intelligent.
When i dont use the item element, and corresponding item checks and i dont use the webhooks in this script it works well with the selector switch
But when i add the item checks and add the webhook lines and sections, the selector switch does not work. So item.isdevice isnt true when i use the selector switch ?
Code: Select all
-- altijd op heat zetten..
-- waarde van eco uitlezen en setpoint heat op waarde van eco zetten in de nacht
-- waarde van eco uitlezen en setpoint heat op waarde van Manufacturer Specific zetten in de dag
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Manufacturer Specific')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat Eco')
-- dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
-- dz.devices('slaapkamer_heat_temp').setPoint uitlezen van setpoint
local hr1 = 'Hook_DZ_nacht'
local hr2 = 'Hook_DZ_dag'
return {
on = {httpResponses = {hr1,hr2},
devices = {'Default_heating'}
},
logging = { level = domoticz.LOG_DEBUG , -- Uncomment to override the dzVents global logging setting
marker = "Security"},
execute = function(dz, item, device, info) -- dont use item
local nt1 = 'Niels_slaapkamer_thermostaat_instelling'
local nt2 = 'Niels_slaapkamer_thermostaat_nachtnorm'
local nt3 = 'Niels_slaapkamer_thermostaat_dagnorm'
local switch1 = dz.devices('Niels-game-pc-noodvz').value
local switch2 = dz.devices('pc-niels-game').value
local cur1 = dz.devices(nt1).setPoint
local cur2 = dz.devices(nt2).setPoint
local cur3 = dz.devices(nt3).setPoint
if item.isDevice then -- dont check
if device.state == 'dag' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
elseif device.state == 'nacht' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
elseif device.state == 'check' then
if (switch1 == 'On') or (switch1 == 'On') then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
else
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
elseif item.isHTTPResponse then -- when i delete this section
if (item.trigger == hr1) then -- nachtaanroep
if cur1 ~= cur2 then -- if setpoints are different make them equal night is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
if (item.trigger == hr2) then -- dagaanroep -- when i delete this section it works
if cur1 ~= cur3 then -- if setpoints are different make them equal day is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
end
end
end
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Thursday 31 January 2019 22:48
by pvklink
solved it!
Code: Select all
-- altijd op heat zetten..
-- waarde van eco uitlezen en setpoint heat op waarde van eco zetten in de nacht
-- waarde van eco uitlezen en setpoint heat op waarde van Manufacturer Specific zetten in de dag
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Manufacturer Specific')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat Eco')
-- dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
-- dz.devices('slaapkamer_heat_temp').setPoint uitlezen van setpoint
local hr1 = 'Hook_DZ_nacht'
local hr2 = 'Hook_DZ_dag'
return {
on = {httpResponses = {hr1,hr2},
devices = {'Default_heating'}
},
logging = { level = domoticz.LOG_DEBUG , -- Uncomment to override the dzVents global logging setting
marker = "Security"},
execute = function(dz, device, info)
local nt1 = 'Niels_slaapkamer_thermostaat_instelling'
local nt2 = 'Niels_slaapkamer_thermostaat_nachtnorm'
local nt3 = 'Niels_slaapkamer_thermostaat_dagnorm'
local switch1 = dz.devices('Niels-game-pc-noodvz').value
local switch2 = dz.devices('pc-niels-game').value
local cur1 = dz.devices(nt1).setPoint
local cur2 = dz.devices(nt2).setPoint
local cur3 = dz.devices(nt3).setPoint
if device.isDevice then
if device.state == 'dag' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
elseif device.state == 'nacht' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
elseif device.state == 'check' then
if (switch1 == 'On') or (switch1 == 'On') then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
else
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
elseif device.isHTTPResponse then
if (device.trigger == hr1) then -- nachtaanroep
if cur1 ~= cur2 then -- if setpoints are different make them equal night is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
if (device.trigger == hr2) then -- dagaanroep
if cur1 ~= cur3 then -- if setpoints are different make them equal day is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
end
end
end
end
}
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Friday 01 February 2019 11:11
by EddyG
There are 2 setpoints in the device "Heat" and "Heat Eco"
You can set the values of those setpoints in dzVents.
Isn't it more simple to switch between those 2 setpoints?
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Friday 01 February 2019 16:31
by pvklink
when a user then turns the heat, the setpoint also changes.
i use one mode and use one setpoint for manual and i use the other setpoints as norm for day and night and i can easily adjust them without code
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Wednesday 06 February 2019 16:32
by knielen
pvklink wrote: Thursday 31 January 2019 22:48
solved it!
Code: Select all
-- altijd op heat zetten..
-- waarde van eco uitlezen en setpoint heat op waarde van eco zetten in de nacht
-- waarde van eco uitlezen en setpoint heat op waarde van Manufacturer Specific zetten in de dag
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Manufacturer Specific')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat')
-- dz.devices('Slaapkamer_thermostaat_mode').updateMode('Heat Eco')
-- dz.devices('slaapkamer_heat_temp').updateSetPoint(21)
-- dz.devices('slaapkamer_heat_temp').setPoint uitlezen van setpoint
local hr1 = 'Hook_DZ_nacht'
local hr2 = 'Hook_DZ_dag'
return {
on = {httpResponses = {hr1,hr2},
devices = {'Default_heating'}
},
logging = { level = domoticz.LOG_DEBUG , -- Uncomment to override the dzVents global logging setting
marker = "Security"},
execute = function(dz, device, info)
local nt1 = 'Niels_slaapkamer_thermostaat_instelling'
local nt2 = 'Niels_slaapkamer_thermostaat_nachtnorm'
local nt3 = 'Niels_slaapkamer_thermostaat_dagnorm'
local switch1 = dz.devices('Niels-game-pc-noodvz').value
local switch2 = dz.devices('pc-niels-game').value
local cur1 = dz.devices(nt1).setPoint
local cur2 = dz.devices(nt2).setPoint
local cur3 = dz.devices(nt3).setPoint
if device.isDevice then
if device.state == 'dag' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
elseif device.state == 'nacht' then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
elseif device.state == 'check' then
if (switch1 == 'On') or (switch1 == 'On') then
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
else
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
elseif device.isHTTPResponse then
if (device.trigger == hr1) then -- nachtaanroep
if cur1 ~= cur2 then -- if setpoints are different make them equal night is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur2)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op nachtstand gezet....", dz.LOG_INFO)
end
end
if (device.trigger == hr2) then -- dagaanroep
if cur1 ~= cur3 then -- if setpoints are different make them equal day is coming
dz.devices('Niels_slaapkamer_thermostaat_instelling').updateSetPoint(cur3)
dz.log("Script: " .. info.scriptName .. " verwarming wordt op dagstand gezet....", dz.LOG_INFO)
end
end
end
end
}
Huh? Something is wrong:
Code: Select all
if (switch1 == 'On') or (switch1 == 'On')
Re: Dzvents and eurotronic / spirit radiator valve
Posted: Friday 08 February 2019 19:00
by pvklink
mm, double check!

I will change it...
Thanks!