ELV Max! Heating control system

For heating/cooling related questions in Domoticz

Moderator: leecollings

mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

oasisnl wrote:

Code: Select all

*/5 * * * * /usr/bin/lua /home/pi/domoticz/sripts/lua/maxscript.lua 
There's a typo in this line: sripts instead of scripts.

If you're still having problems, try running the maxscript.lua script from the command line and look at potential error messages.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

mvzut wrote: Saturday 25 November 2017 19:31
oasisnl wrote:

Code: Select all

*/5 * * * * /usr/bin/lua /home/pi/domoticz/sripts/lua/maxscript.lua 
There's a typo in this line: sripts instead of scripts.

If you're still having problems, try running the maxscript.lua script from the command line and look at potential error messages.
Well I realy need to get my glasses fixed. checked the line several times.

corrected it and now it's, but still not getting the valves and thermostats updated in domoticz.


# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command

*/5 * * * * /usr/bin/lua /home/pi/domoticz/scripts/lua/maxscript.lua
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

Have you tried running it directly from the command line?
Did you use the crontab of the standard user "pi" (by using crontab -e) or did you use the system's crontab (by using sudo crontab -e). You should use the latter, otherwise it is only run when user "pi" is logged on.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

I used the sude crontab -e

Not quit sure how to run from command line.

did ( from the scripts folder ) lua maxscript.lua ( same command as for maxtest). But there was no output shown, just returned to the prompt.

what command should I use to run from command line?
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: ELV Max! Heating control system

Post by mvzut »

You used the correct method to run the script from the command line. If it returned nothing, that is in principle good, it means that the script didn't encounter any errors. Check your Domoticz devices, they should have been updated now. Otherwise check your setup>devices screen if no new devices were created accidentally (which should not be possible, but it doesn't hurt to check).
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

You used the correct method to run the script from the command line. If it returned nothing, that is in principle good, it means that the script didn't encounter any errors. Check your Domoticz devices, they should have been updated now. Otherwise check your setup>devices screen if no new devices were created accidentally (which should really not be possible, but it doesn't hurt to check).

If your devices are updated, add the line you already used using "sudo crontab -e". I expect that it should work then...
Last edited by mvzut on Sunday 26 November 2017 2:12, edited 1 time in total.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

Unfortunataly the devices aren't updated, there also no new devices created.

Below what I have within domoticz on the devices tab:
As you can see the devices aren't updated in the last 2 days.. Any other suggestions would be great.
Spoiler: show
388 MAX! 0017BA61 1 Slaapkamer D Re Klep General Percentage 0.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-25 14:15:03
434 MAX! 018E0CA 1 Slaapkamer D Gewenst Thermostat SetPoint 20.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:36:02
391 MAX! 018F17C 1 Slaapkamer J R Gewenst Thermostat SetPoint 20.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:59
432 MAX! 018EA70 1 Woonkamer Gewenst Thermostat SetPoint 21.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:57
418 MAX! 017ABB4 1 Hal Beneden Gewenst Thermostat SetPoint 19.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:54
417 MAX! 0011 1 Hal Beneden Temp Temp LaCrosse TX3 18.3 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
433 MAX! 0012 1 Slaapkamer D Temp Temp LaCrosse TX3 20.7 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
306 MAX! 0012 1 Slaapkamer J R Temp Temp LaCrosse TX3 20.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
416 MAX! 0017ABB4 1 Hal Beneden Klep General Percentage 80.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
393 MAX! 0011 1 Woonkamer Temp - Rad Temp LaCrosse TX3 21.4 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-21 23:45:07
431 MAX! 0012 1 Woonkamer Temp Temp LaCrosse TX3 21.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
392 MAX! 0017AC45 1 Woonkamer A Klep General Percentage 32.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
308 MAX! 0017AC40 1 Slaapkamer J R Klep General Percentage 0.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
389 MAX! 0011 1 Slaapkamer D Temp - Rad R Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 21:20:02
395 MAX! 0011 1 Slaapkamer J R Temp - Rad Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 20:55:03
387 MAX! 017AC40 1 Slaapkamer J R Gewenste Temp - Rad Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:50:02
390 MAX! 017BA61 1 Slaapkamer D Gewenst - Rad R Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:40:02
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: ELV Max! Heating control system

