Page 1 of 10

Python plugin: ELV/EQ-3 MAX!

Posted: Saturday 29 September 2018 17:42
by mvzut
Update: this plugin is now also incorporated in the Python Plugin Manager

Hi all,

I have created a Python plugin for integrating the ELV/EQ-3 MAX! system into Domoticz. These are pretty affordable radiator valves, wall thermostats, contact switches, etc. which can remotely be controlled if you buy the additional Cube. The Cube's network communication has been reverse engineered, and many home automation solutions now have plugins for the system, except for Domoticz!. That is, until now Image

I made use of a very well written Python API for the MAX Cube: https://github.com/hackercowboy/python-maxcube-api
All that was left was to "just" integrate it into the Python plugin system, which was quite a rough ride because I had no prior Python experience. But here it is!

https://github.com/mvzut/maxcube-Domoticz-plugin

An explanation of the features and the installation instructions are given on the Github page (I removed them from this post, so that I don't have to update everything twice when something changes). Please let me know what you think, if you have issues, or if you would like to see other features!

P.S. There was already a discussion on early beta versions of this plugin here: viewtopic.php?f=34&t=841&p=192702#p192702. But I felt a new plugin probably deserves a topic of its own Image

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 11:36
by sakekl
By accident, I removed the selector for one of the rooms. How to restore deleted selector or create new?

I will add that I use the latest version and it works very well so far.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 11:42
by mvzut
sakekl wrote:By accident, I removed the selector for one of the rooms. How to restore deleted selector or create new?

I will add that I use the latest version and it works very well so far.
You might want to try the latest latest version (0.4.3), it should now better recreate all devices individually when they are not found.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 12:18
by sakekl
I have installed version 0.4.2 (The latest available on github) but unfortunately nothing has been created.
That's why I will remove the equipment and add it again. It's a pity, because I've already signed all the buttons and changed visually to myself.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 12:20
by mvzut
sakekl wrote:I have installed version 0.4.2 (The latest available on github) but unfortunately nothing has been created.
That's why I will remove the equipment and add it again. It's a pity, because I've already signed all the buttons and changed visually to myself.
Hmm, very strange. I just checked on my own system and it works as intended there. Are you sure you really deleted it and didn't just set it to "Unused"?

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 12:25
by sakekl
Yes, I removed it. I have empty devices in the unused device tab.

I removed the equipment and then added it again. The effect is that no device is added.

Update:
I had the "accept new devices" option unselected in the settings.

Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 13:47
by mvzut
sakekl wrote:Update:
I had the "accept new devices" option unselected in the settings.
Haha, I didn't think of that one Image.
Makes me think, I could probably add a check on this: if a device is not actually added despite the .create() command, I could put a message in the log reminding people about this setting.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Sunday 30 September 2018 14:28
by mvzut
mvzut wrote:...I could probably add a check on this: if a newly added device is not present afterwards, I could put a message in the log reminding people about this setting.
Done Image

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Monday 01 October 2018 22:23
by twimpy
This is GREAT! I am very pleased with this waiting and hoping someone pickup EQ-3 Max!. Having this stuff for years now and put a lot of time to get it into Domoticz. Just installed it and testing now but first impression is very good.
Thanks to everyone who made this possible.

Cube, 4 valves, 1 room thermostat, 2 window sensors.

Python plugin: ELV/EQ-3 MAX!

Posted: Monday 01 October 2018 23:21
by mvzut
Glad to hear some of you are already using the plugin.
I have just published a new version (0.5.0) on Github, in which I have made it optional to create valve & temperature sensors.
On a Raspberry Pi, you can download the new files by typing

Code: Select all

git reset --hard
git pull
in the folder where you placed the plugin (e.g. ~/domoticz/plugins/MaxCube/).
.
MaxCube.jpeg
MaxCube.jpeg (147.01 KiB) Viewed 9405 times

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Tuesday 02 October 2018 21:50
by mvzut
Again a small update (0.5.2):
If you later decide you don't want certain device types (e.g. valve positions), you can indicate if the plugin should delete these (now obsolete) devices.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Wednesday 03 October 2018 8:16
by twimpy
Thanks, I will update soon until now all works fine. :)
Maybe a good idea to add the plugin to Python plugin manager this will make it more user friendly.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Wednesday 03 October 2018 18:13
by AurelioF
Good work, work very well, thank you very much ... it is working on raspberry pi, 10 valves, previously try to install it on windows, without success.
I have a doubt, thermostats eq3, have the ability to transmit the temperature permanently, not like the valves that only give the temperature when making adjustments.
Thank you

Python plugin: ELV/EQ-3 MAX!

