logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ROZWIĄZANE] Lokalny UNLOCK zamków Tuya jtmspro (A1 Pro Max, A1 Ultra, Raykube AT1) w Home Assistant

jjohzie 12 Maj 2026 18:03 1161 1
  • #1 21901700
    jjohzie
    Poziom 1  
    Posty: 1
    [ROZWIĄZANE] Lokalny UNLOCK zamków Tuya jtmspro (A1 Pro Max, A1 Ultra, Raykube AT1) w Home Assistant — bez chmury

    Po wielu godzinach kombinowania (i prawie zakupie Aqary U200 za 1000 zł) udało mi się uruchomić zamek Tuya A1 Pro Max (kategoria: jtmspro, product_id: rlyxv7pe) w pełni lokalnie w Home Assistant — z otwieraniem włącznie — bez chmury Tuya, bez ich bramki, czysty BLE.

    Dzielę się bo informacje są rozsiane po GitHubowych issues, opuszczonych forkach i kilku rosyjskich forach. Pisałbym sobie wczoraj że ktoś to napisał — to dzisiaj.

    TL;DR



    Używaj ShonP40/Tuya-BLE (NIE PlusPlus-ua, NIE make-all/tuya-local) + Bluetooth proxy blisko zamka. ShonP40 ogarnia dynamiczne klucze anti-replay, które blokują pozostałe lokalne integracje dla zamków jtmspro.

    Problem



    Zamki Tuya "Pro" BLE (kategoria jtmspro) używają innego protokołu niż podstawowe BLE locks (kategoria ms):

    - PlusPlus-ua/ha_tuya_ble → "unsupported"
    - make-all/tuya-local → łączy przez bramkę ale otwarcie pisze że unlock wymaga chmury (DPS 60/61 potrzebuje dynamicznego klucza per request — to jest anti-replay protection)
    - LocalTuya / xZetsubou → ten sam problem
    - Sniffowanie kodu unlock z Tuya Cloud Device Logs → działa RAZ, potem klucz się rotuje (anti-replay swoje robi)

    Przez miesiące te zamki były uznawane za "tylko lock, brak lokalnego unlock". To nieprawda.

    Rozwiązanie: ShonP40/Tuya-BLE



    To mały fork (3 gwiazdki w chwili pisania) bazujący na pracy PlusPlus-ua/redphx/SupaHotMoj0, który jawnie wymienia rlyxv7pe (jtmspro) z opisem "Allows lock/unlock control and status monitoring."

    Repo: https://github.com/ShonP40/Tuya-BLE

    Repo siostrzane retomarek/tuya_local_ble wygląda identycznie i powinno też działać — fallback.

    Mój sprzęt (do referencji)



    - Home Assistant OS 17.x, Core 2026.5+
    - SLZB-06p10U od SMLight (koordynator Zigbee z ESP32-S3) sflashowany firmware ESPHome z smlight-dev/slzb-06-fw-esphome — dzięki temu jedno urządzenie obsługuje Zigbee + BT proxy jednocześnie
    - SLZB ~1m od zamka, w korytarzu
    - Zamek: Tuya A1 Pro Max (taka sama metoda powinna działać dla A1 Ultra, Raykube AT1, LA-T01 i innych jtmspro)

    Krok po kroku



    1. Wyciągnij credentials z Tuya IoT Platform



    Najpierw musisz sparować zamek w aplikacji Smart Life (nie ma obejścia — chmura generuje local_key podczas pairing). Potem:

    1. https://iot.tuya.com → utwórz Cloud Project, subskrybuj IoT Core API
    2. Zlinkuj konto Smart Life (Central Europe Data Center dla PL)
    3. API Explorer → Device Management → Query Device Details dla zamka
    4. Zapisz: device_id, local_key, uuid (= node_id), product_id, category

    2. Znajdź MAC adres BLE zamka



    Dwa sposoby:
    - W aplikacji Smart Life: zamek → ustawienia → Informacje o urządzeniu → MAC
    - W HA: Settings → Urządzenia i usługi → Bluetooth → zamki Tuya nadają service UUID 0000fd50-0000-1000-8000-00805f9b34fb

    3. Postaw Bluetooth proxy blisko zamka



    Opcje:
    - ESP32 z Ali za ~30 zł flashowany ESPHome bluetooth_proxy z https://esphome.github.io/bluetooth-proxies/
    - Lub SLZB-06xU (jak ja) → flash ESPHome z https://github.com/smlight-dev/slzb-06-fw-esphome — zachowuje Zigbee + dodaje BT proxy
    - Lub HA OS na RPi z natywnym BT (ograniczony zasięg)

    4. Instalacja ShonP40/Tuya-BLE przez HACS



    1. HACS → ⋮ → Custom repositories
    2. URL: https://github.com/ShonP40/Tuya-BLE, Category: Integration
    3. Pobierz "Tuya BLE"
    4. NIE restartuj jeszcze — najpierw zrób plik konfiguracyjny

    5. Utwórz devices.json



    Stwórz plik /config/tuya_local_ble/devices.json:

    {
    "AA:BB:CC:DD:EE:FF": {
    "address": "AA:BB:CC:DD:EE:FF",
    "uuid": "<twoj_uuid_czyli_node_id>",
    "local_key": "<twoj_local_key>",
    "device_id": "<twoj_device_id>",
    "category": "jtmspro",
    "product_id": "rlyxv7pe",
    "device_name": "Drzwi główne",
    "product_model": "AT1",
    "product_name": "Smart lock"
    }
    }

    Podmień MAC, uuid, local_key, device_id na swoje wartości. Dla A1 Pro Max zostaw category i product_id jak wyżej. Dla A1 Ultra product_id może być inny — sprawdź listę wspieranych w repo.

    Tip dla Windowsa: HA wystawia \\<IP-HA>\config\ jako udział SMB — możesz edytować pliki bezpośrednio z Eksploratora Windows + Notatnik. Uwaga na dwa pułapki:
    - Plik MUSI nazywać się devices.json (nie devices.json.txt) — włącz "Pokaż rozszerzenia plików" w Eksploratorze
    - Po zapisie sprawdź czy rozmiar > 0 KB

    6. Restart HA i konfiguracja



    Po restarcie integracja sama wykrywa zamek z devices.json. Idź do Ustawienia → Urządzenia i usługi → szukaj <MODEL> <KOŃCÓWKA_MAC> pod "Wykryte" z etykietą Tuya Local BLE. Kliknij "Utwórz".

    7. Test



    Encja zamka pojawia się z lock/unlock + bateria + kierunek + głośność. Klik unlock — drzwi się otwierają w ~1 sekundę.

    Co dostajesz



    - Lock i UNLOCK z HA (święty graal dla jtmspro)
    - Status baterii, kierunek zamka, głośność klawiszy
    - Automatyzacje na zdarzenia lock/unlock
    - Voice unlock przez Alexa/Google (przez HA, nie skille Tuya)
    - Status w czasie rzeczywistym
    - Wszystkie metody fizyczne nadal działają (odcisk, PIN, klucz, NFC, aplikacja)
    - 100% lokalnie — działa offline, bez połączeń z chmurą podczas użytkowania

    Kiedy chmura nadal potrzebna (opcjonalnie)



    - Dodawanie nowych odcisków/PIN — aplikacja Smart Life komunikuje się bezpośrednio przez BLE, nie chmurą
    - Aktualizacje firmware — przez aplikację Smart Life

    Pułapki na które ja wpadłem (uczcie się na moich błędach)



    1. Literówka mkdir w SSH — wpisywałem kdir przez 4 razy zanim zauważyłem brakujące "m"
    2. Tylda w nazwie folderu — przez błędne kopiowanie utworzył się tuya_local_ble~ (z ~), integracja nie znajdowała pliku
    3. .txt w nazwie pliku JSON — Windows ukrywa rozszerzenia, plik nazywał się devices.json.txt
    4. Pusty plik (0 KB) — zapomniałem Ctrl+S w Notatniku po wklejeniu treści
    5. Strzelanie ślepą drogą — przez 2 sesje próbowałem PlusPlus-ua i make-all/tuya-local przekonany że to ślepy zaułek. Trzeba było tylko zapytać "ktoś musiał to rozwiązać" i poszukać niszowych forków.

    Podziękowania



    Ogromne podziękowania dla:
    - @ShonP40 za działającą integrację
    - @plusplus-u, @redphx, @SupaHotMoj0, @dmickeyus — bazowy kod
    - SMLight za firmware ESPHome z BT proxy + Zigbee na SLZB-06xU
    I dla CLAUDE, że wykopał
    Jeśli ten post zaoszczędził Wam wieczór nerwów, dajcie ShonP40/Tuya-BLE gwiazdkę na GitHubie — mały projekt zasługuje na docenienie.

    Dodano po 8 [minuty]:

    Podziękowanie dla Claude (Anthropic) za pomoc w przekopywaniu się przez issues, debug i niszowe repo które bez głębokiego search bym nigdy nie znalazł.

    Strzelanie ślepą drogą — przez 2 sesje próbowałem PlusPlus-ua make-all/tuya-local, HA-ble przekonywany, że to ślepy zaułek. Trzeba było tylko zapytać “ktoś musiał to rozwiązać kop głębiej” i poszukał niszowych forków 3* tylko ale dobry projekt na lokalne działanie w HA polecam i dajcie like gościowi bo niedoceniony, a to złożony problem bo szyfrowanie w nich zmienne i to dobre zamki i tanie mam 2 już 3 lata i działa śmiga na bateriach a nie akumulatorach jak na razie nie zawiodły mnie w utomatyzacjach dlatego tak chciałem je mieć lokalnie i jest! Dzielmy się wiedzą !
REKLAMA