Post by mvzut »

Peggy wrote:I'm getting crazy with the Max! software. I just hard reset it and made pairing again. I don't know why, but whenever I change the temp on one valve, three other valves automatically change to the same temp. You can see hereunder the 4 valves that react together ( 16.5°C), though it is absolutely not what I want.

Image
I had this once too. I ended up setting everything up from scratch again (using the hard reset button at the bottom of the cube)
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
Peggy
Posts: 32
Joined: Saturday 09 September 2017 23:38
Target OS: Windows
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by Peggy »

Hello, I appreciate your feedback, I was getting furious against the Max! devices.

By the way, I dirty tweaked your code to retrieve and set auto, manual, boost, holiday info. I think I won't sync it with domoticz but with my python diy system, and create a diy html interface for a dedicated display on the wall.

There is a limitation with the holiday mode, the end date is set to 1947, but i'ts not a real problem.

I'll use the manual or holiday feature because I have 4 children that each come at different periods, so I have to switch some of their room from "confort" to "eco" several times a week.
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

oasisnl wrote:Unfortunataly the devices aren't updated, there also no new devices created.

Below what I have within domoticz on the devices tab:
As you can see the devices aren't updated in the last 2 days.. Any other suggestions would be great.
Spoiler: show
388 MAX! 0017BA61 1 Slaapkamer D Re Klep General Percentage 0.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-25 14:15:03
434 MAX! 018E0CA 1 Slaapkamer D Gewenst Thermostat SetPoint 20.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:36:02
391 MAX! 018F17C 1 Slaapkamer J R Gewenst Thermostat SetPoint 20.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:59
432 MAX! 018EA70 1 Woonkamer Gewenst Thermostat SetPoint 21.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:57
418 MAX! 017ABB4 1 Hal Beneden Gewenst Thermostat SetPoint 19.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:54
417 MAX! 0011 1 Hal Beneden Temp Temp LaCrosse TX3 18.3 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
433 MAX! 0012 1 Slaapkamer D Temp Temp LaCrosse TX3 20.7 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
306 MAX! 0012 1 Slaapkamer J R Temp Temp LaCrosse TX3 20.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
416 MAX! 0017ABB4 1 Hal Beneden Klep General Percentage 80.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
393 MAX! 0011 1 Woonkamer Temp - Rad Temp LaCrosse TX3 21.4 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-21 23:45:07
431 MAX! 0012 1 Woonkamer Temp Temp LaCrosse TX3 21.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
392 MAX! 0017AC45 1 Woonkamer A Klep General Percentage 32.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
308 MAX! 0017AC40 1 Slaapkamer J R Klep General Percentage 0.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
389 MAX! 0011 1 Slaapkamer D Temp - Rad R Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 21:20:02
395 MAX! 0011 1 Slaapkamer J R Temp - Rad Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 20:55:03
387 MAX! 017AC40 1 Slaapkamer J R Gewenste Temp - Rad Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:50:02
390 MAX! 017BA61 1 Slaapkamer D Gewenst - Rad R Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:40:02
Can you maybe remove a few commenting prefixes ("--") before print commands, i.e. change "--print(...)" into "print(...)", and then run your script from the command line again? Especially the "print(dtype.." line is interesting. It should then report some of the data it retrieves from the Cube. Just a check to see if the script actually runs. Please post your output here.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

deleted all -- items before the print command. and ran script, still no output at all.

Below the script as it is at this moment
Spoiler: show
package.loadlib("core.so", "*")
Socket = require "socket"
Basexx = require "basexx"
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- for Linux
--json = (loadfile "D:\\Domoticz\\scripts\\lua\\json.lua")() -- for Windows
http = require "socket.http"

