Ankündigung

Einklappen
Keine Ankündigung bisher.

8-Kanal Multiroom Audio Controller+Verstärker auf piCorePlayer Basis

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

  • vento66
    antwortet
    An welchen Homeserver? Den von Gira? Da geht gar nichts in der Richtung!

    Einen Kommentar schreiben:


  • DeepB
    antwortet
    Hat schon jemand hier den Raspberry weggelassen und das ganze einfach per usb an einen bestehenden homeserver angesteckt und dort betrieben?

    Sollte ja grundsätzlich genauso funktionieren oder?

    Und wäre es nicht einfacher statt einer 7.1 Karte und Alsa-Handständen einfach einen USB-Hub und x Stück 2.0-Kanal noname-Usb-audioadapter zu nehmen?
    Zuletzt geändert von DeepB; 28.06.2019, 09:44.

    Einen Kommentar schreiben:


  • papaarrugada
    antwortet
    powerOff.sh

    Code:
    #!/bin/sh
    
    sleep 1s
    
    sudo echo "0" > /sys/class/gpio/gpio24/value
    echo 'power off!'
    readKeys.sh

    Code:
    #!/bin/sh
    
    # Navigate Jivelite menus
    # Requires a keyboard device be attached.
    
    device="/dev/input/event1"
    
    press()
    {
    sudo evemu-event ${device} --type EV_KEY --code $1 --value 1 --sync
    sudo evemu-event ${device} --type EV_KEY --code $1 --value 0 --sync
    sleep 0.1
    }
    
    Key_1()
    {
    # Power on
    press KEY_K
    }
    
    Key_2()
    {
    # Start from a known menu postion (home)
    press KEY_H
    
    # Select Player
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    
    # go
    press KEY_ENTER
    }
    
    Key_3()
    {
    # go_playlists
    press KEY_GRAVE
    }
    
    Key_4()
    {
    # go favorites
    press KEY_F
    }
    
    Key_5()
    {
    
    # Start from a known menu postion (home)
    press KEY_H
    
    # Select Settings
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    
    # go
    press KEY_ENTER
    
    # Select Synchro      
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
       
    # go           
    press KEY_ENTER
    }
    
    Key_6()
    {
    # volume -
    press KEY_MINUS
    }
    
    Key_7()
    {
    # volume +
    press KEY_EQUAL
    }
    
    Key_8()
    {
    # Power off
    press KEY_I
    }
    
    Key_9()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    }
    
    Key_10()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    
    # go entry 1
    press KEY_ENTER
    }
    
    Key_11()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    
    # go entry 2
    press KEY_DOWN
    press KEY_ENTER
    }
    
    Key_12()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    
    # go entry 3
    press KEY_DOWN
    press KEY_DOWN
    press KEY_ENTER
    }
    
    Key_13()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    
    # go entry 4
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_ENTER
    }
    
    Key_14()
    {
    # go_playlists
    press KEY_GRAVE
    
    # go entry 1
    press KEY_ENTER
    
    # go entry 5
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_DOWN
    press KEY_ENTER
    }
    
    amps=off
    player1=off
    player2=off
    player3=off
    player4=off
    
    LMS_IP=192.168.0.222
    MAC_ADDR1=ab:cd:ef:12:34:60      # Raspberry Pi MAC address Wohnzimmer
    MAC_ADDR2=ab:cd:ef:12:34:61      # Raspberry Pi MAC address Kueche
    MAC_ADDR3=ab:cd:ef:12:34:62      # Raspberry Pi MAC address Esszimmer
    MAC_ADDR4=ab:cd:ef:12:34:63      # Raspberry Pi MAC address Bad
    COMMAND="status 0 0"             # LMS player status command
    
    getPower() {                                                         
      RESULT=`( echo "$1 $COMMAND"; echo exit ) | nc $LMS_IP 9090`
      echo $RESULT | grep "power%3A1" > /dev/null 2>&1                    
      if [ $? == 0 ]; then                                                
        echo "on"
      else                                                                
        echo "off"                                              
      fi                                                                 
    }                                                                     
    
    
    playerOff() {
      if [ $amps == "on" ]; then                                                                                
         echo "$MAC_ADDR1 power 0" | telnet $LMS_IP 9090                
         echo "$MAC_ADDR2 power 0" | telnet $LMS_IP 9090                                            
         echo "$MAC_ADDR3 power 0" | telnet $LMS_IP 9090                                            
         echo "$MAC_ADDR4 power 0" | telnet $LMS_IP 9090                                            
      fi
    }
    
     
    playerStop() {
      if [ $amps == "on" ]; then                                                                                
         echo "$MAC_ADDR1 mode stop" | telnet $LMS_IP 9090                
         echo "$MAC_ADDR2 mode stop" | telnet $LMS_IP 9090                                            
         echo "$MAC_ADDR3 mode stop" | telnet $LMS_IP 9090                                            
         echo "$MAC_ADDR4 mode stop" | telnet $LMS_IP 9090                                            
      fi
    }
    
     
    
    sudo chown tc /sys/class/gpio/export
    # pulldown
    echo "13" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio13/
    echo "in" > /sys/class/gpio/gpio13/direction
    
    echo "16" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio16/
    echo "in" > /sys/class/gpio/gpio16/direction
    
    echo "17" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio17/
    echo "in" > /sys/class/gpio/gpio17/direction
    
    echo "18" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio18/
    echo "in" > /sys/class/gpio/gpio18/direction
    
    echo "22" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio22/
    echo "in" > /sys/class/gpio/gpio22/direction
    
    echo "23" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio23/
    echo "in" > /sys/class/gpio/gpio23/direction
    
    echo "25" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio25/
    echo "in" > /sys/class/gpio/gpio25/direction
    
    echo "26" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio26/
    echo "in" > /sys/class/gpio/gpio26/direction
    
    echo "27" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio27/
    echo "in" > /sys/class/gpio/gpio27/direction
    
    # pullup
    echo "4" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio4/
    echo "in" > /sys/class/gpio/gpio4/direction
    
    echo "5" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio5/
    echo "in" > /sys/class/gpio/gpio5/direction
    
    echo "6" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio6/
    echo "in" > /sys/class/gpio/gpio6/direction
    
    echo "7" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio7/
    echo "in" > /sys/class/gpio/gpio7/direction
    
    echo "8" > /sys/class/gpio/export
    sudo chown -R tc /sys/class/gpio/gpio8/
    echo "in" > /sys/class/gpio/gpio8/direction
    
    while true
    do
        PRESSED8=$(cat /sys/class/gpio/gpio13/value)
        PRESSED9=$(cat /sys/class/gpio/gpio16/value)
        PRESSED10=$(cat /sys/class/gpio/gpio17/value)
        PRESSED11=$(cat /sys/class/gpio/gpio18/value)
        PRESSED12=$(cat /sys/class/gpio/gpio22/value)
        PRESSED1=$(cat /sys/class/gpio/gpio23/value)
        PRESSED2=$(cat /sys/class/gpio/gpio25/value)
        PRESSED3=$(cat /sys/class/gpio/gpio26/value)
        PRESSED4=$(cat /sys/class/gpio/gpio27/value)
        PRESSED5=$(cat /sys/class/gpio/gpio4/value)
        PRESSED6=$(cat /sys/class/gpio/gpio5/value)
        PRESSED7=$(cat /sys/class/gpio/gpio6/value)
        PRESSED13=$(cat /sys/class/gpio/gpio7/value)
        PRESSED14=$(cat /sys/class/gpio/gpio8/value)
        
        player1=$(getPower "$MAC_ADDR1")
        player2=$(getPower "$MAC_ADDR2")
        player3=$(getPower "$MAC_ADDR3")
        player4=$(getPower "$MAC_ADDR4")
        
    #    echo "Ergebnis"
    #    echo $player1
    #    echo $player2
    #    echo $player3
    #    echo $player4
    
        if [ $amps == "off" ]; then
          if [ $player1 == "on" ] || [ $player2 == "on" ] || [ $player3 == "on" ] || [ $player4 == "on" ]; then
               echo "$MAC_ADDR1 display Moment%20bitte... schalte%20ein... 1" | telnet $LMS_IP 9090                                                                                                                                   
               echo "$MAC_ADDR2 display Moment%20bitte... schalte%20ein... 1" | telnet $LMS_IP 9090                                                                                                                                   
               echo "$MAC_ADDR3 display Moment%20bitte... schalte%20ein... 1" | telnet $LMS_IP 9090                                                                                                                                   
               echo "$MAC_ADDR4 display Moment%20bitte... schalte%20ein... 1" | telnet $LMS_IP 9090                                                                                                                                   
               amps=on                                           
               . /home/tc/powerOn.sh
          fi
        else
          if [ $player1 == "off" ] && [ $player2 == "off" ] && [ $player3 == "off" ] && [ $player4 == "off" ]; then
               echo "$MAC_ADDR1 display Moment%20bitte... schalte%20aus... 1" | telnet $LMS_IP 9090           
               echo "$MAC_ADDR2 display Moment%20bitte... schalte%20aus... 1" | telnet $LMS_IP 9090           
               echo "$MAC_ADDR3 display Moment%20bitte... schalte%20aus... 1" | telnet $LMS_IP 9090           
               echo "$MAC_ADDR4 display Moment%20bitte... schalte%20aus... 1" | telnet $LMS_IP 9090
               amps=off          
               . /home/tc/powerOff.sh                                 
          fi
        fi
    
    #    echo "amps"
    #    echo $amps    
    
        # echo $PRESSED
    #    sleep 1
        
        if [ $PRESSED1 = 1 ]; then
            Key_1
            sleep 0.2
        fi
        if [ $PRESSED2 = 1 ]; then
            Key_2
            sleep 0.2
        fi
        if [ $PRESSED3 = 1 ]; then
            Key_3
            sleep 0.2
        fi
        if [ $PRESSED4 = 1 ]; then
            Key_4
            sleep 0.2
        fi
        if [ $PRESSED5 = 0 ]; then
            Key_5
            sleep 0.2
        fi
        if [ $PRESSED6 = 0 ]; then
            Key_6
        fi
        if [ $PRESSED7 = 0 ]; then
            Key_7
        fi
        if [ $PRESSED8 = 1 ]; then
            playerStop
            playerOff
            Key_8
            sleep 0.2
        fi
        if [ $PRESSED9 = 1 ]; then
            Key_9
            sleep 0.2
        fi
        if [ $PRESSED10 = 1 ]; then
            Key_10
            sleep 0.2
        fi
        if [ $PRESSED11 = 1 ]; then
            Key_11
            sleep 0.2
        fi
        if [ $PRESSED12 = 1 ]; then
            Key_12
            sleep 0.2
        fi
        if [ $PRESSED13 = 0 ]; then
            Key_13
            sleep 0.2
        fi
        if [ $PRESSED14 = 0 ]; then
            Key_14
            sleep 0.2
        fi
    
    
    
        if [ $PRESSED15 = 1 ]; then
            if [ $player2 = stopped ]; then
                echo "Start player2 Kueche"
                echo "$MAC_ADDR2 play" | telnet $LMS_IP 9090
                player2=started
                sleep 0.2
            else
                echo "Stop player2 Kueche"
                echo "$MAC_ADDR2 stop" | telnet $LMS_IP 9090
                player2=stopped
                sleep 0.2
            fi
        fi
        if [ $PRESSED16 = 1 ]; then
            if [ $player3 = stopped ]; then
                echo "Start player3 Esszimmer"
                echo "$MAC_ADDR3 play" | telnet $LMS_IP 9090
                player3=started
                sleep 0.2
            else
                echo "Stop player3 Esszimmer"
                echo "$MAC_ADDR3 stop" | telnet $LMS_IP 9090
                player3=stopped
                sleep 0.2
            fi
        fi
        if [ $PRESSED19 = 1 ]; then
            if [ $player4 = stopped ]; then
                echo "Start player4 Bad"
                echo "$MAC_ADDR4 play" | telnet $LMS_IP 9090
                player4=started
                sleep 0.2
            else
                echo "Stop player4 Bad"
                echo "$MAC_ADDR4 stop" | telnet $LMS_IP 9090
                player4=stopped
                sleep 0.2
            fi
        fi
        if [ $PRESSED17 = 1 ]; then
            echo "$MAC_ADDR3 mixer volume +10" | telnet $LMS_IP 9090
            sleep 0.2
        fi
        if [ $PRESSED18 = 1 ]; then
            echo "RASPI_MAC_ADRESS_GOES_HERE mixer volume -10" | telnet $LMS_IP 9090
            sleep 0.2
        fi
        if [ $PRESSED20 = 1 ]; then
            # 1Live
            echo "Radio 1Live"
            echo "$MAC_ADDR3 playlist play http://opml.radiotime.com/Tune.ashx?id=s25260&formats=aac,ogg,mp3&partnerId=16&serial=2528c649c658ffeadb7b041df6321e3e" | telnet $LMS_IP 9090
            sleep 0.2
        fi
        if [ $PRESSED21 = 1 ]; then
            # radioeins
            echo "$MAC_ADDR3 playlist play http://opml.radiotime.com/Tune.ashx?id=s25111&formats=aac,ogg,mp3,wmpro,wma,wmvoice&partnerId=16&serial=afe440bda10df77274ddb47d62a6025f" | telnet $LMS_IP 9090
            sleep 0.2
        fi
        if [ $PRESSED22 = 1 ]; then
            echo "$MAC_ADDR3 display Taste8 ok 2" | telnet $LMS_IP 9090
            sleep 0.2
        fi
        
        sleep 0.2
    done
    
    echo "17" > /sys/class/gpio/unexport
    
    exit

    Das letzte Skript ist bei mir dazu da, Tasten einzulesen und bestimmte Radioprogramme einzuschalten usw.
    In einer Schleife werden auch die Stati der Player abgefragt und wenn alle gestoppt sind, dann wird das Skript powerOff aufgerufen.
    Das hier soll bitte nur ein Beispiel sein und kann beliebig angepasst und erweitert werden.




    Einen Kommentar schreiben:


  • karino
    antwortet
    Das wäre toll :-)

    Genau diese Funktion habe ich ja gesucht! Bin auch gespannt was es sonst an Features gibt :-)

    Danke vorab und liebe Grüße,
    Karin

    Einen Kommentar schreiben:


  • papaarrugada
    antwortet
    karino
    also das muting.sh hier schaltet jeden Ausgang für sich. Es wird für den GPIO separat gestartet. Es läuft also mehrfach, mutet das PIO verzögert, schaltet aber nicht PowerOff.

    Das angesprochene PowerOff.sh habe ich testweise für mich realisiert. Habe mittlerweile auch ein ganzes Gerät mit Tochdisplay und Zusatztasten, allerdings noch ohne Gehäuse zusammengebaut. Wenn Interesse besteht und ich mal Zeit habe und daran denke, würde ich noch Fotos und das Skript einstellen.

    Einen Kommentar schreiben:


  • papaarrugada
    antwortet
    gkamp
    es müßten noch 1-3 da sein, muß erstmal nachsehen. Aber eine auf jeden Fall. Ich glaube, auch ein vollständiger Bausatz ist noch da. Den Rest müßte man bestellen.

    Einen Kommentar schreiben:


  • karino
    antwortet
    ah, ok. Hatte gehofft, dass es so wie Du schreibst, funktioniert. Wo finde ich denn die "Logik", die das "PowerOn" abschaltet, wenn keine der 4 Zonen aktiv ist? Habe im muting.sh und powerDelay.sh nichts direkt gesehen. Wie aber auch schon geschrieben: Ich bin leider keine IT-Fachfrau :-)

    Wenn ich das verstehe, traue ich mir zu, dass ich per Try and Error dies separat (2 GPIO für je einen PowerOn) für die zwei 4er-Zonen bauen könnte.

    VG,
    Karin

    Einen Kommentar schreiben:


  • gkamp
    antwortet
    Hallo papaarrugada . Gibt es noch 4-fach-Muting-Platinen?
    Zuletzt geändert von gkamp; 27.06.2019, 11:37. Grund: Falscher Thread

    Einen Kommentar schreiben:


  • papaarrugada
    antwortet
    das sind jetzt 2 Themen. Es gibt das verzögerte PowerOn beim Einschalten, was den Einbschaltplopp verhindert. Im Betrieb kann jede Platine 4x Muting schalten. Wenn mindestens ein Player auf Wiedergabe geht, dann wird auch das PowerOn geschaltet. Wenn alle Player ausgeschaltet werden, wird auch etwas verzögert das PowerOn abschaltet.

    Wenn man alles zusammenfassen will (PowerOn), dann gehört auch die Logik in den Skripten für alle 8 Ausgänge erweitert.
    Dann schaltet alles wie ein großer 8er-Block.

    Oder man will getrennte Logik, dann braucht man auch 2x PowerOn auf 2 GPIOs.

    Einen Kommentar schreiben:


  • karino
    antwortet
    Hallo papaarrugada . Danke für die schnelle Antwort.

    Verstehe ich das richtig, dass dieser PIN "nur" für das verzögerte Ein- und Ausschalten genutzt wird. Würde es evtl. nicht Sinn machen, dass die Platinen abgeschaltet werden, wenn keine der jeweils 4 Zonen aktiv ist? Dann würden die Platinen nur per GPIO aktiv, wenn mind. 1 der 4 Zonen läuft.

    Viele Grüße,
    karin

    Einen Kommentar schreiben:


  • papaarrugada
    antwortet
    Hallo Karin,

    freut mich, daß die Hardware läuft.

    Das einfachste wäre es natürlich nur die beiden PowerOn-Pins am Stecker (ich glaube Pin 5) an den Platinen zu brücken. Dann erledigt das Skript beides. Der Ausgang des RaspberryPi kann das, weil auf jeder Platine ein eigenes Treiber-IC verbaut ist, das dann das Relais ansteuert.
    Wenn man allerdings verschiedene Verzögerungen haben will, dann muß man softwaremäßig ran und einen neuen freien GPIO-Pin suchen und die beiden Platinen getrennt schalten.

    Viel Grüße

    Einen Kommentar schreiben:


  • karino
    antwortet
    Hallo zusammen,

    wir haben es geschafft einen Musikserver mit den beschriebenen Infos und den Platinen von@papaarrugada zu bauen. Wir haben acht Zonen (also 8 Stereoräume/Stereokanäle) gebaut. Demnach sind zwei der Platinen von papaarrugada verbaut. Ich bin allerdings kein Softwareentwickler. Die Skripte hier aus dem Thread beziehen sich auf 4 Stereozonen (1 Platine). Kann mir jemand weiterhelfen, was ich tun muss, um das PowerOn (was bei der 1. Platine GPIO24 ist) für die 2. Platine umzusetzen?

    Viele Grüße,
    Karin

    Einen Kommentar schreiben:


  • eldrik
    antwortet
    Moin zusammen,

    bezüglich des Grundrauschen, welches hier bereits an der ein oder anderen Stelle thematisiert wurde habe ich mir für meine 8 Kanäle, bei denen ein minimal wahrnehmbares Summen vorhanden war, den folgenden Artikel gegönnt, nun sind jeweils 3 von 4 Abgängen meiner USB Soundkarten damit ausgestattet und es ist in Summe kein Grundrauschen mehr wahrnehmbar.

    https://de.aliexpress.com/item/32949...35e74c4dyWuFEU

    Greetz
    Eldrik

    Einen Kommentar schreiben:


  • gurumeditation
    antwortet
    Ohne die jetzt im Detail zu kennen, aber prinzipiell bekommt man ordentliche Kabel auch für wenig Geld.
    Amazon wäre jetzt nicht meine erste Wahl, bei Kabeln schaue ich eher bei Thomann oder Reichelt.

    Teurere Kabel sind - vom Kabelvoodoo mal abgesehen - oft robuster aufgebaut oder besser geschirmt oder beides.
    Bei stationärem Einsatz sollte das aber keine Rolle spielen, mobil oder auf der Bühne sehr wohl.

    Ich habe billigste und günstige Kabel (mini Klinke) im Einsatz. Die billigsten fühlen sich billig an, halten aber auch schon über 10 Jahre im häuslichen Gebrauch. Klangliche Unterschiede konnte ich nicht feststellen.

    Einen Kommentar schreiben:


  • blaum
    antwortet
    Danke mars

    Du hast recht, dass passte nicht, ich meinte das Enertex Power Supply 1167.

    Klinke/Klinke Kabel macht natürlich mehr Sinn, weniger Abfall. Die Preise reichen ja zB bei Amazon von einem knappem Euro bis 10 EUR. Gibts hier tatsächlich Unterschiede oder taugen auch die günstigeren was?

    Einen Kommentar schreiben:

Lädt...
X