Ankündigung

Einklappen
Keine Ankündigung bisher.

Befehl an raspberry senden

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

    #16
    Meldet sich immer über root@pedros smarthome an :-(

    Kommentar


      #17

      "root@pedros" ist nur das Prompt. Da kann humblpfrumbf auch stehen.

      Ich habe dich gebeten, das Kommando "id" einzutippen nachdem du einen "su - openhab" durchgeführt hast. Was ist dann die Ausgabe des Kommandos "id"?



      Kommentar


        #18
        Unbenannt4.png

        erledigt :-)

        Kommentar


          #19
          hallo, wollte nochmal fragen ob jemand helfen kann? :-(

          Kommentar


            #20
            Hi,
            Zitat von Pedro85 Beitrag anzeigen
            hallo, wollte nochmal fragen ob jemand helfen kann? :-(
            seltsam, seltsam. mit su - openhab müsstest du eigentlich der User "openhab" werden. passiert aber nicht. kannst du mal das Ergebnis des folgenden Kommandos pasten.

            Code:
            grep openhab /etc/passwd

            Kommentar


              #21
              danke fürs antworten.
              so dann kommt das

              Unbenannt.png

              Kommentar


                #22
                Gut. das ist der Grund, warum du nicht der user "openhab" werden kannst. der hat namlich keine Shell. Ändere bitte in der Datei /etc/passwd die Zeile so ab,
                dass am schluss nicht mehr
                ..../bin/false
                steht, sonderen
                ..../bin/bash

                Danach bitte folgende Kommandos ausführen:
                Code:
                su - openhab
                id
                /scripts/tts.sh
                Ergebnis posten.

                Kommentar


                  #23
                  das ergebnis

                  Unbenannt2.png

                  Kommentar


                    #24
                    Hi,

                    na schaut doch schon besser aus
                    Also, der User Openhab darf wohl das Skript tty.sh ausführen, allerdings ruft dieses Skript ein Kommando nahmens "amixer" auf, welches nicht gefunden wird (liegt normalerweise unter /usr/bin).
                    Du musst die PATH-Variable im Skript richtig setzen. Z.B.

                    export PATH=$PATH:/usr/bin

                    Gruß!

                    Kommentar


                      #25
                      hm ok, das ist echt viel komplizierter als ich jemals gedacht hat

                      hier nochmal paar ergebnisse

                      Unbenannt.png

                      Unbenannt1.png

                      Code:
                      #!/bin/bash
                      /usr/bin/amixer cset numid=1 $2%
                       
                      if [ -n "$3" ] ; then
                          /usr/bin/aplay /scripts/audio/$3.wav &> /dev/null
                      fi
                       
                      INPUT=$1
                      STRINGNUM=0
                      ary=($INPUT)
                       
                      for key in "${!ary[@]}" ; do
                          SHORTTMP[$STRINGNUM]="${SHORTTMP[$STRINGNUM]} ${ary[$key]}"
                          LENGTH=$(echo ${#SHORTTMP[$STRINGNUM]})
                       
                          if [[ "$LENGTH" -lt "100" ]]; then
                              SHORT[$STRINGNUM]=${SHORTTMP[$STRINGNUM]}
                          else
                              STRINGNUM=$(($STRINGNUM+1))
                              SHORTTMP[$STRINGNUM]="${ary[$key]}"
                              SHORT[$STRINGNUM]="${ary[$key]}"
                          fi
                      done
                       
                      for key in "${!SHORT[@]}" ; do
                          say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://api.voicerss.org/?key=xxxx=22khz_16bit_mono&hl=de-de&src=${SHORT[$key]}"; }
                          say $*
                      done
                      das ist der inhalt des tts.sh scriptes
                      vielleicht kannst mir da nochmal weiter helfen

                      Kommentar


                        #26
                        Hi,

                        sorry. Das mit dem Path war Unsinn. Ich hab da nicht richtig hingeschaut. Dar amixer wird gefunden, er steht ja auch mit komplettem Pfad im Skript, nur kann da wohl irgendein default control-file nicht geöffnet werden. Ich hab leder keine Ahnung von diesem amixer und was der braucht.

                        Alternativ könntest du das Skript vielleicht so umbauen, dass nur dieses spezielle amixer-Kommando als root ausgeführt wird oder gleich openHAB im root-Account laufen lassen. Dann hast du das Problem auch nicht.


                        Wie auch immer, wenn openHAB unter dem User "openhab" läuft, müssen natürlich sämtliche Skripte die von openHAB aufgerufen werden sollen, auch unter diesem User laufen können. Solange das nicht funktioniert, brauchst du mit der OpenHAB-Konfiguration gar nicht weitermachen.

                        Gruß
                        Zuletzt geändert von thoern; 04.01.2016, 14:29.

                        Kommentar


                          #27
                          Du könntest versuchsweise mal den user openhab in die Gruppe audio aufnehmen:
                          Code:
                          sudo useradd openhab audio
                          Dann sollte der User (nach einem erneuten login) in der Lage sein, das Script auszuführen, root-Rechte sollten jedenfalls unnötig sein, um amixer anzusteuern.

                          Kommentar


                            #28
                            Sehe ich auch so. An die audio Gruppe hab ich gar nicht gedacht. Das ist genau das Problem. Habe das gerade mal auf meinem System nachgestellt. Sobald ich meinem Testuser die Gruppe audio entziehe, läuft der amixer nicht mehr mit folgender Fehlermeldung:

                            Code:
                            amixer: Control default open error: No such file or directory

                            Kommentar


                              #29
                              dann kommt das,richtig?Unbenannt.png

                              Kommentar


                                #30
                                Nein. Das ist falsch. Es muss wie folgt lauten:

                                Code:
                                sudo usermod -G audio openhab

                                Kommentar

                                Lädt...
                                X