MaxIP='192.168.32.89'
MaxPort = 62910
DomoticzPort = 8080
useWMT = false --Set to true if there is a wall mounted thermostat in every room
interval = 5 --Polling interval in minutes, possible range 1-59. Cube doesn't seem to like too frequent communication, 5 minutes is a safe value

Rooms = {}
Devices = {}
Room_nums = {}

function get_MAX_ID()
result, statuscode, content = http.request('http://127.0.0.1:'..DomoticzPort..'/json.htm?type=hardware')
r,e = json:decode(result)
if r.status == "OK" then
for k,v in pairs(r.result) do
if v.Name == "MAX!" then return v.idx end
end
end
end

function Thermostat(DID)
result, statuscode, content = http.request('http://127.0.0.1:'..DomoticzPort..'/json.htm?type=devices')
r,e = json:decode(result)
if r.status == "OK" then
for k,v in pairs(r.result) do
if v.ID == DID then return v.SetPoint,v.LastUpdate end
end
end
return 0, '2016-01-01 00:00:00' -- value to return if device was not found
end

function age(timestring)
t = {}
t.year = string.sub(timestring,1,4)
t.month = string.sub(timestring,6,7)
t.day = string.sub(timestring,9,10)
t.hour = string.sub(timestring,12,13)
t.min = string.sub(timestring,15,16)
t.sec = string.sub(timestring,18,19)
return os.difftime(os.time(),os.time(t))
end

function maxCmd_H(data)
print('H='..data)
end

function maxCmd_M(data)
i = 0
j = 0
while true do -- find next comma
i = string.find(data, ",", i+1)
if not i then break end
j = i
end
s = data:sub(j+1)
dec = Basexx.from_base64(s)
num_rooms = string.byte(dec,3)
if num_rooms == 0 or num_rooms == nil then table.insert(commandArray, {['SendNotification'] = 'MAX! problem#Configuration lost?#1'}) end
pos=4

for i=1, num_rooms do
room_num = string.byte(dec, pos)
name_len = string.byte(dec, pos+1)
pos = pos+2
name = dec:sub(pos, pos+name_len-1)
pos = pos+name_len
adr = Basexx.to_hex(dec:sub(pos, pos+2))
Rooms[room_num] = name
pos = pos+3
end

num_devs = string.byte(dec, pos)
for i=1, num_devs do
dtype = string.byte(dec, pos+1)
adr = Basexx.to_hex(dec:sub(pos+2, pos+4))
snum = dec:sub(pos+5, pos+14)
name_len = string.byte(dec, pos+15)
pos = pos+16
name = dec:sub(pos, pos+name_len-1)
pos = pos+name_len
room_num = string.byte(dec, pos)
Room_nums[adr] = room_num
Devices[adr] = name
end
end

function maxCmd_C(data)
print('C='..data)
end

function maxCmd_L(data)
pos = 1
dec = Basexx.from_base64(data)
L_hex = Basexx.to_hex(dec)
L_len = string.len(L_hex)

while (pos < L_len) do

s = L_hex:sub(pos,(pos+1))
data_len = tonumber(s,16) + 1
hex = L_hex:sub(pos,pos+(data_len*2))
adr = hex:sub(3,8)
room_num = string.format("%02X", Room_nums[adr])
room = Rooms[Room_nums[adr]]
name = Devices[adr]
if not name then name=adr end
valve_info = tonumber(hex:sub(13,14),16)
batt = bit32.extract(valve_info,7,1)
bst = bit32.extract(valve_info,3,1)
mode = bit32.extract(valve_info,0,2)

if (batt==0) then sbat="OK" else sbat="Low" end
if (mode==0) then smode="Auto" elseif (mode==1) then smode="Manual"
elseif (mode==2) then smode="Holiday" elseif (mode==3) then smode="Boost" end

