Owl Intuition pv & Home Assistant

Hi there,

Are you running HomeAssistant in a docker? In such a case, it could well be that the routing is not correct (I initially had a similar issue with my NAS, which is not Synology but I guess it’s pretty similar). If you know how to run things via SSH on the NAS, you could try e.g. netcat -u against your HA to see if it gets UDP traffic correctly.

Unfortunately my NAS does not support Docker so it is running natively.

What about my other suggestion with netcat? Also is the rest of HA fully operational?

Frustratingly , I don’t have netcat either and it doesn’t seem possible to obtain it.

You could then try what I suggested in a previous post.

After updating to 92.1 my owl stopped working. With help from @bertrumuk he identified that you need to create a file named manifest.json and place it into customer component/ owlintuition.

{
        "domain": "owlintuition",
        "name": "OWL Intuition",
        "documentation": "https://github.com/custom-components/sensor.owlintuition",
        "requirements": [],
        "dependencies": [],
        "codeowners": ["@glpatcern"]
}

Once this was done, it’s all working again for me…thanks again @bertrumuk

Hi,

Thanks for reporting this! I still run this component standalone and actually didn’t notice. I have pushed the file to github.

1 Like

I’ve just upgraded from HA 89.1 to 93.1 and my Owl is now broken and a lot of other stuff too.

I previously had custom_components/sensor/owlintuition.py from reading above the way custom_components are handled is now changed? Do I need to put the files under custom_components/Owlintuition?

I have done this and it’s not working,

Have you also added a manifest file?

Look here [Owl Intuition pv & Home Assistant]

Yes I have that. I have the following files under config/custom_components/owlintuition:

sensor.py
manifest.json
init.py
sample.owl2.xml

and the following in my configuration.yaml file, what am I missing it used to work

  - platform: owlintuition
    port: 4321
    mode: monophase
    host: 192.168.0.80
    monitored_conditions:
      - electricity
      - solar.

Why is there a full stop after solar?

If removing that doesn’t fix it then try using only the following files in the custom component

sensor.py
manifest.json

Thanks for this code snipet.
It allowed me to adapt it in order to solve another issue with Owl 180 which doesn’t provide an “unit_of_measurement”, thus not generating nice graphs automatically.

Here is the code used:

     owl180unit:
        friendly_name: "Energy usage kWh"
        unit_of_measurement: 'kWh'
        value_template: '{{ (( states("sensor.owl180_energy_usage") | float) * 1) }}'

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.