yavdr ansible

  • seahawk1986 ,


    habe mal eine neue Rolle gebastelt, autoinstall-sundtek-static.

    Vielleicht möchtest Du sie übernehmen, bis die dynamische Version mit dynamite usw. fertig ist.


    Die Treiber und .service werden installiert wenn es in usb einen Vendor 2659 gibt.

    Getestet habe ich mit Virtualbox und einem DVB-S Stick (2659:1502).

    Ich musste nur noch die channels.conf kopieren, danach lief es.

    Fernbedienung usw. wird nicht installiert, ich brauche das ganze nur für einen headless VDR.


    autoinstall-sundtek-static.tar.gz


    Gruß

    Frank

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Ich persönlich brauche kein HotPlug, mir würde es reichen wenn der Stick (DVB-S) standardmäßig eingebunden wird.

    Habe ich jetzt manuell gemacht, aber im playbook wäre es natürlich schöner. So was wie Rolle sundtek-static, bis es eine Lösung mit dynamite gibt.

    Es gibt zwei Möglichkeiten die Sundtek-Sticks zu nutzen - einmal kann man den mediasrv auf die lokal angeschlossenen Geräte warten lassen (so wie es die sundtek.service in deiner Rolle macht) - der Vorteil dabei ist, dass man ohne das Dynamite-Plugin auskommt, der Nachteil ist, dass der Start ein bisschen länger dauert (das Warten aufs network-online.target kann man sich sparen, wenn man keine Sticks übers Netzwerk einbinden will) und man den Stick nicht einfach im laufenden Betrieb ab- und anstecken bzw. von einem Server (un)mounten kann.


    Die andere Möglichkeit ist das vdr-plugin-dynamite und das vdr-plugin-sundtek zu installieren, dann werden lokal erkannte Sundtek-Sticks dynamisch eingebunden.


    Den sundtek-avahi-mounter muss ich noch auf Python3 portieren und von der Konfigurationsdatenbank aus früheren yaVDR-Versionen unabhängig machen, damit das Paket yavdr-hardware-sundtek verfügbar ist.

    habe mal eine neue Rolle gebastelt, autoinstall-sundtek-static.

    Danke, ich versuche das demnächst mal mit dem zusammenzuführen, was ich zu dem Thema schon habe. Das sundtek-Plugin hat ohne das dynamite-Plugin IIRC keine Funktion.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Alles klar, ich habe jetzt vdr-plugin-sundtek aus dem task rausgenommen und auch das network-online.target aus dem service entfernt.

    Funktioniert immer noch :)


    Dann werde ich mich mal mariadb und epgd widmen.

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Dear All,

    I have some problem with epg scan in some channels. The information is only availably for few hours (not as in yavdr 0.6 for whole week).

    How I can improve the epg scan.


    BR.

  • What type of epg (DVB-stream, epgd & co, ...) are you using?

    With epg2vdr you can select how many "Days in Advance" should be read in.

    MyVDR: yaVDR-Ansible (Ubuntu 18) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Hi,

    I'm just using DVB-stream.

    I tried to use epgd base on this topisc EPGD Installation auf Ubuntu 18.04 - kurze Anleitung

    but I have such errors:

    SQL-Error in 'prepare(stmt_prepare)' - Can't initialize function 'epglvr'; EPGLV() failed to change locale (1123) 'Can't initialize function 'epglvr'; EPGLV() failed to change locale' [select actor, audio, camera, category, channelid, channelname, country, description, director, duration, episodecompname, episodecomppartname, episodecompshortname, episodelang, eventid, flags, folder, fsk, genre, guest, imgid, inuse, job, longdescription, md5path, moderator, music, name, numrating, other, owner, path, producer, rating, screenplay, scrinfoepisodeid, scrinfomovieid, scrinfoseriesid, scrmovieid, scrnew, scrseriesepisode, scrseriesid, scrsp, shortreview, shorttext, starttime, state, tipp, title, topic, txtrating, vdruuid, year from recordinglist where (state <> 'D' or state is null)and epglvr(title, ?) < 50]

    Mar 7 22:29:41 htpc vdr: [13488] detacher thread thread started (pid=12545, tid=13488, prio=high)

    Mar 7 22:29:41 htpc vdr: [13489] animator thread thread started (pid=12545, tid=13489, prio=high)

    Mar 7 22:29:41 htpc vdr: video: audio/video difference too big

    Mar 7 22:29:41 htpc vdr: video: normal aspect output 1036x583+769+131 Video 1036x583

    Mar 7 22:29:41 htpc vdr: [13488] detacher thread thread ended (pid=12545, tid=13488)

    Mar 7 22:29:45 htpc vdr: [13491] detacher thread thread started (pid=12545, tid=13491, prio=high)

    Mar 7 22:29:45 htpc vdr: [13491] detacher thread thread ended (pid=12545, tid=13491)

    Mar 7 22:29:45 htpc vdr: [13492] detacher thread thread started (pid=12545, tid=13492, prio=high)

    Mar 7 22:29:45 htpc vdr: [13492] detacher thread thread ended (pid=12545, tid=13492)

    Mar 7 22:29:46 htpc irexec[940]: KEY_OK

    Mar 7 22:29:48 htpc vdr: epg2vdr: Trying to re-connect to database!

    Mar 7 22:29:48 htpc vdr: epg2vdr: SQL-Error in 'prepare(stmt_prepare)' - Table 'epg2vdr.eventsview' doesn't exist (1146) 'Table 'epg2vdr.eventsview' doesn't exist' [select useid, eventid, source, delflg, updflg, fileref, tableid, version, title, shorttext, starttime, duration, parentalrating, vps, contents, description, mergesource, longdescription from eventsview where channelid = ? and updsp > ? and UPDFLG in ('A','L','P','C','D','R')]

    Mar 7 22:29:48 htpc vdr: epg2vdr: Retry #4 failed, retrying in 10 seconds!


    BR

  • According to https://projects.vdr-developer…epglv/src/epglvbase.c#n81 the epglv UDF insists onLC_CTYPE=de_DE.UTF-8 as locale setting for MariaDB/MySQL - and as far as I know there are only plugins which provide epg data for german channels, so this might not be the best solution.


    Where are you located and which type of DVB-Stream (DVB-T(2), DVB-C(2), DVB-S(2)) are you receiving?


    One of the changes between VDR 2.2.0 (as in yaVDR 0.6) and vdr 2.4.0 was the handling of epg data which are sent on a different transponder - which has been reverted in this patch: EPG on Canal Digital (DVB-EPG) Norway


    If you want to try this patch, you can add my VDR 2.4.0 PPA: sudo add-apt-repository ppa:seahawk1986-hotmail/vdr-2.4.0 and update the packages: sudo apt dist-upgrade. Then restart the vdr: systemctl restart vdr


    To remove Packages installed from this ppa you can use ppa-purge:

    Code
    1. sudo apt install ppa-purge
    2. sudo ppa-purge ppa:seahawk1986-hotmail/vdr-2.4.0

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo zusammen,


    falls jemand Interesse hat, anbei eine Rolle zur Installation von mariadb, epgd und epg2vdr.

    Datenbank und User werden eingerichtet, channelmap usw. muss man von Hand machen.

    bind-address = 0.0.0.0 wird gesetzt, damit ist die Datenbank von extern erreichbar.

    Das epgd-tool wird hier nicht komplett funktionieren, da es einige Anpassungen benötigt.

    Schön wäre noch ein Skript zum Erstellen der channelmap, wie bei mld.

    Schau ich mir bei Gelegenheit mal an, ob man da was abkupfern kann.

    epgd_V1.tar.gz


    Da ich ansible nicht auf dem Client ausführe, sondern auf einem zentralen Host, hier noch zwei Hinweise:

    Wenn der Client mit dem Server-Installationsmediium aufgesetzt wurde, muss noch python-jmespath auf dem Client installiert werden.

    Sonst kann ansible mit dem Client nicht kommunizieren (Es fehlt schlicht python2). Bei einer lokalen Installation macht das das Skript install-yavdr.sh.

    Am Ende der install-yavdr.sh wird auch noch ein dpkg-reconfigure libdvd-pkg ausgeführt, das geht remote natürlich auch nicht.

    Habe etwas gesucht und eine Lösung gefunden und zwar hier: Link

    Das Modul dpkg_reconfigure wird als dpkg_reconfigure.py in den Ordner "library" eingefügt und das reconfigure kann dann mit der beigefügten Rolle ausgeführt werden. Hierbei wird die Frage nach Build ja/nein automatisch mit ja beantwortet.

    finish-installation_V1.tar.gz


    Gruß

    Frank

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Datenbank und User werden eingerichtet

    Prima, aber könnte man die SQL-Skripte nicht idempotent machen und sich die eher wackelige Prüfung auf die Datenbankdatei mit dem stat sparen (z.B. könnte jemand dein Speicherort für die Datenbanken umkonfiguriert haben)?

    Also z.B.

    Code
    1. CREATE DATABASE IF NOT EXISTS epg2vdr charset utf8;
    2. CREATE USER IF NOT EXISTS 'epg2vdr'@'%' IDENTIFIED BY 'epg';

    Und dann könnte man sich überlegen, ob man Benutzernamen und Passwort nicht noch dynamisch veränderbar macht, damit man die z.B. aus einer Ansible Vault laden kann, wenn man etwas anderes als die Vorgabewerte haben will.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich sehe gerade, dass es Ansible-Module für das Anlegen von Datenbanken und Benutzern gibt (das benötigt dann noch das Paket python-pymysql bzw. im Falle von Python3 python3-pymysq)l:

    Wäre das nicht einfacher? Die UDF für epglv sollte schon vom Paket mariadb-plugin-epglv durch das postinst-Skript hinzugefügt werden.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich hatte etwas Probleme mit dem Neustart von epgd und deshalb db und user vor der Installation von epgd angelegt.

    Danke für die Hinweise, schaue ich mir noch mal an.


    Gruß

    Frank

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Ich hatte etwas Probleme mit dem Neustart von epgd und deshalb db und user vor der Installation von epgd angelegt.

    Wenn ich das richtig im Kopf habe wird epgd nach der Installation nicht automatisch gestartet, weil man es ja eigentlich erst konfigurieren muss.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hab es grade noch mal probiert.

    Sobald epgd installiert wird, wird auch der daemon gestartet.

    Code
    1. epgd:
    2. Installiert: 1.1.146-0yavdr0~bionic
    3. Installationskandidat: 1.1.146-0yavdr0~bionic
    4. Versionstabelle:
    5. *** 1.1.146-0yavdr0~bionic 500
    6. 500 http://ppa.launchpad.net/yavdr/experimental-main/ubuntu bionic/main amd64 Packages
    7. 100 /var/lib/dpkg/status

    Das resultiert dann in diverse Fehlermeldungen:

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Habe die Rolle für epgd überarbeitet.

    Die Datenbank und User werden nun über die ansible Mysql Funktionen angelegt.


    Benutzername und Passwort des epgd Users müssen in der ausgeführten yml Datei als Variable angelegt werden.

    Ein verschlüsseltes Ansible Vault brauche ich nicht unbedingt.

    So sieht das dann z.b. in der yavdr07.yml aus:

    Im GIT könnte man es ja auf die Standardwerte setzen und wer mag kann es bei der Installation ändern. Aber Achtung z.B das epgd-tool bekommt diese Änderung dann nicht mit.

    epgd_V2.tar.gz

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Benutzername und Passwort des epgd Users müssen in der ausgeführten yml Datei als Variable angelegt werden.

    Im GIT könnte man es ja auf die Standardwerte setzen

    Die Standardwerte könnte man in einer defaults/main.yml (https://docs.ansible.com/ansib…ml#role-default-variables)

    oder der group_vars/all hinterlegen - dann kann man die dort anpassen bzw. in Dateien mit höherer Priorität wie host_vars übersteuern.

    Also z.B.:

    Code
    1. epgd:
    2. dbuser: epg2vdr
    3. dbpass: epgd
    4. dbhost: localhost
    5. epgdata_pin: insert-your-pin-here
    6. # etc. pp.

    Diese Werte könnte man dann auch zur Vorkonfiguration von epg2vdr und scraper2vdr nutzen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Da hast Du Recht. Soweit hatte ich gestern nicht mehr gedacht.

    Die Standardwerte könnte man in einer defaults/main.yml (https://docs.ansible.com/ansib…ml#role-default-variables)

    oder der group_vars/all hinterlegen - dann kann man die dort anpassen bzw. in Dateien mit höherer Priorität wie host_vars übersteuern.

    Also z.B.:

    Code
    1. epgd:
    2. dbuser: epg2vdr
    3. dbpass: epgd
    4. dbhost: localhost
    5. epgdata_pin: insert-your-pin-here
    6. # etc. pp.

    Diese Werte könnte man dann auch zur Vorkonfiguration von epg2vdr und scraper2vdr nutzen.

    Die Variante mit den group- /host_vars ist mir persönlich am sympathischsten. Dann muss man nur an einer Stelle ändern/konfigurieren.

    Bietet sich dann auch an um E-Mail-Zugangsdaten zu hinterlegen, z.B. für epgsearch oder postfix.

    Aber eins nach dem anderen.

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV