Monitor prawdopodobieństwa opadów deszczu w Domoticzu.

Na blogu u Cezara wyczytałem swego czasu świetny wpis o zaimplementowaniu w Domoticzu radaru burzowego z serwisu https://burze.dzis.net/. Działa znakomicie.

FireShot Capture 60 - Domoticz - http___91.245.83.80_9009_#_Utility.png

Nie chcąc dublować wpisu postanowiłem poszukać rozwinięcia i ewentualnego uzupełnienia tematu. Znalazłem na forum Domoticza skrypt, który na podstawie danych z http://www.wunderground.com podaje prawdopodobieństwo opadów i w zależności od wyniku ustawia przełącznik w odpowiedniej pozycji. Sprawdzałem kilkanaście dni ( aktualnie u nas co jakiś czas pada ) i działa prawidłowo. Przydaje się do np. do planowania podlewania ogródka.

Sprawa jest bardzo prosta. Tworzymy 3 wirtualne czujniki ( przełącznik prognozowanych opadów w danym dniu,  przełącznik prognozowanych opadów w aktualnej godzinie i kafelek tekstowy z procentowym prawdopodobieństwem opadów ). Skrypt jest napisany w języku dzVents. Jest to kolejna generacja LUA. Swoją drogą bardzo intuicyjny język. Aktualnie trochę się im bawię i jestem pod wrażeniem. Na początku musimy włączyć jego obsługę w Domoticzu. Przechodzimy do /Konfiguracja/Ustawienia/Inne

FireShot Capture 61 - Domoticz - http___91.245.83.80_9009_#_Setup.png

Dobrze jest ustawić poziom zapisywania do logów aby wiedzieć co aktualnie zwraca skrypt. Aby zapobiec błędom w kopiowaniu skryptu na blog proponuje pobrać kod bezpośrednio z forum Domoticza. Wątek jest tu.

Uzupełniamy dane:

FireShot Capture 62 - Domoticz - http___91.245.83.80_9009_#_Events

Najlepiej wkleić poniższy skrypt w kreatorze zdarzeń Domoticza /Konfiguracja/Więcej opcji/Zdarzenia. Nie będzie problemu ze ścieżką dostępu.

FireShot Capture 64 - Domoticz - http___91.245.83.80_9009_#_Events

Wstawiamy nazwę swojej lokalizacji, kraj, klucz API z www.wunderground.com. Jak pobrać klucz pisałem w poście Prognoza pogody z serwisów internetowych w Raspberry Pi i systemie DOMOTICZ. Tworzymy teraz 3 wirtualne czujniki, o których pisałem wcześniej.

Albo nadajemy im nazwy jak w skrypcie, albo własne, pamiętając o aktualizacji skryptu. Ważne, aby sprawdzić poprawność ścieżki do lua.  ( 21 linijka kodu ). Powinno być OK, ale u mnie musiałem poprawić. W linijce 8 kodu ustawiamy odświeżanie ( u mnie co 1 minuta – tak dla testów ). Oczywiście restart i w logach powinniśmy zobaczyć coś takiego. Pamiętamy o zaznaczeniu Event active.

FireShot Capture 63 - Domoticz - http___91.245.83.80_9009_#_Log

Efekt finalny jest taki. W zakładce przełączniki zobaczymy.

FireShot Capture 65 - Domoticz - http___91.245.83.80_9009_#_LightSwitches.png

Natomiast w zakładce /Użytkowe mamy nasz wynik procentowy.

FireShot Capture 66 - Domoticz - http___91.245.83.80_9009_#_Utility.png

 

Jeżeli w Waszej lokalizacji aktualnie nie pada ( jak u mnie ) proponuje znaleźć miasto z opadami i dla testu zmienić w skrypcie.

PS. Ikonki w przełącznikach nie są domyślne. Proponuje poszukać na forum fajnych ikonek np. tu i zaktualizować w przełącznikach.

FireShot Capture 70 - Domoticz - http___91.245.83.80_9009_#_LightSwitches

Wchodzimy w /Konfiguracja/Więcej opcji/Własne ikony wybieramy *.zip i przesyłamy. Możemy już wybierać swoje ikony.

PS2. Jeżeli będzie ktoś miał problemy ze skryptem proszę o info w komentarzach a prześlę mailem.

Teraz oczekiwanie na deszcz nabrało innego sensu 🙂

 

 

Podłączenie czujnika temperatury i wilgotności DHT-11/DHT22 do Raspberry i DOMOTICZA

Znalezione obrazy dla zapytania dht11 dht22

