OH #004 Supla w OpenHAB – pierwszy serwer, pierwsze urządzenie i pierwszy sensowny model

magx2
Posts: 417
Joined: Wed May 17, 2017 1:27 pm
Has thanked: 1 time
Been thanked: 1 time

Post

OH #004 Supla w OpenHAB – pierwszy serwer, pierwsze urządzenie i pierwszy sensowny model

Czego dziś się dowiesz
  • jak zainstalować dodatek (binding) Supla w OpenHAB
  • jak skonfigurować pierwszy serwer Supli
  • jak dodać fizyczne urządzenie (na przykładzie ROW-01)
  • czym w praktyce różni się warstwa fizyczna od semantycznej
  • jak pierwszy raz „poczuć”, po co w ogóle jest OpenHAB
--------------------------------------------------------------------------------------------------------------------------------------------------------

Dobrze, w końcu doszliśmy do mięska. Do tej pory budowaliśmy fundamenty: instalacja, środowisko, decyzje architektoniczne. Dziś OpenHAB zaczyna robić coś realnego. Na tapet bierzemy instalację dodatku Supla, konfigurację pierwszego serwera i pierwszego urządzenia, a na koniec – pierwszy sensowny model domu.

To jest dokładnie ten moment, w którym OpenHAB przestaje być „kolejnym systemem”, a zaczyna mieć sens.

--------------------------------------------------------------------------------------------------------------------------------------------------------

Instalacja dodatku Supla

W bocznym menu wchodzimy w:
Sklep z dodatkami → Bindings

Wyszukujemy Supla i klikamy Install.

Po chwili mielenia binding powinien się zainstalować. Bez restartów, bez magii.
4.01 supla binding.png
--------------------------------------------------------------------------------------------------------------------------------------------------------

Dodanie serwera Supli w OpenHAB

Po instalacji bindingu przechodzimy do:
Ustawienia → Things

Klikamy „+” w prawym dolnym rogu i wybieramy:
Supla Integration → Supla Server

Tu konfigurujemy serwer, do którego będą łączyć się urządzenia.
4.02 Supla server.png
Thing ID
Unikalna nazwa serwera w OpenHAB. Może być dowolna.
Ja zwykle wpisuję coś w stylu:

Code: Select all

supla-server-2016
Żeby było wiadomo, że chodzi o port produkcyjny.

Server port
- 2016 – urządzenia produkcyjne (Zamel, Auraton)
- 2015 – urządzenia deweloperskie (ESP, RPi, Arduino)

Jeżeli chcesz obsługiwać oba porty, musisz utworzyć dwa osobne serwery.

Server Access ID / Password (stary flow)
Starszy model rejestracji urządzeń. Można ustawić globalnie albo zostawić puste i konfigurować per-urządzenie.

Email (nowy flow)
Nowe urządzenia rejestrują się przez email + authorization code. Email nie musi być prawdziwy. Można ustawić globalnie albo zostawić puste.
4.03 create supla server.png
--------------------------------------------------------------------------------------------------------------------------------------------------------

Opcje zaawansowane (ważne, jeśli masz stare urządzenia)

Po zaznaczeniu opcji Show advanced pojawią się ustawienia, które na początku można pominąć… ale jeśli masz starsze urządzenia, szybko do nich wrócisz.

Enable SSL
Jeżeli korzystasz z własnych lub starszych urządzeń (np. ESP8266), SSL może nie być wspierany. W sieci lokalnej bywa to świadomy kompromis.

Protocols
Java domyślnie blokuje TLS 1.0 i TLS 1.1 (RFC 8996). Problem w tym, że stare urządzenia Supli (np. ROW-01 z 2016/17 na ESP8266) potrafią komunikować się wyłącznie przez te protokoły.

Jeżeli masz tylko nowe urządzenia – najlepiej usunąć TLSv1 i TLSv1.1 z listy.

Jeżeli musisz wspierać stare urządzenia, trzeba je jawnie odblokować w Javie.

Plik java.security znajdziesz w:

Code: Select all

$JAVA_HOME/conf/security/java.security
$JAVA_HOME/lib/security/java.security
W pliku znajdź:

Code: Select all

jdk.tls.disabledAlgorithms
i usuń z listy:
- SSLv3
- TLSv1
- TLSv1.1

Zrób kopię zapasową przed edycją.
Po zapisaniu zmian zrestartuj OpenHABa.

Więcej informacji: Enabling TLS 1.0 and TLS 1.1

Jeśli mamy już wszystko gotowe, klikamy Create Thing. OpenHAB powinien przenieść nas na stronę z utworzonym serwerem Supla. Na tej stronie można później zmieniać konfigurację według dokładnie tych samych zasad jak przy tworzeniu serwera — tylko pamiętaj o jednej rzeczy: Save / Ctrl+S, bo inaczej zmiany po prostu się nie zapiszą.
4.04 Create supla server.png
--------------------------------------------------------------------------------------------------------------------------------------------------------

Dodanie urządzenia – przykład ROW-01

Mam ROW-01 z około 2017 roku na ESP8266. Rejestruje się po starym flow (Access ID + Password). Mogą być losowe – ważne, żeby były takie same w urządzeniu i w OpenHAB.
4.05 ROW config - small.png
Po zapisaniu konfiguracji resetuję urządzenie. Zielona dioda powinna migać co ~1 sekundę.

W OpenHAB:
Things → „+” → Supla → Scan
4.06 scan ROW.png
Do minuty czasu powinien pojawić się ROW-01 w Discovered Things. Klikam:
- Add as a thing
- dwa razy OK

Wchodzę w konfigurację urządzenia, włączam advanced i wpisuję:
- Server Access ID: 123
- Password: abc

Save.
Jeżeli wszystko się zgadza, urządzenie świeci się na zielono.
4.07 Added ROW.png
--------------------------------------------------------------------------------------------------------------------------------------------------------

Warstwa fizyczna vs semantyczna – o co w tym naprawdę chodzi

To jest jedno z najczęstszych źródeł zamieszania w openHAB. I zupełnie mnie to nie dziwi, bo na pierwszy rzut oka wygląda to jak „sztuka dla sztuki”.

Najprościej:
Thing + Channels = integracja techniczna
Model semantyczny = znaczenie i logika domu

Rozbijmy to spokojnie na czynniki pierwsze.

--------------------------------------------------------------------------------------------------------------------------------------------------------

1️⃣ Thing + Channels – jak urządzenie gada z openHAB

🔧 Thing

Thing reprezentuje fizyczne albo logiczne urządzenie:

- żarówkę
- czujnik
- mostek (bridge)
- falownik
- termostat

Przykłady:
- żarówka Zigbee
- gniazdko Wi-Fi
- czujnik temperatury Z-Wave

Thing = „to coś istnieje i da się z nim połączyć”

---

🔌 Channel

Channel to konkretna funkcja lub parametr danego urządzenia:

- ON / OFF
- jasność
- temperatura
- wilgotność
- poziom baterii

Przykład:
- Thing: czujnik temperatury i wilgotności
- Channel: temperature
- Channel: humidity
- Channel: battery

---

🧱 Item (element pośredni)

Channel łączy się z Itemem, bo:
- reguły
- UI
- sitemap
- automatyzacje
działają na Itemach, a nie bezpośrednio na Thingach.

Schemat wygląda tak:

Code: Select all

Thing ── Channel ── Item
💡 To jest warstwa techniczna.
Jak kabel, sterownik, protokół.
Bardzo ważna, ale kompletnie pozbawiona „znaczenia”.

--------------------------------------------------------------------------------------------------------------------------------------------------------

2️⃣ Model semantyczny – co to znaczy w Twoim domu

Model semantyczny nie opisuje, jak urządzenie działa.
On odpowiada na zupełnie inne pytania:

👉 GDZIE to jest
👉 CZYM to jest
👉 DO CZEGO służy

---

🏠 Lokacje (Location)

- Dom
- Parter
- Salon
- Kuchnia

---

🧰 Sprzęt (Equipment)

- Lampa
- Termostat
- Gniazdko
- Czujnik

---

📍 Punkty (Point)

- Światło
- Temperatura
- Wilgotność
- Ruch
- Zużycie energii

---

🧩 Klasy semantyczne

Item dostaje tagi semantyczne, np:
- Location
- Equipment
- Point
- Light
- Temperature
- Humidity

Dzięki temu openHAB rozumie sens, a nie tylko nazwę.

--------------------------------------------------------------------------------------------------------------------------------------------------------

3️⃣ Jak to się łączy w praktyce

Technicznie:

Code: Select all

Thing (Zigbee bulb)
 └── Channel (switch)
     └── Item (Salon_Lampa_ONOFF)
Semantycznie:

Code: Select all

Dom
 └── Salon (Location)
     └── Lampa_Sufitowa (Equipment)
         └── Światło (Point + Light)
⚠️ To jest ten sam Item.

Różnica polega na tym, że:
- jest połączony z Channel (technika),
- ma tagi semantyczne (znaczenie).

--------------------------------------------------------------------------------------------------------------------------------------------------------

4️⃣ Co daje model semantyczny (konkretne korzyści)

✅ Lepsze UI (Main UI)

- openHAB sam buduje widoki
- „Światła w salonie”
- „Temperatura w domu”

Bez ręcznego dłubania w sitemapach 😎

---

✅ Prostsze reguły

Zamiast:

Code: Select all

if (Salon_Lampa1.state == ON || Salon_Lampa2.state == ON)
Możesz:
- operować na grupach,
- na wszystkich światłach w lokacji,
- na typach punktów.

---

✅ Skalowalność

- dodajesz nową lampę → UI samo ją ogarnia
- dodajesz nowy pokój → reguły nadal działają

--------------------------------------------------------------------------------------------------------------------------------------------------------

Pierwszy model domu – przykład

Zakładam dwupoziomowy dom przy ulicy Mickiewicza.

Model → Add locations from template
Wybieram:
- Two story house
- prefix: mickiewicz
- zaznaczam wszystkie lokacje

Po Add to model mam gotową strukturę.
4.08 Lokacje.png
ROW-01 odpowiada za światło w korytarzu:
Property → House → Ground Floor → Entry
4.09 create equipment from things.png
Create equipment from Things:
- Thing: ROW-01
- name: swiatlo_wejscie
- label: Główne światło
- kanał:
- name: swiatlo_wejscie_switch
- label: Włącznik światła w korytarzu
- icon: wallswitch
- semantic point: Control → Switch
- semantic property: Light

Klikam Add to model.
4.10 add items from thing.png
I gotowe. W zakładce Model mogę sterować światłem.
4.11 model with light.png
--------------------------------------------------------------------------------------------------------------------------------------------------------

Reasumując…

Na tym etapie OpenHAB może jeszcze nie wyglądać imponująco. I to jest OK. Mamy jednak realne urządzenie, realny serwer i sensowny model domu. To fundament, na którym da się budować automatyzacje bez bólu.

W kolejnych wpisach zajmiemy się:
- regułami (gdy dom zaczyna „myśleć”),
- Zigbee (kolejny system spięty w jedną całość).

--------------------------------------------------------------------------------------------------------------------------------------------------------

🔗 Poprzedni artykuł: OH #003 Instalacja OpenHABa – jak to zrobiłem i dlaczego tak
🔗 Następny artykuł: OH #005

--------------------------------------------------------------------------------------------------------------------------------------------------------

Post napisany przez człowieka, zredagowany przez AI
You do not have the required permissions to view the files attached to this post.
Supla ❤️ Open HAB - https://github.com/magx2/openhab-supla

Return to “OpenHAB”