Owl Intuition pv & Home Assistant

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

I’ve started having an issue with the Owl integration where the solar generation doesn’t update regularly in HA, sometimes will say unknown and won’t update for days and then all of a sudden it will start showing solar generation again. This only seems to be with solar sensor and not the energy consumption sensor.

I know it’s not an issue with the Owl device as I can open the Owl app on my phone and it’s reporting fine on there at all times. The Owl custom component is fully up to date and so is HA, any ideas?

A HA reboot doesn’t typically fix it, I just need to wait and eventually days later it seems to get an update.

1 Like

I have the same issue - sorry cannot suggest a solution.

Mine has gotten much better recently. I haven’t made any changes besides updating HA along the way,. I’ll still get the unknown after a HA reboot but it picks up the data relatively quickly now.

Hi guys,

Following more tests (see https://github.com/custom-components/sensor.owlintuition/issues/18) I just committed a patch where I totally removed the throttling that makes the integration miss some UDP packets. This did not seem to work in the past but now it did. Would you give it a try?

I acknowledge that a proper solution would be a fully async loop but I don’t have time now to try again that route (hopefully with the huge developments in HA it may work whereas it didn’t a few years back when I tried). The proxy is an alternative still on the table.

BTW the latest version correctly reports the data for the new Energy Management feature in HA :wink: so please also update HA to 2021.9+!

Thanks,
Giuseppe

Resurrecting this thread as there seems to be an issue with the latest version of the HA Core breaking the Owl Intuition Integration.

This occurs when moving to Core version 2023.5.0 from 2023.4.6.

The problem is that the heating and hot water status are displayed as unknown, also the battery levels do not show up.

Looking at the logs there is an error

ValueError: Sensor sensor.owl_intuition_hotwater_battery has device class None, state class measurement unit None and suggested precision None thus indicating it has a numeric value; however, it has the non-numeric value: High (<class 'str'>)

When rolling back to version 2023.4.6 I can see that the error already exists but as a warning. i.e.

Sensor sensor.owl_intuition_hotwater_state has device class None, state class measurement and unit thus indicating it has a numeric value; however, it has the non-numeric value: Standby (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Sensor sensor.owl_intuition_heating_battery has device class None, state class measurement and unit None thus indicating it has a numeric value; however, it has the non-numeric value: Medium (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Sensor sensor.owl_intuition_heating_state has device class None, state class measurement and unit None thus indicating it has a numeric value; however, it has the non-numeric value: Comfort (Up To Temperature) (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Sensor sensor.owl_intuition_hotwater_battery has device class None, state class measurement and unit None thus indicating it has a numeric value; however, it has the non-numeric value: High (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

This suggests that a change has been made in the latest core that no longer tolerates the condition that used to just generate a warning.

These sensors do return text so the error makes perfect sense but I don’t really know how to fix this being very new to HA so I’m wondering if anyone else has had a look at how to resolve this.

I’ve just updated from 2023.4.6 to 2023.5.1 and I then received an email about this thread. My owl generation is working but my solar exports are not. Unfortunately I don’t have the sills to fix this. But if someone does, that would be great. Thx.

1 Like

Hello guys,

I didn’t have a chance to upgrade myself but the errors are pretty clear. I’ve opened Upgrade HA to 2023.5.0 from 2023.4.6 produces error · Issue #25 · custom-components/sensor.owlintuition · GitHub and I’ll try and have a look soon.

3 Likes

Thanks for your quick reply, I’m sure everyone will agree it’s greatly appreciated.

In the meantime I’ve downgraded back to 2023.4.6.

If anyone needs to do this you need to issue the following command from an SSH console (install the Terminal & SSH add-in).

ha core update --version 2023.4.6

2 Likes

@glopresti I’ve created a PR which I believe fixes the issue.

1 Like

This worked for me thanks :slight_smile:

Great! I was a bit overwhelmed these days but this is really appreciated. I’ll review and merge it right away.

I’m not sure if this will be of interest but I use node red to strip apart the owl ump multicast - I then pass the pieces to influxdb and eventually grafana for some pretty graphs:

[{“id”:“44115e71.e01c9”,“type”:“tab”,“label”:“Original Solar PV flow”,“disabled”:false,“info”:""},{“id”:“6e0dea56.f3c3f4”,“type”:“udp in”,“z”:“44115e71.e01c9”,“name”:“Owl Solar PV”,“iface”:"",“port”:“9991”,“ipv”:“udp6”,“multicast”:“true”,“group”:“224.192.32.19”,“datatype”:“utf8”,“x”:90,“y”:260,“wires”:[[“d77e7101.e2c8e”,“d4a7c8c7.d336c8”]]},{“id”:“d77e7101.e2c8e”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“Owl Solar PV”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:290,“y”:200,“wires”:[]},{“id”:“9445345a.d9a1c8”,“type”:“comment”,“z”:“44115e71.e01c9”,“name”:“SOLAR DATA PACKET”,“info”:“SOLAR DATA PACKET\nEXAMPLE PACKET\n\n0.000.00 0.000.00\n\nPARAMETERS\nThe main tag contains sections for the current solar readings () and the totals for the day (). Both sections have and tags that contain the values for power generated by the PV system and power exported to the electricity grid.\n \nTag Attribute Description\n \n \n Solar Id The MAC Address of the Network OWL\n \n \nCurr/Day units Units for the value in the xml tag.\nwh = Watt Hours, divide by 1000 to get kWh\nw = watts”,“x”:120,“y”:160,“wires”:[]},{“id”:“dec6a9e.a030858”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable solarPvId”,“func”:“global.set(“solarPvId”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:970,“y”:260,“wires”:[[]]},{“id”:“b202ffe1.bf262”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable currentGeneratingUnitsW”,“func”:“global.set(“currentGeneratingUnitsW”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:1020,“y”:420,“wires”:[[]]},{“id”:“6258c68c.1d75b8”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable exportingUnitsW”,“func”:“global.set(“exportingUnintsW”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:990,“y”:500,“wires”:[[]]},{“id”:“963edb3.6a15e28”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable currentDayGeneratedW”,“func”:“global.set(“currentDayGeneratedW”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:1010,“y”:580,“wires”:[[]]},{“id”:“ee24910a.50fac”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable currentDayExportedW”,“func”:“global.set(“currentDayExportedW”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:1010,“y”:660,“wires”:[[]]},{“id”:“cf0c6650.c7c678”,“type”:“ui_gauge”,“z”:“44115e71.e01c9”,“name”:“Currently generating”,“group”:“1c8bae75.1a8cc2”,“order”:1,“width”:0,“height”:0,“gtype”:“gage”,“title”:“Currently generating”,“label”:“watts”,“format”:"{{value}}",“min”:0,“max”:“4000”,“colors”:["#fff86b","#e4ef65","#77bb40"],“seg1”:“500”,“seg2”:“1000”,“x”:1380,“y”:420,“wires”:[]},{“id”:“779072ad.f99a2c”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“Currently exporting”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""},{“type”:“str”,“value”:""}]},{“name”:“toFloat”,“params”:[{“type”:“num”,“value”:“1”}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:650,“y”:500,“wires”:[[“62d34c81.631d04”,“6258c68c.1d75b8”,“9ea332b6.a6a65”]]},{“id”:“11f0d153.c7431f”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“Current Generated Today”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""},{“type”:“str”,“value”:""}]},{“name”:“toFloat”,“params”:[{“type”:“num”,“value”:“1”}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:670,“y”:580,“wires”:[[“a5949be8.678188”,“963edb3.6a15e28”,“97874c41.90e15”]]},{“id”:“334174ab.10874c”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“Current Exported Today”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""},{“type”:“str”,“value”:""}]},{“name”:“toFloat”,“params”:[{“type”:“num”,“value”:“1”}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:670,“y”:660,“wires”:[[“d9bbec3e.1ef5c”,“ee24910a.50fac”,“586f5093.d6e54”]]},{“id”:“62d34c81.631d04”,“type”:“ui_gauge”,“z”:“44115e71.e01c9”,“name”:“Currently Exporting”,“group”:“1c8bae75.1a8cc2”,“order”:2,“width”:0,“height”:0,“gtype”:“gage”,“title”:“Currently Exporting”,“label”:“watts”,“format”:"{{value}}",“min”:0,“max”:“4000”,“colors”:["#e0eed4","#77bb40","#253d0e"],“seg1”:"",“seg2”:"",“x”:1370,“y”:500,“wires”:[]},{“id”:“a5949be8.678188”,“type”:“ui_chart”,“z”:“44115e71.e01c9”,“name”:“Current Generated today”,“group”:“1c8bae75.1a8cc2”,“order”:3,“width”:0,“height”:0,“label”:“Current Generated Today”,“chartType”:“line”,“legend”:“true”,“xformat”:“HH:mm:ss”,“interpolate”:“linear”,“nodata”:"",“dot”:false,“ymin”:“0”,“ymax”:“20000”,“removeOlder”:1,“removeOlderPoints”:"",“removeOlderUnit”:“86400”,“cutout”:0,“useOneColor”:false,“colors”:["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],“outputs”:1,“x”:1390,“y”:580,“wires”:[[]]},{“id”:“d9bbec3e.1ef5c”,“type”:“ui_chart”,“z”:“44115e71.e01c9”,“name”:“Curent Exported Today”,“group”:“1c8bae75.1a8cc2”,“order”:4,“width”:0,“height”:0,“label”:“Curent Exported Today”,“chartType”:“line”,“legend”:“true”,“xformat”:“HH:mm:ss”,“interpolate”:“linear”,“nodata”:"",“dot”:false,“ymin”:“0”,“ymax”:“20000”,“removeOlder”:1,“removeOlderPoints”:"",“removeOlderUnit”:“86400”,“cutout”:0,“useOneColor”:false,“colors”:["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],“outputs”:1,“x”:1380,“y”:660,“wires”:[[]]},{“id”:“24479ab1.ad5ee6”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“setup global variable solarPvTimestamp”,“func”:“global.set(“solarPvTimestamp”,msg.payload);”,“outputs”:1,“noerr”:0,“x”:1000,“y”:340,“wires”:[[]]},{“id”:“e1c66e38.93061”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“currently generating”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:930,“y”:380,“wires”:[]},{“id”:“9ea332b6.a6a65”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“currently exporting”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:930,“y”:460,“wires”:[]},{“id”:“fe848103.c53fb”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“solarPvId”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:900,“y”:220,“wires”:[]},{“id”:“ef7c731e.c8649”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“solarPvTimesatmp”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:930,“y”:300,“wires”:[]},{“id”:“586f5093.d6e54”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“exported today”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:920,“y”:620,“wires”:[]},{“id”:“97874c41.90e15”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:“generated today”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:920,“y”:540,“wires”:[]},{“id”:“fc0d8c67.cfe13”,“type”:“function”,“z”:“44115e71.e01c9”,“name”:“Combine 6 global variables into one payload”,“func”:“msg.payload = \n\n{\n"solarPvId” : global.get(“solarPvId”),\n"solarPvTimestamp" : global.get(“solarPvTimestamp”),\n"currentGeneratingUnitsW" : global.get(“currentGeneratingUnitsW”),\n"exportingUnintsW" : global.get(“exportingUnintsW”),\n"currentDayGeneratedW" : global.get(“currentDayGeneratedW”),\n"currentDayExportedW" : global.get(“currentDayExportedW”)\n\n}\nreturn msg;\n\n",“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:1010,“y”:780,“wires”:[[“5de13385.20a87c”,“2d01f7bc.b02da8”]]},{“id”:“4b79f042.9a914”,“type”:“inject”,“z”:“44115e71.e01c9”,“name”:"",“props”:[{“p”:“payload”},{“p”:“topic”,“vt”:“str”}],“repeat”:“10”,“crontab”:"",“once”:true,“onceDelay”:0.1,“topic”:"",“payload”:"",“payloadType”:“date”,“x”:550,“y”:780,“wires”:[[“fc0d8c67.cfe13”]]},{“id”:“d4a7c8c7.d336c8”,“type”:“switch”,“z”:“44115e71.e01c9”,“name”:“Take only from SOLAR bundle”,“property”:“payload”,“propertyType”:“msg”,“rules”:[{“t”:“cont”,“v”:"<solar id=",“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:1,“x”:350,“y”:260,“wires”:[[“7d974fea.2648e”,“a8c0e311.c45dd”,“582ffb1b.984ac4”,“779072ad.f99a2c”,“11f0d153.c7431f”,“334174ab.10874c”]]},{“id”:“5de13385.20a87c”,“type”:“debug”,“z”:“44115e71.e01c9”,“name”:"",“active”:true,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“false”,“x”:1350,“y”:740,“wires”:[]},{“id”:“7d974fea.2648e”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“solarPvId”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:620,“y”:260,“wires”:[[“dec6a9e.a030858”,“fe848103.c53fb”]]},{“id”:“a8c0e311.c45dd”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“timestamp”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""},{“type”:“str”,“value”:""}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:630,“y”:340,“wires”:[[“24479ab1.ad5ee6”,“ef7c731e.c8649”]]},{“id”:“582ffb1b.984ac4”,“type”:“string”,“z”:“44115e71.e01c9”,“name”:“Currently Generating Units”,“methods”:[{“name”:“between”,“params”:[{“type”:“str”,“value”:""},{“type”:“str”,“value”:""}]},{“name”:“toFloat”,“params”:[{“type”:“num”,“value”:“1”}]}],“prop”:“payload”,“propout”:“payload”,“object”:“msg”,“objectout”:“msg”,“x”:680,“y”:420,“wires”:[[“e1c66e38.93061”,“b202ffe1.bf262”,“cf0c6650.c7c678”]]},{“id”:“2d01f7bc.b02da8”,“type”:“influxdb out”,“z”:“44115e71.e01c9”,“influxdb”:“242678f7.d4b1”,“name”:“OwlSolarPV”,“measurement”:“stations”,“precision”:"",“retentionPolicy”:"",“database”:"",“retentionPolicyV18Flux”:"",“org”:"",“bucket”:"",“x”:1350,“y”:780,“wires”:[]},{“id”:“e7e52d25.ae51”,“type”:“comment”,“z”:“44115e71.e01c9”,“name”:“This Flow takes Owl multicast output and divides it to be an influx database”,“info”:"",“x”:300,“y”:720,“wires”:[]},{“id”:“2b71e3c3.ff463c”,“type”:“comment”,“z”:“44115e71.e01c9”,“name”:“Owl appears to pump out electricty parameteres as well as solar so the witch only goes to the solar package”,“info”:"",“x”:850,“y”:160,“wires”:[]},{“id”:“1c8bae75.1a8cc2”,“type”:“ui_group”,“name”:“SolarPV”,“tab”:“2f11a8c0.5a5aa”,“order”:1,“disp”:true,“width”:“10”,“collapse”:true},{“id”:“242678f7.d4b1”,“type”:“influxdb”,“hostname”:“192.168.1.105”,“port”:“8086”,“protocol”:“http”,“database”:“OwlSolarPV”,“name”:“OwlSolarPV”,“usetls”:false,“tls”:"",“influxdbVersion”:“1.x”,“url”:“http://localhost:8086”,“rejectUnauthorized”:false},{“id”:“2f11a8c0.5a5aa”,“type”:“ui_tab”,“name”:“MK14 7PH”,“icon”:“dashboard”,“order”:9,“disabled”:false,“hidden”:false}]

Hack it about and let me know if you find it useful?

The fix so far seems to be just for electricity. After deploying I was still receiving errors in the log for HOTWATER_STATE and HEATING_STATE

In my local copy I have amended the following 2 lines to replicate what was done with the electricity sensors. Now I have no errors I have successfully upgraded to 2023.5.4 and Owl Integration now works.

SENSOR_HOTWATER_STATE: ['Hotwater State', None, 'mdi:information-outline', OWLCLASS_HOTWATER, None, None],

SENSOR_HEATING_STATE: ['Heating State', None, 'mdi:information-outline', OWLCLASS_HEATING, None, None],

I don’t have the relevant skills to do a code merge/deploy in GIT so perhaps this change can be considered for inclusion?

Thanks

OK, I reviewed all of the state classes after the latest contributions and I believe I have fixed all of them in Fixed a few more state classes following #27 and comments in discourse · custom-components/sensor.owlintuition@cd57116 · GitHub

Could you please retry?