if (data_len == 13) then -- WallMountedThermostat (dev_type 3)
valve_pos = -1
s = hex:sub(17,18)
setpoint = tonumber(s,16) / 2
s = hex:sub(23,26)
temp = tonumber(s,16) / 10
dtype = "Thermostat"
elseif (data_len == 12) then -- HeatingThermostat (dev_type 1 or 2)
s = hex:sub(15,16)
valve_pos = tonumber(s,16)
s = hex:sub(17,18)
setpoint = tonumber(s,16) / 2
if (mode ~= 2) then
s = hex:sub(19,22)
temp = tonumber(s,16) / 10
else
temp = 0
end
dtype = "Valve"
end

--Following two lines correct temperatures over 25.5 degrees, since e.g. 26 degrees is reported as 0.5 degrees
--This is due to the fact that temperatures seem to be stored as two Hex characters only (= max 255 in decimal)
--Pending better solution
if temp < 5 then temp = temp + 25.5 end
if setpoint > 50 then setpoint = setpoint - 64 end

-- Update virtual devices in Domoticz and update MAX! setpoints if necessary
print(dtype.." "..name.." Setpoint="..setpoint.." Temp="..temp.." Valve pos="..valve_pos)
if dtype == "Valve" then
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=udevice&hid='..MAX_ID..'&did='..adr..'&dunit=1&dtype=243&dsubtype=6&nvalue=0&svalue='..valve_pos})
if not useWMT then --Use valve to check setpoint mismatch
if temp ~=25.5 then
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=udevice&hid='..MAX_ID..'&did='..adr..'&dunit=1&dtype=80&dsubtype=5&nvalue=0&svalue='..temp})
end
setpoint_Domoticz, LastUpdate = Thermostat('0'..adr)
if tonumber(setpoint_Domoticz) ~= setpoint then
if age(LastUpdate) > interval * 60 then --Domoticz thermostat value must be updated
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=udevice&hid='..MAX_ID..'&did=0'..adr..'&dunit=1&dtype=242&dsubtype=1&nvalue=0&svalue='..setpoint})
print('Domoticz setpoint ' .. name .. ' updated')
else --Max! setpoint must be updated
MaxCmdSend(adr, room_num, "manual", setpoint_Domoticz)
print('MAX! setpoint ' .. name .. ' updated')
end
end
end

elseif dtype == "Thermostat" and smode ~= 'Auto' then
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=udevice&hid='..MAX_ID..'&did='..adr..'&dunit=1&dtype=80&dsubtype=5&nvalue=0&svalue='..temp})
setpoint_Domoticz, LastUpdate = Thermostat('0'..adr)
if tonumber(setpoint_Domoticz) ~= setpoint then
if age(LastUpdate) > interval * 60 then --Domoticz thermostat value must be updated
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=udevice&hid='..MAX_ID..'&did=0'..adr..'&dunit=1&dtype=242&dsubtype=1&nvalue=0&svalue='..setpoint})
print('Domoticz setpoint ' .. name .. ' updated')
else --Max! setpoint must be updated
MaxCmdSend(adr, room_num, "manual", setpoint_Domoticz)
print('MAX! setpoint ' .. name .. ' updated')
end
end
end

pos = pos + (data_len*2)
end
end

function MaxCmdSend(id, room, mode, setpoint)
bits = setpoint * 2
smode = string.upper(mode)
if smode == 'MANUAL' then
bits = 64 + bits
elseif smode == 'BOOST' then
bits = 192 + bits
elseif smode == 'VACATION' then
bits = 128 + bits
end
hex = "000440000000"..id..room..string.format("%x",bits)
sendStr = Basexx.to_base64(Basexx.from_hex(hex))
i, status = tcp:send("s:"..sendStr.."\r\n")
if not i then
print("MAX TCP send failed - "..status)
return
end
end


commandArray = {}

m = tonumber(os.date('%M'))
if (m % interval == 0) and (m ~= 0) and (m ~= 30) then

--Get ID of MAX hardware in Domoticz, create if it doesn't exist
MAX_ID = get_MAX_ID()
if MAX_ID == nil then -- "MAX!" dummy hardware not yet created, create it
table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:'..DomoticzPort..'/json.htm?type=command&param=addhardware&htype=15&port=1&name=MAX!&enabled=true'})
return commandArray
end

