Configuring with Owl Intuition

I’m new to all of this. I’ve set myself a project of using an Arduino to read the 3 sorts of udp messages multicast by the Owl Intuition hub and forwarding the data through mqtt to HA in Json format. I’ve succeeded in that so now have 3 topics (tele/owl/heating, electricity and weather) with json format payloads carrying various parameters that i want HA to track. Here’s an example: {“electricity”:{“rssi”:-50,“lqi”:40,“power”:4.123,“energy”:10.789}}.
My question now is what do i put in the yaml file to get these values into HA, with the correct units, friendly names, appropriate icons etc.
Also, have i gone about this the right way? Eg. Should i have packaged all the data into 1 json payload. Have i organised the payload in the best way. How should all this appear in Devices and Entities?
I now know that i can read the udp messages directly into node red, but that’s another learning curve i’ve yet to embark on.

1 Like

There is actually an integration for OWL intuition that you might want to check out:

At it’s simplest I think this part of the docs will help https://www.home-assistant.io/integrations/sensor.mqtt/#json-attributes-topic-configuration

I had a look. Fell over at this instruction:

“In order to use the OWL Intuition platform, you have to configure your OWL base station to push data to your Home Assistant. [Step-by-step description / screenshots to be added here]”

Since that was 2 years ago, I guessing the creator has given up on it.

Do you know any better?

Anyway, I’m pretty chuffed that I’ve got my Arduino doing the hard work and have got all the sensor data going into and being recorded and displayed in the Dashboard and Grafana.

I’ve also got Node-Red sniffing out the XML and converting to JSON but am a bit stumped on what nodes send the info on into HA.

Still learning.

I’m getting there slowly but these docs leave me a bit cold because I’m clearly missing something.

I’ve got loads of Owl Entities now but was thinking these should be connected within a Device; but there’s no sign of one! And I don’t know how to create one (assuming you can).

If anyone is interested in the code on the Arduino, I can post it here or in the Projects area.

Cheers

I’ve recently moved away from Owl since half my setup was Heatmiser and half Owl.

Therefore I have a whole range of Owl thermostats, sensors, cable clamps etc. If anyone is interested in any components please drop me a line.

John
Having got a Node-Red flow fully functional with the ability to set new times/temperatures/away dates etc, running for about 3 weeks, my Owl hub has stopped working. It no longer connects to the Owl server nor send the Multicast messages, let alone responding to my GET or SET commands. I just hope there is no connection!
So, If your hub is still available, id be interested, along with the hot water bits which I never got around to getting.
Is there a way you can private message me on this system?
Graham

Hi there,

As I happened by chance to see this message, I thought to reply being the creator of that code - which I still successfully use in my HA setup.

On top, another contributor further spelled out how to configure the OWL side of things, so if you look it up now it should be pretty decent.

At the same time, I understand you have got an alternate solution (let alone the broken OWL hub…), so maybe that’s not any longer of interest to you but might still be of interest to others.

Giuseppe

Hi Giuseppe
As it happens my Hub sorted itself out after a couple of days while I wasn’t looking, so everything’s working again now. I got John’s hub now as a spare now should it go wrong again.
I’ve pretty much finished my Node-Red implementation with only testing of some of the setting changes to do. I’ve examined the messages to be sent and they all look bang on but I haven’t had an opportunity to sent them to the Owl yet (I need some quiet when I can think).
It will allow for updating central heating periods (4 per day but could be expanded to the 10 the Owl permits), the various temperatures like Away and Standby, Away and Electricity tariffs. I could do a bit more but that is enough to let me stop paying Owl for their service.
When tested I will post the flow somewhere (I think there’s a projects area somewhere).
I tried your integration but couldn’t follow the instructions so did my own Node-=Red thing as a learning experience. I was impressed at how easy it was to get going although it got a bit tedious). I should have it all finished in a few days but I’m working on another project at the moment getting my oil boiler wired up temperature sensors and burn monitor.

Hi Graham,

