Ankündigung

Einklappen
Keine Ankündigung bisher.

optimalen Player finden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    optimalen Player finden

    Hallo,
    ich möchte meinen Raspberry 3 mit SmarthomeNG 1.3 um einen Player erweitern, der über den integrierten analogen Ausgang bei einem Event eine Soundfile abspielt.
    Ein Russound Multiroom Verstärker ist vorhanden und übernimmt die Steuerung der Zonen.
    Ich benötige also nur einen Player, der auf einen KNX oder IP Befehl abgesetzt vom Homeserver, eine gewünschte File abspielt.
    Die File würde ich vorerst auf dem NAS der Fritzbox ablegen aber es soll auch ein Synology NAS angeschafft werden.
    Eine Überlegung wäre das squeezelite Plugin auf dem raspberry und LMS auf der NAS !?

    Ich wäre für empfehlungen sehr dankbar.

    Gruß Michael
    Zuletzt geändert von Megen; 11.03.2017, 12:58.

    #2
    Ich habe es jetzt nicht ausprobiert aber Du könntest in einer kleinen Logik einfach eine Shell mit dem installierten omxplayer und dem gewünschten Wave starten. Sowas könnte also klappen:
    Code:
    omxplayer Bier_alle.mp3

    Kommentar


      #3
      Ich kann keinen omxplayer ansprechen. Ich kann auch nicht erkennen, dass dieser wirklich installiert ist.
      Habe eine MP3 in /home/pi/media Namens test.mp3 abgelegt.
      Hab alle Möglichkeiten probiert diese aufzurufen.

      (#)~:$ sudo omxplayer /home/pi/media/test.mp3
      sudo: omxplayer: command not found

      Laut Doku ist bei SmarthomeNG 1.3 nur der "squeezelite" als Player installiert.

      Kommentar


        #4
        Ich nutze dafür den "mplayer". Ich habe eine kleine Logik geschrieben, die das als Parameter übergebene File abspielt:

        Code:
        import subprocess
        
        command = "mplayer -really-quiet -noconsolecontrols \"{0}\"".format(value)
        subprocess.call(command, shell=True)
        Grüße
        offline

        Kommentar


          #5
          Zitat von Megen Beitrag anzeigen
          (#)~:$ sudo omxplayer /home/pi/media/test.mp3
          sudo: omxplayer: command not found
          ... bedeutet, dass "omxplayer" nicht installiert ist.

          Kommentar


            #6
            Mach mal
            Code:
            sudo find / -name omxplayer
            Wenn er dann nichts findet, ist der Player nicht installiert.

            Ohne den Player zu kennen, vermute ich mal, dass du ihn dann so installiert bekommst :
            Code:
            sudo apt-get update
            sudo apt-get install omxplayer

            Kommentar


              #7
              Nein der omxplayer ist leider nicht vorhanden.
              Dann schaue ich mir diesen und den mplayer mal genauer an und versuche diesen zu integrieren.
              Danke euch

              Ich habe nun einfach mal den omxplayer installiert und kann über den Befehl "omxplayer /home/pi/media/test.mp3" diese auch abspielen.
              Weiß jemand von euch, wie ich diesen Befehl nun vom Homeserver auslösen kann?
              Zuletzt geändert von Megen; 12.03.2017, 12:03.

              Kommentar


                #8
                Ich hoffe, ich hab Dein Anliegen richtig verstanden. Du brauchst:

                - ein Item, das Du über KNX mit Deinem HS verbindest (so, wie Du es schon im Helios-Modul gemacht hast),
                - eine Logik, die das item überwacht und bei einer bestimmten Zustandsänderung das Soundfile abspielt (siehe #4 von Offline) und danach das Item zurücksetzt.

                Guckst Du hier, notfalls nochmal nachfragen oder im Helios-Plugin bei den Logiken nachsehen.

                /tom

                Kommentar


                  #9
                  Ich habe beim Helios Plugin dieses nur abgeändert aber verstehe nicht wirklich was darin oder der Logik von Offline steht.
                  Ich werde mich aber in dieses Thema versuchen einzulesen und ggf nochmal nachfragen.

                  Danke

                  Kommentar


                    #10
                    Bin grad unterwegs und konnte es nicht testen, aber frei nach Werner sollte es etwa so gehen:

                    /usr/local/smarthome/items.conf:
                    Code:
                    # erstmal definieren wir uns ein Item
                    [bescheid_sagen_item]
                        type = bool
                        value = false
                        knx_dpt = ???      # hier den HS anbinden
                        knx_listen = ???
                        knx_send = ???
                    /usr/local/smarthome/etc/logic.conf:
                    Code:
                    # dann sagen wir, dass das Item durch eine Logik überwacht werden soll
                    # (jede Veränderung des Items soll eine bestimmte Logik aufrufen)
                    [bescheid_sagen_logik]
                        watch_item = bescheid_sagen_item
                        filename = sachma_beschei-heid.py
                    /usr/local/smarthome/logics/sachma_beschei-heid.py
                    Code:
                    # und am Ende beschreiben wir, was passieren soll, wenn der Wert des Items sich verändert:
                    #!/usr/bin/env python
                    import subprocess
                    import logging
                    if sh.bescheid_sagen_item() == true:
                        logger.info("Bier iss alle, ich sach ma Bescheid ...")
                        subprocess.call("mplayer -really-quiet -noconsolecontrols bier_alle.mp3", shell=true)
                        sh.bescheid_sagen_item(false)
                    Taster wird betätigt, Info geht über KNX an das Item. Da es überwacht wird, wird die zugehörige Logik ausgeführt. Diese setzt am Ende das Item wieder auf false, mit entsprechender Rückinfo an HS, da über KNX verbunden.

                    Konnte es wie gesagt nicht testen - falls noch Fehler drin sind oder was vergessen wurde, gern Rückmeldung.

                    /tom

                    Nachtrag, bevor Beschwerden kommen: Die Logik lässt sich natürlich auch noch allgemeiner schreiben, um verschiedene Ereignisse mit verschiedenen Soundfiles abzufangen. Und man kann auch mit trigger['source'] und trigger['value'] arbeiten. Aber für den Lerneffekt ist es sicher wie oben gezeigt einfacher, da das Item direkt angesprochen wird ...
                    Zuletzt geändert von Tom Bombadil; 13.03.2017, 00:06.

                    Kommentar


                      #11
                      Vielen Dank Tom,
                      das werde ich testen und auch versuchen zu verstehen damit ihr mir das nicht immer vorkauen müsst.
                      Das ist mir eine super Hilfe.
                      Ich kann leider erst Ende der Woche testen aber melde mich ob alles fubktioniert.
                      Einen schönen Sonntag noch.

                      Gruß Michael

                      Kommentar


                        #12
                        Zitat von Megen Beitrag anzeigen
                        das werde ich testen und auch versuchen zu verstehen damit ihr mir das nicht immer vorkauen müsst.
                        Hab's ohne zu Testen nochmal ein wenig angepasst (Kommentare eingefügt). Und: Keine Sorge, immer gern fragen - dazu ist das Forum da.

                        /tom

                        Kommentar


                          #13
                          Leider muss ich doch nochmal fragen...
                          Ich habe eigentlich erstmal alles übernommen und kaum etwas geändert aber es folgt keinerlei reaktion der Item.

                          /usr/local/smarthome/items/sound.conf
                          Code:
                          # erstmal definieren wir uns ein Item
                          [bescheid_sagen_item]
                              type = bool
                              value = false
                              knx_dpt = 1      # hier den HS anbinden
                              # knx_send = ???
                              knx_listen = 101/1/1
                          /usr/local/smarthome/etc/
                          Code:
                          [bescheid_sagen_logik]
                              watch_item = bescheid_sagen_item
                              filename = sachma_beschei-heid.py
                          /usr/local/smarthome/logics/sachma_beschei-heid.py
                          Code:
                          # und am Ende beschreiben wir, was passieren soll, wenn der Wert des Items sich verändert:
                          #!/usr/bin/env python
                          import subprocess
                          import logging
                          if sh.bescheid_sagen_item() == true:
                              logger.info("Bier iss alle, ich sach ma Bescheid ...")
                              #subprocess.call("omxplayer /home/pi/media/bier_alle.mp3", shell=true)
                              sh.bescheid_sagen_item(false)
                          Die Datei ist natürlich vorhanden und kann auch über den Befehl "omxplayer /home/pi/media/bier_alle.mp3" gestartet werden.
                          Im Log erscheint überhaupt nichts zu diesem Thema.

                          Kann bitte nochmal jemand darauf schauen?
                          Vielen Dank
                          Michael

                          Kommentar


                            #14
                            Neustart gemacht? Sonst werden geänderte Items und Logiken nicht eingelesen.

                            Dann mal bitte im Backend (http://<ip-des.pi>:8383, bei mir z.B. http://192.168.178.6:8383) prüfen:

                            - KNX Dienst aktiv?
                            - Item vorhanden?
                            - Logik vorhanden?

                            Das # vor subprocess.call ist vermutlich vom Basteln?

                            Ich will aber nicht auch ausschließen, dass da irgendwo etwas noch nicht passt oder ich was übersehen/vergessen habe - hab's wie gesagt unterwegs und hintereinanderweg geschrieben ...

                            /tom

                            Kommentar


                              #15
                              Das # habe ich wirklich übersehen.
                              Mein Problem war das KO jetzt reagiert der Raspberry zumindest schon einmal.
                              Ich bekomme allerdings folgenden Fehler...
                              Code:
                              2017-03-17  12:03:35 ERROR    bescheid_sagen_logik Logic: bescheid_sagen_logik, File: /usr/local/smarthome/logics/sachma_beschei-heid.py, Line: 5, Method: <module>, Exception: name 'true' is not defined
                              Traceback (most recent call last):
                                File "/usr/local/smarthome/lib/scheduler.py", line 355, in _task
                                  exec(obj.bytecode)
                                File "/usr/local/smarthome/logics/sachma_beschei-heid.py", line 5, in <module>
                                  if sh.bescheid_sagen_item() == true:
                              NameError: name 'true' is not defined

                              Kommentar

                              Lädt...
                              X