Plex + HD Externo + Samba Share + Transmission no HassOS

(EDIT) Tutorial atualizado em 05/01/2022

Queria compartilhar com vocês meu setup Plex que consegui fazer aqui no HassOS.

Eu tinha um HD externo (USB 3.0) sobrando e queria deixar ele com filmes e séries pra poder acessar com Plex.
Os problemas dos add-ons oficiais, que impossibilitavam isso são:

  • Samba Share: Não suporta HDs externos, somente o drive do próprio HassOS
  • Plex: Não suporta drives de rede usando SMB

Pra resolver isso eu usei os ótimos add-ons do dianlight.

Samba NAS

Usando o add-on Samba NAS, você consegue conectar um HD na USB do seu Raspberry/NUC/etc e compartilhar ele na rede.
Pra isso porém o HD tem que estar formatado como ext3 ou ext4. Eu tentei com exFat mas não funcionou. Mas você ainda assim vai conseguir acessar ele de qualquer pc, aqui eu consigo usar com Mac e Windows.

Pra instalar ele eu só adicionei o repositório no Supervisor e instalei de lá, bem tranquilo.

Preparando o HD externo

Pra formatar o HD como ext4 no Windows eu fiz o seguinte:

  • Precisa ter um WSL2 instalado. Eu no caso uso o kali linux
  • Conecte o HD no seu pc
  • Delete todas as partições do HD usando o Disk Management do Windows (no meu caso o Disk 7)
  • Rodando o PowerShell no modo admin:
wmic diskdrive list brief
  • No meu caso o output foi:
Caption                                  DeviceID            Model                                    Partitions  Size
Seagate Expansion Desk SCSI Disk Device  \\.\PHYSICALDRIVE6  Seagate Expansion Desk SCSI Disk Device  2           6001172513280
Generic MassStorageClass USB Device      \\.\PHYSICALDRIVE3  Generic MassStorageClass USB Device      0
SanDisk SSD PLUS 1000GB                  \\.\PHYSICALDRIVE0  SanDisk SSD PLUS 1000GB                  2           1000202273280
Generic MassStorageClass USB Device      \\.\PHYSICALDRIVE5  Generic MassStorageClass USB Device      0
Generic MassStorageClass USB Device      \\.\PHYSICALDRIVE2  Generic MassStorageClass USB Device      0
Force MP510                              \\.\PHYSICALDRIVE1  Force MP510                              2           480101368320
Generic MassStorageClass USB Device      \\.\PHYSICALDRIVE4  Generic MassStorageClass USB Device      0
WD Elements 25A3 USB Device              \\.\PHYSICALDRIVE7  WD Elements 25A3 USB Device              0           14000479395840
  • No meu caso, o HD é o WD Elements 25A3 USB Device. Que tá mapeado pra \\.\PHYSICALDRIVE7
  • Ainda no PowerShell, substituindo o nome do HD pro de vocês:
wsl --mount \\.\PHYSICALDRIVE7 --bare
  • Agora abre o terminal do WSL2 (no meu caso, do kali linux) e digita:
sudo fdisk -l
  • Isso vai listar todos os discos montados no WSL2, no meu caso é o /dev/sdd:
# etc..

Disk /dev/sdd: 12.73 TiB, 14000486088704 bytes, 27344699392 sectors
Disk model: Elements 25A3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 7F9E1395-0873-4BC0-B5A0-4F9C40ECBEDF
  • Sabendo disso, agora podemos criar a partição, usando o gdisk, ainda no terminal do WSL2:
sudo gdisk
GPT fdisk (gdisk) version 1.0.8

Type device filename, or press <Enter> to exit: /dev/sdd

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

# O comando "n" cria uma nova partição
Command (? for help): n
Partition number (1-128, default 1): # dei enter pra continuar com o valor default
First sector (34-27344699358, default = 2048) or {+-}size{KMGTP}: # dei enter pra continuar com o valor default
Last sector (2048-27344699358, default = 27344699358) or {+-}size{KMGTP}: # dei enter pra continuar com o valor default
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

# Por último, precisa escrever as novas informações no disco com o comando `w`
Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdd.
The operation has completed successfully.
  • Agora precisamos criar o filesystem dentro da partição criada. No meu caso o disco é /dev/ssd e a partição é 1, então o comando fica:
sudo mkfs.ext4 /dev/sdd1
  • Esse último comando demora um tempo, especialmente se o seu HD for de grande capacidade.
  • Usando o e2label, precisa dar um nome pra essa partição. É esse o nome que vai ser usado pra montar o disco no Samba NAS. No meu caso eu escolhi o nome wd-elements