Posted: Wednesday 03 October 2018 22:19
by mvzut
AurelioF wrote: Wednesday 03 October 2018 18:13 Good work, work very well, thank you very much ... it is working on raspberry pi, 10 valves, previously try to install it on windows, without success.
I have a doubt, thermostats eq3, have the ability to transmit the temperature permanently, not like the valves that only give the temperature when making adjustments.
Thank you
Are you saying the plug-in doesn’t work on Windows? Good to know, I’ll check in there’s anything that can be done to solve this.

You are right, unlike valves, wall thermostats report the actual temperature whenever you poll for it. You will notice this in the graphs, they are much smoother (obviously depending somewhat on the poll time configured for the plugin).

By the way, I made a small modification to the plugin code again, preventing that valve-based temperature sensors would record 0 degrees when actually there was just no value available.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Thursday 04 October 2018 17:32
by AurelioF
hello mvzut
My first intention was to do the installation in Windows, but when I saw the amount of information thrown by the registry when running the system, I thought it would be less work, install a Raspberry Pi as a slave, and it was, it is an advantage, because there is more Add-ons that do not work in Windows or its installation is especially difficult.
I'm testing your modification today. My intention is to dedicate this raspberry pi to the heating system, I still have to add thermometers, thermostats and the actuator of the boiler, and probably also add the air conditioning system, thus leaving the control of the climate of the house in this equipment.
Your plugin solves my work a lot, thank you very much.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Thursday 04 October 2018 17:57
by AurelioF
It seems that the operation is correct ... the graph of temperatures no longer have saw teeth .... :D

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Friday 12 October 2018 23:10
by DarkG
I have Problems with connecting tó the Cube over RPI. The Max Software himswelfs works well over Windows. Gave the Cube a static IP.

In Logs I see Error connecting to Cube.In Hardware I created a Max Device with the working IP. Port is the same as default.
Which options do I have to debug? Debug is also activated in Hardware.

EDIT: All Software from Max must be closed! Now another Error

2018-10-12 21:23:58.906 (Maxcube) Skipping heartbeat: 9
2018-10-12 21:24:28.910 (Maxcube) Reading e-Q3 MAX! devices from Cube...
2018-10-12 21:24:31.585 (Maxcube) Checking device 'Badezimmer Heizung' in room 1
2018-10-12 21:24:31.585 Error: (Maxcube) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'RoomHasThermostat''.
2018-10-12 21:24:31.585 Error: (Maxcube) ----> Line 303 in '/home/pi/domoticz/plugins/MaxCube/plugin.py', function onHeartbeat
2018-10-12 21:24:31.585 Error: (Maxcube) ----> Line 271 in '/home/pi/domoticz/plugins/MaxCube/plugin.py', function onHeartbeat
2018-10-12 21:25:01.138 (Maxcube) Skipping heartbeat: 1
2018-10-12 21:25:31.114 (Maxcube) Skipping heartbeat: 2
2018-10-12 21:26:01.118 (Maxcube) Skipping heartbeat: 3

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Friday 12 October 2018 23:59
by mvzut
Can you restart the plugin (just click "Update" when the plugin is selected under Hardware), and post the relevant part of the log directly after restarting? This is the moment where the "RoomHasThermostat" variable should be defined. Apparently something goes wrong there in your situation, perhaps the log can point us in the right direction.

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Saturday 13 October 2018 0:40
by DarkG
I disabled Thermostat modes:

After that it worked. For now I dont get 2 Temperatures, other 3 are right. But I think it could be a connecting Problem between Valve and Cube and has nothing to do with your Plugin.

Code: Select all

2018-10-12 22:40:24.235 Status: (Maxcube) Entering work loop.
2018-10-12 22:40:24.237 Status: (Maxcube) Initialized version 0.5.2, author 'mvzut'
2018-10-12 22:40:26.894 (Maxcube) Number of rooms found: 5 (highest number: 5)
2018-10-12 22:40:36.434 (Maxcube) Reading e-Q3 MAX! devices from Cube...
2018-10-12 22:40:39.094 (Maxcube) Checking device 'Badezimmer-Heizung' in room 1
2018-10-12 22:40:39.095 (Maxcube) Checking device 'Schlafzimmer-Heizung' in room 2
2018-10-12 22:40:39.096 (Maxcube) Checking device 'Küche-Heizung' in room 3
2018-10-12 22:40:39.097 (Maxcube) Checking device 'Werkstatt-Heizung ' in room 4
2018-10-12 22:40:39.098 (Maxcube) Checking device 'Wohnzimmer-Heizung' in room 5
2018-10-12 22:41:08.652 (Maxcube) Skipping heartbeat: 1
2018-10-12 22:41:38.653 (Maxcube) Skipping heartbeat: 2
2018-10-12 22:42:08.656 (Maxcube) Skipping heartbeat: 3

Re: Python plugin: ELV/EQ-3 MAX!

Posted: Saturday 13 October 2018 17:56
by DarkG
All the data on the cube is lost. Rooms and Thermostats. How can this?