(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 nomewd-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!