WIP Integracja MQTT SUPLA

Patrze i u mnie tak to pieknie nie wygląda.

Podłączyłem moduł czy jest jakiś hack zeby żarówki z HUE wykrył?

Hue bridge #

When the bulb is still connected to the Hue bridge, you can simply factory reset the bulb by removing it from the bridge via the Hue app. Orphaned bulbs (configured to connect to a non-existing zigbee network) can be adopted by a Hue bridge by entering the 6 character serial number in the Philips Hue app.

Nie mam mostka HUE ale urzadzenia HUE (żarówki, czujniki ruchu) mam podłączone do Zigbee2MQTT.
Trochę robi się off-topic.

1 polubienie

Żarówki dodałem logike też nie wiem czemu niektóre żarówki które były pod mostkiem już usunięte nie widzi mi mqtt

@olek123456 tematów o zigbee na tym forum nie brakuje, a ten jest o Supla.

oki nie ma co mieszać . Pasuje zamknąć wątek

Ruszyła aktualizacja serwerów Supli.

Ale nie mogę dokończyć dodawania integracji, po przejściu autoryzacji na supli, portal integratora przekierowuje na bramkę ale “server got itself problem”

Logger: aiohttp.server
Source: components/ais_supla_mqtt/config_flow.py:101
First occurred: 20:39:10 (5 occurrences)
Last logged: 20:53:03

Error handling request
Traceback (most recent call last):
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
    resp = await self._request_handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle
    resp = await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 118, in impl
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/security_filter.py", line 56, in security_filter_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/request_context.py", line 18, in request_context_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/ban.py", line 72, in ban_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/auth.py", line 127, in auth_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/view.py", line 129, in handle
    result = await result
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/ais_supla_mqtt/config_flow.py", line 39, in get
    await hass.config_entries.flow.async_configure(flow_id=flow_id, user_input={})
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/data_entry_flow.py", line 155, in async_configure
    result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/data_entry_flow.py", line 213, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/ais_supla_mqtt/config_flow.py", line 101, in async_step_obtain_token
    result = await token_response.json()
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1097, in json
    raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://cloud.supla.org/oauth/v2/token')
3 polubienia

Kilka godzin temu dostaliśmy info z SUPLA (na zielono):

image

Integracja z SUPLA po MQTT zostaje w wersji Darek, na beta wydaliśmy właśnie kolejną wersję:

2 polubienia

Ręcznie zainstalowałem Nowego Darka ale Supla wciąż nie rusza :frowning:

Logger: aiohttp.server
Source: components/ais_supla_mqtt/config_flow.py:101
First occurred: 22:05:36 (1 occurrences)
Last logged: 22:05:36

Error handling request
Traceback (most recent call last):
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
    resp = await self._request_handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle
    resp = await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 118, in impl
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/security_filter.py", line 56, in security_filter_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/request_context.py", line 18, in request_context_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/ban.py", line 72, in ban_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/auth.py", line 127, in auth_middleware
    return await handler(request)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/http/view.py", line 129, in handle
    result = await result
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/ais_supla_mqtt/config_flow.py", line 39, in get
    await hass.config_entries.flow.async_configure(flow_id=flow_id, user_input={})
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/data_entry_flow.py", line 155, in async_configure
    result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/data_entry_flow.py", line 213, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/ais_supla_mqtt/config_flow.py", line 101, in async_step_obtain_token
    result = await token_response.json()
  File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1097, in json
    raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://cloud.supla.org/oauth/v2/token')

U mnie to samo - 500tka.
Istnieje możliwość dodania tej integracji ręcznie, bez przechodzenia przez logowanie w supli?

EDIT:
chyba znalazłem przyczynę - mój serwer suplowy (svr24.supla.org) ma już wgraną niezbędną aktualizację, natomiast podczas próby wygenerowania tokena via AIS, jestem automagicznie przekierowywany do cloud.supla.org, które rzeczonej aktualizacji nie ma.
@jolka : jest możliwość dodania tej integracji ręcznie? jak musiałby wyglądać plik?

dodaliśmy na to poprawkę na BETA - jak by ktoś chciał poprawiać ręcznie to tu widać o jaką linijkę chodzi:

najnowszy Darek wydany na BETA - tu jest opis:

:warning: migracja serwerów w SUPLa trwa jeszcze, w razie problemów trzeba zaczekać aż się skończy i wtedy próbować.

1 polubienie

