Połączenie Domoticza z asystentem google po IFTT z użyciem PUSHBULLET

Bezpieczna komunikacja Domoticza z asystentem głosowym bez otwierania portów na routerze.
Autor i jego opis po Angielsku – Joe-houghton


Do całego procesu potrzebujemy bezpieczne źródło, które umożliwi nam komunikacje. W moim wypadku będzie to Pushbullet:

Instalujemy na naszym domoticzu Pythona jeżeli go jeszcze nie masz:

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7

Instalujemy:

sudo apt-get install python-pip git

Teraz pip jest zainstalowany, zainstalujmy bibliotekę Pushbullet.py (użycie pip automatycznie instaluje wszystkie wymagane biblioteki):

sudo pip install pushbullet.py

Teraz skopiujmy ten projekt, gotowy do konfiguracji:

cd ~/
mkdir scripts
cd scripts
git clone https://github.com/Joe-houghton/PushBulletDomoticz.git

Wejdź na https://www.pushbullet.com/ i utwórz konto, jeśli masz już konto, sugeruję utworzenie nowego, aby nie otrzymywać powiadomień za każdym razem, gdy chcesz włączyć światła

Teraz przejdź do https://www.pushbullet.com/#settings i kliknij Utwórz token dostępu . Zapisz ten token, będziesz go potrzebować później.

Skonfiguruj ustawienia, edytując plik:

nano ~/scripts/PushBulletDomoticz/PBDomoticz.py

