[Linux-Biella] arduino e html parsing
Leonardo
leonardo.buffa a bilug.it
Ven 8 Feb 2019 09:26:42 CET
ciao
sto cercando di fare un telecomando secondario per l'antifurto che posso
pilotare via http
la parte incriminata del codice HTTP che gira sull'antifurto e' la seguente:
---------------
<fieldset>
<legend>Stato sistema</legend>
<div class="ctr"><span>Arma/Disarma sistema</span>:
<select id="SysCtr" style="width:120px;" name="SysCtr"
onchange="CtrlPartSubmit('Ctrl','SysCtr')">
<option value="1" selected="selected">Arma</option>
<option value="2" >Parziale</option>
<option value="3" >Disarma</option>
<option value="4">Cancella allarme</option>
</select>
</div>
</fieldset>
-------------------
necessito quindi di
- poter leggere lo stato dell'antifurto (armato, parziale, disarmato)
che normalmente leggo in python in questo modo:
page = requests.get(url,auth=requests.auth.HTTPBasicAuth(username,
password))
tree = html.fromstring(page.content)
Status = tree.xpath('//select/option[@selected]/text()')[0]
dove Status assume il valore impostato in selected
- poter cambiare lo stato dell'antifurto conm cosa che con python faccio
in questo modo:
r = requests.post(url, data={'Ctrl':Command, 'BypassNum':"00",
'BypassOpt':"0"},auth=requests.auth.HTTPBasicAuth(username, password))
print(r.status_code)
anche qui ho: 1 arma, 2 parziale, 3 disarma
vorrei riuscire a replicare la cosa con un ESP8266 quindi Arduino... ho
provato a fare un po' di tentativi ma non ci sono riuscito.. qualcuno ha
qualche idea?
attualmente sto usando solo le librerie ESP8266HTTPClient.h e ovviamente
ESP8266WiFi.h
PS: molto teoricamente potrei fare un parsing con un simil "grep
selected -tail -n 1 (la pagina e' piu' complessa e ha piu' selected) con
il comando:
grep selected RemoteCtr.htm |head -n 1
otterrei:
<option value="1" selected="selected">Arma</option>
che poi posso ulteriormente parsare ed estrarre la voce "Arma" pero' se
ci fosse qualcosa di meglio preferirei
Maggiori informazioni sulla lista
Linux