SUPLA Filesensors - odczyt danych z API XML/HTML

szym3k
Posts: 270
Joined: Mon May 15, 2017 10:32 am

Post

PuteR wrote: Mon Feb 03, 2020 8:45 pm mogę wyciągnąć temperaturę pieca ze swojego sterownika wpisując w przeglądarkę

Code: Select all

http://192.168.1.47/getregister.cgi?device=0&tkot_value
a w odpowiedzi otrzymuję coś takiego

Code: Select all

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cmd status="ok">
<device id="0">
<reg vid="0" tid="tkot_value" v="64.45" min="-50.00" max="120.00"/>
</device>
</cmd>
64.45 to temperatura pieca
Czy da się to jakoś wykorzystać aby co jakiś czas wysyłać to zapytanie i zapisywać w pliku?? A następnie wysyłać do supli??
Da się już zrobiłem integrację, postaram się za chwilę opisać i edytować post. Rozumiem, że sterownik bruli 😂

MOD: wątek wydzielony z tematu: viewtopic.php?f=24&t=6064&p=60834#p60834
User avatar
PuteR
Posts: 1473
Joined: Wed Dec 06, 2017 10:07 am

Post

szym3k super jak by się udało mój sterownik to akurat ecol 3.5
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Zainstaluj pupa wg https://github.com/fracz/supla-filesens ... -xml-pages

I to Twoje powinieneś wybrać za pomocą:

Code: Select all

curl -s 'http://192.168.1.47/getregister.cgi?device=0&tkot_value' | pup 'reg attr{v}'
User avatar
PuteR
Posts: 1473
Joined: Wed Dec 06, 2017 10:07 am

Post

widzę światełko w tunelu ale chyba potrzebuję troszkę więcej pomocy :| jak zainstalować tego pup, nie wiem co tam pobrać i jak zainstalować żeby to działało na RPI.
szym3k
Posts: 270
Joined: Mon May 15, 2017 10:32 am

Post

Sposób fracza też powinien działać, ja to rozwiązałem tak

zainstaluj pakiet
http://xmlsoft.org/xmllint.html

debian/ ubuntu:
powinno działać (nie sprawdzałem używam alpine):

Code: Select all

sudo apt install libxml2-utils
alpine linux:

Code: Select all

apk add libxml2-utils
utworzyłem sobie "skrypt" w katalogu supla-filesensors o nazwie 'temp.sh' i zawartości

Code: Select all

 
 #!/bin/sh

curl -u root:root "http://192.168.XX.XX/getregister.cgi?device=0&tzew_value" --silent --show-error --location | xmllint --xpath "string(//cmd/device/reg /@v)" - > /home/supla/supla-filesensors/temp_zewnetrzna.txt
dodajemy uprawienia

Code: Select all

chmod +x /home/supla/supla-filesensors/temp.sh
dodałem do crona
w przypadku debiana/ubuntu powinno działać (1 minuta)

Code: Select all

* * * * * /home/supla/supla-filesensors/temp.sh
w przypadku alpine wydajemy polecenie

Code: Select all

crontab -e 
i dodajemy linie w vi uprzednio wciskając klawisz 'a'

Code: Select all

*       *       *       *       *       sh /home/supla/supla-filesensors/temp.sh

Inne wartości dla crontaba wygenerujemy sobie tutaj: https://crontab.guru/

Uwagi: w link w skrypcie za przełącznikiem - u musimy wpisać swój login i hasło do logowania do sterownika oraz oczywiście poprawić IP
Po zmiane wartości w curlu możemy spokojnie odpytywać inne dane, możemy się zapytać o:
http://192.168.XX.XX/getregister.cgi?de ... fuel_level

tkot_value temperatura zasilania (temperatura na kotle)
tpow_value temperatura powrotu
tpod_value temperatura podajnika
tcwu_value temperatura ciepłej wody użytkowej
twew_value temperatura wewnętrzna
tzew_value temperatura zewnętrzna
t1_value temperatura czujnika dodatkowego nr 1
t2_value temperatura czujnika dodatkowego nr 2
tsp_value temperatura spalin
fuel_level poziom paliwa
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Dodałem dokładniejsze instrukcje instalacji pupa: https://github.com/fracz/supla-filesens ... -xml-pages

W połączeniu z instrukcjami od szym3k (lub korzystając tylko z nich) powinieneś sobie poradzić :-)
szym3k
Posts: 270
Joined: Mon May 15, 2017 10:32 am

Post

fracz wrote: Mon Feb 03, 2020 7:55 pm
szym3k wrote: Mon Feb 03, 2020 6:07 pm Zainstalowałem temat na alpine linux (jako VM).
Ale to jako VM pod jaki system? Da się to jakoś udostępniać?

Myślałem czy tego też nie wrzucić w Dockera, bo spokojnie by się dało. Ale teraz też istalacja sprwoadza się do 2 komend więc nie widziałem sensu.
mam w domu serwer z ESXi, więc łatwiej mi postawić VM z alpine i nie muszę kombinować z NATem w kontenerach. Mogę udostępnić gotowy obraz dysku jeśli by ktoś chciał, ale instalacja jest na tyle prosta, że chyba nie ma takiej potrzeby, a lubię mieć porządek - chyba zboczenie z pracy z wydzielaniem wszystkich usług :lol:
User avatar
PuteR
Posts: 1473
Joined: Wed Dec 06, 2017 10:07 am

Post

zrobiłem według instrukcji szym3k skrypt utworzony, dodane do crontab, utworzyłem ręcznie wewnątrz katalogu supla-filesensors/var plik temp_zewnetrzna.txt ale nic do niego nie wysyła. Kanał też dodałem w supla-filesensors.cfg. Oczywiście dane postawiłem swoje login, hasło, IP. Nie wiem gdzie popełniam błąd.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Zanim dodasz komendę do crontaba i zrzucisz jej wynik do pliku sprawdź, czy działa "tak po prostu" w konsoli ;-) Jeśli nie zadziała - wtedy pewnie zobaczysz w czym jest problem.
szym3k
Posts: 270
Joined: Mon May 15, 2017 10:32 am

Post

Spróbuj najpierw w konsoli wpisać

Code: Select all

curl -u root:root "http://192.168.XX.XX/getregister.cgi?device=0&tzew_value" --silent --show-error --location | xmllint --xpath "string(//cmd/device/reg/@v)" -
i zobacz czy konsola "wypluwa" dane, powinno wyglądać to tak:

Image

Return to “Pomoc”