Great to hear all that. As a matter of fact, my sensors started with just the electricity part (which I own) and got extended by other contributors, mostly John, for sensing the heating. But no actuator was ever implemented (as of yet), so your project is much more advanced if you’re able to push data to OWL.

On top of that, though intercepting the OWL traffic is straightforward (and a good learning exercise), my integration relies on a sync UDP listening loop, which is not ideal. A solution with some intermediate broker like yours is anyway easier to integrate in HA (and I have in mind since months to do something similar - but never got around to dedicate enough time to it…).

Mornin’

Graham, I scan regularly for Owl related stuff - I’ve been running in manual mode for 3 years, trying occasionally to get something going, but other than using packet sender occasionally to test things I’ve not managed to get anything running. I’m not a developer, so all the bits I found around java, JSON etc weren’t a good starting point for me. I tried emonpi for a while but could only get canned monitoring, which is where most people come at this from. For me it’s the control. I never got to the electricity and solar monitoring although I have both sets of sensors in a cupboard somewhere.
I presume that you also found this on github - https://github.com/aallan/node-owlintuition

Wish I’d seen your posts earlier, I had decoded the status bits for heating controller state to know that as integers they were 7 boosted standby, 4 comfort, 1 boosted comfort, 0 standby. I presume the HW will be the same they are in most things but not yet checked as I have to move a long way to get to that controller when I try things.

Equally I expect that you’ve found that you can set UDP push without the web portal as the indirect doc that Giuseppe referenced would suggest, you can use the UDP command from the API.

To be honest, this is the first time I came across HA. On the face it seems heaps better than emon as it’s designed ground up to do the control and the monitoring. I was excited when I found the first owl native integration then even more so when I found yours through node-red as that’s the kind of interface I can play with, then seeing your graphic and your description of what you are trying to achieve, well, I’m just going to have to wait for your kind donation of time and effort as it pretty much mirrors the control I want. However I’m equally interested to learn about how you’re interfacing to your boiler. Back when we were connected and on the trip of a lifetime in NZ and someone was in the house I was trying to get them heating remotely, but couldn’t diagnose a pressure system issue preventing firing, as of course Owl told me that it was working - because it had switched it on - what I needed was a real feedback loop from the boiler to know it was on. Would have saved me about two hours over a 24 hour period trying to get them heating! - eventually the brain cells kicked in.

Looking forward to seeing the final results. Hopefully by then I’ll understand the Node-red better. As an old gimmer I find the intuitive interfaces are all subtlydifferent and it usually takes me a few hours to a few days to my head round the new environment.

Rappel
It should only be a few days before I post my Node-Red flow. Just working on the bit to update the Comfort timings for the whole week.
You don’t actually need HA to run the Node-Red. I’ve managed to do it on my PC following simple instructions I found by Googling. Basically, you install something call Node.js, then Node-Red (as I recall) then open up a cmd window and type node-red. It’s appearance there is much the same as it looks within HA. And my flows work there too.
Here a taster of where I’m at.

2 Likes

Looks like a good replacement to me. All the central bits covered and a nice graphical interface. (Must admit haven’t found where you do that yet in Node-RED)
Trouble is, with it that user friendly I’d have to show the wife and we’ve managed to save some oil last couple of years…

Looking at your electricity monitoring I’m minded to try again with that, although I know our consumption is way above yours - 2 greenhouses on winter tick over, a hot tub and apart from CH & water with oil all other heating in the house is electric. I’d average at twice your chart :frowning:

I did clock that Node-RED+ can be independent but having just discovered it I’ll try out HA to see what else it can offer out of the box. It’s nice to be a consumer occasionally!
Also it may make multiple controllers easier to do. Still as long as I’m not issuing commands one by one I’ll be a happy lad.

My (almost) fully functional Owl Intuition Heating and Electricity Node-Red Control Dashboard is now in a public gist on GitHub. Here’s the link…

I originally tried to put it in the Node-Red Flow repository, but it was too big!

