Goedendag Tweakers,
Vorige week is een nieuwe verdeler voor de vloerverwarming geplaatst, en daar zit een RJ45 connector op
. Hij geeft zelfs een html pagina op zijn eigen IP met in een tabblad wat status informatie van bijvoorbeeld sensoren en pompsnelheid. Die informatie wil ik graag via MQTT in mijn Home Assistant krijgen. Hoeft alleen maar one-way, alleen uitlezen. Maar de controller heeft geen API dus moet ik het met webscraping eruit krijgen.
Ik ben begonnen met het inspecteren van de elementen op de webpagina. Daar blijken keurig id's te staan voor elke blokje in de tabel. Die id's heb ik in Python uitgelezen via BeautifulSoup, maar dan staat er geen waarde.
Onder aan de HTML pagina blijkt een object script te staan waar die informatie kennelijk geladen wordt uit de controller en in de html gezet. Dus moet ik de script volgens mij uitlezen om de waarden uit de tabel te krijgen. Maar dan loop ik vast. Het lijkt erop dat geen mooi JSON format is. Als ik de script als text inlees blijken er 6 scripts te zijn. De eerste begint met function AJAX(e,t) {var....., dus dat lijkt een AJAX functie te zijn. Scripts 2-5 zijn allemaal var's met systeemData, ingangendata, uitgangenData, communicatieData. Het laatste script begint met (()=>let dictionary={.....
Als ik een text dump maak van de scripts staat daar niet de waarde in die ik zoek. Voor bijvoorbeeld de retoursensor staat er wel iets als:
varSet("retSensor",e,"inputs.return.sensor")
Dit staat dus in het laatste script. Die e verwijst dus weer terug naar de AJAX functie, lijkt me.
Maar hier houdt mijn programmeer kunst op. En mijn Google kunst blijkt kennelijk ook niet genoeg.
Wellicht heeft iemand een tip hoe ik verder kan. Laat even weten als je nog wat nodig hebt, ik kan best een screenshot of de inhoud van de scripts laten zien.
Thanks
Vorige week is een nieuwe verdeler voor de vloerverwarming geplaatst, en daar zit een RJ45 connector op
Ik ben begonnen met het inspecteren van de elementen op de webpagina. Daar blijken keurig id's te staan voor elke blokje in de tabel. Die id's heb ik in Python uitgelezen via BeautifulSoup, maar dan staat er geen waarde.
Onder aan de HTML pagina blijkt een object script te staan waar die informatie kennelijk geladen wordt uit de controller en in de html gezet. Dus moet ik de script volgens mij uitlezen om de waarden uit de tabel te krijgen. Maar dan loop ik vast. Het lijkt erop dat geen mooi JSON format is. Als ik de script als text inlees blijken er 6 scripts te zijn. De eerste begint met function AJAX(e,t) {var....., dus dat lijkt een AJAX functie te zijn. Scripts 2-5 zijn allemaal var's met systeemData, ingangendata, uitgangenData, communicatieData. Het laatste script begint met (()=>let dictionary={.....
Als ik een text dump maak van de scripts staat daar niet de waarde in die ik zoek. Voor bijvoorbeeld de retoursensor staat er wel iets als:
varSet("retSensor",e,"inputs.return.sensor")
Dit staat dus in het laatste script. Die e verwijst dus weer terug naar de AJAX functie, lijkt me.
Maar hier houdt mijn programmeer kunst op. En mijn Google kunst blijkt kennelijk ook niet genoeg.
Wellicht heeft iemand een tip hoe ik verder kan. Laat even weten als je nog wat nodig hebt, ik kan best een screenshot of de inhoud van de scripts laten zien.
Thanks