HmIP MP3-Gong mit zufälligen Sounds abspielen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Antworten
drose28357
Beiträge: 183
Registriert: 14.10.2011, 09:05
System: CCU
Wohnort: Bremen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 7 Mal

HmIP MP3-Gong mit zufälligen Sounds abspielen

Beitrag von drose28357 » 25.08.2023, 11:34

Ich habe in meinem MP3-Gong eine Reihe von Soundfiles auf der SD-Karte abgelegt, von denen immer einer abgespielt werden soll, wenn die Tür auf geht.
Dazu braucht man ein Script, das aus einer Reihe von vorgegeben Soundfiles (Mövengeschrei, Waldbach, Nachtigall etc.) eines auswählt und dieses dann auf dem MP3-Gong abspielt.
Auf der Basis des Beitrages von tloeffel (viewtopic.php?f=31&t=47314#p489504) sieht meine Lösung so aus.

P.S. das Script kann in der Raspberrymatic auch unter "Programme und Verknüpfungen" / "Scripte testen" direkt ausgeführt werden.

Code: Alles auswählen

! Zufällig Soundfiles für den MP3-Gong auswählen und abspielen
var SoundFiles = "30;32;33;34;35;36;37";         ! Liste der Nummern der auswählbaren Soundfiles (hier 7 Soundfile-Nummern)
var Index = system.Random(0, 6);                 ! Bereich  für die Zufallswerte des Index festlegen (hier 7 mögliche Werte)
var SF = SoundFiles.StrValueByIndex(";",Index);  ! Soundfile aus dem String auslesen
!WriteLine ("Index der File-Nummern " # Index);  ! Für Tests in der Scriptconsole das ! entfernen
!WriteLine ("Soundfile gewählt      " # SF);     ! Für Tests in der Scriptconsole das ! entfernen

! im folgenden die MP3-Gong Seriennummer hinter "HmIP-RF." eintragen
(datapoints.Get("HmIP-RF.00151-------------:2.DURATION_UNIT")).State(0);
(datapoints.Get("HmIP-RF.00151-------------:2.RAMP_TIME_UNIT")).State(0);
(datapoints.Get("HmIP-RF.00151-------------:2.RAMP_TIME_VALUE")).State(0);
(datapoints.Get("HmIP-RF.00151-------------:2.LEVEL")).State(0.4);            ! Lautstärke in Werten von 0 bis 1
(datapoints.Get("HmIP-RF.00151-------------:2.OUTPUT_SELECT_SIZE")).State(1); ! Länge der Liste der SoundFiles, hier nur ein Sound
(datapoints.Get("HmIP-RF.00151-------------:2.REPETITIONS")).State(1);        ! Anzahl der Wiederholungen
(datapoints.Get("HmIP-RF.00151-------------:2.SOUNDFILE_LIST_1")).State(SF);  ! (berechnete) Nummer des Soundfiles auf der SD-Karte
(datapoints.Get("HmIP-RF.00151-------------:2.DURATION_VALUE")).State(0);     ! 0 = ohne Zeitbeschränkung, z.B. 10 = 10 sec Abspieldauer
Dieses Script anpassen auf die eigenen Soundfile-Nummern und Soundfile Menge sowie der Seriennummer des MP3-Gongs, dann in ein passendes Programm in den dann-Zweig legen und einen Türsensor, Bewegungsmelder, Lichschalter oder was immer als Auslöser definieren.

Viel Spaß damit....
RaspberryMatic auf Raspberry Pi 4 2Gbyte

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“