Not sure where I should post this, please move if this is the wrong place.
I have a Heatmaster outdoor wood boiler. It runs on a LOGO8 PLC and has a built in web server. I wanted to be able to monitor the status of the stove from HA. I tried the scrape integration, but the page is dynamically updated via javascript so it didn’t work.
So I made docker container, that contains flask (a web server) and playwright, and E2E web testing app, to scrape the web page and return JSON data on a GET request. This allowed me to use the RESTful integration to monitor my data.
If there is some way to do this without the need for a docker I’m all ears. Essentially I need the ability to say wait until param_1 is visible. I can do that with playwright.
So in case anyone else has a need to integrate a web into HA, and you need something more capable than scraper, you can use my docker as a base line. It would be very easy to clone and customize for your own webserver needs.
dpeart/heatmaster: expose Heatmaster wood boiler interface to REST (github.com)
Here is the configuration.yml for it:
rest:
- scan_interval: 30
resource: http://192.168.10.246:5000/
sensor:
- name: "Heatmaster Boiler Status"
value_template: "{{ value_json.Heatmaster.status }}"
- name: "Heatmaster Temperature"
value_template: "{{ value_json.Heatmaster.temp }}"
device_class: temperature
unit_of_measurement: '°F'
- name: "Heatmaster O2"
value_template: "{{ value_json.Heatmaster.O2 }}"
unit_of_measurement: "%"
- name: "Heatmaster Top Air"
value_template: "{{ value_json.Heatmaster.Top_Air }}"
unit_of_measurement: "%"
- name: "Heatmaster Bottom Air"
value_template: "{{ value_json.Heatmaster.Bottom_Air }}"
unit_of_measurement: "%"
thanks,
david