Meldet sich immer über root@pedros smarthome an :-(
Ankündigung
Einklappen
Keine Ankündigung bisher.
Befehl an raspberry senden
Einklappen
X
-
Hi,
Zitat von Pedro85 Beitrag anzeigenhallo, wollte nochmal fragen ob jemand helfen kann? :-(
Code:grep openhab /etc/passwd
Kommentar
-
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
Kommentar
-
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
-
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
vielleicht kannst mir da nochmal weiter helfen
Kommentar
-
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
-
Du könntest versuchsweise mal den user openhab in die Gruppe audio aufnehmen:
Code:sudo useradd openhab audio
Kommentar
-
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
Kommentar