Let me know how you get on if you make use of it.

Thank you Graham!

That’s a lot of stuff to work through to understand! However it worked straight away here once I’d got rid of the Amazon stuff.

I suspect I’ll need a few days to get it working fully in my setup (I’m about to learn node-red properly) but if I get it working you will have multiple heating devices and water as we use it to control water heating off the CH and I have 3 heating zones. Great, that’s an excuse not to finish off the decorating in the downstairs rooms for couple of days!

I was getting an odd layout for a while, until I set my browser window narrow (Have you optimised for phone displays?) the menu blocks were flowing across my screen rather than vertical as the text indicated.

The only other thing I noticed on a quick scan is that on the heating periods screen I’m seeing the following:

It doesn’t look like it’s intentional. Is that what you see?

So, questions are:

  1. Have you any pointers to documentation on laying out Node-Red UIs?
  1. What are the messages referred to on the message count entry of the stats screen? Are they the 10s updates from the sensors to the Owl or something else? The heating ones are clocking up quite quickly. Presumably you are using these to draw the temp graph on the heating screen.

…First time I’ve ever seen that the OWL actually picks up weather information too. I was always a bit sceptical as early in my use they said they had issues with their service provider and when it was restored I didn’t notice any practical difference in warm up times etc. to get the house to set temp. Guess I was wrong.

Glad it came across ok (mostly).

Re layout, I grouped it into panels so it would display OK on different devices. I don’t know if it’s optimal but seemed like a good idea to me. If viewing on a PC with a 4k screen as I have, each panel gets distributed across the top, as you say. But if you make the window narrower, then they start to bunch up and go underneath.

Controlling the layout of the panels took a bit of getting used to. Adding a new item would quite often screw it all up, so best left till everything is on the panel. Your 'Modify Heating Periods has got screwed up a bit in the import, so you will have to sort that out in the editor yourself. Click on what looks like a vertical bar graph in the info block on the right and then hover the mouse over Set Heating and an option to edit Layout will appear.

Sorry, I found nothing about best practice re layout.

The messages are those that the Owl hub sends out on UDP Multicast. It does it irrespective of anything listening to it. These come in through the Multicast Sniffer node and are in XML format. I’m guessing you will have an additional one for your Hot Water, so you’ll have to put in an additional output on the Message Switch node, a fourth XML parser and a new function to extract the fields you want to display. To follow my layout, you will need a new Tab for Hot Water. And that will also mean changing the Navigation panels. The new Function will probably be the hardest part.

The data for your additional heating zones will come in on the Heating message already catered for but you will need to, additionally, extract (in the heating function) and display that data.

You’ve got quite a bit to do but by looking at my code, you should be able to grasp what’s necessary.

Good luck

1 Like

For anyone interested I have taken @Wingnut excellent work and stripped it back to just send the electricity & Weather data to HA. I then simply use the ENERGY Dashboard that comes as part of HA. Nowhere near as functionally rich as Grahams’ work but I only have the energy monitoring part of OWL.
This approach avoids the annoying warnings about sensor updates taking too long which sadly can’t be avoided at present with the HA OWL integration method which relies on OWL UDP push.

Simply flow in Node Red

