FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Trebor5 am 27 Dezember 2013, 23:56:00

Titel: amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Trebor5 am 27 Dezember 2013, 23:56:00
Hallo alle zusammen,

wenn ich in die Fhem adresszeile "amixer -c 0 set PCM 100%" ist der Mixer auf 100% Lautstärke gestellt.

wenn ich in die Fhem adresszeile "amixer -c 0 set PCM 70%" ist der Mixer auf 70% Lautstärke gestellt.

So weit so gut.

Jetzt möchte ich die ganze sache Automatisieren.

Ich habe gefühle 50 kombinationen versucht aber ich bekomme es einfach nicht hin.

So oder in einer anderen Kombi habe ich Definiert.

define Lautstaerke_Nacht at *22:38 { if (!$we)} {fhem("amixer -c 0 set PCM 75%%")}}


Die Soundausgabe wird einfach nicht leiser.

Wer kann mir hier mal helfen, komme überhaupt nicht weiter?

Danke in voraus.

Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: rudolfkoenig am 28 Dezember 2013, 08:50:53
1. fhem("amixer...") funcktioniert nicht, da amixer kein FHEM Befehl ist.
2. %% ist nur im notify sinnvoll, da % durch den Event ersetzt wird. Beim at gibt es kein Event.

Ich wuerde sowas wie
define Lautstaerke_Nacht at *22:38 { if (!$we)} {system("amixer -c 0 set PCM 75%&")}}
versuchen (ungetestet)
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Trebor5 am 28 Dezember 2013, 16:46:11
Hallo,

warum sollte amixer in Fhem nicht funktionieren.

Wenn es bei mir Regnet sag eine schöne Stimme das es Regnet .

Mit define act_on_RegensensorON_on notify Regensensor:rain "mpg321 /media/usbstick/SOUNDS/ESREGNET.mp3" funktioniert das.

Habe die MP3 Files auf einen Stick am Raspberry.

Dein Tipp habe ich ausprobiert leider kommt eine Fehlermeldung im LOG

Lautstaerke_Nacht: syntax error at (eval 549) line 1, at EOF
Unmatched right curly bracket at (eval 549) line 1, at end of line
syntax error at (eval 549) line 1, near "}}"

Noch eine Idee ?


Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: rudolfkoenig am 28 Dezember 2013, 17:35:03
Sorry, mein Fehler, ich haette nicht so viel aus deinem Beispiel kopieren duerfen:
define Lautstaerke_Nacht at *22:38 { if(!$we){ system("amixer -c 0 set PCM 75%&") }}

ZitatMit define act_on_RegensensorON_on notify Regensensor:rain "mpg321 /media/usbstick/SOUNDS/ESREGNET.mp3" funktioniert das.

Da ist es ja auch nicht in {} und damit nicht in perl. Wenn Du es unbedingt mit fhem/"" machen willst, dann bitte so:
define Lautstaerke_Nacht at *22:38 { if(!$we){ fhem('"amixer -c 0 set PCM 75%"') }}[/code

Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Trebor5 am 28 Dezember 2013, 18:33:11
Hallo,

also der erste code löst nichts im Log aus und auch keine Absenkung der Lautstärke.

der 2 Code das selbe, allerdings habe ich Ihn einmal ohne das ende [/code ausgeführt dachte es ist ein Kopierfehler.

und einmal komplett da kommt dann im Log

Lautstaerke_Nacht: Unknown command {, try help.

Trage natürlich alles in der Fhem.cfg ein

Loge mit  attr global verbose 3

Man das ist gar nicht so einfach war ja eigentlich schon knapp dran.

Noch ein Tipp?
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: rudolfkoenig am 28 Dezember 2013, 19:01:34
[/code ist natuerlich ein Kopierfehler. Sonst wird es auch nicht ausloesen: es ist Wochenende
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Trebor5 am 28 Dezember 2013, 22:02:08
Ansonsten kein Tip ?
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Puschel74 am 29 Dezember 2013, 08:34:01
Hallo,

ZitatAnsonsten kein Tip ?
Doch. Bis Montag warten dann ist das Wochenende rum.

Was erwartest du dir an Tipps?
Reicht es nicht wenn dir gesagt wird warum! die Lautstärke nicht geändert wird?
Du prüfst auf (!$we) wobei ich das immer so schreibe (!($we)) das heisst - wenn es NICHT Wochenende ist - was passiert dann wenn es Wochenende ist?
Genau - wie Rudi schon geschrieben hat - nichts weil -- ja genau, weil es ja Wochenende ist.

Wenn du andere Tipps haben möchtest wäre es auch nett wenn du uns an deinen Codes teilhaben lässt und auch mal schaust was im Logfile steht - und uns daran bitte auch teilhaben lässt.

Grüße
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Trebor5 am 29 Dezember 2013, 10:40:52
Okay gedankenfehler.

Versuche es jetzt so.


############### Am Wochenende Schaltung ########################

define Lautstaerke_NachtWE at *22:00 { if($we){ system("amixer -c 0 set PCM 75%&") }}

define Lautstaerke_TagWE at *11:00 { if($we){ system("amixer -c 0 set PCM 100%&") }}

############### In der Woche Schaltung ########################

define Lautstaerke_Nacht at *20:00 { if(!$we){ system("amixer -c 0 set PCM 75%&") }}

define Lautstaerke_Tag at *09:00 { if(!$we){ system("amixer -c 0 set PCM 100%&") }}


Versuche halt in der Woche andere Uhrzeiten für die Lautstärke zu setzen als am Wochenende.

@Puschel74 Warum bist du denn so angepisst ist doch Wochenende ? Keife ja auch nicht rum weil Rudi am Wochenende einen Kopierfehler macht ;-))
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: Puschel74 am 29 Dezember 2013, 10:52:31
Hallo,

ZitatWarum bist du denn so angepisst ist doch Wochenende ?
Ich bin nicht angepisst - keine Angst.

ZitatKeife ja auch nicht rum weil
(den Rest spare ich mir mal zu zitieren).
Auch keife ich nicht rum.

Wäre aber auch nett wenn du zukünftig Suchende mit deiner Erkenntniss erfreuen könntest und Bescheid gibst ob es jetzt klappt - zumindest der Teil mit ($we) - wir haben noch Wochenende 8)

WeekDayTimer könnte dir da auch helfen.

Grüße
Titel: Antw:amixer Lautstärke nach Uhrzeit und WE einstellen
Beitrag von: ChristianKnorr am 01 September 2014, 17:12:22
Hallo zusammen,
ich hatte gerade ein ähnliches Problem, und wollte mal die Lösung posten, für die, die dank Suche hier gelandet sind.

Meine Funktion sieht so aus (Datei: 99_Sprache_Utils.pm):sub stelleSoundkarteein() {
  system("amixer -c1 set PCM on 84% && exit 0");
  system("amixer -c1 set Master on 84% && exit 0");
}


Jetzt könnte ein{stelleSoundkarteein()}prinzipiell reichen, muss aber nicht ;D wie in meinem Fall.
Wenn fhem nämlich nicht unter root-Rechten läuft, fehlem ihm die Rechte die Soundkarte zu steuern. Auf der Linux-Konsole reicht dann einsudo usermod -aG audio fhemund ein Neustart von fhem, und schon schieben sich die Regler.

Viele Grüße
Christian...