micolous / intuition

Python/Twisted library for interacting with local messages from the OWL Intuition home energy monitor.
GNU Lesser General Public License v3.0
7 stars 5 forks source link

Implement support for Firmware 2.3 messages #2

Open micolous opened 8 years ago

micolous commented 8 years ago

Firmware 2.3 totally changed the way that heating packets worked, and added new packet types, hot_water and relays:

https://theowl.zendesk.com/hc/en-gb/article_attachments/200344663/Network_OWL_Multicast.pdf

I don't have a Network Owl anymore, and only ever used the energy monitoring function.

kfdorman commented 5 years ago

Hi.

I'm not an experienced python programmer, so apologies for the quality of the code, but what I have done is to reuse some of your code and along with that implemented data capture from owl intuition firmware version 2.3 where the system supports solar, hot water, two independent heating zones and electricity. The data is converted to a format suitable for pushing to a domoticz database. Note the variables at the start of the code which set up ip address and port for network-owl, ip address and port for domoticz server.

The documentation around "boost" for the heating is incomplete, and testing has revealed that the boost status is held in another flag which seems to sometimes hold different values when boost is active. The if,elif,else loop checks for all values that I have discovered through trial and error.

Further work required to bring all of the domoticz sensor idx values out as variables at the start of the script as achieved in the owlCommands script!

Please see owldomoticz23.py in the attached zip

Also included is a control script which allows virtual switches to be created within domoticz (the idx values of these switches must be assigned to the relevant variables at the start of the script). The code is called via exec.sh from domoticz, and is passed a parameter of the form boostAll etc to call the relevant function. This has been developed a bit more as I learn to code, and pulls out all of the idx switch and sensor variables from the url strings and they are assigned to variables at the start of the script.

Please see owlCommands.py and exec.sh in the attached zip

Hopefully this is of interest. I'm not familiar with the different licences so I hope that I have not contravened them. The code I have written is offered without any form of warranty or liability real or implied, and can be used by anyone at their own risk.

owlintution and domoticz files.zip