sudo e2label /dev/sdd1 wd-elements

# pra ver se foi executado corretamente:
sudo e2label /dev/sdd1

wd-elements
  • Agora é só desmontar o HD do windows e plugar ele no teu pc que roda o HA!

Configurando o HD no Samba NAS

Primeiro, lembre-se que precisa desativar o modo de proteção do add-on:

Na aba de configuração:

workgroup: WORKGROUP
username: '!secret cifsusername'
password: '!secret cifspassword'
allow_hosts:
  - 10.0.0.0/8
  - 172.0.0.0/8
  - 192.168.0.0/16
  - fe80::/10
moredisks:
  - wd-elements
available_disks_log: false
medialibrary:
  enable: false
  ssh_private_key: '!secret ssh_private_key'
veto_files:
  - ._*
  - .DS_Store
  - Thumbs.db
  - icon?
  - .Trashes
compatibility_mode: false
autodiscovery: {}

Dentro de moredisks você deve colocar o nome que deu pra partição do HD no step anteriror.
Ativando o medialibrary com enable: true vai fazer com que o HD seja montado em /media/nome-do-hd, mas pra isso precisa primeiro usar o addon HassOS SHH port 22222 Configurator. Ele tem todo um tutorial aqui: 🆕[add-on] HassOS SSH port 22222 Configurator - Home Assistant OS - Home Assistant Community

Plex

Se você usar a opção medialibrary do Samba NAS, pode usar o add-on comum que ele vai conseguir acessar a pasta! Se não, continue:

Pro plex, o dianlight também tem um repositório, então pode usar ele!

Na configuração do add-on, adicionar o endereço do drive SMB e as credenciais, tipo assim:

networkdisks:
  - //homeassistant/meu-hd/pasta-reservada-pro-plex
cifsusername: homeassistant
cifspassword: 'minha-senha'

DESABILITAR O PROTECTION MODE. Isso é necessário pra que o add-on tenha acesso aos drives de rede

Depois disso o plex deve funcionar e enxergar os arquivos colocados na pasta indicada do HD externo!

Um único problema é que se você reiniciar o sistema todo, provavelmente esse add-on vai tentar montar o drive de rede antes do add-on do Samba NAS ter terminado de iniciar. Mas é só reiniciar o add-on do plex depois que ele vai conseguir montar com successo.

Transmission

Eu queria já poder baixar os filmes/séries direto no HD externo, sem ter que usar um cliente torrent no meu computador e depois transferir os arquivos. Então eu modifiquei um add-on do transmission pra dar suporte a drives de rede também, assim como o add-on do Plex.

Se você usar a opção medialibrary do Samba NAS, pode usar o add-on comum que ele vai conseguir acessar a pasta! Se não, continue:

ATENÇÃO: Somente baixe torrents de arquivos que vocês tem o direito de baixar, não faça pirataria!!

Pra instalar, é só adicionar o meu repositório de add-ons e fazer a instalação: https://github.com/marciogranzotto/addons-repository

As minhas mudanças nesse add-on foram:

  • Adicionar suporte a discos de rede (SMB)
  • Desativar pasta de downloads incompletos - isso poderia encher o HD principal do Home Assistant
  • Se alguma drive de rede for adicionado, usar ele como pasta de download padrão

Bonus: você pode instalar o Transmission Remote GUI no seu computador e conectar ele com o Transmission que roda no HA, assim os links magnéticos abrem direto nele.

Com esses 3 add-ons juntos o HassIO fica ótimo pra ser também um servidor Plex, sem ter que complicar a instalação com uma distro linux, vm, proxmox, etc.

Outros add-ons úteis

Eu também uso o Sonarr pra baixar automaticamente filmes e o Radarr pra séries!

---- EDIT
Eu rodava tudo isso no meu NUC, que da conta do recado. Hoje uso um mini-pc com Ryzen 7, ainda com HassOS. Não sei como isso tudo roda em outros sistemas!

8 Likes

Aqui no meu quando tento subir o Transmission fica dando esse erro:

image

Tens como me ajudar?

manda print da tua configuração (escondendo as senhas) pra ver se tá tudo certo!
lembra de também rodar ele com o Protection Mode desativado, pra que ele consiga montar o drive de rede

image

