SUPLA Filesensors - odczyt danych z API XML/HTML

szym3k
Posty: 193
Rejestracja: pn maja 15, 2017 10:32 am

pn lut 03, 2020 10:02 pm

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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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
Awatar użytkownika
PuteR
Posty: 818
Rejestracja: śr gru 06, 2017 10:07 am

pn lut 03, 2020 10:07 pm

szym3k super jak by się udało mój sterownik to akurat ecol 3.5
Awatar użytkownika
fracz
Posty: 1834
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

pn lut 03, 2020 10:34 pm

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

I to Twoje powinieneś wybrać za pomocą:

Kod: Zaznacz cały

curl -s 'http://192.168.1.47/getregister.cgi?device=0&tkot_value' | pup 'reg attr{v}'
Awatar użytkownika
PuteR
Posty: 818
Rejestracja: śr gru 06, 2017 10:07 am

pn lut 03, 2020 10:50 pm

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
Posty: 193
Rejestracja: pn maja 15, 2017 10:32 am

pn lut 03, 2020 10:58 pm

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):

Kod: Zaznacz cały

sudo apt install libxml2-utils
alpine linux:

Kod: Zaznacz cały

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

Kod: Zaznacz cały

 
 #!/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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

*       *       *       *       *       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
Awatar użytkownika
fracz
Posty: 1834
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

pn lut 03, 2020 11:11 pm

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
Posty: 193
Rejestracja: pn maja 15, 2017 10:32 am

pn lut 03, 2020 11:42 pm

fracz pisze:
pn lut 03, 2020 7:55 pm
szym3k pisze:
pn lut 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:
Awatar użytkownika
PuteR
Posty: 818
Rejestracja: śr gru 06, 2017 10:07 am

pn lut 03, 2020 11:43 pm

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.
Awatar użytkownika
fracz
Posty: 1834
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

pn lut 03, 2020 11:45 pm

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
Posty: 193
Rejestracja: pn maja 15, 2017 10:32 am

pn lut 03, 2020 11:52 pm

Spróbuj najpierw w konsoli wpisać

Kod: Zaznacz cały

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:

Obrazek
ODPOWIEDZ

Wróć do „Pomoc”