---
title: Integracja z Home Assistant
description:   Home Assistant Gate Http Grenton Przedstawiam Wam przykład jak zintegrować sceny Home Assistant do systemu Grenton. Przykład gdzie można wykorzystać integrację w przypadku gdy właściciel domu sam de
---

[Przejdź do treści](https://knowledgebase.grenton.com/pl/gate-http-integracja-z-home-assistant#main-content)

Polski

Pokaż podmenu do tłumaczenia

[Nowe zgłoszenie](https://knowledgebase.grenton.com/pl/kb-tickets/new?hsLang=pl) [Portal klienta](https://knowledgebase.grenton.com/wsparcie?hsLang=pl)

![Logo\_Grenton\_Main\_2020\_RGB\_v1.0-1.png\]](https://knowledgebase.grenton.com/hs-fs/hubfs/Logo_Grenton_Main_2020_RGB_v1.0-1.png?width=200&height=94&name=Logo_Grenton_Main_2020_RGB_v1.0-1.png)

Otwórz główne menu nawigacji

Zamknij główne menu nawigacji

- Polski
  
  Pokaż podmenu do tłumaczenia
- [Nowe zgłoszenie](https://knowledgebase.grenton.com/pl/kb-tickets/new)
- [Portal klienta](https://knowledgebase.grenton.com/wsparcie)
- [Szkolenia](https://szkolenia.grenton.pl/)

[Szkolenia](https://szkolenia.grenton.pl/)

 Witaj. Jak możemy Ci pomóc?

- Brak sugerowanych wyników, ponieważ pole wyszukiwania jest puste.

1. [Baza wiedzy](https://knowledgebase.grenton.com/pl?hsLang=pl)
2. [Konfiguracja i Integracje](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl)
3. [Gate HTTP](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#gate-http)

# Integracja z Home Assistant

 

**Home Assistant Gate Http Grenton**

Przedstawiam Wam przykład jak zintegrować sceny Home Assistant do systemu Grenton.

Przykład gdzie można wykorzystać integrację w przypadku gdy właściciel domu sam definiuje sceny dla np. oświetlenia podłączonego do Home Assistance a za pośrednictwem Gate Http je uruchamia z Smart Panelu.

Informacje krok po kroku jak zainstalować, skonfigurować i i uruchomić Home Assistance są dostępne na stronie tego projektu [https://www.home-assistant.io/getting-started/](https://www.home-assistant.io/getting-started/) Jest również wile filmów instruktażowych dostępnych na platformie Youtube, więc w tej instrukcji nie będzie opisany proces instalacji i tworzenia scen w Home Assistance.

W tym tutorialu jest zaprezentowane jak za pomocą RESTful API Home Assistance pobrać informacje o scenach i je wywołać za pomocą systemu Grenton.

Cała dokumentacja RESTful API Home Assistant jest dostępna pod adresem [https://developers.home-assistant.io/docs/api/rest/](https://developers.home-assistant.io/docs/api/rest/)

W tym przypadku w instalacji jest oświetlenie IKEA Tradfri, które zostało podpięte do Home Assistance i są utworzone sceny dla oświetlenia, z systemu Grenton sceny są uruchamiane.

[#1](https://support.grenton.pl/docs/product-documentation/-/issues/1?hsLang=pl)

**Tworzenie klucza API Home Assistant:**

- Logujemy się na swoje konto w Home Assistant.
- Następne w lewym dolnym roku klikamy na nazwę naszego konta.
- Przesuwamy ekran na dół do "Tokeny Dostępu"
- Klikamy utwórz token. Nadajemy mu nazwę.
- Zapisujemy token bo później nie będzie możliwości odczytania i będzie trzeba tworzyć nowy.

[![](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/token.png)](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/token.png?hsLang=pl)![](https://knowledgebase.grenton.com/hubfs/Knowledge%20Base%20Import/s3.amazonaws.comcdn.freshdesk.comdatahelpdeskattachmentsproduction35104014552originallKKXQbdRPJcxtTypXK-LB8rm-e0p_96kTQ-2.png)

[#2](https://support.grenton.pl/docs/product-documentation/-/issues/2?hsLang=pl)

**Pobieranie informacji o scenach z Home Assistance**

Należy utworzyć obiekt wirtualny HttpRequest w GATE HTTP, który będzie wykorzystany do komunikacji z Home Assistance. Konfigurujemy go następująco:

- Host - adres\_ip\_home\_assistance:8123
- RequestType i ResponseType - JSON
- pozostałe parametry będą modyfikowane przez skrypty

![](https://knowledgebase.grenton.com/hubfs/Knowledge%20Base%20Import/s3.amazonaws.comcdn.freshdesk.comdatahelpdeskattachmentsproduction35104014548originalNY1-Trym-63izd_NuvZ10oE0WLWsGJPegw-2.png)[![](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/httpreq.png)](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/httpreq.png?hsLang=pl)

[#3](https://support.grenton.pl/docs/product-documentation/-/issues/3?hsLang=pl)

Będą potrzebne też cechy użytkownika zdefiniowane w GATE HTTP w celu przechowywania danych:

- *ha\_scenes* - cecha typu string którą wykorzystamy do przechowania tabeli identyfikatorów scen pobranych z Home Assistant
- *ha\_api* - token utworozny na początku
- *ha\_selected\_scene* - indeks wybranej aktualnie sceny
- *ha\_scanes\_count* - liczba pobranych scen
- *ha\_scenes\_name* - tablica z przyjaznymi nazwami scen
- *ha\_name\_scene* - nazwa aktualnie wybranej sceny (potrzebne by przekazać do Smart Panelu)

LUA jest językiem programowania bez silnego typowania, to znaczy cecha użytkownika / zmienna może być liczbą, stringiem lub nawet tablicą. Ten przykład wykorzystuje tą możliwość. Została utworzona cecha użytkowniku typu String, która może przechować adres tabeli, notacja "dzidowa" nie pozwala na użycie jej do tablic dlatego trzeba będzie przypisać ją do zmiennej lokalnej LUA (w kolejnych krokach). Tabele są tworzone w ramach modułu CLU/Gate na którym są tworzone, przez to nie mogą być przekazywane miedzy CLU, gdyż Cechy Użytkownika przechowują wskaźnik na tabelę (patrz załączony obrazek).

Jak widać na załączonym obrazie mimo, iż w OM nie ma cech użytkownika typu table to możemy z skryptu LUA taką cechę sobie stworzyć.

![](https://knowledgebase.grenton.com/hubfs/Knowledge%20Base%20Import/s3.amazonaws.comcdn.freshdesk.comdatahelpdeskattachmentsproduction35104014550originalWo-kwJsbzjKZtISjr48F75aY1QztRm56Wg-2.png)[![](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/gatefeatures.png)](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/gatefeatures.png?hsLang=pl)

[#4](https://support.grenton.pl/docs/product-documentation/-/issues/4?hsLang=pl)

**Skrypty do obsługi Smart Panelu**

Do sterowania wyborem scen wykorzystany jest Smart Panel.

Na początek skrypt, który będzie uruchamiany przez prawy górny przycisk Smart Panelu - zdarzenie OnClick, w celu pobrania aktualnego stanu o scenach. Użytkownik klika w celu aktualizacji.

Na potrzeby przykładu do uruchomienia aktualizacji listy jest wykorzystany przycisk lecz w praktyce może być to obiekt timera, który aktualizuje listę co jakiś czas, albo HttpListener reagujący na zdarzenie (np. aktualizacji scen) przesłane z Home Assistance.

```
-- request - pobranie scen z HAlocal reqHeaders = "Authorization: Bearer "..GATE_HTTP->ha_apilocal path = "/api/states"local method = "GET"GATE_HTTP->GetScenesReq->SetRequestHeaders(reqHeaders)GATE_HTTP->GetScenesReq->SetPath(path)GATE_HTTP->GetScenesReq->SetMethod(method)GATE_HTTP->GetScenesReq->SendRequest()
```

 

[#5](https://support.grenton.pl/docs/product-documentation/-/issues/5?hsLang=pl)

W obiekcie HttpRequest, który stworzony został wcześniej do komunikacji z Home Assistant, zdarzeniu OnResponse przypisujemy wywołanie skryptu do przetworzenia odebranych informacji:

```
local resp = GATE_HTTP->GetScenesReq->ResponseBodylocal tabSences = {} --tabela z id scenlocal tabNameScenes = {} -- tabela z nazwami scenlocal i = 0local selected = GATE_HTTP->ha_selected_sceneprint("result code: "..GATE_HTTP->GetScenesReq->StatusCode)if resp ~= nil then    -- pętla dla każdego elementu z pobranego JSONa    for key,value in ipairs(resp) do    -- jesli jest to definicja sceny        if string.match(value.entity_id, "scene") then             -- dodanie scen do konca tabeli            table.insert(tabSences,value.entity_id)            table.insert(tabNameScenes,value.attributes.friendly_name)            -- zwiększenie licznika zapisanych scen            i = i + 1        end    end    GATE_HTTP->ha_scenes = tabSences    GATE_HTTP->ha_scenes_name = tabNameScenes    GATE_HTTP->ha_scanes_count = i        GATE_HTTP->ha_name_scene = tabNameScenes[1]    --wywołanie rysowania Smart Panelu    CLUZ->ha_draw_page()else    print("something is not working")end
```

 

[#6](https://support.grenton.pl/docs/product-documentation/-/issues/6?hsLang=pl)

Należy utworzyć obiekt wirtualny HttpRequest w GATE HTTP, który będzie wykorzystany do komunikacji z Home Assistance w celu wywołania sceny. Konfigurujemy go następująco:

- Host - adres\_ip\_home\_assistance:8123
- RequestType i ResponseType - JSON
- pozostałe parametry będą modyfikowane przez skrypty

![](https://knowledgebase.grenton.com/hubfs/Knowledge%20Base%20Import/s3.amazonaws.comcdn.freshdesk.comdatahelpdeskattachmentsproduction35104014556originalwT0UsXLbNt76S696j05IcncZwxUQnFyEeQ-2.png)[![](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/set_httpreq.png)](https://support.grenton.pl/docs/product-documentation/-/raw/master/tutorials/home_assistance-sceny-grenton/set_httpreq.png?hsLang=pl)

[#7](https://support.grenton.pl/docs/product-documentation/-/issues/7?hsLang=pl)

**Uruchomienie Sceny Home Assistance**

Aby uruchomić wybraną scenę należy stworzyć skrypt i powinien być uruchomiony przez zdarzenie OnClick lewego górnego (taka propozycja) przycisku Smart Panelu

```
local tab = GATE_HTTP->ha_sceneslocal reqHeaders = "Authorization: Bearer "..GATE_HTTP->ha_api --dodanie nagłówka autoryzacji z tokenulocal path = "/api/services/scene/turn_on" --ścieżka do właczenia scenylocal method = "POST" -- metoda POST-- tworzenie JSON żądania local p = GATE_HTTP->ha_selected_scenelocal reqJson = {    entity_id = tab[p]}-- ustawienie parametrów obiektu HttpRequestGATE_HTTP->SetSceneRequest->SetRequestHeaders(reqHeaders)GATE_HTTP->SetSceneRequest->SetPath(path)GATE_HTTP->SetSceneRequest->SetMethod(method)GATE_HTTP->SetSceneRequest->SetRequestBody(reqJson)GATE_HTTP->SetSceneRequest->SendRequest()--wywołanie rysowania Smart PaneluCLUZ->ha_draw_page()
```

 

[#8](https://support.grenton.pl/docs/product-documentation/-/issues/8?hsLang=pl)

Przełączenie wybranej sceny w Smart Panelu będzie oparte o dwa skrypty. Pierwszy będzie zwiększał licznik wskazujący aktualną pozycję w tabeli scen, a drugi go zmniejszał. Jeśli wskaźnik miałby wskazywać po za zakres (wielkość) tablicy scen to będzie mu przypisywana wartość początku lub końca. W taki sposób będzie można rotacyjnie przeglądać tabelę z scenami.

Skrypt dla lewego dolnego przycisku który przełącza na poprzednią scenę, zdarzenie OnClick:

```
local selected = GATE_HTTP->ha_selected_scenelocal tab = GATE_HTTP->ha_scenes_namelocal count = GATE_HTTP->ha_scanes_count -- czy moge indeks aktualnej sceny zmniejszyć czy ustawić mu wartosć końca tabeli?-- potrzebne by nie odwoływać się po nie istniejacych elementów tablicyif (selected - 1) >= 1 then    selected = selected - 1else    selected = countendGATE_HTTP->ha_selected_scene = selectedGATE_HTTP->ha_name_scene = tab[selected]--wywołanie rysowania Smart PaneluCLUZ->ha_draw_page()
```

 

[#9](https://support.grenton.pl/docs/product-documentation/-/issues/9?hsLang=pl)

Skrypt przełączający na kolejną scenę, skrypt dla zdarzenie OnClick prawego dolnego przycisku Smart Panelu.

```
local selected = GATE_HTTP->ha_selected_scenelocal tab = GATE_HTTP->ha_scenes_namelocal count = GATE_HTTP->ha_scanes_count -- czy moge indeks aktualnej sceny zwiększyć czy ustawić mu wartosć początkową?-- potrzebne by nie odwoływać się po nie istniejacych elementów tablicyif (selected + 1) <= count then    selected = selected + 1else    selected = 1endGATE_HTTP->ha_selected_scene = selectedGATE_HTTP->ha_name_scene = tab[selected] --wywołanie rysowania Smart PaneluCLUZ->ha_draw_page()
```

 

[#10](https://support.grenton.pl/docs/product-documentation/-/issues/10?hsLang=pl)

**Konfiguracja Smart Panelu**

W Smart Panelu w celu obsługi scen, wykorzystana jest strona w trybie freeDraw gdzie wyrysowywany jest interfejs dla scen.

Skrypt rysujący:

```
-- skrypt rysujacy Smart Panellocal sceneName = GATE_HTTP->ha_name_scene --pobranie nazwy scenyCLUZ->SPANEL->ClearScreen()CLUZ->SPANEL->PrintText(5,5,"Set",1)CLUZ->SPANEL->PrintText(110,5,"Get",1)CLUZ->SPANEL->PrintText(5,45,"<-",1)CLUZ->SPANEL->PrintText(115,45,"+>",1)CLUZ->SPANEL->PrintText(30,25,sceneName,1)CLUZ->SPANEL->DisplayContent()
```

 

Skrypt uruchamiany przez skrypty przycisków oraz powinien być uruchamiany przez zdarzenie OnDraw strony Smart Panelu.

I to wszystko. Teraz wystarczy wrzucić kod do CLU i Gate, zapisać projekt.

![](https://knowledgebase.grenton.com/hubfs/Knowledge%20Base%20Import/support.grenton.plplsupportsolutionsarticles35000169687-gate-http-integracja-z-home-assistanthit-2.gif)

- [Wytyczne instalacyjne](https://knowledgebase.grenton.com/pl/wytyczne-instalacyjne?hsLang=pl#main-content)

    - [Jak Wykonać Instalację Elektryczną](https://knowledgebase.grenton.com/pl/wytyczne-instalacyjne?hsLang=pl#jak-wykona%C4%87-instalacj%C4%99-elektryczn%C4%85)
- [Urządzenia referencyjne](https://knowledgebase.grenton.com/pl/urz%C4%85dzenia-referencyjne?hsLang=pl#main-content)

    - [Zintegrowane urządzenia](https://knowledgebase.grenton.com/pl/urz%C4%85dzenia-referencyjne?hsLang=pl#zintegrowane-urz%C4%85dzenia)
- [Najczęstsze Błędy](https://knowledgebase.grenton.com/pl/najcz%C4%99stsze-b%C5%82%C4%99dy?hsLang=pl)
- [Instalacja Elektryczna](https://knowledgebase.grenton.com/pl/instalacja-elektryczna?hsLang=pl)
- [Konfiguracja i Integracje](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#main-content)

    - [Gate Modbus](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#gate-modbus)
    - [Videoszkolenia](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#videoszkolenia)
    - [Aplikacje](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#aplikacje)
    - [Gate HTTP](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#gate-http)
    - [Smart Panel](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#smart-panel)
    - [Konfiguracja](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#konfiguracja)
    - [Interfejsy myGrenton](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#interfejsy-mygrenton)
    - [Obiekty wirtualne](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#obiekty-wirtualne)
    - [Gate Alarm](https://knowledgebase.grenton.com/pl/konfiguracja-i-integracje?hsLang=pl#gate-alarm)
- [Domofon](https://knowledgebase.grenton.com/pl/domofon?hsLang=pl)
- [Najczęściej Zadawane Pytania](https://knowledgebase.grenton.com/pl/najcz%C4%99%C5%9Bciej-zadawane-pytania?hsLang=pl#main-content)

    - [FAQ](https://knowledgebase.grenton.com/pl/najcz%C4%99%C5%9Bciej-zadawane-pytania?hsLang=pl#faq)
    - [O Grenton](https://knowledgebase.grenton.com/pl/najcz%C4%99%C5%9Bciej-zadawane-pytania?hsLang=pl#o-grenton)
- [Cenniki i dokumenty](https://knowledgebase.grenton.com/pl/cenniki-i-dokumenty?hsLang=pl)

[![Grenton logo](https://knowledgebase.grenton.com/hs-fs/hubfs/Logo_Grenton_variants_BIG_2020_plus_RGB_v0.2-02.png?width=400&height=100&name=Logo_Grenton_variants_BIG_2020_plus_RGB_v0.2-02.png "Grenton logo")](http://grenton.com)

<https://www.facebook.com/grenton.smart.home> <https://www.instagram.com/grenton_smart_home/> <https://www.youtube.com/channel/UCFNNI-dgO1cm81kCrSr1bzg> <https://www.linkedin.com/company/grenton>

Copyright © 2026, Grenton Sp.z o.o.