Depois da sua dica pelo telegram, consegui resolver aqui, eram os arquivos do HA corrompidos. Vou ter que refazer todas as configurações. Valeu.

1 Like

O Addon do Plex continua funcionando depois dessa atualização 0.112.0 ?

Quando clico no refresh após fazer as configurações e salvar, não acontece nada.

Aqui tá funcionando!
O que acontece quando reinicia o sistema todo, é que o add-on do Samba pode iniciar depois do Transmission e do Plex, dai eles não conseguem montar o drive.
Mas é só reiniciar o Transmission e o Plex que eles montam o drive certinho

Bom dia.
Meu homeassistant não identifica o HD externo conectado, como identifico o nome correto para informar na configuração do samba NAS?
Conforme pode ser verificado na imagem, coloquei diversos nomes para ver se algum monta, mas nada acontece.

Screen Shot 2020-08-14 at 11.47.34

Ate hoje não tinha descoberto a causa de não iniciar o addon. Descobri um log no supervisor que me mostrou que a causa era a porta 1900 em uso. Conferi em todas as configurações dos addons e nenhum deles está usando a porta. Tem alguma maneira de localizar quem está usando a porta 1900?
Quando coloco 1901 o plex dá start mas o app na TV não conecta no servidor.

Descobri o que aconteceu comigo, eu tinha instalado o programa deluged para gerenciar torrents e ele estava ocupando a porta 1900
usei no terminal linux o comando sudo ss -tulpn para listar as portas e desinstalei ele com o sudo apt-get purge deluged. Ao dar o start no plex o servidor aceitou

1 Like

Você pode no terminal linux dar o comando fdisk -l para ver o nome da unidade externa e com ele você pode montar a unidade com o comando mount /dev/sdb /usr/share/hassio/share/hd_externo/
Os caminhos acima são um exemplo, você pode adequar a sua necessidade

1 Like

ainda funcional ou tem algum outro método?
Como não sou muito bom fiquei meio perdido em seguir o tuto…

Bom dia pessoal, tenho meu HA rodando em um mini PC Intel com o HassOS instalado em um SSD M2. Instalei HD de 1 TB adicional no mini PC mas não consigo fazer o HA reconhecer esse HD. Queria utilizar esse segundo HD para o NVR e para o Plex, mas já tentei de tudo e fiz várias pesquisas, mas não acho uma solução. Estou dando a versão Home Assistant 2021.12.9 (Version: core-2021.12.9 - Installation Type: Home Assistant OS). Alguém tem uma ideia ou ajuda?

Opa gente! acabei de atualizar as instruções!

1 Like

Tive um problema que não consegui resolver de jeito nenhum a parte do SAMBA NAS do medialibrary, mesmo configurando tudo certo e reiniciando não iniciava, e não aceitava as chaves geradas.
Ai como não tinha interesse em montar o HD dentro do /media ignorei e segui mas meu PLEX não estava iniciando e lendo corretamente o HD externo, ai tive que trocar o //homeassistant/meu-hd/pasta-reservada-pro-plex para //IP-DO-HA/meu-hd/pasta-reservada-pro-plex dessa forma ele montou corretamente.

E para corrigir o problema do HA ao iniciar e iniciar o PLEX primeiro e dar erro, deixei o SAMBA NAS habilitado para iniciar corretamente junto do arranque do sistema, e dentro do node-red criei uma automação para iniciar o addon do PLEX alguns minutos depois, dessa forma sempre inicia certinho.

1 Like

neste caso, acredito uqe se usar o ssh addon não irá afetar, correto? o samba nas irá iniciar e o plex já irá reconhecer esta pasta e as midias inseridas?

beleza, man?
to dando aquele comando: sudo fdisk -l e não aparece o meu hd de 1tb, só esse de 256gb (ssd com meu Windows) e várias dessas de 64MiB… qual o problema será? tô usando o ubunto pq não consigo baixar esse kaliman pela loja de apps já q nem abrir ela eu consigo

image

att: apesar do tuto ser massa, pelo que to vendo esses comandos não funcionam no windowns 10 :frowning:
pra quem quiser entender mais aqui está:

Vc ta usando Debian no Ha? Se sim, formata por la mesmo que da

1 Like

opa, manim… creio que não, uso o raspberry 4 pro hass, serve? da pra fazer essa formatação de fat 4 sem usar esse wsl?

tenta uma distro live com esse hd conectado, foi assim que consegui

mas acredito que no pi vc consegue através do SO mesmo, já que o HA não é nativo como hassos

1 Like