Domoticz - pobieran...
 
Notifications
Clear all

Domoticz - pobieranie danych z inwertera Afore po sieci lokalnej  

  RSS
pawel787
(@pawel787)
Nowy

Witam wszystkich,

Jakiś czas temu zainstalowałem u siebie instalację fotowoltaiczną i niestety nie miałem wielkiego wyboru w zakresie inwertera. Finalnie skończyło się na Afore, który nie pozwala w łatwy sposób zintegrowac go z Domoticzem. Finalnie udało mi się przerobić znaleziony gdzieś w sieci skrypt wykorzystjący wbudowane w shell narzędzia do analizy tekstu, tak aby pobierał z lokalnej strony www inwertera aktulną moc produkcji i przesyłał ją do Domoticza. Działa to już od jakiegoś czasu bez problemu, więc chętnie podzielę się tym rozwiązaniem. Mnie osobiście  zajęło to trochę czasu, a posiadaczy tego inwertera jest pewnie w Polsce więcej 🙂

 

Skrypt jest napisany w shellu (Raspberry PI)

W załączonym skrypcie trzeba wprowadzić swoje adresy w sieci lokalnej: inwertera, domoticza, hasło do inwertera jeśli inne niż admin oraz numer czujnika w domoticzu, który ma być aktualizowany.

 

Skrypt najlepiej umieścić w domyślnym katalogu:

/home/pi/domoticz/scripts

 

Aby skrypt wykonywał się automatycznie (co 30 sekund), wpisujemy:

 

crontab -e

 

i dodajemy ścieżkę:

* * * * * /bin/bash -l -c "/home/pi/domoticz/scripts/Afore.sh; sleep 30 ; /home/pi/domoticz/scripts/Afore.sh"

 

I to tyle, powinno działać 🙂

Skrypt można jeszcze rozszerzyć o pobieranie pozostałych danych dostępnych na stronie, ale według mnie nie ma to większego sensu. Osobiście używam zliczanie produkcji dziennej w domoticzu jako "computed". Działa to bardzo dobrze (różnice w stosunku do danych z inwertera są kosmetyczne), a jak brałem z urządzenia to zdarzało się że domoticz dodawał produkcję z dnia poprzeniego przy zanikach zasilania.

 

Mam nadzięję że komuś się przyda.

 

 

Edit: Nie udało misię dołączyć pliku ze skryptem, więc wklejam:

#!/usr/bin/env bash

username=admin
password=admin #Your admin password if different than default
inverter=192.168.1.20 # Change to your inverter's IP/hostname
curlOpts="-s -o - --user ${username}:${password}"

poll(){
curl ${curlOpts} http://${inverter}/status.html 2>&1 |\
egrep '^var webdata_(now)' |\
sed 's/var webdata_//' |\
sed 's/[^0-9]//g' |\
sed 's/\r$//g'
}

output=$(poll)
if [[ ! -z "${output}" ]]; then
echo -e "${output}"
curl -s --connect-timeout 2 --max-time 5 "http://IP_OF_Domoticz:8080/json.htm?type=command&param=udevice&idx=YOUR_IDX&nvalue=0&svalue=$output" #YOUR_IDX is your device number in Domoticz; IP_OF_Domoticz is your Domoticz address, change 8080 port if different
else
echo "FAIL"
fi

 

Plik należy nazwać Afore.sh, aby działał wpis do crona.

Cytuj
Dodane : 13/02/2020 4:39 pm
WaldekGR polubień
Tagi tematu
Udostępnij: