LIRC Problem bein Senden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Johny
    Extension Master
    • 04.09.2016
    • 129

    LIRC Problem bein Senden

    Hallo,
    ich habe an einem Loxberry (Rasp B3+) LIRC installiert. Es funktioniert auch, jedoch wird beim Senden alle 3-4 Sendungen 1-2 Sendungen ausgesetzt. Das ist ein großes Problem, da ich meine LG-Soundanalge mit dem TV automatisch starten und die Lautstärke regeln will (Leider geht CEC nicht). Es startete dann eben nicht immer die Soundanlage ect.
    Nun habe ich viel getestet und mal einen jungfreulichen Rasp B3+ genommen und siehe da, es funktioniert ohne Aussetzer. Also scheint es an dem Loxberry zu liegen. Ich möchte jedoch nicht nur für LIRC einen zusätzlichen Rasp benutzen, d.h. es wäre schön wenn LRC auch mit anderen Installationen funktionieren würde.
    Hier mal eine Aufstellung was alles auf meinem Loxberry ist:
    neuste Software
    Node Red
    LIRC
    PLUGIN: GPIO, Loxberry-Backup, Miniserver-Backup, MiRobot-2lox, RC-Switch, Text2SIP, WIFI-Scanner
    Hat jemand eine Idee woran diese Störung liegen könnte?
    Gruß, Johny
  • Labmaster
    Lox Guru
    • 20.01.2017
    • 2544

    #2
    Ich hatte mit LIRC in der Vergangenheit immer dann Probleme (Timing Probleme) wenn weitere Software auf dem selben System mit i/o Interrupts zu tun hatte.
    In deinem Fall könnte z.B. das RC-Switch Plugin auch I/o Interrupts nutzen. Eventuell auf das GPIO Plugin ??
    Auch ist es davon abhängig welchen Weg man für die Hardware Signale zum System wählt.
    Beim Raspberry werden es wohl irgendwelche GPIO's sein,r habe hier kein Ahnung wie gut bzw. zeitlich vorhersagbar diese da angesteuert werden können.
    Gegebenenfalls gibt es da auch Unterschiede bei den GPIOs



    Kommentar

    • Johny
      Extension Master
      • 04.09.2016
      • 129

      #3
      Danke für den Tipp.
      Ja, der IR Transmitter wird über GPIO Pins angesteuert.
      Ich werde jetzt mal nach und nach die einzelnen Plugins installieren und schauen was dann zu der Störung führt.

      Kommentar

      • Johny
        Extension Master
        • 04.09.2016
        • 129

        #4
        Ergänzung: Bei den Aussetzern blinkt trotzdem die LED an IR Transmitter. Am Soundsystem gibts aber keine Reaktion.

        Kommentar


        • hme0354
          hme0354 kommentierte
          Kommentar bearbeiten
          Schau Mal mit der Handkamera (bei mir funktioniert das [violettes Licht]) drauf, ob er trotzdem sendet.
      • Johny
        Extension Master
        • 04.09.2016
        • 129

        #5
        Das verstehe ich nicht ganz. Mit der IPhone Kamera? Wie geht das?
        Wie kann ich sehen ob er trotzdem sendet?

        Kommentar

        • hme0354
          MS Profi
          • 06.07.2019
          • 962

          #6
          Bei jedem Sendevorgang sieht man ein Blinklicht der IR Diode wenn man sie über die Kamera beobachtet
          Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
          Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

          Kommentar

          • svethi
            Lebende Foren Legende
            • 25.08.2015
            • 6301

            #7
            Das Problem ist, dass man sowas schlecht mit dem Raspi machen kann. Der Transmitter wird ja direkt vom Pi gesteuert und da muss das Timing 100-ig passen. Beim Pi ist es halt so, dass jeder Interrupt eine Unterbrechung hervorrufen kann. Es blinken dann zwar auch die Lämpchen, aber der Befehl wird nicht mehr verstanden. Wurde denn für den IR Sender ein spezieller PIN vorgeschlagen und hast Du diesen genommen? Es könnte nämlich sein, dass spezielle PWM Pins anders angesteuert werden und das dann stabiler läuft. Das kenne ich von den WS2812 Streifen her.
            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

            Kommentar

            • Johny
              Extension Master
              • 04.09.2016
              • 129

              #8
              Also die LED der IR Diode leuchtet auf. Also müsste ja etwas gesendet werden.
              Vorgeschlagen im Netz wurde PIN 17 zum Senden. Diesen habe ich auch genommen. Mit dem Loxberry ohne den Plugins funktioniert es an diesem Pin.

              Kommentar

              • Labmaster
                Lox Guru
                • 20.01.2017
                • 2544

                #9
                Das die LED aufleuchtet bedeute ja nicht, dass das richtige IR "Telegram gesendet wird.
                Da stimmt z.B. nur dann einfach das Timing nicht.

                Die Blinksequenz (Telegramm) also deren zeitliche Abfolge muss bis ins tausendstel Sekunden Detail genau stimmen, ist da irgendwo eine falsches Timing, dann stimmt das Telegramm nicht mehr und kann vom Empfänger nicht mehr als richtig erachtet werden.
                Du kannst dir das sehr vereinfacht wie einen Morsecode vorstellen, nur das hier die Zeiten sich im Millisekunden, die Modulationen (30KHz bis 60KHz) sogar im Microsekunden Bereich bewegen.


                Ein Rapsberry OS läuft nicht als Realtime Betriebssystem und somit können Prozesse von anderen Prozessen unterbrochen werden (z.B. durch sog. Interrupts). Wenn das genau an Stellen passiert wo eben gerade ein IR Code "rausgemorst" wird und somit ein Pegel z.B, statt 10 Millisekunden dann halt 11 Millisekunden durch die Unterbrechung hat, dann siehst du das mit bloßem Auge nicht, aber für den Empfänger ist es nicht mehr der richtige Code.

                Wie ich schon geschrieben habe, tippe ich mal auf andere Plugins welche auch GPIOs ansteuern als Quelle der Unterbrechung.
                Kannst ja mal alle anderen Plugins bzw. zumindest mal das RC-Switch und das GPIO Plugin entfernen, ob es mit dem IR dann besser wird.

                Optimalerweise sendet man IR Signale von einem eigenständigen System (z.B. einen kleines Microcontroller System oder einen eigenen Raspberry ....) welches nichts anderes zu tun hat als sich um das passenden Timing zu kümmern, wenn es das Signal senden und/oder empfängt.



                Zuletzt geändert von Labmaster; 26.04.2020, 15:22.

                Kommentar


                • hme0354
                  hme0354 kommentierte
                  Kommentar bearbeiten
                  Auch wieder wahr. War nur eine Idee um auszuschließen, dass garnichts mehr gesendet wird.

                • svethi
                  svethi kommentierte
                  Kommentar bearbeiten
                  Was ich ja auch schon gesagt hatte
              • Johny
                Extension Master
                • 04.09.2016
                • 129

                #10
                Vielen Dank für die genaue Erläuterung! Das hilft mir sehr viel. Ich werde den beschriebenen Weg jetzt mal ausprobieren.
                Gruß, Johny

                Kommentar

                • Johny
                  Extension Master
                  • 04.09.2016
                  • 129

                  #11
                  Ich habe doch noch eine Frage dazu: Kann man den Prozess für LIRC am Loxberry priorisieren? So dass keine Beeinträchtigung auftritt?

                  Kommentar

                  • Labmaster
                    Lox Guru
                    • 20.01.2017
                    • 2544

                    #12
                    Zitat von Johny
                    Ich habe doch noch eine Frage dazu: Kann man den Prozess für LIRC am Loxberry priorisieren? So dass keine Beeinträchtigung auftritt?
                    Dazu sollten Linux Cracks mehr dazu sagen können, aber soweit ich weiß gibt es in einem normalen (nicht Realtime) Linux hierzu keine Optionen.


                    Edit:
                    gerade noch was gefunden:


                    Einfach mal einen der CPU Cores nur für LIRC blocken ;-)

                    Nur falls der Content mal verschwinden sollte, hier zur Sicherheit als Text

                    • Install and configure LIRC, I won't go over this, but I recommend following this if you're on buster.
                    • Disable the fourth CPU core by adding "isolcpus=3" to "/boot/cmdline.txt" (it's a single line, just add a space and isolcpus=3 to the end.)
                    • Have the LIRC daemon run on the fourth core by editing "/lib/systemd/system/lircd.service" line 10 "ExecStart=/usr/sbin/lircd --nodaemon" to "ExecStart=taskset 0x8 /usr/sbin/lircd --nodaemon" (read up on taskset for more information on what this does. Basically it just runs lircd on CPU 4, rather than whichever one is available.)
                    • Reboot.

                    The daemon will run by itself on the fourth core so it won't get inturpted anymore, send normal irsend commands.


                    Zuletzt geändert von Labmaster; 26.04.2020, 17:54.

                    Kommentar

                    Lädt...