Bluetooth propane tank monitor: ESPhome, Otodata, Nee-vo, Ferrellgas, BLE

Correct, that is the exact code I am using. Does the curl command return data if you run it manually?

When you say run it manualy do you mean following the link and entering login details? If so that does work. I can see all the info from the nee-vo api

Can you run the curl command from the terminal and does it return data?

Getting no data returned

The curl command at the terminal should return the same data you see in the browser. maybe you have a syntax error?

Possibly but the command runs fine just returns nothing. If I add -v at the end it looks like its connected and what not.

Can you post your command and the output, with bogus credentials of course?

The verbose output is showing an authentication problem. If I run my curl command and change either my username or password to an invalid value, I get the same result as you where nothing comes back.

Is it possible you have special characters in your password that need to be escaped?

Looks like that worked with using the ’

Thank you for the help!!!

Hi All,

I am new to HA, and am trying to get some propane monitors working. I have several tanks, and have one Mopeka unit (working!!) and another Neevo unit, that I want to get into my HA dashboard.

To get Mopeka working, I had to add a Bluetooth proxy, using an M5 esp32 unit, so I have the ability to read a bluetooth sensor in HA.

I have the Neevo unit installed on my tank, and can see its level, as per some earlier posts in this thread, I’m using an iPhone app to see that. I can see the various messages the Neevo Unit advertises. (I have a Nee-Vo branded version of the Otodata TM6030).

I am lost as to what I need to do next to connect to the Neevo unit and get it to present its data on my dashboard. Can anyone direct me toward what to do next, or where to find some learning materials to do this? I have no idea where to start with the YAML that I am reading about here…

Thx! J

Hi,

I am trying to get this same idea to work, but am having trouble getting started. I have HA running on a NUC, ESPhome installed, and have an M5 Atom Lite running BT Proxy, so far so good, and I am getting data from a Mopeka sensor successfully. Yay!

Now I want to get the data from a Nee-vo(OtoData) sensor, and I can see it broadcasting the sentences:
Name: ‘TM6030 2034XXXX’
Name: ‘level: 68.2 % horiz’
Name: ‘unit sleeping’

This is seen over a mobile app.

How do I add the ESPhome code to get this data? I think I need to add a new device, but there really isn’t a new device if I am using the existing BTProxy to receive the data.
Is that what I should be doing? Do I need to add a new ESP device or can I use the existing one which is already getting me data from another BT sensor?

BTW, I won’t be able to scrape the data from the Nee-Vo website, as the installation is outside of cellular range, so nothing gets to the cloud from the Nee-vo(Otodata) device.

Here is the curl method, but using the native “rest” platform in Home assistant. It’s working for me! Thanks for the help everyone in this thread.

sensor:
  - platform: rest
    authentication: basic
    username: !secret neevo_username
    password: !secret neevo_password
    scan_interval: 86400
    resource: https://telematics.otodatanetwork.com:4432/v1.5/DataService.svc/GetAllDisplayPropaneDevices
    headers:
      Content-Type: application/json
    name: propane_tank
    value_template: "{{ value_json[0].Level }}"
    unit_of_measurement: '%'

@tinker_ha what is the easiest way to find the mac address of the otodata, using iPhone or Windows?

Is this still working for you? Mine seems to have stopped in the last few days. I’m not sure if it’s an update, an issue on the provider end or just me.

It has stopped working for me. I get a 500 error when I run curl -v -u [email protected]:mypassword https://telematics.otodatanetwork.com:4432/v1.5/DataService.svc/GetAllDisplayPropaneDevices --header Content-Type:application/json so it’s nothing to do with Home Assistant.

Either something’s wrong on Otodata’s side or they retired this API. I haven’t yet found any info on a new or different way to do this.

I agree with @apointek - this is something on otodata’s side as the API now returns a 500 response :frowning:

Looking at my sensor history, the issue started around Oct 2nd - it briefly came online again (yellow bar shows good reading) and has been unavailable since.

After intercepting network traffic for the “Nee-Vo” app on iphone, I have found a new way to query the data.

To start, for these curl calls, we need the Basic auth value, which is the base64 of the account username and password. On MacOS this can be computed like this:

echo -n "your_neevo_username:your_neevo_password" | base64

Take a note of this value to use in the curl calls.

First we need to get the id of the tank, this is a one time thing to get (replace XXX with the value from the previous step)

curl -H "Authorization: Basic XXX" "https://ws.otodatanetwork.com/neevoapp/v1/DataService.svc/GetAllDisplayPropaneDevices"

Somewhere in the json response should be a value called “Id”, use this in the next curl (where it says ZZZ):

curl -H "Authorization: Basic XXX" "https://ws.otodatanetwork.com/neevoapp/v1/DataService.svc/GetPropaneLevels/ZZZ"

The current propane percent level, should be in the json at “CurrentLevel”

1 Like

Genius! Thank you. My setup worked with the first command without specifying the ID. Also, I had to remove the space before Basic XXX.