[{"id":"e98ae58388709a3b","type":"tab","label":"Owl to MQTT","disabled":false,"info":""},{"id":"aba23071382e49ec","type":"udp in","z":"e98ae58388709a3b","name":"Multicast Sniffer","iface":"","port":"22600","ipv":"udp4","multicast":"true","group":"224.192.32.19","datatype":"utf8","x":100,"y":320,"wires":[["eb60022652af7673"]]},{"id":"eb60022652af7673","type":"switch","z":"e98ae58388709a3b","name":"Message Switch","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"electricity","vt":"str"},{"t":"cont","v":"weather","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":320,"y":320,"wires":[["75d51240ba413094"],["86052748ce0cc7b6"]],"inputLabels":["Raw UDP Message"]},{"id":"86052748ce0cc7b6","type":"xml","z":"e98ae58388709a3b","name":"Weather","property":"payload","attr":"","chr":"","x":540,"y":400,"wires":[["142de3f7a44a38a4"]]},{"id":"75d51240ba413094","type":"xml","z":"e98ae58388709a3b","name":"Electricity","property":"payload","attr":"","chr":"","x":540,"y":240,"wires":[["214235d0da6dce86"]]},{"id":"142de3f7a44a38a4","type":"function","z":"e98ae58388709a3b","name":"","func":"var msgmqtt = {};\n\n// Build the MQTT message for Home Assistant\nmsgmqtt.topic = \"tele/owl/weather\"\nmsgmqtt.payload = \"{\\\"Weather\\\":{\\\"Ambient\\\":\"\nmsgmqtt.payload += msg.payload.weather.temperature[0];\nmsgmqtt.payload += \",\\\"Weather\\\":\\\"\"\nmsgmqtt.payload += msg.payload.weather.text[0]\nmsgmqtt.payload += \"\\\"}}\"\n\nreturn [msgmqtt];","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":400,"wires":[["1e6a1c17ebab4f92"]]},{"id":"214235d0da6dce86","type":"function","z":"e98ae58388709a3b","name":"","func":"var msgmqtt = {}; // MQTT output for Home Assistant\n\n// Build the MQTT message\nmsgmqtt.topic = \"tele/owl/electricity\"\nmsgmqtt.payload = \"{\\\"Electricity\\\":{\\\"RSSI\\\":\"\nmsgmqtt.payload += msg.payload.electricity.signal[0].$.rssi\nmsgmqtt.payload += \",\\\"LQI\\\":\"\nmsgmqtt.payload += msg.payload.electricity.signal[0].$.lqi\nmsgmqtt.payload += \",\\\"Battery\\\":\"\nvar bat = msg.payload.electricity.battery[0].$.level\nvar len =bat.length // This bit is needed to get rid of the % sign\nmsgmqtt.payload += bat.substr(0, len-1) \nmsgmqtt.payload += \",\\\"kWh\\\":\"\nmsgmqtt.payload += (msg.payload.electricity.property[0].day[0].wh[0]/1000) .toFixed(2)\nmsgmqtt.payload += \",\\\"Cost\\\":\"\nmsgmqtt.payload += (msg.payload.electricity.property[0].day[0].cost[0]/100) .toFixed(2)\nmsgmqtt.payload += \"}}\"\n\nreturn [msgmqtt];","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":240,"wires":[["1e6a1c17ebab4f92"]]},{"id":"1e6a1c17ebab4f92","type":"mqtt out","z":"e98ae58388709a3b","name":"MQTT","topic":"","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"91b9efe8.4a598","x":990,"y":320,"wires":[]},{"id":"91b9efe8.4a598","type":"mqtt-broker","name":"MQTT","broker":"192.168.30.75","port":"1883","clientid":"","autoConnect":true,"usetls":false,"compatmode":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

and two sensors in configuration.yaml

mqtt:
    sensor:
    - name: "OWL_kWh"
      state_topic: "tele/owl/electricity"
      device_class: energy
      state_class: total_increasing
      value_template: "{{ value_json.Electricity.kWh }}"
      unit_of_measurement: "kWh"
    
    - name: "OWL_Day_Cost"
      state_topic: "tele/owl/electricity"
      device_class: monetary
      state_class: total_increasing
      value_template: "{{ value_json.Electricity.Cost }}"
      unit_of_measurement: "GBP" 

The only slight hurdle is editing the Electricity function node in Node-Red as different versions of OWL send the multicast in differing formats. but that can easily be overcome by adding a debug node to unpack the xml object.

1 Like

Does the latest Core update 2023.8.0 work with OWL?

You can send the data to a mqtt server and works with all HA versions.

@fapg i am new and have problem to install your ow2mqtt as the description is for openhab… could you help? thanks…