Script im Libreelec 12 funktioniert nicht, aufgrund von Raspi 5 und gpiozero

  • Hallo und guten Abend

    Ich habe auf meinem Raspi5 Libreelec 12.0.2 installiert. Vorher hatte ich einen Raspi 4 mit libreelec 10 und folgendes Script um per Fernbedienung (über lirc) einen GPIO Pin auf „High“ zu setzen. Dieser aktivierte ein Relais, welches wiederum ein HDMI-Switch aktivierte.

    Das hat auch bisher sehr gut funktioniert. Mit dem Raspi 5 und libreelec 12.0.2 geht das Script nicht mehr.

    Ich habe rausgefunden, dass Rpi.GPIO in dem Addon „Raspberry Pi Tools“ durch „gpiozero“ ersetzt wurden ist. Leider reichen meine Programmierkenntnisse nicht aus um das Script umzustellen und per google komme ich auch nicht wirklich weiter. Ich würde mich freuen wenn Ihr mir helfen könntet. Da ich echt gerne von Raspi 4 auf 5 wechseln will und auch endlich ein aktuelles libreelec nutzen möchte.

    Vielen Dank im voraus

  • Für Deinen Einsatzfall kann man zwar auf gpiozero wechseln. Die erste Wahl ist es aber nicht (mehr), da es aufgrund immer noch unbehobener Bugs die Nebenwirkung haben kann die Ressourcen nicht wieder freizugeben. Besser ist lgpio oder idealerweise (lib)gpiod zu verwenden. Letzteres ist besser gepflegt aber etwas komplexer in der Umsetzung.

    Dein Skript sieht für mich etwas "schräg" aus. GPIO Pin 23 soll als Ausgang agieren. Der Code in der Endlos-Schleife prüft ob der selbe Ausgang derzeit auf Low gesetzt ist und setzt ihn dann auf High und umgekehrt. Oder sollte der PIN ursprünglich toggeln? Auch der Aufruf von quit() zum Ausbrechen aus der Schleife ist ein nicht empfohlener Weg und macht den Einsatz einer Schleife an sich nutzlos. Hast Du eine bereits veränderte oder von ChatGPT bereitgestellte Version hier gepostet?

    Im Skript selbst kann ich da keinen Bezug zur Fernbedienung erkennen. Hast Du das Skript auf eine bestimmte Taste gemapped?

  • Hallo HarryH,

    ich habe leider wenig (bis keine) Programmierkenntnisse. Das oben gebaute Script hat mir vor Jahren ein Kumpel zusammengebaut. Die Verbindung zur Fernbedienung erfolgte über ein zweites Script, welches unter /storage/.config gespeichert war.

    Code
    begin
      prog = irexec
      button = KEY_GREEN
      config = /storage/.kodi/userdata/relais/relais.py
    end

    wobei relais.py das ursprüngliche script im ersten thread meint. Ich werde Chatgpt mal befragen.

    Danke fürs zuhören und antworten

  • Hallo Voltmensch,

    hier eine Version Deines Skripts für gpiod. Dafür muss das System-Tools Add-on ab Version 12.0.0.7 installiert sein. Was ich nicht weiß ob der Weg das Skript auf die Taste der Fernbedienung zu mappen in LibreELEC 12 noch genauso funktioniert oder ob da etwas geändert wurde. Für diesen Fall kannst Du zum Testen das Relais-Skript per SSH manuell ausführen: python3 /storage/.kodi/userdata/relais/relais.py Dort würde man auch sehen ob es eine Fehlermeldung gibt, falls z.B. ein anderer Prozess den GPIO Pin blockiert.

Participate now!

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