Integracje IP

Z Ampio Smart Home
Skocz do: nawigacja, szukaj

Obrazy serwera[edytuj]

Aktualnie rozwijana wersja serwera dostępna jest w Strefie Instalatora. Konieczną czynnością przed zaczęciem korzystania ze wszystkich dobrodziejstw jest pobranie aktualnych zmian.

Zanim zaczniemy zabawę koniecznie wykonujemy BACKUP bazy danych z poziomu SmartHomeMenagera

Najpierw należy pobrać obraz, następnie przy wyłączonym zasilaniu serwera oraz jego wyjść wypinamy złączki i ściągamy moduł z szyny TH. Kolejnym krokiem jest odkręcenie 4 śrub znajdujących się z tyłu obudowy. Otwieramy obudowę (metoda siłowa jest niewskazana) i delikatnie wysuwamy kartę microSD. Mając wymontowaną kartę SD wypalamy na niej wcześniej pobrany obraz. Proponuję posłużyć się programem Rufus gdyż po uruchomieniu i wsunięciu karty SD do czytnika, zostanie ona automatycznie wykryta. Po poprawnym wypaleniu obrazu, składamy wszystko w odwrotnej kolejności.

"Piotrek napisał: logując się po SSH wystarczy wpisać: npm install --prefix /home/openhabian/.node-red node-red-contrib-ampio@0.2.0

Zamiast 0.2.0 na końcu należy podać najnowszą wersję.

Lista wersji jest tu: https://www.npmjs.com/package/node-red-contrib-ampio Numer aktualnie zainstalowanej wersji można sprawdzić w Manage palette w Node-Redzie."

Alternatywna opcja: Połącz się przez SSH z serwerem Ampio i wywołać:

