Owl Intuition pv & Home Assistant

Hello, sorry if this isn’t a feature or already discussed.

How to I get Home Assistant to action Owl Intuition, I am not technical at all and have followed the instructions to install and I am able to see the sensors on the Overview. However, I want to be able to boost the heating using Home Assistant and each entity is read-only and also states that it does not have a unique ID.

Am I be able to make Home Assistant take action or is this only for reading the data??

Hi there!

Never discussed actually, but it’s not implemented. I understand from others that it should be possible though, but I only have the electric meter so can’t experiment with other hardware.

If anyone is able to extract the XML snippets used by owl, it should be rather straightforward to implement the actions.

Cheers,
Giuseppe

Thank you kindly for the reply Giuseppe, good to know it is potentially possible I have the API pdf from OWL however it might as well be in Chinese as I say I am not technical at all unfortunately haha

I’ll have tinker, read and research see what I can find!! :slight_smile:

Hello!!

Yeah I’m totally overwhelmed with all this I’m afraid and I am genuinely trying to understand. I have trying to follow an interesting post from the below but again I’m not sure what to do yet.

I need to reply to the post as I am struggling with it.

I finally got around to testing this again. With my setup, the electricity is updating about every minute but the solar is taking 20 minutes or so.

my data-grams are as below

image

I have a feeling it is only randomly picking up the second data-gram (solar)

In my current code which I run on a separate machine I remember having to wait for the second data-gram and then join the 2 before processing. I cant work out if this is the issue here.

        matchelec = re.match (r".*electricity id=.*", str(data), re.I|re.S)
        matchsolar = re.match (r".*generating units=.*", str(data), re.I|re.S)
        if matchelec:
            elecdata = (str(data))   
        if matchsolar:
            solardata = (str(data))
            fulldata = (str(elecdata) + str(solardata))

Hi,

After a quick look at my code, I guess what’s happening is that in your case the solar data comes right after the electricity data most of the times, and because the listening loop in HA is throttled, it may well be that the sensor mostly misses it. A way to prove this (and have a workaround) is to actually modify this line:

with a more aggressive value, like secs = 5.

But the real issue is rather that listening for UDP traffic this way is not optimal. As mentioned in another discussion about generic UDP sensors, a better option is to have a proxy in between:

I have in my plans to finish coding something for that, but given all family constraints I won’t be able to finalize and share anything before end of summer. If anyone else has time feel free to contribute :wink:

My solar data does immediately follow the electricity

Tried changing both 60’s in that section to 5.

It is updating the electricity very regularly but missing the solar. It stays unknown after startup despite the electricity updating.

Does this mean it’s something else?

I am not sure if the proxy method will be easy to run for hassio users.

Is there an easy modification I could try to wait for the solar data.

Hmm maybe then it’s not enough. You could try with 1 or even 0 (that is the listening loop is called each time update() is called on the sensor), but if it really follows right after, chances are that it will still be missed.

And indeed my other approach would be the solution: the proxy would listen all the time and buffer any incoming data for HA updates.

I suspect it will still be missed. If you look at my datagrams, I am not sure how the timestamp units work but you can see the solar is 1 unit after the electricity.

The multicast python code I posted earlier in the thread runs on a separate windows pc and adds the 2 datagrams together then picks out the bits I need and puts them the mqtt database on hassio

I suppose it’s a proxy of sorts, it never misses anything but I really want it all on one machine. I suspect if I tried to run it in hassio it would halt everything, that’s if I could figure out how to do it.

I have disabled your add-on for now, I am glad to hear that you are looking to work on it again in the future.

I confess I didn’t notice the 1-unit == 1-second difference in the two datagrams, so yes, even with 0 there’s some chance the second datagram is missed.

Your code is a proxy of sorts indeed, my idea would be to do the same (no need to stick datagrams together though) and let my sensor connect to it and fetch the data as needed. In the meanwhile you may look into running your proxy in the same box where hassio runs and consume the data, so to get rid of the Windows PC - eventually, my proxy would be required to run “next” to HA, and my sensor would connect to it.

I gave this another go and thought I would feed back, with the time at 0 and 0.1 - it still doesn’t pick up the solar often enough. It is better but when home assistant is starting up, the “not everything will be available message” took ages to disappear with this short time. I also noticed that the timestamp on the battery data was older than the electricity readings, like it is missing them somehow.

Just wish I could find a way to make it read the UDP in a batch. Both UDP are always 1 sec apart

Thanks for the feedback. Interestingly, the user that provided me with the solar datagram at the time did not have such ‘synchronised’ input - and in general, batching is not really an option because there’s no guarantee another datagram comes so quickly after a first one. I really have got to write a proxy…

1 Like

Hi
Firstly, thank you for the work that has gone into this integration. I am new to home assistant and trying to get this integration to work. I have followed all the instructions and cant get this to work:

Here the the configuration file:

#Owl configuration

sensor:

  • platform: owlintuition

    port: 3200

    host: localhost

    mode: monophase

    monitored_conditions:

    • electricity

If I add in the IP address of home assistant in I cant see any OWL sensors. I used local host instead and can now a card but the values are all coming back as Unknown.

I got one of the lads at work to check to make I installed this correctly. Did the setup online using port 3200. Now stuck :frowning:

Cant see anything in the logs / don’t know what to do next.

Please help

Thanks

Andy

Hello Andy,

To start disentangling issues, I’d suggest to check that the host where you run Home Assistant is actually able to receive the UDP data sent by OWL. I had posted some test code earlier, but for convenience I’ve just pushed it in the same repo, linked from the README.md file. Could you please try and execute it?

And otherwise, how do you run HA? I run it as a docker container in “bridge” mode, so to be able to listen to all traffic from outside.

Cheers,
Giuseppe

Hello,

Sorry i having a basic problem getting it installed. Im running HA in docker i ran the setup commands inside the docker terminal. When i insert the config in the yaml i end up with

Platform error sensor.owlintuition - Integration ‘owlintuition’ not found.

I think possibly the files are ending up in the wrong place or not all of them as in the custom components folder correctly. ive resarted ha. Ive attached a screenshot

Thanks All. Excited about getting my solar stats in HA.

Your files are in a different place to mine

Try putting all those files and folders in

custom_components/owlintuition/

yaml starts with

  - platform: owlintuition 
    host: 192.168.0.199
    port: 4321
    monitored_conditions: 
         - electricity
         - solar        
1 Like

Thanks i was just a bit nervous i have moved them all over ( i didnt have permissons so had to sudo which was probably not the correct thing to do ! )

But everything is working now. Love to @glopresti for the integration so happy !

1 Like

Can anyone help? This integration used to work for me however it stopped working a few months ago.

I went to the OWL website and it says I need to pay a subscription to view the stats.

Does this mean that this integration wont work for me now or is it coincidence?

Just in case, did you deploy the latest manifest with the version?

Anyway, I seem to remember that a firmware update from owl some years ago basically enforced that no data is pushed without active subscription. Anyone else maybe can confirm?

Data is still pushed via multicast without a subscription and my method is still working for me, I just run the proxy code on another server and it publishes the updates to mqtt so I can setup mqtt sensors.
I think it is still pushed to the last IP setup in the config too but you would need to have a subscription to access the config to change that IP or turn on data push or you could try using the API to change it.

Last time I tried this integration it randomly picked up either the electricity or solar datagrams. They are pushed immediately after each other. My method joined them first so they both update.

1 Like