In deze blog ga ik uitleggen hoe je de HDHomeRun koppelt met een Smartcard zodat je al je zenders van je pakket in HD kunt bekijken. Hiervoor heb je de volgende hardware nodig:

De TBS3102 5 Crystal Smartmouse Card Reader heeft de voorkeur daar deze bij de meesten het beste werkt. De Smargo kan weleens “kuren” geven bij sommige gebruikers.

Verder leg ik uit hoe je dit alles dan weer in Plex kunt integreren. We gaan in totaal 4 stappen doorlopen:

  1. OSCam instellen voor Smartcard toegang
  2. HDHomeRun 4DC updaten
  3. Tvheadend installeren
  4. tvhProxy installeren als proxy tussen Tvheadend en Plex

Dit alles doe ik op basis van een Debian Server.






Ik heb voor dit blog topic gebruik gemaakt van de volgende links met meer informatie:

Stap 1: OSCam

Om alle zenders van Ziggo in HD te kunnen bekijken moet je een Smartcard gebruiken. De HDHomeRun heeft echter geen gleuf voor een smartcard, dus dat moeten we anders oplossen. Je kunt hiervoor de Smargo Smartreader gebruiken die je op een USB poort aansluit.



De voorkeur gaat echter naar de TBS3102 5 Crystal Smartmouse Card Reader uit, die je ook op een USB poort aansluit:




Voor juist gebruik van de TBS3102 moet je de dip-switch schakelaars als volgt zetten (van links naar rechts):

5V / Phoenix / 3.579MHz / 6MHz

Met behulp van OSCam software kun je de Smartcard uitlezen en de informatie aanleveren aan Tvheadend die we later gaan gebruiken voor de HDHomeRun. Zorg er eerst voor dat de laatste firmware op je Smargo Smartreader V2 staat. Stel verder met de SmartReaderSettings tool je serial en MHz (ik heb 6.0 MHz gekozen) in.

Om OSCam op je Debian server te installeren moet je de volgende stappen doorlopen.

Voeg aan file ‘/etc/apt/sources.list’ de volgende regels toe:

deb http://ppa.launchpad.net/oscam/ppa/ubuntu trusty main
deb-src http://ppa.launchpad.net/oscam/ppa/ubuntu trusty main

Voer vervolgens de volgende stappen uit:

sudo su
gpg --keyserver keyserver.ubuntu.com --recv-keys 651987A2BDBE1D1E && gpg --export --armor 651987A2BDBE1D1E | apt-key add -
apt-get update
apt-get install oscam

We gaan nu diverse configuratie bestanden aanpassen. Neem de volgende inhoud over.

File ‘/etc/oscam/oscam.conf’

#
# main configuration
#

[global]
nice          = 1
WaitForCards  = 1

# logging

logfile       = /var/log/oscam/oscam.log
usrfile       = /var/log/oscam/oscamuser.log
cwlogdir      = /var/log/oscam/cw

# monitor

[monitor]
port          = 988
aulow         = 120
monlevel      = 1

# web interface

[webif]
httpport      = 8123
httpuser      = JouwNaam
httppwd       = JouwWachtwoord
httpallowed   = 0.0.0.0-255.255.255.255

# anti-cascading

[anticasc]
enabled       = 0
numusers      = 1
sampletime    = 2
samples       = 5
penalty       = 1
aclogfile     = /var/log/oscam/aclog.log
denysamples   = 9

# protocols

[newcamd]
key           = 000102030405060708090A0B0C0D
port          = 20000@0604:ZIGGO

PS: In eerst instantie wilde bij mij de web interface van OSCam maar niet opkomen, maar dat kwam omdat initieel [newcamd] op dezelfde poort 10000 zat te luisteren als Webmin. Door deze aan te passen van 10000 naar 20000 heb je geen conflict met Webin en startte de web interface van OSCam wel op.

File ‘/etc/oscam/oscam.server’ (voor Smargo Smartreader)