bash <(curl -s http://update.ampio.pl/mqtt/update_mqtt.sh)

OpenHAB[edytuj]

OpenHAB jest otwartą platformą automatyki domowej umożliwiającą sterowanie inteligentnym domem za pomocą przejrzystych interfejsów użytkownika.
Aby rozpocząć należy pobrać obraz tutaj,
a następnie wgrać go na kartę SD. Instrukcja wgrywania obrazu dostępna jest w Strefie Instalatora Ampio. Gdy obraz jest już wgrany na kartę, należy przenieść ją z powrotem do swojego serwera. Następnie należy połączyć się przez SSH za pomocą WinSCP, PuTTY, FileZilla lub innego programu tego typu. Do połączenia używamy portu 2022.

login: root
hasło: ampio

Items[edytuj]

Obsługa elementów automatyki odbywa się poprzez itemy. Plik o rozszerzeniu .items zawiera informacje o typie i nazwie urządzenia, a także ścieżkę pozwalająca na komunikację OpenHAB z MQTT, za pośrednictwem którego dane transportowane są w obu kierunkach miedzy urządzeniami i panelem. Itemy dodawać można za pomocą aplikacji lub ręcznie.

Generator Itemów[edytuj]

Aplikacja generująca itemy dostępna jest w konfiguratorze Ampio SmartHome.
Tworzenie plików .items rozpoczynamy od pobrania listy urządzeń dostępnych w sieci.

OH1.png

Aby pobrać listę urządzeń, w zakładce Edycja wybieramy opcję Pobierz listy nazw z wszystkich urządzeń.

OH2.png

Przebieg tego procesu możemy obserwować w prawej dolnej części ekranu.

OH3.png

Gdy lista jest już pobrana, możemy uruchomić generator itemów dostępny w zakładce Narzędzia.

OH4.png

W generatorze widzimy listę urządzeń oraz ich typy, opisy w aplikacji, a także tematy MQTT.

OH5.png

W celu zakończenia procesu, wchodzimy w zakładkę MQTT w lewym górnym rogu okna, wyszukujemy nasz serwer, a następnie wysyłamy do niego utworzone itemy.

OH6.png

Ręczne tworzenie Itemów[edytuj]

Aby skorzystać z opcji ręcznego tworzenia plików .items należy utworzyć plik o rozszerzeniu
.items w folderze /etc/openhab2/items Zawartość pliku wygląda następująco:

O7.png

kierunek informacji: from - informacje przychodzące z sieci CAN, to - informacje wysyłane do sieci CAN

typy komend: o-wyjścia, rgbw - kolory, rs - MRT, f-flagi,

typy stanów: i-wejścia, o-wyjścia, f- flagi, t-temperatury, a- wartości analogowe, rgbw-kolory, rs - MRT, au- wartości analogowe 8bit, au16 - wartości analogowe 16bit, au16l -wartości analogowe 16bit podzielone przez 10K, au32 - wartości analogowe 32bit

plik transformujący wartość - wymagany w przypadku wartości, które różnią się w openhabie i systemie Ampio - na przykład MLED przyjmuje wartość od 0 do 255, a item Dimmer od 0 do 100. Potrzebna jest zatem transformacja informacji wychodzącej do sieci CAN z 100 na 255 oraz otrzymana z sieci CAN z 255 na 100. Wszystkie pliki transformujące znajduja się w katalogu /etc/openhab2/transform

Typy itemów:

• Switch – ON/OFF (np. zarówka)
• Dimmer – ściemniacz, ON/OFF/0-100 (np. LED)
• Color – ON/OFF wybór koloru (np. listwa rgbw)
• Contact – OPEN/CLOSED (np. kontaktron)
• Number – wartość liczbowa (np. temperatura)
• Rollershutter – UP/DOWN/STOP (np. rolety)
• String – tekst

Dokładna dokumentacja dostępna jest na stronie
https://www.openhab.org/docs/concepts/items.html

Sitemap[edytuj]


Kiedy itemy obsługujące urządzenia są już przygotowane, możemy umieścić je w aplikacji mobilnej OpenHAB, którą pobrać można ze sklepu. Dokładnie taka sama zawartość dostępna jest z poziomu przeglądarki pod adresem
adres serwera:8080/basicui/app
Zawartość aplikacji mobilnej tworzymy w pliku .sitemap utworzonym w katalogu
/etc/openhab2/sitemaps
Zawartość pliku wygląda następująco:

OH8.png

Basic UI prezentuje się tak:

OH9.png

Te same elementy automatycznie pojawiają się również w aplikacji mobilnej OpenHAB.
Przyjrzyjmy się poszczególnym elementom sitemapy.

OH10.png

W pierwszej linijce deklarujemy typ sitemap, następnie nadajemy jej nazwę (test), oraz etykietę, czyli napis będący widoczny w nagłówku aplikacji. Cała zawartość strony zawarta jest w klamrach.

OH11.png

Itemy możemy pogrupować w ramki. Używamy w tym celu typu Frame, a zawartość ramki umieszczamy również w klamrach. W przypadku ramek, również możemy nadać etykietę(label).

OH12.png

Wewnątrz ramek umieszczamy stworzone wcześniej itemy. Określamy typ, następnie przypisujemy item, opcjonalnie nadajemy mu ikonę, etykietę.

Dostępne typy itemów:

• Chart
• Colorpicker
• Default
• Frame
• Group
• Image
• Selection
• Setpoint
• Slider
• Switch
• Text
• Video
• Webview

Jak widać, typy obsługiwane przez sitemap różnią się nieco od typów itemów. Warto zwrócić uwagę na typ Default. Za pomocą tej funkcji, typ itemu w sitemapie zostanie automatycznie dopasowany do odpowiadającemu mu typowi w pliku .items, co znacznie ułatwi tworzenie aplikacji

OH13.png

Przydatnymi funkcjami w tworzeniu sitemapy są mappings oraz minValue, maxValue i step.
Za pomocą mappings możemy przypisać dowolny tekst dla stanów obiektu sterowanego

OH14.png

W ten sposób otrzymujemy:

OH15.png

W przypadku na przykład termostatu (typ Setpoint), gdy wartość liczbowa ustawiana jest z panelu, niezbędne będą funkcje ograniczające zakres danej wartości.

OH16.png

W ten sposób w aplikacji otrzymujemy pole umożliwiające ustawienie termostatu w zakresie od 15 do 35 stopni Celsjusza z dokładnością do 0.5 °C

OH17.png

Więcej funkcji ułatwiających tworzenie aplikacji znajduje się w dokumentacji OpenHAB.
Dokumentacja dostępna jest na stronie:
https://www.openhab.org/docs/configuration/sitemaps.html#concepts

HABpanel[edytuj]


Jest to panel dostępny z poziomu przeglądarki. W przeciwieństwie do Basic UI modyfikowanego w konsoli za pomocą pliku .sitemap, HABpanel modyfikuje się wyłącznie w przeglądarce, nie jest zależny od sitemapy. Tworzenie przejrzystego panelu jest zdecydowanie prostsze niż w przypadku Basic UI, polega na układaniu kafelków, dopasowaniu ich wielkości oraz przypisaniu istniejącego już itemu z listy. Co więcej, istnieje możliwość zapisania wielu konfiguracji, z których każda może być używana niezależnie na różnych urządzeniach.
Jak zacząć?
Po wpisaniu w przeglądarce adresu serwera otrzymujemy listę dostępnych elementów. Wybieramy z nich HABpanel

OH18.png

Po pierwszym otworzeniu, w prawym górnym rogu widzimy Ustawienia.

OH19.png

W Ustawieniach mamy do wyboru dwie opcje: utworzenie nowego panelu lub wgranie stworzonej już konfiguracji z serwera

OH20.png

Po wyborze Ustawienia panelu Otrzymamy listę konfiguracji zapisanych na serwerze.

OH21.png

Teraz jednak zajmiemy się utworzeniem panelu od początku.
Po wpisaniu i zatwierdzeniu nazwy Nowego Panelu otrzymujemy opcje pozwalające na dostosowanie wielkości kafelków do naszych oczekiwań

OH22.png

Dla każdego kafelka mamy możliwość ustawienia nazwy, ikony, tła oraz koloru tekstu.

OH23.png

Po wejściu w utworzony panel, modyfikujemy jego zawartość poprzez widgety. Wybieramy interesujący nas typ, a następnie umieszczamy go w odpowiednim miejscu w panelu.

OH24.png

Powstały w ten sposób kafelek możemy dowolnie przemieszczać i zmieniać jego rozmiar

OH25.png OH26.png

Następnie ustawiamy parametry widgetu.

OH27.png

Element openHAB wybieramy z listy itemów. Na liście znajdują się wszystkie poprawnie skonfigurowane pliki .items, które mogą być przypisane do widgetu wybranego typu.
Jak w przypadku Nowego Panelu, tutaj również mamy możliwość wyboru ikony oraz tła.

OH28.png OH29.png

W Ustawieniach Panelu mamy dostęp do ustawień takich jak nazwa, motyw, tło itp.

OH30.png

Gotową konfigurację zapisujemy. Możemy teraz wczytać ją w jakiejkolwiek innej przeglądarce.

OH31.png

Node-Red[edytuj]

Jest to platforma służąca do sterowania urządzeniami automatyki domowej (nie tylko Ampio). Opiera się na dowolnej liczbie Flow – kart, na których graficznie tworzymy programy łączące elementy automatyki domowej za pomocą bloczków różnego typu.
Node-Red jest dostępny w przeglądarce pod adresem serwera z portem 1880.

Lista dostępnych bloczków widoczna jest po lewej stronie ekranu.

NR1n.png

W przypadku, kiedy chcemy zainstalować potrzebny dodatek ,rozwijamy listę w prawym górnym rogu ekranu.

NR2.png

Wybieramy Manage Palette, a następnie zakładkę Install. Wpisujemy nazwę interesującego nas dodatku, a następnie instalujemy.

NR3.png NR4.png

Po instalacji dodatku należy wykonać reboot serwera. Teraz możemy przejść do pisania programu graficznego.
Programujemy poprzez przeciąganie bloczków na kartę oraz łączenie ich ze sobą.

Lista bloków podzielona jest na kategorie. Podstawowymi kategoriami są input, output, function.

Po najechaniu myszą na wybrany plok pojawi się jego krótki opis

N5.png

Gdy wybierzemy potrzebny blok i przeciągniemy na kartę, możemy ouzyskać szczegółowe informacje na jego temat w zakładce Info po prawej stronie ekranu

N7.png

Blok możemy edytować poprzez podwójne kliknięcie. Wowczas pojawi się okno ustawień

N6.png

Szczególnym blokiem jest blok Debugg znajdujący się w kategorii output

N8.png

Po dołączeniu go do dowolnego bloku wejściowego (input) możemy obserwować jego stan w zakładce Debugg messages

N9.png N10.png

Niepoprawnie skonfigurowany blok zostanie zaznaczony czerwonym trójkątem. Informacja o błędzie pojawi się również w zakładce Debugg messages

N11.png N12.png

Napisany program możemy wysłać do serwera za pomocą przysicku Deploy w prawym górnym rogu ekranu

N13.png

W przypadku nieprawidłowego zbudowania programu, pojawi się okno zawierające informację o błędach

N14.png

Po poprawnym wgraniu programu pojawi się komunikat potwierdzający jego prawidłowość

N15.png

Teraz program działa w tle nawet po zamknięciu przeglądarki

Karty do tworzenia programów dodawać możemy za pomocą plusa obok zakładek Flow

N16.png

Po dwukrotnym kliknięciu za zakładkę Flow możemy nadać nazwę karcie oraz zdecydować czy zapisany na niej program będzie aktywny, czy nie

N17.png

Poniżej zaprezentowane są gotowe rozwiązania

Grupowanie LEDów[edytuj]

Ponieważ sterowanie urządzeniami Ampio odbywa się za pomocą mqtt, do powiązania między urządzeniami posłuży blok mqtt dostępny w podstawowej bibliotece Node-Red.

Powiązanie urządzenia z panelem dotykowym[edytuj]

Obsługa koloru RGBW za pomocą suwaków[edytuj]

Obsługa modułu RGBW odbywa się za pomocą czterech sliderów, z których każdy odpowiada za osobny kanał. Przykładowy układ HABpanelu: i Sitemapy

Rgb1.png Rgb2.png


Należy stworzyć cztery itemy odpowiedzialne za obsługę kolorów: Dimmer red "R" {mqtt=">[broker:ampio/to/1AB9/red:command:*:JS(ampio_100_255.js)]"} Dimmer green "G" {mqtt=">[broker:ampio/to/1AB9/green:command:*:JS(ampio_100_255.js)]"} Dimmer blue "B" {mqtt=">[broker:ampio/to/1AB9/blue:command:*:JS(ampio_100_255.js)]"} Dimmer white "W" {mqtt=">[broker:ampio/to/1AB9/white:command:*:JS(ampio_100_255.js)]"}

Powyższy topic mqtt jest przykładowy. Można dowolnie go zmienić, nie należy jednak pominąć pliku transformującego wartość.

Następnym krokiem jest stworzenie programu w NodeRed. Prezentuje się on następująco:

Rgb3.png

Poniżej omówienie poszczególnych bloków:

Bloki mqtt


W każdym bloku ustawiamy topic identyczny z topiciem itemu stworzonego w openHABie.

Rgb4.png

Bloki function:

Cztery bloki funkcyjne odpowiadają za przypisanie wartości każdego slidera do zmiennej.


Rgb5.png
Rgb6.png
Rgb7.png
Rgb8.png

Powyższa komenda flow.set służy stworzeniu zmiennej, którą można obsługiwać poza blokiem, w którym jest zadeklarowana. W tym przypadku obsługiwana jest w obrębie jednego flow. Aby stworzyć zmienną globalną o zasięgu wielu flow, należy zastosować komendę global.set
Piąty blok function służy połączeniu kolorów:

Rgb9.png

Komenda flow.get służy pobraniu wcześniej zadeklarowanej zmiennej globalnej. Następnie tworzymy macierz z czterema elementami: red,green, blue,white. Należy również zastosować funkcję String, żeby dane przyjęły postać ciągu znaków obsługiwaną przez listwę RGBW. Ostatnim krokiem jest dołączenie bloku mqtt out zawierającego topic obsługujący moduł RGBW.

Rgb10.png

Node Ampio[edytuj]

Bloczki Ampio dają możliwość prostego i intuicyjnego tworzenia warunków w Node-Red.

AN1n.png

Samodzielna instalacja dodatku Ampio odbywa się poprzez konsolę. Najpierw łączymy się z serwerem za pomocą programu PuTTY lub innego programu tego typu.

Login: root
Hasło: ampio

Następnie przechodzimy do folderu ~/.node-red.
Teraz wpisujemy komendę sudo npm install node-red-contrib-ampio i czekamy na zainstalowanie dodatku.
Po instalacji wykonujemy reboot serwera.

Blok Ampio IN[edytuj]

Zawiera następujące pola

AN2n.png

Value Type – służy do wyboru typu wartości, jaką otrzymujemy z urządzenia. Wybieramy z listy spośród typów:

VT1.png
Analog value-wartości analogowe
RGB color– kolor oświetlenia RGB
Digital input-wejście cyfrowe
Digital in (rising edge) - zbocze narastające
Digital output– wyjście cyfrowe
Flag – flaga
Temperature-wartość temperatury



Server address – w tym polu domyślnie znajduje się „localhost. Jeśli NodeRed znajduje się na MSERV (jak w większości przypadków), pozostawiamy to pole niezmienione. Jeżeli natomiast NodeRed zlokalizowany jest poza MSERV, należy wpisać pełny adres serwera.

Target device – w tym polu wybieramy urządzenie. Łatwe wyszukanie urządzeń powiązanych z serwerem umożliwia przycisk lupy.

S1.png

W zależności od wybranego wcześniej typu wartości, na liście pokaże się lista urządzeń posiadających wyjście danego typu.

I/O ID – w tym polu definiujemy numer wyjścia wybranego urządzenia;

Name -w tym polu opcjonalnie możemy nadać nazwę;

Pod prawidłowo skonfigurowanym blokiem Ampio IN pojawi się napis connected.

AN3.png

Blok Ampio OUT[edytuj]


AN4n.png

Cmd type – pole służące do wyboru typu komendy z listy spośród trzech typów:

Standard – standardowa komenda
Raw CAN broadcast - służy do obsługi danych RAW zawartych w osobnej dokumentacji sieci CAN
Flag – służy do obsługi flag
W zależności od typu (Standard, Raw CAN broadcast lub Flag), pola w bloczku różnią się.

W typie Standard oraz Flag posiadamy następujące pola, które wypełniamy je tak jak w przypadku bloku wejściowego.

AN4n.png

W przypadku typu Raw CAN broadcast posiadamy takie same pola z wyjątkiem numeru wyjścia lub wejścia.

Blok Ampio LCD[edytuj]



Dzięki niemu możemy z poziomu Node Red wyświetlić informacje na panelu dotykowym z ekranem. Blok posiada następujące pola:
LCD1.png
LCD font służy do wyboru czcionki spośród Standard (10x16), Big (20x32) oraz Icon (40x40). Ostatni typ dostępny jest, jeżeli do panelu wgrane są ikony.
Do wskazania lokalizacji tekstu na panelu służ pola LCD X oraz LCD Y.

AN7.png

Punktem początkowym jest lewy górny róg ekranu. Jego współrzędne to LCD X=00 i LCD Y=00. Wraz ze zwiększaniem wartości LCD X, tekst będzie coraz bliżej prawej krawędzi. Zwiększenie wartości LCD Y skutkuje obniżeniem tekstu.
Punkt określony przez wartości LCD X i LCD Y zaznaczony jest na obrazku obok. Wymiary dotyczą rozmiaru Standard.

AN8.png

LCD text - pozwala na zdefiniowania koloru tekstu (hex)
LCD bg color – wpisujemy tu kolor tła również w zapisie heksadecymalnym
Tekst statyczny do wyświetlacza dostarczamy za pomocą bloku Inject. Wybieramy typ String, a następnie w polu payload wpisujemy tekst, który ma pojawid się na ekranie.
Jeżeli chcemy wyświetlić na ekranie dane z modułów (np. temperaturę), informacje doprowadzamy do wyświetlacza za pomocą bloku Ampio IN. Wyjście Ampio IN możemy zmodyfikować za pomocą bloku function
(UWAGA! Maksymalna długość tekstu to 11 znaków, po przekroczeniu tej wartości, wpisany tekst zostanie ucięty.)

Przykład:

E1.png

Zawartośd bloku Ampio IN:

E2.png

Zawartośd bloku function:

E3.png

Zawartośd bloku Ampio LCD:

E4.png

W ten sposób otrzymujemy na środku wyświetlacza czarny napis „ TEMP: *wartośd temperatury*”na białym tle.

Blok Ampio Events[edytuj]

Blok służy do wysyłania zdarzeń

EV1.png

Philips Hue[edytuj]

Integracja Philips Hue z systemem Ampio odbywa się za pośrednictwem platformy Node-Red.Po wgraniu obrazu karty, bloczki do obsługi Philips Hue są widoczne na liście elementów.

Rozpoczynamy od konfiguracji bloczku Hue Light. Przechodzimy do ustawień poprzez dwukrotne kliknięcie bloku.

Hue1.png

W ustawieniach bloku wyszukujemy mostek Philips. Robimy to klikając przycisk obok pola Bridge

NR17.png

Po jego przyciśnięciu, pojawi się menu dodawania mostka. Adres IP mostka jest wyszukiwany automatycznie po kliknięciu lupy koło pola z adresem.

NR18n.png

Aby wypełnić pole API Key, klikamy przycisk obok pola oraz wykonujemy polecenie wyświetlone w oknie, które się pojawiło (przyciśnięcie przycisku mostka w ciągu 20 sekund)

NR18.png

Po dodaniu zdefiniowanego mostka, po kliknięciu przycisku przy polu Light mamy dostęp do wszystkich żarówek, które są z nim połączone. Interesującą nas żarówkę wybieramy z listy.

NR19.png

Pod poprawnie zdefiniowanym bloczkiem Hue Light, pojawi się jego aktualny stan.

Hue2.png
Philips Hue oferuje wiele funkcji sterowania oświetleniem. W poniższych przykładach zostało przedstawione sterowanie za pomocą komend json.

Włącz/wyłącz[edytuj]

Aby włączać i wyłączać oświetlenie Philips Hue z poziomu Node-Red, do naszego skonfigurowanego bloku Hue dołączamy dwa bloczki inject, za których pomocą będziemy zmieniać stan oświetlenia.

Hue3.png

Po dwukrotnym kliknięciu bloczku ustawiamy zawartość typu JSON.

NR21.png NR22.png

Polecenie jest wysyłane do Philips Hue po każdym kliknięciu niebieskiego kwadratu po lewej stronie bloczka inject.

Tę samą instrukcję do żarówki Hue możemy wysłać za pośrednictwem na przykład panelu dotykowego. W tym przypadku struktura programu jest nieco bardziej złożona.

Wybieramy blok Ampio IN i definiujemy w nim nasze urządzenie sterujące.

Hue5.png

Wybieramy typ wartości zbocze narastające i numer wyjścia, które powiązane jest z przyciskiem włączającym

Hue4.png

Następnie dołączamy blok switch, w którym zawrzemy instrukcję warunkową

Hue6.png

Hue7.png

Powyższą instrukcję zdefiniowaną w ustawieniach bloku switch możemy rozumieć następująco:

Jeżeli payload jest równy 1 (wystąpiło zbocze narastające), przejdź do kroku 1.

Po ustawieniu warunku, należy zdefiniować zawartość kroku. Posłuży do tego blok change. Do warunku dołączamy blok change i w jego ustawieniach definiujemy instrukcje.

Hue8.png

Hue9.png

Powyższą instrukcję możemy rozumieć jako: ustaw payload na "on":true ({} oznacza typ JSON)

Powyższa sekwencja zastępuje jeden blok inject włączający żarówkę.

Teraz tworzymy analogiczną sekwencję bloków, które będą odpowiadały za wyłączenie żarówki.

W nowym bloku Ampio IN definiujemy wyjście wyłączające

Hue10.png

Zawartość bloku switch pozostaje taka sama, natomiast w bloku change ustawiamy komendę wyłączającą

Hue11.png

Teraz dołączamy skonfigurowany blok Hue Light.

Hue12.png

Możemy dodłączyć również skonfigurowane wcześniej bloki inject, aby móc sterować zarówno z przeglądarki jak i z panelu dotykowego

Hue13.png

Gdy program jest gotowy, zatwierdzamy go za pomocą przycisku Deploy.

Jasność[edytuj]

W bloku inject ustawiamy następującą zawartość:

Hue14.png

W przypadku powyższej komendy brightness możemy wybrać dowolną wartość z zakresu 0-100.


Blok Hue przyjmuje również komendy zmiany jasności o wybraną wartość.

Zwiększenie jasności otrzymujemy wypełniając blok inject następująco:

Hue15.png

Aby zmniejszyć jasność należy użyć tej samej komendy, jednak z ujemną wartością, jak poniżej:

Hue16.png

Komendy sterujące jasnością można tak jak w przypadku włącz/wyłącz wysyłać do żarówki za pomocą pola panelu dotykowego konfigurując bloki analogicznie to wcześniejszego przykładu.

Kolor[edytuj]

Kolor światła możemy ustawić na dwa sposoby: podając wartości barw R,G,B lub kod koloru HEX. Poniżej dwa sposoby ustawienia światła białego:

Hue17.png Hue18.png

Istnieje również możliwość wyboru nasycenia koloru:

Hue19.png

Ustawienie wartości 100 oznacza maksymalne nasycenie koloru, natomiast wartość 0 skutkuje świeceniem żarówki na biało.

Analogicznie do wcześniejszych przykładów, powyższe komendy można wysyłać za pomoca bloków inject lub sekwencji łączącej pole dotykowe z hue light.


Gotowe sceny[edytuj]

Philips Hue oferuje zestaw kolorów i jasności światła. Dostęp do tej funkcji daje blok Hue Scene

Hue20.png

W bloku należy zadeklarować mostek oraz wybrać scenę klikając lupę obok pola scena:

Hue21.png

Po wyszukaniu można wybrać dowolną scenę z listy

Hue22.png

Wywołanie sceny następuje poprzez blok inject lub blok Ampio IN z zadeklarowanym polem panelu dotykowego

Hue23.png

Grafana[edytuj]

Przed rozpoczęciem pracy z Grafana należy zalogować się za pomocą przeglądarki do serwera (standardowo port 80). Autoryzacja: login: admin pass: admin

Następnie z zakładki SIEĆ, wybieramy pozycję INFLUXDB. W nowym oknie zaznaczamy pole Aktywny i potwierdzamy wybór przyciskiem ZAPISZ. Restartujemy serwer.


Node-Red

Na początku wrzucamy dane do bazy za pomocą Node-Red.
W bloczku mqtt wpisujemy topic, za pomocą którego pobierzemy interesujące nas wartości.

G1.png G2.png

Serwer dodajemy za pomocą przycisku obok pola Server. W oknie dodawania wpisujemy localhost, a port pozostaje bez zmian (1883). Opcjonalnie nadajemy brokerowi nazwę w polu Name.

G3.png

Po dodaniu serwera pole Topic wypełniamy tak, jak poniżej.
ampio/from/ADRES_MAC_URZĄDZENIA_Z_KTÓREGO_BIERZEMY_DANE/state/t/NUMER_CZUJNIKA

G4.png

Na wyjściu bloku mqtt otrzymujemy wartość typu string. Typ ten nie pozwala na utworzenie wykresu więc potrzebna jest konwersja danych wyjściowych do wartości liczbowych.

G5.png

W tym celu blok mqtt łączymy bloczkiem function o następującej zawartości:

G6.png

Ma on za zadanie przekształcić podawane przez serwer wartości typu string w wartość liczbową, która może być zapisana w bazie danych.
Po przygotowaniu danych, wrzucamy je do bazy za pośrednictwem bloku influxdb.

Z listy wybieramy blok influxdb, a następnie dodajemy serwer.

G10.png G11.png

Po kliknięciu przycisku obok pola Server pojawia się okno, w którym definiujemy pola Host oraz Port jak poniżej, a następnie w polu Database wpisujemy nawę naszej bazy danych.

Database: ampio (wielkość liter ma znaczenie) Username: (zostawiamy puste) Password: (zostawiamy puste)



Po zapisaniu zmian podpinamy bloczek do bloku function

G13.png

Możemy korzystać z danych, na podstawie których tworzymy wykresy.

Grafana

Wykresy tworzymy wykorzystując narzędzie Grafana dostępne pod adresem IP serwera (w sieci lokalnej) z portem 3000.
Logujemy się za pomocą danych:

Login: admin Hasło: admin

G14.png

Po zalogowaniu możemy utworzyć bazę danych klikając w przycisk pokazany poniżej:

G15.png

Wybieramy typ bazy – w naszym przypadku jest to InfluxDB.

G16.png

Następnie nadajemy nazwę bazie danych: NAME: Ampio

Poniżej w tabeli o nazwie HTTP, w polu URL wybieramy z listy: http://localhost:8086



G17.png

W zakładce InfluxDB Details wpisujemy nazwę bazy danych zadeklarowaną w Node-Red, zgodnie z naszym przykładem: database: ampio pola: User oraz Password pozostawiamy puste.

G18.png

Teraz z paska bocznego wybieramy opcję Create Dashboard. Otrzymujemy możliwość tworzenia list, tabeli itd. Interesuje nas wykres, zatem wybieramy typ Graph.

G19.png

Po kliknięciu pola Panel Title możemy edytować wykres.

G20.png

W polu Data Source wybieramy z listy utworzoną wcześniej bazę danych.

G21.png

Następnie w polu select measurement wyszukujemy wielkość, którą chcemy widzieć na wykresie.

G22.png

Ponieważ dane nie są dostarczane w sposób ciągły, wybieramy opcję wypełnienia previous, która estymuje pobrane wartości w celu otrzymania gładkiego wykresu.

G23.png

Możemy nakładać na siebie wykresy wielu wielkości za pomocą przycisku Add Query.

G24.png

Wielkości deklarujemy tak jak wcześniej.

G25.png

Po prawej stronie możemy zarządzać widocznością lub usunąć niepotrzebny wykres.

G26.png

Przy poprawnie wpisanych danych otrzymamy wykres. Całość powinna wyglądać następująco:

G27.png

W prawym górnym rogu możemy ustalić czas, jaki ma być widoczny na poziomej osi wykresu.

G28.png

Gotowy wykres zapisujemy za pomocą ikonki Save dashboard lub skrótu Ctrl+S.

G29.png

Od tej pory wykres widoczny jest w utworzonym dashboardzie, a dane aktualizują się automatycznie.

Alexa[edytuj]

Pierwszym krokiem integracji systemu Ampio z Alexą jest uzyskanie dostępu do chmury OpenHAB dostępnej pod adresem:
https://myopenhab.org
Następnie należy utworzyć konto.

A1.png

Do rejestracji potrzebne są dwa pliki, które znajdziemy w następujących lokalizacjach na serwerze:

OpenHAB UUID: /var/lib/openhab2/uuid

OpenHAB Secret: /var/lib/openhab2/openhabcloud/secret

Dostęp do tych plików możliwy jest poprzez program taki jak PuTTY, FileZilla, WinSCP itp. Kopiujemy treść plików i wklejamy w polach rejestracji i tworzymy konto.
Po zalogowaniu w zakładce Items widzimy wszytskie aktywne Itemy.

A2.png

Jeżeli nie wszystkie itemy umieszczone na serwerze są widoczne, po zarejestrowaniu chmury należy ich użyć np. poprzez włączenie I wyłączenie światła. Wówczas Item powinien pojawić się na liście.

A3.png

Ważne jest, żeby podczas procesu integracji OpenHABa z Alexą, widoczny był status Online.

A4.png

Następnym krokiem jest zalogowanie się na konto amazon pod adresem:

https://alexa.amazon.com/spa/index.htmll

Z listy po lewej stronie ekranu wybieramy opcję Skills.

A5.png

Teraz korzystając z pola wyszukiwania znajdujemy nadrzędzie OpenHAB.

A6.png

Wśród wyników wyszukiwania klikamy pierwszą pozycję.

A7.png

Gdy pojawi się nowe okno, dodajemy openHABa za pomocą przycisku ENABLE.

A8.png

W tym momencie zostajemy przekierowani na stronę chmury OpenHAB. Zezwalamy na dostęp.

A9.png

Po poprawnym połączeniu, na stronie Alexy zobaczymy poniższy komunikat:

A10.png

Po powrocie na stronę Amazon Alexa możemy wyszukać urządzenia z openHABa

A11.png

Dostępne urządzenia zostaną wykryte automatycznie.

A12.png

Po wyszukiwaniu pojawi się lista powiązanych urządzeń. Możliwe jest tez ponowne wyszukiwanie lub usunięcie powiązanych elementów.

A13.png

Alexa obsługuje teraz powiązane urządzenia widoczne na liście.

OpenWeatherMap[edytuj]

Dzięki temu poradnikowi będziemy mogli z wykorzystaniem Node-Red wyświetlać interesujące nas parametry pogody (np. temperatura, wilgotność, opady, prędkość wiatru) z dowolnej lokalizacji oraz z kilkudniowym wyprzedzeniem.

Do skorzystania z bloczków OpenWether potrzebny jest klucz API. Aby go uzyskać należy założyć bezpłatne konto na:
https://openweathermap.org/appid
Po założeniu konta w tym serwisie w menu API możemy wygenerować nasz unikatowy klucz. Do naszych celów wystarczy wersja darmowa, której podstawowym ograniczeniem jest maksymalnie 60 zapytań na minutę.

W Node-Red za pomocą opcji „Manage palette” instalujemy następujący pakiet:

node-red-node-openweathermap

Po instalacji wykonujemy reboot serwera.

Pełną dokumentację modułu openweathermap znajdziemy stronie:
https://flows.nodered.org/node/node-red-node-openweathermap

Wykorzystanie bloku openweathermap[edytuj]

Z listy wybieramy interesujący nas bloczek openweathermap

W1.png

Po dwukrotnym kliknięciu bloczku otrzymujemy okno edycji. Wpisujemy nasz unikalny kod API (pamiętajmy, że klucz będzie aktywny po upływie parudziesięciu minut od jego wygenerowania). Uzupełniamy też inne pola w zależności od potrzeb.

W2.png

Do bloczka openweathermap podłączamy blok debugg.

W3.png

W zakładce debugg messages obserwujemy informacje wychodzącą z bloku openweathermap. Blok ten daje nam wiele informacji na temat pogody takie jak między innymi temperatura w stopniach Celsjusza i Kelwina(tempc i tempk), wilgotność (humidity), ciśnienie (pressure), prędkość wiatru (windspeed) i krótki opis pogody (description).

W4.png

Aby z bloku otrzymać jedną interesującą nas wartość (na przykład temperaturę) należy dołączyć blok function.

W5.png

Zawartość tego bloku prezentuje się następująco:

W6.png

W ten sposób możemy wybrać dowolny interesujący nas parametr pogodowy i wyświetlić go na wyświetlaczu LCD lub wykorzystać do stworzenia wykresu Grafana.

Wyświetlanie danych na wyświetlaczu LCD[edytuj]

Do tej operacji przydatny będzie blok Ampio LCD. Aby przygotować informację wychodzącą z bloku openweathermap, należy połączyć go z blokiem function o następującej zawartości:

OW1.png

W zależności od potrzebnej wielkości, dostosowujemy zawartość bloku zmieniając napis, element payloadu oraz jednostkę. Zawsze pamiętamy o tym, żeby nie przekroczyć 11 znaków

Wychodzącą informację możemy obserwować za pomocą bloku debugg. W zakładce Debugg messages widzimy zarówno jej treść, jak i ilość znaków.

OW2.png

Aby przekazać informację do wyświetlacza, należy dołączyć blok Ampio LCD.

OW3.png

Konfigurujemy go w sposób opisany w dokumentacji bloków Ampio

OW4.png

Tworzenie wykresów[edytuj]

Łączymy blok openweathermap z blokiem function o następującej zawartości:

OW5.png

OW6.png

Teraz możemy dołączyć blok InfluxDB (blok opisany w dokumentacji Grafana) i wypełniamy tak, jak poniżej:

OW7.png OW8.png

Po takim przygotowaniu bazy danych, przechodzimy do narzędzia Grafana dostępnego pod adresem serwera z portem 3000.

Logujemy się za pomocą danych:

Login: admin
Hasło: admin

Przechodzimy do zakładki Create Dashboard

OW9.png

Po wybraniu typu Graph, wypełniamy pola w następujący sposób:

OW10.png

W ten sposób otrzymujemy wykres wybranej wielkości. Możemy zmienić czas na osi poziomej, zmienić tytuł wykresu oraz zapisać dashboard.

OW11.png