Wypełnij sekcję konfiguracji swoimi danymi (pomiędzy #CONFIG START a #CONFIG END Wklej swój token dostępu ze strony pushbullet w API_KEY Wypełnij swoją nazwę użytkownika i hasło Domoticz oraz adres IP lub adres (w tym port) np. 192.168.0.100:8080

Sprawdź, czy wszystko działa:

W konsoli putty wklej:

python /home/pi/scripts/PushBulletDomoticz/PBDomoticz.py

Następnie w Pushbullet:

#command On Idx

Przykład #command On 31
żeby wyłączyć:
#command off 31

Jeżeli wszystko działo możemy w konsoli wpisać polecenie, żeby zawsze nam uruchamiało skrypt do komunikacji z pushbullet.

Otwórz:

mkdir -p /home/pi/logs
sudo nano /etc/rc.local

Na końcu przed exit 0 wklej:

python /home/pi/scripts/PushBulletDomoticz/PBDomoticz.py  > /home/pi/logs/pushbullet.log 2>&1

Shelly 2.5 domoticz podłączenie

Shelly 2,5 to urządzenie które można użyć do różnych rzeczy, ale jest wręcz idealne do rolet zewnętrznych, gdzie jest w stanie zmierzyć czas przejazdu rolety z góry na dół i z dołu do góry.  Pokazuje dodatkowo prąd pobierany przez rolety. Oficjalne oprogramowanie współpracuje z MQTT czyli w łatwy sposób możemy go zintegrować z naszym domoticzem, musimy tylko zainstalować plugin i dodać komunikacje do plugina z MQTT. W swoim projekcie do komunikacji po MQTT używam mosquitto.

Przechodzimy do folderu z pluginami w domoticz:

cd domoticz/plugins

i z github-a kopiujemy zawartość:

git clone https://github.com/enesbcs/Shelly_MQTT.git

wychodzimy z folderu:

cd

Restartujemy domoticza komendą

sudo /etc/init.d/domoticz.sh restart

jeżeli  się nie pojawi (w zakładce sprzęt Shell MQTT) to:

sudo systemctl restart domoticz.service

 

W przypadku gdyby dalej się nie pojawiło wgrywamy python3:

sudo apt-get install -y python3
sudo apt-get install -y python3-dev
2
Jeżeli wszystko jest w porządku znajdziemy w zakładce sprzęt >>> Typ  urządzenia Shelly MQTT.
Nazwa: Dowolna
MQTT Server address: 127.0.0.1 (jest to lokalny adres), lub wpisujemy ip urządzenia gdzie jest zainstalowane mqtt
Port: 1883
Użytkownik: taki jak podaliśmy podczas instalowania mosquitto
Hasło: taki jak podaliśmy podczas instalowania mosquitto
1
Wchodzimy na adres ip naszego shelly. Można go sprawdzić w naszym routerze, jaki adres został mu przydzielony, lub zanim urządzenie zostanie dodane do naszej sieci i mamy z nim bezpośrednie podłączenie to wchodząc na adres naszego urządzenia 192.168.33.1 możemy ustawić mu stały adres ip i połączenie z siecią bezprzewodową.
Warto zmienić ustawienia że będzie to przełącznik do rolet i dodatkowo wykonać na nim przejazd który zdefiniuje ile trwa przejazd w dół i górę.

Najważniejszą natomiast zmianę robimy w zakładce ADVANCED – DEVELOPER SETTINGS – jak sama nazwa wskazuje nie znajdziemy jej w zakładce Setings tylko w zakładce Internet & Security. Tutaj ustawiamy:

Username: taki jak podaliśmy podczas instalowania mosquitto
Password: taki jak podaliśmy podczas instalowania mosquitto
Server: 192.168.X.XXX:1883
Save– Zapisujemy zmiany
Po wprowadzeniu wszystkiego w naszym domoticzu w zakładce przekaźniki pokażą się 2 przekaźniki jeden z roletami (góra-dół i potencjometr), a drugi (góra dół i stop). To jest chyba największa wada, że te 2 przyciski nie są razem połączone bo albo mamy możliwość sterowania przyciskami góra dół i ręcznie zatrzymywania albo sami wyznaczamy ile ma zjechać w górę lub dół i się zatrzymać.

Rolety zewnętrzne pod domoticz esp8266

Ze względu na daleką odległość od routera zrobiłem własne sterowanie roletami używając esp8266. Standardowo wgrywam espeasy na esp8266. Komunikacje wybieram po MQTT ze względu na szybkość w działaniu. Tak jak wspomniałem odległość jest spora od routera komórka wykrywa mi jedną kreskę zasięgu i podobnie jest z samym esp8266 dlatego po włożeniu do ściany nie ma  w ogóle zasięgu. Wykorzystałem esp8266 z anteną zewnętrzną trzeba tu tylko pamiętać o tym że na samym esp8266 w takim wypadku trzeba przylutować rezystor 0 z pozycji pionowej na poziomą. Dopiero po takim przylutowaniu działa antena zewnętrzna. Schemat podłączenia:

pctdetail.775-052.1

Całe esp8266 montuje na płytce prototypowej. Warto w tym projekcie zastosować zabezpieczenie przed samym zasilaczem 5v, ale również na przełącznik elektromagnetycznych relay. Próbowałem podłączyć to na SSR, ale mają za mało A i się przepalały bezpieczniki fabrycznie zamontowane.

Film:

Zasilacz do 5v lub 3v dopuszkowy

Wybór zasilacza to ważna sprawa bo przecież chodzi o bezpieczeństwo. W dodatku w starym budownictwie będziemy musieli mieć sporo takich zasilaczy, bo przewody nie gromadzą się w jednym miejscu tylko jest ogólny system z puszkami. Przy wyborze zasilacza warto się skupić głównie na bezpieczeństwie, a potem dopiero na parametrach. Do zasilania esp8266 nie potrzebujemy zbyt dużo prądu więc spokojnie wystarczą nam zasilacze które prezentuje w filmie.

Linki do aliexpress

link

link do producenta

Pamiętajcie również o tym, że większość producentów tych małych zasilaczy podaje, że od strony prądu zmiennego muszą być zabezpieczenia. Warto na to zwracać uwagę i stosować.

Producenci też podają ile godzin będzie działać taki zasilacz bez problemów  z tego co przeliczyłem na dni to są 4 dni. Wystarczy restart i powinno wrócić do normy, ale u mnie działają znacznie dłużej bez żadnych problemów.

film:

 

Domoticz Gniazdko sterowane z domoticza + czujnik temperatury i wilgotności

W salonie robiłem instalacje pod oświetlenie opisywałem ją tutaj W tym przypadku niestety nie zostały mi już wolne piny które mógł bym wykorzystać, a chciałem dodatkowo zrobić gniazdko sterowane przez domoticza, ale również, żeby sprawdzać w salonie jaka jest temperatura i wilgotność. W naszym domoticzu jeszcze nie robiłem gniazdek sterowanych przez domoticz, ale po zrobieniu jednego zauważyłem zalety takiego rozwiązania. Poniżej prezentuje swoje podłączenie:

664c2bc64e4e9906a598b90dc4c4

esp8266 wemos i do niego podłączamy bmp280 robimy wyprowadzenie do ssr do którego podłączamy gniazdko.

Film:

Sonoff POW R2 + Flash + oszczędzanie energi.

Sonoff POW R2- jest wersją, która dodatkowo mierzy przepływający prąd.

Sonoff POW R2 + Flash + oszczędzanie energi.

Do wgrania oprogramowania będziemy potrzebowali:

Tasmota… 
EasyESP… 
Termite… 

jeżeli chodzi o urządzenie którym można załadować oprogramowanie na naszego sonoff:

Link do aukcji  (wybierając pamiętaj o tym, że zasilanie jest 3,3v)

Link do sonoff pow R2

Teraz musimy przystąpić do przylutowania pinów do naszego sonoffa, a jeżeli nie mamy pinów warto je kupić. Piny ułatwią nam flash i nie są drogie, a bardzo wygodne w użytkowaniu.

IMG_20190519_225037.jpg

TTL>>SONOFF POW R2

3,3v>>3,3v
gnd>>GND
TX>>RX
RX>>TX

Przy podłączaniu USB TTL do komputera musi być wciśnięty przycisk na sonoff. Wciśnięcie tego przycisku spowoduje przełączenie sonoffa w tryb flash (ten tryb łatwo rozpoznać, bo na sonoffie nie będzie migać żadne światełko). W folderze, gdzie jest program do flash espeasy wrzucamy plik z tasmota (.bin).

Kolejno po wgraniu musimy go wypiąć z usb i wpiąć ponownie, ale tym razem już na sonofie nie naciskamy przycisku (światełko na sonofie miga zielone). Tym razem uruchamiamy termite (taki terminal gdzie ustawimy stały adres ip i zmusimy naszego sonoffa do połączenia z siecią bezprzewodową)

Wpisujemy kolejno komendy:

ssid1 nazwa_wifi
password hasło_do_wifi
IPAddress1 192.xxx.xxx.xxx (nadajesz stały adres ip do sonoffa)
IPAddress2 192.xxx.xxx.xxx (adres ip routera)
IPAddress3 255.255.255.0 (maska twojej sieci)
restart- przeładowanie sonoffa

Konfiguracja oszczędzania energii poprzez domoticz

Gdy mamy wszystko zrobione musimy w naszym sonoff Pow R2 ustawić, że jest to wersja sonoffa Pow R2:

d1-r2-wifi-esp8266-zgodny-z-wemos-i-arduino - Copy - Copy

Po zaznaczeniu na głównej stronie widzimy ile prądu pobierają urządzenia podłączone do sonoffa.

d1-r2-wifi-esp8266-zgodny-z-wemos-i-arduino - Copy

W naszym sonoffie musimy ustawić idx od przełącznika oraz moc, energia. można również eksportować do naszego domoticza inne parametry np „A”.

d1-r2-wifi-esp8266-zgodny-z-wemos-i-arduino - Copy - Copy - Copy

Tworzymy zmienną użytkownika (jest to wirtualny zmienna którą ustawiamy w blocky) zmiena jest całościową np: 0,1,2,3,4,5,6,7,8… zmiene całościowe nie ma to znaczenia, ale my będziemy zmieniali z 0 na 1 i na odwrót.

d1-r2-wifi-esp8266-zgodny-z-wemos-i-arduino - Copy - Copy - Copy - Copy

Naszą zmienną użytkownika będziemy uruchamiać na 1 w momencie kiedy:  prąd do telewizora = On AND Telewizor (jest to  zmienna użytkownia) (tutaj jest funkcja jeżeli zmienna nie jest (1)) to zmień Telewizor na (1) po 60s.

d1-r2-wifi-esp8266-zgodny-z-wemos-i-arduino

Kolejne blocky zadbają o to żeby wyłączyć nasz telewizor w momencie kiedy z niego nie korzystamy:69b9aad94419bef16cbd1f581e96
Zmienna użytkownika jest stworzona tylko po to żeby po minucie wykonały się te drugie blocky, bo jeżeli wykonały by się od razu to nasz telewizor wyłączył by się pominucie, a tak mamy czas na to żeby uruchomić telewizor po uruchomieniu nie wyłączy się. W momencie kiedy wyłączymy telewizor i zostaną spełnione warunki z tych 2 blocky to telewizor się wyłączy po 1 minucie…

Oświetlenie salonu – domoticz

W Salonie zrobiłem sufit podwieszany żeby zamieścić w nim oświetlenie ledowe i do tego tradycyjne oświetlenie punktowe..

Tak wygląda światło punktowe działa ono na 230v i daje ciepła barwę ciepła. Podwieszenie do oświetlenia wykonałem na profilach aluminiowych całość wygipsowałem wykończenie zrobiłem z narożników budowlanych tak by były ładne kąty. Jeżeli chodzi o oświetlenie ledowe to kupiłem taśmy ledowe i profile najtańsze razem z kloszem rozpraszającym.

Paski ledowe robiłem w całości nie łączyłem ich ale musiałem połączyć profile przyklejałem je do takiej blaszki co później dało możliwość regulacji oświetlenia (ustawianie pod różnym kątem).

Oświetlenie ledowe może świecić. Z przodu i z tyłu a że taki sufit tworzy literę „L” to w sumie jest 4 niezależne paski LED które będą świecić.

Zdjęcie jeszcze podczas remontu, ale widać na niej najważniejsza rzecz czyli słupek który jest z półkami. Służy on jako miejsce gdzie przeprowadzone są wszystkie przewody dodatkowo jako element dekoracyjny. Do tych półek dorobiłem z drewna:

Całość jest z sklejki pomalowanej po bokach na biało a z góry oklejone. W środku jest dużo miejsca na przewody i cały system sterujący. System ESP easy będę łączyć z domoticzem. W projekcie wykorzystałem na początku D1 R1 wemos, ale okazało się że tylko z 2 piny w nim działają prawidłowo. Zacząłem szukać informacji i udało mi się wyszukać informacje, że nie jest wspierany D1 R1, ale za to jest wsparcie dla D1 R2 no tego modelu akurat nie miałem, więc wykorzystałem nodemcu V3 i chyba z esp8266 posiada najszersze wsparcie do podłączenia pod piny.

Do naszego nodemcu przerobiłem płytkę prototypową tak żeby można było w łatwy sposób przykręcać przewody. Niestety wyprowadzenia z wemos, czy nodemcu mają bardzo ciasno ustawione piny więc trzeba tak jak na zdjęciu połączenia śrubowe po prawej stronie umieścić, a piny które są pomiędzy przeniosłem na lewą stronę wyciągając je przewodami.

Do tego projektu wykorzystamy przekaźniki elektromagnetyczne oraz SSR. W przekaźnikach elektromagnetycznych podłączam 12v a w SSR 230v.

Kable zasilające 12v spinam razem, a przewody dostarczające prąd 5v od nodemcu przesyłam cienkimi przewodami bo jest to w zupełności wystarczające jedynie stałe zasilanie przekaźnika zasiliłem grubszymi przewodami.

W moim przypadku jest stałe zasilanie 12v podprowadzone to z niego jest zasilany ESP SSR i przekaźniki ale jak wiecie to nasze nodemcu przekaźniki SSR i elektromagnetyczne, są zasilane napięciem 5v a my mamy 12v więc step down obniżamy napięcie do 5v. W naszym systemie będziemy musieli musieć dostarczyć 12v do przekaźnika elektromagnetycznego przewód + a minus bezpośrednio do taśm ledowych. Natomiast 230v doprowadzamy do SSR fazę bezpośrednio do SSR a przewód neutralny do oświetlenia punktowego. Reszta podłączenia jest zgodnie z schematem powyżej.

Kontakt w salonie jest na 3 przyciski fizyczne które zmieniamy na przyciski dzwonkowe ja to robię w prosty sposób dodając sprężynkę do przełączników. Tak przygotowany przełączniki podłączymy pod ESP easy z esp8266 wemos wyciągniemy ground i podpinamy pod przełączniki a wyjścia z przełączników do espeasy w kontakcie podłączamy również główna lampę, a dodatkowo dwa przyciski skonfigurujemy w domoticzu pod uruchamianie naszych świateł punktowych.

Do tego jak widzicie również zrobiłem płytkę prototypową do której wybudowałem step down i obniżamy napięcie z 12v do 5v zasilając pojedynczego SSR oraz wemos.

 

bmp280 esp8266 konfiguracja pod esp easy po i2c

Czujnik bmp280 potrafi podać nam temperaturę, wilgotność i ciśnienie. Zacząłem na początku te czujniki używać, żeby na bieżąco kontrolować temperaturę + wilgotność. Moduł ten działa po i2c i jest bardzo prosty do podłączenia. Zasilanie w nim jest z 3,3v podłączamy również pod gnd oraz łączymy D1 łączmy z SCL… D2 łączymy z SDA i to tak naprawdę tyle  jeżeli chodzi o podłączenie. W swoich projektach obecnie wykorzystuje coraz częściej płytki prototypowe, bo zapewniają stabilność w podłączeniach i dużą mobilność w przypadku konieczności wymiany elementów.

IMG_20190421_020507

W moim przypadku poprowadziłem przewody tak jak opisałem wyżej i tylko do tego odsunąłem również ten moduł od samego esp8266 żeby nie grzał od niego.

IMG_20190421_020459

a tak wygląda całośc z góry tak jak mówiłem jest tutaj możliwość wypięcia esp8266 jak i również bmp280 możemy usunąć w każdej chwili.

Sonoff rf r2 power v1.0 8285 – flash

sonoff rf r2 power v1.0 8285 – jest wersją do której możemy wgrać oprogramowanie esp easy, tasmota lub supla. Wszystkie te oprogramowania są kompatybilne z tym sonoffem jak i również z starszą wersją opartą o esp8266.

Do wgrania oprogramowania będziemy potrzebowali:

Tasmota… 
EasyESP… 
Termite… 

jeżeli chodzi o urządzenie którym można załadować oprogramowanie na naszego sonoff:

Link do aukcji  (wybierając pamiętaj o tym, że zasilanie jest 3,3v)

Teraz musimy przystąpić do przylutowania pinów do naszego sonoffa, a jeżeli nie mamy pinów warto je kupić. Piny ułatwią nam flash i nie są drogie, a bardzo wygodne w użytkowaniu.
IMG_20190329_123521
Wersja którą tutaj mam to ta z tytułu tego posta, różni się tym od swojej poprzedniczki, że ma przewody przeprowadzające 230v z jednej strony na drugą przewodami, ale również zamiast esp 8266 jest esp 8285 i piny gdzie będziemy lutować są opisane z drugiej strony sonoff.
IMG_20190329_123453

Piny lutujemy z drugiej strony i tak żeby z góry się wtykało piny, bo jak przylutujemy z tej strony to nie włożymy naszego sonoffa z powrotem do obudowy. Po przylutowaniu pinów musimy zrobić następujące połączenie

TTL>>SONOFF

3,3v>>3,3v
gnd>>GND
TX>>RX
RX>>TX

Przy podłączaniu USB TTL do komputera musi być wciśnięty przycisk na sonoff. Wciśnięcie tego przycisku spowoduje przełączenie sonoffa w tryb flash (ten tryb łatwo rozpoznać, bo na sonoffie nie będzie migać żadne światełko). W folderze, gdzie jest program do flash espeasy wrzucamy plik z tasmota (.bin).

zdjecie

Kolejno po wgraniu musimy go wypiąć z usb i wpiąć ponownie, ale tym razem już na sonofie nie naciskamy przycisku (światełko na sonofie miga zielone). Tym razem uruchamiamy termite (taki terminal gdzie ustawimy stały adres ip i zmusimy naszego sonoffa do połączenia z siecią bezprzewodową)

zdjęcie

Wpisujemy kolejno komendy:

ssid1 nazwa_wifi
password hasło_do_wifi
IPAddress1 192.xxx.xxx.xxx (nadajesz stały adres ip do sonoffa)
IPAddress2 192.xxx.xxx.xxx (adres ip routera)
IPAddress3 255.255.255.0 (maska twojej sieci)
restart- przeładowanie sonoffa