Infelizmente, mesmo fazendo parte do consórcio OpenThread, a Samsung tem se mostrado bastante restritiva ao utilizar sua rede Thread. Até então, não existe nenhuma UI ou forma simples de utilizar a rede Thread da Samsung para adicionar dispositivos em outras plataformas, obrigando o usuário a sempre utilizar o app SmartThings para efetuar o pareamento inicial.
Contudo, vasculhando algumas páginas do SmartThings, é possível obter certas credenciais, como a senha e o PAN ID do hub SmartThings, o que, por meio de um script Python, permite utilizar a rede com o Home Assistant.
Utilizando o aplicativo Home Assistant no iOS, também é possível exportar as credenciais do SmartThings com o iCloud Keychain, tornando viável adicionar dispositivos à rede Thread do SmartThings mesmo utilizando o processo de adição da Apple!
Vamos ao passo a passo:
Obtenha as credenciais
- Acesse a página de configurações do hub SmartThings e selecione o hub correspondente.
- Na página de configurações, role a tela até encontrar as informações da rede Thread do hub, que deverá conter o Network Key (semelhante à senha de sua rede Wi-Fi), Channel, o PAN ID e o Extended PAN ID (similar ao nome da sua rede Wi-Fi).

Como o código PAN ID fornecido pela Samsung está em decimal, precisamos o converter para hexadecimal. Para isso, podemos utilizar ferramentas online disponíveis no próprio Google.
Converta nossas credenciais em um conjunto de dados TLV
Em um computador com o Python instalado, crie um arquivo chamado tlv.py
e cole o script abaixo para obter o código TLV. Talvez seja necessário instalar a biblioteca
com os comandos python_otbr_api
ou pip install python_otbr_api
. python3 -m pip install python_otbr_api
Lembre-se de substituir as informações como o canal do Thread, Channel, PAN ID, PAN ID Expandido e Network Key pelos valores que você obteve da página do Samsung SmartThings.
import python_otbr_api
from python_otbr_api import PENDING_DATASET_DELAY_TIMER, tlv_parser
from python_otbr_api.pskc import compute_pskc
from python_otbr_api.tlv_parser import MeshcopTLVType, MeshcopTLVItem
CHANNEL = <Canal do Thread>
PANID = "<Seu PAN ID em Hexadecimal>"
EXTPANID = "<PAN ID estendido>"
NETWORK_KEY = "<Network Key do SmartThings>"
TIMESTAMP = b'\x00\x00\x00\x00\x00\x03\x00\x00'
channel = MeshcopTLVItem(tag=0, data=CHANNEL.to_bytes(length=3, byteorder='big'))
pan_id= MeshcopTLVItem(tag=1, data=bytes.fromhex(PANID))
ext_pan_id = MeshcopTLVItem(tag=2, data=bytes.fromhex(EXTPANID))
network_key = MeshcopTLVItem(tag=5, data=bytes.fromhex(NETWORK_KEY))
timestamp = MeshcopTLVItem(tag=14, data=TIMESTAMP)
tlv_new = {0: channel, 1: pan_id, 2:ext_pan_id, 4: network_key, 14: timestamp}
tlv = tlv_parser.encode_tlv(tlv_new)
print(tlv)
Script retirado do forum do Home Assistant.
Agora, utilizando o terminal do seu computador, execute o script com os comandos
ou python3 tlv.py
para obter o seu TLV.pip tlv.py

Adicione o TLV no Home Assistant
- Com posse do código TLV, acesse seu Home Assistant e vá em Configurações > Dispositivos e Serviços.
- Caso já tenha uma rede Thread configurada, você encontrará uma integração chamada Thread.
- Dentro da integração Thread, toque em Configurar e nos três pontos no canto superior direito.
- Na página, selecione a opção Adicionar conjunto de dados TLV e cole o código TLV gerado pelo script Python.

Unifique as redes!
Se o código TLV for aceito, você verá uma pequena chave ao lado da sua rede SmartThings e a opção Make Preferred Network disponível, na qual deverá tocar para tornar a rede SmartThings a preferida pelo Home Assistant.

Por fim, Toque nos três pontos correspondentes ao seu dongle Thread no Home Assistant e selecionar Adicionar à rede preferida.

Feito isso, seu dongle Thread do Home Assistant se juntará à rede SmartThings, ajudando a expandir a cobertura e podendo atuar como um segundo Thread Border Router, caso o hub Thread do SmartThings pare de funcionar.

E quanto ao Apple Home?
Infelizmente, ainda não é possível forçar os HomePods e Apple TVs a se conectarem à rede Thread da Samsung ou a uma rede Thread existente do Home Assistant. O comportamento padrão é a criação de uma nova rede sempre, e isso só deverá mudar com a adoção do novo protocolo Thread 1.4, que priorizará a conexão a redes existentes.
Todavia, segundo relatos, uma vez que as credenciais das redes estão salvas no Apple Keychain, os HomePods podem, eventualmente, se conectar a uma rede existente com o intuito de expandir a rede atual, ao invés de criar uma nova. No entanto, essa mudança ocorre de forma automática e aleatória, seguindo critérios desconhecidos.
Com as chaves do SmartThings salvas no Home Assistant, é extremamente fácil exportá-las para o Apple Keychain no iOS. Basta seguir estes passos:
- Abra o aplicativo Home Assistant e vá para as configurações do Thread, onde estão listadas as redes disponíveis.
- Selecione um dispositivo para ser o roteador de credenciais tocando nos três pontos correspondentes ao hub SmartThings ou ao dongle Thread conectado ao Home Assistant.
- Toque na opção Send Credentials to Phone e pronto!

Se tudo ocorreu bem, as credenciais da rede Thread do SmartThings estão salvas no iOS e agora podem ser usadas até para a adição de dispositivos Thread utilizando a rede ST- ao invés da rede padrão do Apple Home.
É possível conferir as redes Threads salvas no Apple Keychain utilizando o aplicativo Home Assistant. Para isso, vá em Configurações e procure a opção de Aplicativo Móvel. Nessa tela, desça até Depuração e, por fim, toque em Thread.
