[Erledigt] Ausgänge des PI mit Statusmeldungen wie Play, Pause, Aufnahme ansteuern.

  • Hallo,

    ich möchte unter LibreELEC Ausgänge des PI mit Statusmeldungen wie Play, Pause, Aufnahme ansteuern. Dazu habe ich im Netz folgende Callback Funktionen gefunden, welche eigentlich viel versprechend klingen:

    Kodi Development: Player (alwinesch.github.io)

    Ich bin mir aber nicht sicher, ob diese überhaupt unter Matrix funktionieren. Ziel ist es an meinem Multimediacenter die entsprechenden LED´s zu nutzen wie Play, Pause, oder Aufnahme, die Hintergrundbeleuchtung des Bedienfeldes in einer entsprechenden Farbe anzusteuern oder die Raumhelligkeit steuern usw. Ich muss dazu sagen, das ich in Sachen Linux und Programmierung ein Anfänger bin. Die Umsetzung der Hardware ist für mich weniger das Problem. Vielleicht hat ja dazu jemand eine gute Idee.

    Hier mal ein Foto, vom Projekt, wofür ich Hilfe benötige.


    MfG Schumi_64

    Raspberry PI 4, LibreElec 10.0.4

    Edited once, last by schumi_64 (October 27, 2024 at 11:37 AM).

  • Sry ich kann nix Sinnvolles beitragen aber ich wollte mal eins loswerden:


    Sau geil!! [ai][ay]

    Ich bin mit diesen Hifi Geräten groß geworden und hab davon noch 5 oder 6 hier Stehen. Daher geht mein Herz auf das so zu sehen [ak]Einfach toll

    das Einzige was am Ende zählt ist
    dass ihr lebt was ihr liebt und liebt wofür ihr lebt


    Kodi HTPC - W11 | AMD Athlon 3000G | Pioneer A 504R Bj. 96
    OMV NAS - NAS | Emby Server | LogitechMediaServer
    3x Logitech SqueezeBox & 3x RasPi PiCorePlayer
    Unifi Netzwerk | Sophos XGS Firewall | Agfeo TK | Kentix Security
    Loxone SmartHome

  • Hallo Yard2,

    Erst einmal danke für deine schnelle Antwort. Das mit der Echtzeit wäre nicht das Problem. Das mit JSON hatte ich schon mal gelesen. Allerdings wüsste ich nicht wie man das abfragt. Vielleicht hast du ja mal ein kleines Beispiel wie du das machen würdest. Ich habe das für mich so verstanden, das ich den Status hier abrufe, auf TRUE oder FALSE auswerte, und dann den entsprechenden GPIO- Port auf den gleichen Wert setze. Wie schon gesagt, ich bin auf dem Gebiet Python Anfänger.

    Raspberry PI 4, LibreElec 10.0.4

  • Es ist eine einfache TCP Socket Verbindung.
    Du musst in Kodi - Einstellungen - Steuerung - Anwendungssteuerung erlauben.

    Dann einen Socken aufmachen und die Rückgabe lesen.
    Da gibt Kodi automatisch schon den Playerstatus aus.

    Y.A.R.D.2 IR Receiver / Sender / Wakeup & RTC Wakeup & LCD
    Link

  • Sry ich kann nix Sinnvolles beitragen aber ich wollte mal eins loswerden:


    Sau geil!! [ai][ay]

    Ich bin mit diesen Hifi Geräten groß geworden und hab davon noch 5 oder 6 hier Stehen. Daher geht mein Herz auf das so zu sehen [ak]Einfach toll

    +1. Ein Compact-Cassettenplayer aus dem das Cassettendeck durch ein Display ersetzt wurde. Auf die Idee muß man erst mal kommen.

  • RFT macht's möglich.

    Ansonsten: Wenn die Ansteuerung der LEDs per GPIO in Echtzeit erfolgen soll, würde ich den xbmc.Monitor verwenden. Der reagiert mit der onNotification() Methode in Echtzeit auf diverse Events, die denen der JSON Abfragen recht ähnlich sind. Diese Events lassen sich anhand der mitgelieferten Parameter (Sender, Methoden und der dazu gehörenden Daten im JSON-Format) recht komfortabel erfassen/filtern und damit Aktionen - wie das Schalten von GPIOs - auslösen.

    Basis wäre dann ein Service-Addon (aka ein Dienst).

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Hier sieht man mal, welche Notifications angezeigt werden, wenn ein Video (oder TV usw.) gestartet, pausiert und gestoppt wird.

    Basis ist das Service Addon hier im Zip, das muss nur nur die Auswertung der relevanten Events (Player.Onplay/OnPause/OnResume/OnStop usw.) erweitert werden, damit GPIOs geschaltet werden können.

    Files

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Wenn Du die Ausgaben des Addons live verfolgen möchtest, kannst Du:

    • dich mit dem Raspberry per PuTTY verbinden (oder per cmd und ssh root@libreelec) und auf der Konsole
    • tail -f ~/.kodi/temp/kodi.log | grep service.event.monitor eingeben. Die Ausgabe von tail lässt sich mit STRG-C abbrechen

    Der Debug-Modus fürs Log ist nicht erforderlich.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ein paar Fragen:

    • hast Du den Raspberry bereits im Gehäuse verbaut?
    • welche Pins (GPIOs) willst Du für Pause, Aufnahme und Start (Play) verwenden?
    • werden die LEDs nach GND (pull down oder Senke) oder nach + 3,3V (push up oder Quelle) geschalten, damit die leuchten?
    • Der Aufnahmeregler soll sicher als Lautstärkeregler dienen. Ist da ein Pulsgeber dahinter oder ein Poti?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Hallo PVD,

    schön, das du fragst. Ich habe gestern mal dein ADDON ausprobiert. Es funktioniert gut. Da sieht man mal, welche Aktionen wann ausgeführt werden. Ich habe mich auch schon ein wenig versucht, allerdings nicht mit dem gewünschten Erfolg. Vielleicht kannst du da helfen.

    Ja der PI ist schon verbaut.

    LED Play ist GPIO14

    LED Pause ist GPIO18

    Record ist GPIO15

    PLAY und PAUSE sollten bei Wiedergabe einer Datei funktionieren. RECORD sollte bei Wiedergabe eines Streams (z.B. Radiosenders) leuchten.

    Die LED´s sind auf GND fest verbunden und sollen mit einem positiven Ausgangssignal geschaltet werden.

    Einen Regler benötige ich nicht. Die Lautstärke verstelle ich nur über die Fernbedienung.

    Raspberry PI 4, LibreElec 10.0.4

  • Ok, zunächst definieren wir mal die GPIO + die Leds. Wenn die GPIOs Strom liefern sollen, dürfen die bis max 14 mA belastet werden. Also entweder Vorwiderstand oder Konstantstrom Leds, aber das weißt Du ja sicher.

    Dann brauchst Du eine Klasse, welche die Leds schaltet:

    Hier wird später die Funktion switch_led verwendet, um die Led(s) zu schalten, z.B an: LedSwitch.switch_led(['LED_PLAY'], LED_ACTIVE) oder aus: LedSwitch.switch_led(['LED_PLAY'], not LED_ACTIVE) . Da bei "Stop" mehrere Leds auf "aus" gesetzt werden müssen (unabhängig davon, ob die tatsächlich an sind), werden die passenden Leds als Liste übergeben: LedSwitch.switch_led(['LED_PLAY', 'LED_PAUSE'], not LED_ACTIVE)

    Das Schalten der Leds wird später im onNotification des EventLoggers untergebracht. Soweit zunächst die Theorie. Jetzt brauche ich erstmal ein paar LEDs, um das testen zu können [ag]

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Hier nochmal die komplette EventLogger-Klasse mit der erweiterten Notification:

    Die Aufnahmeleuchte muss gesondert behandelt werden, da komme ich erst nächste Woche zu.

    Files

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Hallo PVD,

    Danke für deine Mühe, welche du dir hier schon gemacht hast und die Erklärungen dazu. Das mit der Aufnahme LED hat Zeit. Ich werde heute Abend gleich mal alles testen. Ja wie gesagt die Hardware ist bei mir nicht das Problem. Die LED´s sind ja noch die originalen aus DDR- Zeiten.(Waren ja damals noch Stromfresser) Die habe ich vorher schon mit einem Vorwiderstand auf 8mA begrenzt. Dank deiner gründlichen Ausführungen konnte ich den Code sogar zum größten Teil nachvollziehen. Da hast du mir schon wieder mal "über die Straße" geholfen, wie damals beim Display- Switch Addon. Ich denke du kannst dich noch dran erinnern.

    [ay][az]

    Raspberry PI 4, LibreElec 10.0.4

  • wie damals beim Display- Switch Addon. Ich denke du kannst dich noch dran erinnern.

    Ja, jetzt! Eine Insel [ag] Ja, das ist schon lange her.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Da fehlt eine Abhängigkeit in der addon.xml für das Rpi-Modul, welches erforderlich ist. Kleinen Moment.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • So, das ist doch ein größeres Problem. Mit LE12 sind im RPi-Modul ein paar Funktionen weg gefallen/durch andere ersetzt worden. Da ich aber ab morgen ein paar Tage Urlaub mache, müssen die Anpassungen etwas warten. Wir kriegen das aber hin.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!