Dom, z którym się rozmawia. Projekt, w którym sprawdzam, co potrafi AI
Od jakiegoś czasu w mojej sieci domowej stoi komputer, który steruje instalacją na podstawie tego, co mu powiem. Nie kupiłem go. Zbudowałem go sam, jako projekt hobbystyczny.
Piszę o tym, bo w mojej opinii sposób obsługi budynków zmieni się w ciągu najbliższych lat i wolę to sprawdzić na własnej instalacji, niż dowiedzieć się o tym od klienta.
Uprzedzam od razu, żeby nie było nieporozumień: to nie jest produkt na sprzedaż. Nie mam dla niego cennika ani terminu. To projekt, w którym sprawdzam, co da się zrobić.
Sprawdzam na nim też rzeczy, które z domem nie mają nic wspólnego, i o jednej z nich napiszę niżej, bo to ona przekonała mnie, że ta zabawa ma sens.
Co to właściwie jest
Duży komputer stojący lokalnie w sieci domowej, podłączony do istniejącej instalacji. Rozmawia się z nim pisząc albo mówiąc, tak jak z człowiekiem.
- „wyłącz światło i muzykę w salonie” i gaśnie, i cichnie
- „co teraz gra w salonie?” i dostaję stację, wykonawcę i tytuł
- „ile jest stopni w łazience?” i słyszę 20,5
To nie jest czat, który opowiada o domu. To czat, który ten dom obsługuje.
To nie jest jeden program, tylko zespół
I to jest rzecz, którą uważam za najciekawszą w całym projekcie.
W środku siedzi rdzeń, który rozumie, co człowiek powiedział, i pilnuje, kto ma do czego prawo. Wokół niego osobne moduły, z których każdy zna jedną dziedzinę: dom, energię, pogodę, ekrany. Każdy moduł sam opowiada rdzeniowi, co potrafi i co wysyła na zewnątrz. Dołożenie nowego nie wymaga przepisywania serwera ani nawet jego zatrzymania.
Najprościej wytłumaczyć to tak: to jest jak firma. Recepcja rozumie, z czym przyszedłeś, i kieruje do właściwego działu. Dział zna się na swoim i robi swoje. Recepcja pilnuje, żeby nikt nie obiecał czegoś, czego nie zrobił.
Skutek uboczny jest taki, że awaria jednego modułu nie kładzie reszty.
Narzędzia i agenci. To nie to samo
Narzędzie to ręce serwera. Wykonuje i nie myśli: zapal światło, wyślij SMS, sprawdź pogodę.
Agent ma własną głowę i własną wiedzę o swojej dziedzinie. Czat nie wydaje mu poleceń, tylko pyta go o zdanie.
Dziś pracuje pięciu takich agentów:
Energia. Patrzy na liczniki i fotowoltaikę, planuje dobę i mówi, co warto zrobić. Reaguje na zdania w rodzaju „wysokie rachunki” albo „nie wiem, kiedy włączyć pralkę”. Doradza, sam nie steruje.
Panel. Z rozmowy robi stronę na tablet: dobiera kafle, rozkłada je, dobiera kolory.
Jedzenie. Zna knajpy w okolicy, menu i historię zamówień. Reaguje na „jestem głodny” i „nie chce mi się gotować”.
Obecność. Wie, kto jest w domu. Poznaje to po urządzeniach w sieci i po zdarzeniach z instalacji: ruch, dotknięcie klawisza, otwarte okno, stan alarmu.
Efekty świetlne. Piszesz „zrób coś jak ognisko” i powstaje nowy efekt na paskach LED.
Rzecz, która zaskoczyła mnie najbardziej
Każdy moduł deklaruje nie tylko to, co potrafi, ale też na jaką bolączkę pomaga.
Dlatego „jestem głodny” nie jest komendą, a i tak coś uruchamia. „Mam wysokie rachunki” też. „Nudne te efekty” też.
Do czego zmierzam? Nie musisz wiedzieć, co ten serwer umie. Mówisz, co ci przeszkadza, a on sam mówi, czy ma na to sposób. To nie jest wyszukiwarka po słowach kluczowych. Moduł opisuje się objawami, którymi ludzie mówią o problemach, a nie nazwami funkcji.
Uczy się tego, jak mówi konkretny domownik
Pierwsze zdanie wymaga zastanowienia. Drugie jest natychmiastowe, bo serwer zapamiętał, co ma zrobić.
Tu wyszła rzecz, której nie zakładałem. Każdy w domu nazywa rzeczy inaczej. Jeden mówi „zgaś”, drugi „wyłącz”, dziecko mówi „ciemno”. Serwer uczy się każdego z osobna, zamiast wymagać, żeby wszyscy mówili tak samo.
Ekrany, które powstają w rozmowie
Mówię „zrób panel do salonu” i serwer składa go sam. „Dodaj termostat z salonu” i kafel dochodzi. „Zrób ten kafel na czerwono” i robi się czerwony.
Wychodzi z tego gotowy ekran pod własnym adresem, który odpalam na tablecie wiszącym na ścianie. Panel odświeża się sam, więc nie trzeba go dotykać, żeby zobaczyć zmianę. Kafli jest dziś siedem rodzajów.
Czyta urządzenia, nie własną pamięć
To brzmi jak szczegół techniczny, a jest sednem.
Większość paneli pokazuje, co ostatnio kliknięto. Ten pokazuje, co urządzenie naprawdę odpowiada. Prosty przykład: przy muzyce podaje stację i tytuł, mimo że bloczek audio w instalacji w ogóle tego nie udostępnia. Trzeba było znaleźć drugi kanał i się do niego podłączyć.
Odpowiedź słychać tam, gdzie jesteś
Jeśli w domu jest system audio Loxone, serwer nie musi odpowiadać na ekranie. Może powiedzieć to na głos, w konkretnej strefie. Pytasz w kuchni, odpowiedź słyszysz w kuchni, a nie w całym domu.
Dzieje się to na miejscu, u mnie w sieci. Głos nie jedzie po odpowiedź do chmury i nie wraca.
Do czego zmierzam? Dla mnie to jest moment, w którym dom przestaje być czymś, co się obsługuje, a zaczyna być czymś, z czym się rozmawia. Bez telefonu w ręce i bez szukania tabletu.
Zasada, która okazała się najważniejsza: nie kłamie
Największą wadą asystentów, których widziałem, jest to, że mówią „zrobione”, gdy nic nie zrobiły.
Tutaj odpowiedź „zrobione” jest możliwa tylko wtedy, gdy urządzenie potwierdzi wykonanie. Gdy coś nie poszło, słyszę, że prosiłem o trzydzieści, a jest inaczej. Kafel bez odczytu pokazuje kreskę, nigdy zera, bo zero wygląda jak pomiar, a jest zgadywaniem.
To brzmi gorzej przez pierwszy dzień i lepiej przez następne pięć lat.
Rzeczy nieodwracalne wymagają potwierdzenia. Przy kasowaniu każde zdanie, które nie jest wyraźnym „tak”, liczy się jak „nie”.
Lokalnie z założenia
Serwer stoi w domu, nie w chmurze. Odczyty, historia, panele i zapamiętane zdania leżą na miejscu. Sterowanie działa bez internetu, więc awaria łącza nie gasi światła. Każdy moduł musi zadeklarować, co wysyła na zewnątrz, i widać to w panelu.
I teraz rzecz, którą trzeba powiedzieć uczciwie, bo inaczej nie miałoby to sensu. W trakcie pracy okazało się, że do niektórych zadań lokalny model bywa za słaby. Ułożenie skomplikowanego panelu, analiza zużycia energii, opisanie zdjęcia.
Dlatego każdego agenta z osobna można przełączyć na mocniejszy model zewnętrzny. Ten jeden, nie wszystko naraz. Reszta zostaje na miejscu. Nie trzeba wybierać między prywatnością a jakością dla całego domu.
Więc nie napiszę „wszystko zawsze wyłącznie lokalnie”, bo to byłaby nieprawda. Napiszę: lokalnie z założenia, z możliwością wzmocnienia jednego wybranego kawałka.
I test, po którym przestało to być zabawą
Do tej pory pisałem o domu. A najbardziej przekonał mnie test, który z domem nie ma nic wspólnego.
Jednym z testów jest przyjmowanie transportów w zakładzie.
Awizacja transportu trafia do serwera. Serwer rozumie, czego dotyczy, zakłada transport i dopytuje o brakujące dane. Po zatwierdzeniu otwiera kierowcy dostęp do bramy, ważny od dwóch godzin przed przyjazdem do sześciu po. Wysyła kierowcy SMS-a. Transport pojawia się na tablicy na telewizorze w portierni.
Robią to trzy osobne moduły: logistyka, dostęp do bramy i wysyłka SMS. Żaden z nich nie wie o istnieniu pozostałych. Spina je rdzeń.
I druga rzecz, która w firmie znaczy więcej, niż się wydaje: okno dostępu wygasa samo. Nikt nie musi pamiętać o odbieraniu uprawnień. W zakładach, do których wchodzę, regularnie zostają aktywne przepustki po ludziach, których tam już nie ma.
Do czego zmierzam? Ten sam mechanizm, który gasi światło w salonie, potrafi wpuścić kierowcę na teren zakładu i dopilnować, żeby dostęp wygasł sam. To nie jest funkcja inteligentnego domu. To firmowy proces, obsłużony tym samym sposobem.
Uczciwie, dwie rzeczy do zaznaczenia. Automatyczne czytanie skrzynki pocztowej jest napisane, ale nie sprawdziłem go na żywej skrzynce, więc nie napiszę, że działa. I to jest na razie test, zbudowany i sprawdzany na pierwszej wersji serwera. Nie mam tego nigdzie w stałej eksploatacji.
Czego jeszcze nie ma
Piszę to celowo, bo lista rzeczy niedziałających mówi o projekcie więcej niż lista działających.
Nie ma wykresów na panelach. Nie ma kafla alarmu ani kafla z kamerą. Nie ma sterowania stacjami radiowymi.
Wszystko, co opisałem wyżej, jest sprawdzone na urządzeniach Loxone i Ubiquiti, bo na takich pracuję i takie mam u siebie. Inne systemy da się dołożyć, ale „da się” to nie to samo co „obsługuję”, więc tego nie obiecuję.
Liczby z jednego domu
Żeby było jasne, skąd te dane: to jedna instalacja testowa, w moim domu. Nie u klientów.
| Co | Ile |
|---|---|
| podłączone narzędzia i agenci | 11 |
| czynności, które umie wykonać | 80 |
| zapamiętane zdania domownika | 78 |
| rodzaje kafli na panelach | 7 |
| zapisane zdarzenia w domu | ponad 13 700 |
To druga wersja
Pierwsza działała u mnie przez rok i to ona pokazała, co trzeba zrobić inaczej. Druga jest pisana od nowa, z tą wiedzą, i dlatego pewne rzeczy w niej po prostu nie mogą się zdarzyć. Zasada „zrobione znaczy zrobione” jest właśnie stamtąd.
Wersja druga ma dziś mniej funkcji niż pierwsza, bo część czeka na przeniesienie na nowy fundament. Wolę tak, niż budować kolejne piętro na czymś, co już raz się rozjechało.
Po co mi sztuczna inteligencja w inteligentnym domu
Bo instalacje, które dziś robię, mają działać przez dziesięć lat i dłużej. Jeżeli za trzy lata standardem stanie się obsługa budynku rozmową zamiast klikania, to chcę wtedy wiedzieć, jak to zrobić dobrze, a nie zaczynać naukę od klienta, który za to zapłacił.
To jest inwestycja w rozumienie, nie w produkt. Jak z tego kiedyś coś wyjdzie, to powiem. Na razie po prostu sprawdzam.