#
# reader configuration
#

# serial reader

[reader]
label       = ziggo
description = Ziggo smartcard
protocol    = smargo
detect      = CD
device      = /dev/ttyUSB0
group       = 1
emmcache    = 1,3,2
rsakey      = 3C8633AAC0D367533DEC7BB2EEEDEB8CA3ADA52E58B99BB34672783277A1DAAC3B6106AD0909774E031B2A6E30195B437683AD0FC599B87D08CEA47BE1B6C76A
boxkey      = 1122334455667788
caid        = 0604
mhz         = 600
cardmhz     = 600
auprov      = Ziggo

PS 1: Eventueel moet je ‘/dev/ttyUSB0’ vervangen door een hoger USB nummer. Dit is afhankelijk van hoeveel en waar je USB devices hebt aangesloten op je systeem (check met commando ‘dmesg | grep usb’).
PS 2: Nog slimmer is om gebruik te maken van ‘/dev/serial/by-id/usb-Argolis_BV_Smartreader2_plus_SMARGO-if00-port0’ want dan ben je niet afhankelijk in welke poort deze zit. Check zelf even met commando ‘ls /dev/serial/by-id/’ welke waarde te gebruiken.
PS 3: Zie deze link voor meer uitleg over de diverse parameters.

File ‘/etc/oscam/oscam.server’ (voor TBS3102)

#
# reader configuration
#

# serial reader

[reader]
label                         = ziggo
description                   = Ziggo smartcard
protocol                      = mouse
device                        = /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A504XPGV-if00-port0
caid                          = 0604
rsakey                        = 3C8633AAC0D367533DEC7BB2EEEDEB8CA3ADA52E58B99BB34672783277A1DAAC3B6106AD0909774E031B2A6E30195B437683AD0FC599B87D08CEA47BE1B6C76A
boxkey                        = 1122334455667788
detect                        = cd
mhz                           = 357
cardmhz                       = 600
group                         = 1
emmcache                      = 1,3,2
auprov                        = Ziggo

File ‘/etc/oscam/oscam.user’

#
# user configuration
#

[account]
user        = user1
pwd         = password1
group       = 1
monlevel    = 0
au          = Ziggo
caid        = 0604
ident       = 0604:ZIGGO

Je kunt de OSCam software als service stoppen of starten met de volgende commando’s:

service oscam stop
service oscam start

Je OSCam software is via de webbrowser te benaderen op ‘http://ip-address:8123’.



Voer de volgende acties van deze stap 1 uit nadat je stap 2 (HDHomeRun 4DC Updaten) en stap 3 (Tvheadend) hebt afgerond.

Restart nu OSCam en check de logging in het Status window van de web interface. Als het goed is zie je nu ongeveer de volgende regels:

2017/10/24 19:06:09   A76C60 r smargo init
2017/10/24 19:06:09        0 s waiting for local card init
2017/10/24 19:06:09   A76C60 r reader ziggo initialized (device=/dev/ttyUSB0, detect=cd, mhz=600, cardmhz=600)
2017/10/24 19:06:10        0   ziggo card detected
2017/10/24 19:06:18   A76C60 r ATR: 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 38 95 
2017/10/24 19:06:18   A76C60 r Maximum frequency for this card is formally 6 Mhz, clocking it to 6.00 Mhz
2017/10/24 19:06:19   A76C60 r detect irdeto card
2017/10/24 19:06:19   A76C60 r caid: 0604, acs: 0.05, country code: NLD
2017/10/24 19:06:19   A76C60 r providers: 4, ascii serial: XXXXXXXXXX, hex serial: XXXXXX, hex base: 13
2017/10/24 19:06:22   A76C60 r active providers: 4 (06bb2e,ffffff,ffffff,ffffff)
2017/10/24 19:06:22   A76C60 r found cardsystem irdeto
2017/10/24 19:06:23   A76C60 r entitlements for provider: 1, id: 06BB2E
2017/10/24 19:06:23   A76C60 r chid: 000B, date: 2011/08/09 - 2012/02/25
2017/10/24 19:06:23   A76C60 r chid: FFE0, date: 2011/08/07 - 2011/09/06
2017/10/24 19:06:23   A76C60 r chid: 0025, date: 2011/08/07 - 2012/02/23
2017/10/24 19:06:23   A76C60 r chid: 0384, date: 2011/08/08 - 2012/02/24
2017/10/24 19:06:23   A76C60 r chid: FFD8, date: 2011/08/07 - 2012/02/23
2017/10/24 19:06:23   A76C60 r chid: 7FFD, date: 2011/08/07 - 2011/08/17
2017/10/24 19:06:31   A76C60 r [irdeto-reader] ready for requests
2017/10/24 19:06:32        0 s init for all local cards done
2017/10/24 19:06:32        0 s anti cascading disabled