Jest git, działa ale trzeba przez przeglądarkę na kompie, na telefonie pojawiał się biały ekran z informacją że można zamknąć i nic więcej się nie działo.

1 polubienie

Edit 2 po chwili urządzenia zrobiły się aktywne ale raz załączone urządzenie nie da się wyłączyć, klkika kilka razy na sekundę, więc miałem dyskotekę.
image
Już sprawdziłem, trzeba każde urządzenie dodane usunąć. Ale mam problem, urządzenia się dodały jednak nie są aktywne, nie mogę nimi sterować :frowning: W logach pusto…

Jeszcze techniczne pytanie mam bo zawaliłem i nie usunąłem ręcznie dodanych elementów supli przed dodaniem integracji, żeby usunąć wszystkie nowododane urządzenia poprzez integrację wystarczy ze usunę integrację czy trzeba każde urządzenie ręcznie usuwać?

Cześć, Tak jak napisałem na formu supli, Problem polega na tym ze po restarcie bramki urządzenia supla stają się “nieaktywne” nie da się ich załączyć wyłączyć, nie przesyłają statusów. Stan integracji wyglada tak: image

Urządzenia są online w supli, W mqtt exploerze jestem podpięty na adres bramki i nie pojawiają się żadne nowe zdarzenia w w temacie supli.
Po usunięciu i dodaniu integracji wszystko wraca do normy. Jak potrzeba więcej informacji to napiszcie skąd je wyłuskać.
Po wczytaniu ponownie integracji mam tak
image
Pozdrawiam :wink:

dzięki za info,
pytamy już SUPL-e czy jest opcja żeby zrobić jakieś zapytanie o status urządzeń…
bo wygląda na to, że jak HA wstaje i dodaje tą integrację to SUPL-a po połączeniu publikuje wszystko na raz (info o urządzeniach) jak się HA uda to złapać to super, jak nie to koniec nie można zapytać ponownie

wypróbujmy mała poprawkę,

edytuj na bramce plik

nano ~/../usr/lib/python3.9/site-packages/homeassistant/components/ais_supla_mqtt/sensor.py 

na samym końcu pliku, skasuj to pass

i dodaj coś takiego

self._supla_mqtt_client.reconnect()

tylko się nie pomyl każda spacja jest ważna!

image

zapisujesz plik i potem restart usługi ais

pm2 restart ais

poczekaj aż wstanie, potem jeszcze ze 2 minuty i zobaczy czy status urządzeń z SUPLa jest OK?

1 polubienie

Poprawka u mnie zadziałała, supla po restarcie wystartowała :muscle:
edit:
ale dostęp zdalny do bramki zginął, po pełnym uruchomieniu bramki dostęp wrócił ale supla ponownie nie działa :thinking:

Wygląda na to że jest OK .

To są zupełnie niezależne 2 rzeczy (tunel do bramki nie ma nic wspólnego z połączeniem do brokera SUPLA MQTT), wszystko co mogło by te 2 funkcjonalności jakoś łączyć do dostęp do Internetu (to jedyny związek). Ale powinno być tak, że w zależności od dostępu do Internetu nie działa jedno i drugie albo działa jedno i drugie.

:+1:

Wprowadzimy dzisiaj na beta 2 małe poprawki w tym temacie:

  • nadamy wiadomością z SUPLA: QoS 1 - wg mqtt QoS poziom 1 gwarantuje, że wiadomość zostanie dostarczona przynajmniej raz do odbiorcy (do HA).
  • jeżeli po połączeniu z brokerem SUPLA nie otrzymamy żadnych komunikatów to będziemy robili reconnect co kilka minut, do czasu aż otrzymamy od brokera SUPLA MQTT info o urządzeniach.
    Dlaczego nie zawsze to info dociera do HA tego nie wiemy ale widać, że reconnect pomaga.
    Niestety na tą chwilę SUPLA nie udostępnia żadnej innej możliwości zapytania o urządzenia ani o ich status.

Obserwuję zrywanie połączenia z Suplą, działa, po jakimś czasie nie, potem znowu działa a potem znowu nie. Udało mi się zrobić zrzuty ekranu statusu. Jaki nie działa to jest info bad protocol. Jak wyświetlić logi? Mogę przesłać.

No dobra, mam połączenie, integrację z Suplą i… żadne urządzenie Supli nie zostało dodane do AIS…
Co robię nie tak?

A jakiego typu masz urządzenia w supli ? a także zerknij na forum supli