Poniżej przedstawię sposób integracji jednego z bardziej popularnych ( i tanich ) czujników do pomiaru wilgotności powietrza i temperatury w pomieszczeniu ( DHT11 ) oraz na zewnątrz ( DHT22).

Porównanie parametrów czujnika DHT11 i DHT22:

  • Napięcie zasilania: 3 V do 5,5 V / 3,3 V do 6 V
  • Średni pobór prądu: 0,2 mA / 0,2 mA
  • Temperatura
    • Zakres pomiarowy: 0 – 50 °C / -40 do 80 °C
    • Rozdzielczość: 8-bitów (1 °C) / 8-bitów (0,1 °C)
    • Dokładność: 1 °C / ± 0,5 °C
    • Czas odpowiedzi: 6 – 15 s (typowo 10 s) / średnio 2 s
  • Wilgotność:
    • Zakres pomiarowy: 20 – 90 %RH / 0 – 100 % RH
    • Rozdzielczość: 8-bitów (±1 % RH*) / 8-bitów (±0,1 % RH)
    • Dokładność  ±4 RH* (przy 25 °C) / ±2 %RH*
    • Zakres pomiarowy: 6 – 30 s / średnio 2 s

Jak widać powyżej, czujnik DHT22 cechuje się większym zakresem pomiaru oraz dokładnością. Sposób podłączenia i oprogramowanie czujników właściwie się nie różni.

Podłączenie czujników do Raspberry Pi

Znalezione obrazy dla zapytania dht 11 raspberry pi

DHT11 Pinout

źródło : http://domoticx.com

Po zalogowaniu się do DOMOTICZA przez ssh wydajemy kolejno poniższe komendy:

sudo apt-get install git-core

sudo apt-get update
sudo apt-get install -y python3 python3-pip python-dev
sudo pip3 install rpi.gpio
sudo apt-get update
sudo apt-get install build-essential python-dev
sudo git clone git://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

sudo python setup.py install
cd examples
sudo chmod +x AdafruitDHT.py

Po uruchomieniu skryptu poniższa komendą powinniśmy otrzymać wynik pomiaru.
sudo ./AdafruitDHT.py 22 4 ( gdzie 22 to typ czujnika a 4 to pin, do którego jest podłączony )

zrzut ekranu99.png

Jeżeli Raspberry Pi poprawnie odczytuje temperaturę i wilgotność przekazujemy dane do DOMOTICZA.

Dodanie odczytów z czujników DHT11 i DHT22 do DOMOTICZA.

Na początku tworzymy wirtualny czujnik wilgotności i temperatury ( analogicznie jak np. w poście Geolokalizacja w Domoticzu).

zrzut ekranu100.png

Następnie tworzymy skrypt o nazwie np. DHT22 komendą:

sudo nano DHT22.sh

Wklejamy następujący kod:

#!/bin/sh

# Domoticz server
SERVER="192.168.2.21:8080"
# DHT IDX
DHTIDX="21"

# DHTPIN
DHTPIN="4"

sleep 5

sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 $DHTPIN > /var/tmp/temp.txt
#TEMP=$(cat /var/tmp/temp.txt | grep "Temp" | awk '{ print $3 }')
#TEMP=$(cat /var/tmp/temp.txt | grep "Temp")

TEMP=$(awk ' /Temp/ {print substr ($0,6,4)}' /var/tmp/temp.txt)
#HUM=$(awk ' /Hudmidity/ {print substr ($0,0)}' /var/tmp/temp.txt)
#HUM=$(awk ' /Humidity/ {print 1$}' /var/tmp/temp.txt)
HUM=$(awk ' /Humidity/ {print substr ($0,22,4)}' /var/tmp/temp.txt)
echo $TEMP
echo $HUM

# Send data
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&c=getauth&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"


TEMP=""
HUM=""

Nadajemy uprawnienia dla pliku:

sudo chmod +x DHT22.sh

i dodajemy wpis do crona, aby otrzymywać odczyty w zadanym interwale czasu ( analogicznie jak we wpisie Czujnik deszczu w Domoticzu ).

Efekt końcowy powinien być mniej więcej taki.

zrzut-ekranu101

Podsumowując. Bardzo polecam te czujniki. Ich cena na Aliexpress to tylko ok. $ 0,80. Są w miarę dokładne i stabilne. Przy tej cenie i wykorzystaniu Pi ZERO możemy stworzyć tani, bezprzewodowy czujnik o praktycznie nieograniczonych możliwościach zastosowania.

your code here