De 6 byte string achter de regel ‘entitlements for provider’ hebben we nodig (dit is de provider id en deze heeft hier de waarde 06BB2E). Deze string moet je nu in de files ‘/etc/oscam/oscam.conf’ en ‘/etc/oscam/oscam.user’. Vervang in beide files het stuk van “ZIGGO” door de code van de provider-id.

Restart tenslotte OSCam nog 1 keer en je bent dan klaar voor het Smartcard gedeelte. In de web-interface van OSCam zul je dan bij Readers iets zien in de trant van ‘CARDOK’.

Stap 2: HDHomeRun 4DC Updaten

Sluit je HDHomeRun 4DC aan (coax en op je netwerk) en power deze up. Zoek op je router welk ip-adres je HDHomeRun heeft gekregen en ga hier met een browser naar toe.




In principe ben je nu klaar voor de initiele setup van de HDHomeRun 4DC. Ik wilde echter alleen de firmware updaten. Dit gaat met de software die je hier kunt vinden. Kies dan voor ‘HDHomeRun Software for Windows’ en niet de ‘HDHomeRun App for Windows 10’. Als je de ‘HDHomeRun Software for Windows’ hebt geinstalleerd en start, zal deze automatisch de firmware updaten.



Eventueel kun je nog de channels zoeken, maar eigenlijk is dat niet nodig daar we gebruik gaan maken van Tvheadend.


Stap 3: Tvheadend

Met behulp van Tvheadend software gaan we de HDHomeRun gebruiken. Om Tvheadend te installeren op je Debian server moet je onderstaande stappen doorlopen.

Eerst gaan we een package installeren waarmee we HTTPS sources kunnen gebruiken:

apt-get install apt-transport-https

Voeg de volgende regel toe aan je ‘/etc/apt/sources.list’ file:

deb https://dl.bintray.com/tvheadend/deb stretch stable-4.2

Zie hier welke parameters je precies kan meegeven (zoals je ziet gebruik ik ‘stretch’ en ‘stable-4.2’)

Voer vervolgens de volgende commando’s uit:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
sudo apt-get update
sudo apt-get install tvheadend

Tijdens de installatie wordt om een gebruikersnaam en wachtwoord gevraagd die je nodig hebt om de eerste keer in te loggen. Na installatie is je Tvheadend beschikbaar op ‘http://ip-address:9981’

Je kunt Tvheadend als Service stoppen of starten met de volgende commando’s:

service tvheadend stop
service tvheadend start

Als je Tvheadend voor de eerste keer opstart kun je een wizard doorlopen.




De HDHomeRun zal nu automatisch verschijnen. Je krijgt dan 4 tuners te zien.



Bij de vraag welke netwerk je gebruikt moet je ‘nl-ziggo’ gebruiken. Tvheadend zal dan automatisch de juiste instellingen voor Ziggo gebruiken en alle kanalen opzoeken.



De software zal nu automatisch gaan scannen voor kanalen.


De gevonden kanalen kun je vinden in “Configuration > DVB Inputs > Services”. Het is handigste dat je deze lijst sorteert op de ‘Local Channel’ kolom. Selecteer verder in de ‘Enabled’ kolom welke kanalen je wilt gebruiken.



Stel na de wizard in Tvheadend de koppeling met je OSCam in. Dit doe je door bij configuratie de ‘CAs’ tab te kiezen en dan de knop [Add] te drukken. Indien de ‘CAs’ tab niet zichtbaar is moet je in ‘Configuration > General’ het User interface level even op ‘Expert’ zetten.




Vul vervolgens je gegevens in voor CA:



De gebruikersnaam en wachtwoord moet overeenkomen met wat je in OSCam hebt ingevuld bij ‘/etc/oscam/oscam.user’. De poort kun je vinden in de file ‘/etc/oscam/scam.conf’.

Stap 4: tvhProxy

Om Tvheadend in Plex te kunnen gebruiken gaan we een proxy installeren waarbij Plex ‘denkt’ dat deze verbonden is met een HDHomeRun device. We gebruiken hiervoor tvhProxy.

tvhProxy installeer je met de volgende stappen:

git clone https://github.com/jkaberg/tvhProxy
cd tvhProxy
pip install -r requirements.txt

Edit de file ‘tvhProxy.py’ en configureer deze voor je Tvheadend server software:

config = {
    'bindAddr': os.environ.get('TVH_BINDADDR') or '',
    'tvhURL': os.environ.get('TVH_URL') or 'http://JouwNaam:JouwWachtWoord@ip-address-Tvheadend-server:9981',
    'tvhProxyURL': os.environ.get('TVH_PROXY_URL') or 'http://ip-address-Tvheadend-server',
    'tunerCount': os.environ.get('TVH_TUNER_COUNT') or 4,  # number of tuners in tvh
    'tvhWeight': os.environ.get('TVH_WEIGHT') or 300,  # subscription priority
    'chunkSize': os.environ.get('TVH_CHUNK_SIZE') or 1024*1024,  # usually you don't need to edit this
    'streamProfile': os.environ.get('TVH_PROFILE') or 'pass'  # specifiy a stream profile that you want to use for adhoc transcoding in tvh, e.g. mp4
}

Om tvhProxy voortaan automatisch te laten opstarten moet je de bestaande file ‘tvhProxy.service’ editten naar jouw situatie. Bij mij ziet deze er nu als volgt uit:

[Unit]
Description=A simple proxy for Plex and Tvheadend

[Service]
Environment=
WorkingDirectory=/home/henri/tvhProxy/
ExecStart=/usr/bin/python2.7 /home/henri/tvhProxy/tvhProxy.py
Restart=always

[Install]
WantedBy=multi-user.target

Voer vervolgens de volgende stappen uit:

cp tvhProxy.service /etc/systemd/system/tvhProxy.service
systemctl daemon-reload
systemctl enable tvhProxy.service
systemctl start tvhProxy.service

Voordat je nu verder gaat zorg er voor dat Tvheadend geen kanalen met nummer 0 heeft (in Configuration > Channel/EPG). Verder mogen er geen kanalen met hetzelfde nummer zijn. Trek nu even de ethernet kabel uit je HDHomeRun om geen conflicten te krijgen tijdens het scannen naar een nieuwe ‘Live TV & DVR’ in Plex.

Uiteindelijk gaan we nu Plex configureren om voor je ‘Live TV & DVR’ gebruik te maken van je Tvheadend proxy. Voer het IP-adres waar je Tvheadend Proxy draait handmatig in aangevuld door poort 5004 (bijvoorbeeld http://192.168.1.25:5004).






Hierna krijg je te zien welke zenders zijn gevonden:





Stop nu de ethernet kabel weer in je HDHomeRun. Uiteindelijk kun je nu in Plex al je kanalen Live in HD bekijken en opnemen.



Laat jij nog even weten of het bij jou ook is gelukt met deze instructies?