A little background, the company that supplies my LP, Amerigas, added a otodata tank reader to measure tank levels. I can use an app called “Nee-Vo” to pull information they are sending to Amerigas’s portal. Otodata has a website but it’s only open to the suppliers and customers who want the data can use the phone app or use the supplier’s portal.
I’m trying to get my propane tank reading into my Home Assistant setup so I figured I would try Multiscrape as it appears to do what I need. From what I’ve read it looks like there are other Amerigas customers trying to do this but no one has posted success. Reading other posts and the awesome documentation on multiscrape posted by @danieldotnl I thought I had it set up correctly but I must be missing something.
- Core 2023.11.1
- Supervisor 2023.11.0
- Operating System 11.1
- Frontend 20231030.1
This is what I’m trying in my configuration.yaml after loading the multiscrape custom component from HACS.
multiscrape:
- resource: "https://www.myamerigas.com/Dashboard/Dashboard"
name: Amerigas Scraper
scan_interval: 300
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
referer: "https://www.myamerigas.com/"
origin: "https://www.myamerigas.com"
host: "www.myamerigas.com"
form_submit:
submit_once: True
resubmit_on_error: True
resource: "https://www.myamerigas.com/Login/Login?BrandId=002"
select: ".body > div.container-fluid.p-0 > div > main > div > form.Login"
input:
EmailAddress: "myemaillogin"
Password: "mypassword"
sensor:
- select: "#layoutDiv > div.container.pl-0.pr-0.pl-xl-3.pr-xl-3.pl-lg-3.pr-lg-3.pl-md-3.pr-md-3.pl-sm-0.pr-sm-0 > div:nth-child(2) > div.col-12.col-xl-6.col-lg-6.col-md-12.col-sm-12.pr-0.pl-0.pl-xl-3.pl-lg-3.pl-md-0.pl-sm-0 > div.col-12.bg-white.tankanddeliveries-padding.top-margin > div:nth-child(3) > div.col-12.col-xl-4.col-lg-4.col-md-12.col-sm-12.p-0.mt-3.EstimatedTankDiv > div > div.col-12.p-0.lblvalue-Estimatedtank"
name: LP Percentage
unique_id: tankpercentage
unit_of_measurement: "%"
- select: "#layoutDiv > div.container.pl-0.pr-0.pl-xl-3.pr-xl-3.pl-lg-3.pr-lg-3.pl-md-3.pr-md-3.pl-sm-0.pr-sm-0 > div.col-12.pt-5.row.mx-0.top-mobile > div.col-12.col-xl-6.col-lg-6.col-md-6.col-sm-12.pl-0.pr-0.pl-xl-0.pr-xl-3.pl-lg-0.pr-xl-3.pl-md-0.pr-md-3 > div > div.col-12.p-0.pb-4 > div:nth-child(2) > div.col-12.col-xl-6.col-lg-6.col-md-6.col-sm-12.p-0.mt-3 > div.col-12.p-0.lblprice.text-center.text-xl-left.text-lg-left.text-md-left"
name: AmeriGas Payment Due
unique_id: lpbilldue
unit_of_measurement: "$"
This is the source I’m using for the resources and select:
This is the error, I can’t seem to get past the form-submit formatting.
This error originated from a custom integration.
Logger: custom_components.multiscrape.coordinator
Source: custom_components/multiscrape/coordinator.py:75
Integration: Multiscrape scraping component (documentation, issues)
First occurred: 7:28:39 PM (2 occurrences)
Last logged: 7:28:45 PM
Amerigas Scraper # Exception in form-submit feature. Will continue trying to scrape target page. Could not find form
Any help would be greatly appreciated.
Once I can figure out the form-submit issue, these are the two scrapes I want to use for sensors:
Tank reading:
Next Payment Due info:
I did notice when I change the select under form_submit to this:
select: "body > div.container-fluid.p-0 > div > main > div > form"
I dropped the period before body and remove the .Login at the end, the error message changes slightly to:
Amerigas Scraper # Exception in form-submit feature. Will continue trying to scrape target page.
It no longer says “Could not find form” but I still can’t get past the form-submit problem.