tcp = Socket.connect(MaxIP, MaxPort)
if not tcp then
print("Socket connect failed for "..MaxIP..':'..MaxPort)
return
end
tcp:settimeout(2)

while true do
s, status, partial = tcp:receive()
if (status) then
print("TCP receive - "..status)
break
end

local line = (s or partial)
local cmd = line:sub(1,1)
local data = line:sub(3)

if (cmd == 'H') then
status = maxCmd_H(data)
if status == 'Error' then break end
elseif (cmd == 'M') then
maxCmd_M(data)
elseif (cmd == 'C') then
maxCmd_C(data)
elseif (cmd == 'L') then
maxCmd_L(data)
break
end
end

tcp:close()

end

return commandArray

Also the command to run script i've used (including path to directory ) ;

pi@raspberrypi:~/domoticz/scripts/lua $ lua maxscript.lua
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

Oops, I see what goes wrong. The script still contains code to only run every 5 minutes, which is not necessary since it is run from crontab. You should remove these lines:

Code: Select all

m = tonumber(os.date('%M'))
if (m % interval == 0) and (m ~= 0) and (m ~= 30) then
And the last "end" before "return commanArray"
See if that helps!

P.S. I just noticed that you are using a pretty old version of the script. As mentioned a few posts back, I suggest to start using the one described here: http://www.domoticz.com/forum/viewtopi ... 05#p104705
That one should work out of the box (after you set up the IP adress of your Cube etc. in the top section).
Last edited by mvzut on Tuesday 28 November 2017 0:01, edited 1 time in total.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

well that did something,

now I get an output when I run the script
Spoiler: show
pi@raspberrypi:~/domoticz/scripts/lua $ lua maxscript.lua
Valve SlaapkamerD_R-Rad Setpoint=22.5 Temp=25.5 Valve pos=100
Domoticz setpoint SlaapkamerD_R-Rad updated
Thermostat SlaapkamerJR-Stat Setpoint=20 Temp=20 Valve pos=-1
Domoticz setpoint SlaapkamerJR-Stat updated
Thermostat SlaapkamerD-Stat Setpoint=22.5 Temp=18.7 Valve pos=-1
Domoticz setpoint SlaapkamerD-Stat updated
Valve HalBeneden-Rad Setpoint=21.5 Temp=21.1 Valve pos=78
Domoticz setpoint HalBeneden-Rad updated
Thermostat Woonkamer-Stat Setpoint=21.5 Temp=21 Valve pos=-1
Valve SlaapkamerJR-Rad Setpoint=20 Temp=25.5 Valve pos=22
Valve Woonkamer A-Rad Setpoint=21.5 Temp=25.5 Valve pos=100
pi@raspberrypi:~/domoticz/scripts/lua $
But in domoticz nothing gets updated?

this is still what domoticz displays. As you can see by the dates its still last seen several days ago.

