Udostępniam kolejną wersję AFE Firmware - typ T5. Główne cechy AFE Firmware T5 to:
- współpraca z sterownikiem bramy wjazdowej (drzwi garażowych itp.) poprzez wysyłanie impulsu do sterownika bramy, który uruchamia silnik, czyli powoduje otwieranie / zamykanie bramy
- informowanie, czy brama jest otwarta / zamknięta dzięki zastosowaniu czujników magnetycznych, kontaktronów lub wyłączników krańcowych w zależności co jest podłączone.
- dodatkowo obsługuje czujnik temperatury / wilgotności DHxx
Sprzęt obsługiwany przez ten firmware
- Chip ESP8266 lub ESP8285
- 1 Przekaźnik
- Do 3 Diod LED
- Do 2 Przycisków / Włączników
- Do 2 Czujników magnetycznych / kontaktronów
Wyjście z przekaźnika należy podłączyć do sterownika bramy. Powoduje on chwilowe zwarcie, czyli efekt wciśnięcia przycisku. Czas zwarcia ustawia się w zakresie od 1 milisekundy do 2 sekund
Jedna dioda LED może być wykorzystywana do informowania o stanie i zdarzeniach w urządzeniu, np. łączenie się z siecią WiFi, odebraniem komendy itp. Pozostałe dwie diody można przypisać do czujników magnetycznych. Świecenie diod informuje o stanie czujników magnetycznych, kontaktronów lub wyłączników krańcowych.
Wspomniane czujniki magnetyczne wykorzystywane są do informowania, czy brama/drzwi są otwarte lub zamknięte.
- Przy jednym czujniku magnetycznym będziemy poinformowani o dwóch stanach bramy: otwarta, zamknięta. Nie będziemy wiedzieli, czy brama jest częściowo otwarta lub całkowicie otwarta (przy zamontowaniu czujnika na zamknięciu bramy)
- Przy zamontowaniu dwóch czujników; jednego przy całkowitym zamknięciu bramy, a drugiego otwarciu, będziemy wiedzieć, czy brama jest: całkowicie otwarta, częściowo otwarta lub zamknięta.
- Gdy nie będą zainstalowane czujniki magnetyczne, to nie będziemy wiedzieć w jakim położeniu jest brama
Do urządzenia można podłączyć dwa przyciski, które wykorzystywane są do sterowania urządzeniem i/lub sterowania bramą.
Informacja: czujnik magnetyczny, kontaktron, czy wyłącznik krańcowy mają taką samą funkcjonalność, czyli zamykają lub przerywają obwód (płynie lub nie płynie przez nie prąd). Te elementy mają też taką samą funkcję w kontekście tego oprogramowania: informują, czy brama jest otwarta lub zamknięta. W dalszej części dokumentacji będę pisał tylko o czujnikach magnetycznych, przy czym informacje odnoszą się do tych 3 elementów.
Uwaga: O ile to oprogramowanie można wgrać np. do Sonoff'a Basic, to nie można takiego Sonoff'a podłączyć bezpośrednio do sterownika bramy. Na wyjściu Sonoff'a jest 230V; puszczenie 230V na sterownik bramy spowoduje jego spalenie, pożar itp. Tutaj jest propozycja, jak można takiego Sonoff'a przerobić. Natomiast takie modyfikacje robisz na własną odpowiedzialność!!! Można też takiego Sonoff'a podłączyć do sterownika bramy z przekaźnikiem z cewką 230V między Sonoff'em, a sterownikiem bramy.
Funkcjonalności
- Sterowanie przekaźnikami za pomocą protokołu MQTT lub HTTP lub przycisku (wysyłanie impulsu do sterownika bramy)
- Czas impulsu można ustawić w zakresie od 1 do 2000 milisekund
- Diody LED mogą sygnalizować stan urządzenia lub czujników magnetycznych, czyli czy poszczególne czujniki magnetyczne są otwarte /zamknięte
- Urządzenie wysyła automatycznie wiadomość MQTT o stanie bramy - musi być podłączony do urządzenia minimalnie jeden czujnik magnetyczny
- Urządzenie można "odpytać" o stan otwarcia bramy przez protokół MQTT lub HTTP
- Można odpytać o stan poszczególnych czujników magnetycznych przez protokół MQTT lub HTTP
- Jest możliwość ustawienia typów zastosowanych czujników magnetycznych: NO (normalnie otwarty), NC (normalnie zamknięty)
- Stan otwarcia bramy wysyłane/odczytywane przez MQTT/HTTP są w pełni konfigurowalne
- Konfigurację urządzenia wykonuje się przez przeglądarkę
- Nowe wersje oprogramowania wgrywa się przez przeglądarkę
Instalacja:
- Instrukcja instalacji jest identyczna, jak dla każdej innej wersji AFE Firmware.
- Przed wgraniem firmware należy sprawdzić wersje chip'a ESP, które posiada urządzenie (ESP8266 / ESP8285)
- Podczas pierwszego uruchomienia pamięć urządzenia jest czyszczona oraz ładowane są wartości domyślne dla urządzenia. Pierwsze uruchomienie może potrwać ok. 1-2min.
Konfiguracja
Szczegółowa konfiguracja wszystkich wersji AFE Firmware jest opisana tutaj.
Poniżej pokazane są ekrany specyficzne dla wersji T5
Ekran do konfiguracji urządzenia
W konfiguracji urządzenia nadaje się nazwę urządzeniu, wybiera się elementy podłączone do urządzenia oraz metody sterowania MQTT i / lub HTTP
Ekran do konfiguracji przekaźnika
Konfiguracja przekaźnika to wybór GPIO, do którego podłączony jest przekaźnik oraz czas, na jak długo przekaźnik ma być zwarty (długość impulsu)
Ekran do konfiguracji przycisku
Przycisk może mieć dwie funkcje.
- przycisk systemowy lub
- tylko sterowanie przekaźnikiem
Przycisk systemowy:
- krótkie naciśnięcie: zwiera przekaźnik na skonfigurowany czas. Funkcja jest aktywna tylko gdy do przycisku przypisany jest numer sterowanego przekaźnika,
- naciśnięcie na czas od 5 do 10 sekund uruchamia tryb konfiguracyjny
- naciśnięcie powyżej 10 sekund uruchamia konfigurację urządzenia w trybie hot-spot.
Ekran konfiguracji diod LED
W tej sekcji przypisujemy GPIO, do których podłączone są diody LED. Każdej diodzie można ustawić tryb świecenia. Jednej diodzie LED można przypisać funkcję informowania o stanie urządzenia oraz występujących zdarzeniach tzw. LED systemowy.
Konfiguracja czujnika magnetycznego, kontaktronu lub wyłącznika krańcowego
Każdy czujnik magnetyczny musi posiadać unikalną nazwę. Jest to konieczne, gdy do urządzenia podłączy się dwa czujniki.
Każdy czujnik, może mieć ustawiony tryb NO lub NC oraz można do niego przypisać jedną diodę LED, która będzie sygnalizować, czy czujnik jest zwarty lub rozwarty.
Parametry czułości, należy ustawić eksperymentalnie, tak aby wyeliminować potencjalne drgania czujników, które mogą powodować wysyłanie niepoprawnych wartości stanu bramy.
Ekran konfiguracji stanów bramy
Aby urządzenie wysyłało poprawny stan bramy, czyli
- brama jest zamknięta,
- otwarta,
- bądź częściowo otwarta
konieczne jest odwzorowanie stanów czujników magnetycznych na faktyczny stan bramy.
Konfiguracja czujnika temperatury oraz wilgotności z rodziny DHT
Sterowanie oraz kontrolowanie urządzenia
Urządzenie z AFE Firmware T5 obsługuje te same żądania HTTP lub MQTT, jak każda inna wersja AFE Firmware. Oczywiście nie są obsługiwane przez T5 żądania związane ze sprzętem, który nie jest wymieniony, jako sprzęt obsługiwany przez tę wersję AFE Firmware.
Oprogramowanie wysyła automatycznie po MQTT wszystkie zmiany stanu bramy, przekaźnika oraz zmiany temperatury lub wilgotności. Urządzenie nie wysyła automatycznie informacji o zmianie stanu poszczególnych czujników magnetycznych. O ich stan można odpytać urządzenie wysyłając żądanie MQTT lub HTTP. Stany bramy w zasadzie odpowiadają wartościom czujników magnetycznych i w większości przypadków nie będzie konieczności analizowania w jakim stanie jest danym momencie czujnik magnetyczny
openHAB z wykorzystaniem protokołu MQTT
Zakładając, że:
- nazwa skonfigurowanego brokera MQTT: broker
- Nazwa tematu MQTT w konfiguracji brokera MQTT : /brama/
- Czujniki magnetyczne mają nazwy: C1, C2
Plik konfiguracyjny items
Switch t5_gate "Brama" {mqtt=">[broker:/brama/gate/cmd:command:ON:open],>[broker:/brama/gate/cmd:command:OFF:close]"} Contact t5_gate_state_contact "Stan [%s]" {mqtt="<[broker:/brama/gate/state:state:OPEN:open],<[broker:/brama/gate/state:state:OPEN:partiallyOpen],<[broker:/brama/gate/state:state:CLOSED:closed]"} String t5_gate_state_text "Opis [%s]" {mqtt="<[broker:/brama/gate/state:state:default]"} Switch t5_contactron_1_get "Czujnik 1" {mqtt=">[broker:/brama/C1/cmd:command:ON:get],>[broker:/brama/C1/cmd:command:OFF:get]"} Contact t5_contactron_1_state "Stan [%s]" {mqtt="<[broker:/brama/C1/state:state:OPEN:open],<[broker:/brama/C1/state:state:CLOSED:closed]"} Switch t5_contactron_2_get "Czujnik 2" {mqtt=">[broker:/brama/C2/cmd:command:ON:get],>[broker:/brama/C2/cmd:command:OFF:get]"} Contact t5_contactron_2_state "Stan [%s]" {mqtt="<[broker:/brama/C2/state:state:OPEN:open],<[broker:/brama/C2/state:state:CLOSED:closed]"} Number t5_temperature "Temperatura [%.1f °C]" <temperature> {mqtt="<[broker:/brama/temperature:state:default]"} Number t5_humidity "Wilgotoność [%.1f %%]" <humidity> {mqtt="<[broker:/brama/humidity:state:default]"} Number t5_heat_index "Odczuwalna [%.1f °C]" <temperature> {mqtt="<[broker:/brama/heatIndex:state:default]"} Number t5_dew_point "Punkt Rosy [%.1f]" mqtt="<[broker:/brama/dewPoint:state:default]"} Switch t5_configuration_mode "Konfiguracja" {mqtt=">[broker:/brama/cmd:command:ON:configurationMode],>[broker:/brama/cmd:command:OFF:configurationMode]"} Switch t5_reboot "Reboot" {mqtt=">[broker:/brama/cmd:command:ON:reboot],>[broker:/brama/cmd:command:OFF:reboot]"}
Przykładowa sitemap'a
sitemap T5 label="T5" { Frame label="Brama" { Switch item=t5_gate mappings=[ON="Start"] visibility=[t5_gate!=ON] Switch item=t5_gate mappings=[OFF="Start"] visibility=[t5_gate!=OFF] Default item=t5_gate_state_contact Default item=t5_gate_state_text } Frame label="Czujnik magnetyczne" { Switch item=t5_contactron_1_get mappings=[ON="Pobierz wartość" ] visibility=[t5_contactron_1_get!=ON] Switch item=t5_contactron_1_get mappings=[OFF="Pobierz wartość" ] visibility=[t5_contactron_1_get!=OFF] Default item=t5_contactron_1_state Switch item=t5_contactron_2_get mappings=[ON="Pobierz wartość"] visibility=[t5_contactron_2_get!=ON] Switch item=t5_contactron_2_get mappings=[OFF="Pobierz wartość"] visibility=[t5_contactron_2_get!=OFF] Default item=t5_contactron_2_state } Frame label="Czujnik DHT" { Default item=t5_temperature Default item=t5_humidity Default item=t5_heat_index Default item=t5_dew_point } Frame label="Zaawansowane" { Switch item=t5_configuration_mode mappings=[ON="Uruchom"] visibility=[t5_configuration_mode!=ON] Switch item=t5_configuration_mode mappings=[OFF="Uruchom"] visibility=[t5_configuration_mode!=OFF] Switch item=t5_reboot mappings=[ON="Reboot"] visibility=[t5_reboot!=ON] Switch item=t5_reboot mappings=[OFF="Reboot"] visibility=[t5_reboot!=OFF] } }
OpenHab po HTTP
Urządzenie sterowane żądaniami HTTP z openHAB jest ograniczone do kilku komend
- puszczanie sygnału do sterowania bramy, aby ten uruchomił silnik
- uruchamianie trybu konfiguracji
- reset urządzenia
Pozostałe żądania HTTP opisane w kolejnym rozdziale są znacznie trudniejsze do oprogramowania w openHab i nie będę ich opisywał. Sugeruję korzystanie z MQTT w openHab.
Zakładając, że:
- Adres IP urządzenia: 192.168.2.125
Plik konfiguracyjny items
Switch t5_http_gate "Brama" {http=">[ON:POST: http://192.168.2.125/?device=gate&command=toggle ] >[OFF:POST: http://192.168.2.125/?device=gate&command=toggle ]"} Switch t5_http_configuration_mode "Konfiguracja" {http=">[ON:POST: http://192.168.2.125/?command=configurationMode ] >[OFF:POST: http://192.168.2.125/?command=configurationMode ]"} Switch t5_http_reboot "Reboot" {http=">[ON:POST: http://192.168.2.125/?ommand=reboot ] >[OFF:POST: http://192.168.2.125/?command=reboot ]"}
Przykładowa sitemap'a
sitemap T5 label="T5" { Switch item=t5_http_gate mappings=[ON="Start"] visibility=[t5_http_gate!=ON] Switch item=t5_http_gate mappings=[OFF="Start"] visibility=[t5_http_gate!=OFF] Switch item=t5_http_reboot mappings=[ON="Reboot"] visibility=[t5_http_reboot!=ON] Switch item=t5_http_reboot mappings=[OFF="Reboot"] visibility=[t5_http_reboot!=OFF] Switch item=t5_http_configuration_mode mappings=[ON="Uruchom"] visibility=[t5_http_configuration_mode!=ON] Switch item=t5_http_configuration_mode mappings=[OFF="Uruchom"] visibility=[t5_http_configuration_mode!=OFF] }
Sterowanie urządzeniem komendami HTTP
Komendy uruchamiane na poziomie urządzenia
Format:
Komendy
- reboot – restartuje urządzenie
- configurationMode – uruchamia urządzenie w trybie konfiguracji
Komendy dla bramy
Format:
- http://adres-ip-urządzenia/?device= gate&command=Komenda
Komendy
- toggle– wysyłanie sygnału do sterownika bramy
- get – odczyt pozycji bramy: (open, closed, partiallyOpen)
Komendy dla czujnika magnetycznego
Format:
- http://adres-ip-urządzenia/?device= contactron&name=NazwaCzujnika&command=Komenda
NazwaCzujnika jest nadawana czujnikowi w panelu konfiguracyjnym. Każdy czujnik w ramach urządzenia musi mieć unikalną nazwę.
Komendy
- get – zwraca informację, czy czujnik jest zwarty lub rozwarty (open, closed)
Komendy dla czujnika temperatury DHT (DH11,DH21, DH22)
Format:
- http://adres-ip-urządzenia/?device= dht&name=temperature&command=Komenda
- http://adres-ip-urządzenia/?device= dht&name=heatIndex&command=Komenda
- http://adres-ip-urządzenia/?device= dht&name=humidity&command=Komenda
Komendy
- get – odczytuje temperaturę (name=temperature), temperaturę odczuwalną (name=heatIndex) lub wilgotność (name=humidity) lub punkt rosy (name=dewPoint)
Zanim zdecydujesz zainstalować AFE Firmware przeczytaj pełną dokumentację.
Pobierz aktualną wersję.