Spoiler: show
388 MAX! 0017BA61 1 Slaapkamer D Re Klep General Percentage 100.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-27 23:10:03
434 MAX! 018E0CA 1 Slaapkamer D Gewenst Thermostat SetPoint 20.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:36:02
391 MAX! 018F17C 1 Slaapkamer J R Gewenst Thermostat SetPoint 20.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:59
432 MAX! 018EA70 1 Woonkamer Gewenst Thermostat SetPoint 21.5 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:57
418 MAX! 017ABB4 1 Hal Beneden Gewenst Thermostat SetPoint 19.0 - - Zet als ongebruiktNaam wijzigen Log 2017-11-24 19:35:54
417 MAX! 0011 1 Hal Beneden Temp Temp LaCrosse TX3 18.3 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
433 MAX! 0012 1 Slaapkamer D Temp Temp LaCrosse TX3 20.7 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
306 MAX! 0012 1 Slaapkamer J R Temp Temp LaCrosse TX3 20.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
416 MAX! 0017ABB4 1 Hal Beneden Klep General Percentage 80.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-22 15:50:03
393 MAX! 0011 1 Woonkamer Temp - Rad Temp LaCrosse TX3 21.4 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-21 23:45:07
431 MAX! 0012 1 Woonkamer Temp Temp LaCrosse TX3 21.4 C - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
392 MAX! 0017AC45 1 Woonkamer A Klep General Percentage 32.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
308 MAX! 0017AC40 1 Slaapkamer J R Klep General Percentage 0.00% - - Zet als ongebruiktNaam wijzigen Log 2017-11-21 23:45:07
389 MAX! 0011 1 Slaapkamer D Temp - Rad R Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 21:20:02
395 MAX! 0011 1 Slaapkamer J R Temp - Rad Temp LaCrosse TX3 20.0 C - - Apparaat toevoegenNaam wijzigen Log 2017-11-19 20:55:03
387 MAX! 017AC40 1 Slaapkamer J R Gewenste Temp - Rad Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:50:02
390 MAX! 017BA61 1 Slaapkamer D Gewenst - Rad R Thermostat SetPoint 20.0 - - Apparaat toevoegenNaam wijzigen Log 2017-11-17 16:40:02
394 MAX! 017AC45 1 Woonkamer A Gewenst - Rad Thermostat SetPoint 21.5 - - Apparaat toevoegenNaam wijzigen Log 2017-11-08 15:45:02
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

mvzut wrote: Tuesday 28 November 2017 0:01

P.S. I just noticed that you are using a pretty old version of the script. As mentioned a few posts back, I suggest to start using the one described here: http://www.domoticz.com/forum/viewtopi ... 05#p104705
That one should work out of the box (after you set up the IP adress of your Cube etc. in the top section).

missed this comment before. just updated the script and domoticz gets updated but it seems that when I change the setpoints in domoticz and run the script again it doesn't update the setpoints to max cube.

Maybe I looked wrong, will test this some more and let you know.
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

This part may not work well if you run it from the command line. This has to do with the fact that I need to check which was updated most recently, the Domoticz setpoint or the MAX setpoint, and that part of the code assumes that the script is run every x minutes (where x = 5 by default).

Just activate automatic execution of the script using crontab, and it should start to update both ways.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

checked updates in domoticz. All values get updated correctly .

Many thanks for the support.
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

ELV Max! Heating control system

Post by mvzut »

oasisnl wrote:checked updates in domoticz. All values get updated correctly .

Many thanks for the support.
Great to hear! Always nice to help someone (if I can), and I believe we all learned something in the process Image.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
drmabuse71
Posts: 10
Joined: Sunday 29 January 2017 8:22
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by drmabuse71 »

Hi Mates,

does someone know, whether Max! Basic and Max! Heizungsthermostat reports temperature to Domoticz ?

Seems as if the values could be send to the cube, but the wallunit can´t report it, does it work in Domoticz ?

Kind regards,
Swifty
Posts: 76
Joined: Saturday 31 December 2016 21:03
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by Swifty »

Anyone know if this; https://www.box.co.uk/EQ-3-Max!-Boiler- ... #DetailTop is supported within Domoticz via the scripts / some python library?

I have one, but not yet cabled it.. my plan is to use Domoticz to work the boiler actuator and manage the setpoints, so that i never have to touch the cube software directly.
It would also mean I could expose thermostat and boiler control to Alexa via Domoticz :)
oasisnl
Posts: 22
Joined: Tuesday 21 November 2017 23:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: ELV Max! Heating control system

Post by oasisnl »

As I look at the manual with this box it responses to the max cube commands when one of the valves/thermostats has a heating request. I'm not sure if the device will be added in domoticz using the provided scripts. But since domoticz is controlling the thermostats and valves and then the cube sends an signal to the boiler contoller there may be no need to see the controller in domoticz. Downsite is that you won't be able to check the status of the boiler within domoticz. Overall I guess it will be able to control your boiler, maybe not directly from domoticz but through the values of the thermostats and valves which are controlled by domoticz.
This is just my opinion, also myself just starting with max! and actually still looking for a good boiler controller solution.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest