MP3-Funkgong-Framework

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

Moderator: Co-Administratoren

Antworten
mop2208
Beiträge: 5
Registriert: 08.01.2015, 10:31
Danksagung erhalten: 1 Mal

MP3-Funkgong-Framework

Beitrag von mop2208 » 21.01.2021, 11:10

Hallo Zusammen,

da ich schon eifriger Nutzer vom Pushover- und Email-Framework bin, habe ich mir erlaubt ein entsprechendes Script für den Mp3-Funkgong zu erstellen. Die hier im Forum existierenden Scripte fand ich etwas unübersichtlich. Außerdem fehlten mir Lautstärke und Wiederholung in den Anwendungen.

Hintergrund ist die Steuerung über Systemvariablen, die man in einem Programm entsprechend einbindet. Hierzu sind folgende Variablen erforderlich.

FG.Status
Logikwert - Wahr ist "An", Falsch ist "Aus"
Soll der Funkgong generell überhaupt etwas ausgeben. Über diese Variable kann ich den Funkgong z.B. nachts ausschalten.

FG.Send
Werteliste = "Nicht Senden" ; "Senden"
Die Reihenfolge muss hier unbedingt eingehalten werden. Über diese Variable wird, bei Veränderung, der Sendevorgang angetrickert.

FG.String
Zeichenkette
Diese Variable beinhaltet später die Nummer(n) der MP3-Files (z.B. 53, 17,...). Die Nummern der MP3 Dateien werden genau in dieser Schreibweise durch ein Programm in die Systemvariable eingetragen.

FG.Lautstaerke
Zeichenkette
Diese Variable steuert, wie der Name sagt, die Ausgabelautstärke 1.0 = 100% - 0.1 = 10%. Wird kein Wert angegeben, so verwendet das Script die vorgegebenen Standardeinstellung. Im Codebeispiel unten sind das 0.7 also 70%.

FG.Wiederholungen
Zeichenkette
Auch hier ist der Standard immer 1. Der Wert kann aber über die Eingabe eines Wertes, per Programm, überschrieben werden und wird nach Ausführung wieder auf 1 gesetzt.

Wichtig ist dass die Systemvariablen genau diesen Namen haben. Wenn Ihr die Namen anpasst, müsst Ihr diese auch im Coding entsprechend nachpflegen.


Das ganze sieht dann so aus:
screenshootfunkgong.png

Nun noch ein Programm mit folgendem Script erstellen.

Code: Alles auswählen

!  Funkgong - Framework
!  Michael Nagel, Idstein email: homematic@mike2208.de
!  V.1.2

! Folgende Systemvariablen muessen eingerichtet werden:
! FG.String = Zeichenkette - muss vom Programm gefuellt werden
! FG.Send = Werteliste - Vorgabewerte "Nicht Senden; Senden"
! FG.Status = Logikwert - Vorgabewerte "wahr = an; falsch = aus"
! FG.Lautstaerke = Zeichenkette - kann vom Programm gefuellt werden. Falls nicht, wird der Wert mit dem unten eingegebenen Standardwert ueberschrieben.
! FG.Wiederholungen = Zeichenkette - kann vom Programm gefuellt werden. Ansonsten wird die einmalige Ausfuehrung angenommen.

! ID des Funkgongs
string xmp3gong="NameDesFunkgongs:2"; !Bitte hier den Gerätenamen des Funkgongs - Ton eintragen.

! Standardlautstaerke einrichten. 
string xStandardVolume="0.7"; ! Setzen der Standardlautstaerke 0.1 - 1


! ############# Ab hier keine Änderungen mehr! ##############

! Read Variables
object xstring=dom.GetObject ("FG.String");
object xsend=dom.GetObject ("FG.Send");
object xstatus=dom.GetObject ("FG.Status");
object xvolume=dom.GetObject ("FG.Lautstaerke");
object xrepeat=dom.GetObject ("FG.Wiederholungen");

string fgstring=xstring.Value();
string fgsend=xsend.Value();
string fgstatus=xstatus.Value();
string fgvolume=xvolume.Value();
string fgrepeat=xrepeat.Value();

! Check Volume
if (fgvolume == null) {
	var fgvolume = xStandardVolume;
		}

!Check Repetition
if (fgrepeat == null) {
	var fgrepeat = "1";
		}

! Output - Check if minimum variables are filled
if ((fgstring != "") && (fgstatus=="an") && (fgsend > 0))  { 
   

	! Send to Gong
	string xsendstring = fgvolume # "," + fgrepeat # ",1080000, " # fgstring;
!        WriteLine("xsendstring: " # xsendstring);

	dom.GetObject(xmp3gong).DPByHssDP("SUBMIT").State(xsendstring);

        dom.GetObject ("FG.String").State ("");
        dom.GetObject ("FG.Send").State (0);
        dom.GetObject ("FG.Lautstaerke").State (xStandardVolume);
        dom.GetObject ("FG.Wiederholungen").State ("1");

}

! End of Script
Auslösung des Programms wenn sich die Variable FG.Send ändert.
screenshootfunkgongprog.png

Und so sieht die Verwendung im Programm bei mir aus. Hier ein Beispiel mit der Aufforderung das Badezimmerfenster zu schließen. In dieser Variante sendet uns die CCU per Pushover eine Nachricht auf das Mobiltelefon und gleichzeitig wird eine MP3-Kombination an den Funkgong gesendet. Hier mit 10 Minuten Verzögerung.
Dies ist auch der Grund, warum ich den Funkgong überhaupt per Skript-Framework steuere. Rufe ich den Funkgong direkt aus dem Programm auf, kann ich die Aktion nicht mehr stoppen wenn ich das Fenster innerhalb der 10 Minuten schließe. Fragt mich nicht warum, aber bei der Steuerung über die Systemvariablen, stoppt er dann die Ausführung.
sreenshootfunkgongprog2.png

Das Script läuft hier seit einer Woche perfekt und steuert zum Beispiel die Überwachung der Fenster während der Heizperiode. Ist ein Fenster länger als 10 Minuten offen, wird ein kombinierter MP3-String an den Funkgong gesendet.

Der nächste Schritt wird dann noch das Ansprechen der LED-Leuchte sein. Aber dazu später dann mehr.

So, und jetzt viel Spaß beim Testen. Bei Fragen könnt Ihr gerne auf mich zukommen. :D
Zuletzt geändert von mop2208 am 31.01.2022, 12:09, insgesamt 4-mal geändert.

bigscreen
Beiträge: 75
Registriert: 20.10.2009, 21:14

Re: MP3-Funkgong-Framework

Beitrag von bigscreen » 22.01.2021, 16:05

Hallo MOP2208,
kannst du Gedanken lesen, genau das habe ich gesucht :-)
Allerdings glaube ich, das du einen Screenshot zweimal eingefügt hast, und der Screenshiot für die Änderung der Variablen Send fehlt.
Vlt. kannst du das noch ändern :-)

Vielen Dank und viele Grüße
bigscreen

mop2208
Beiträge: 5
Registriert: 08.01.2015, 10:31
Danksagung erhalten: 1 Mal

Re: MP3-Funkgong-Framework

Beitrag von mop2208 » 25.01.2021, 10:37

Danke für den Hinweis. Ich habe den Beitrag noch mal erneut in diesem Forum eingestellt, dabei sind die Bilder durcheinander geraten.

Ich hoffe das Script funktioniert und es gefällt?

DukeNukem4Ever
Beiträge: 5
Registriert: 22.09.2021, 11:46
System: CCU
Wohnort: Garbsen
Hat sich bedankt: 3 Mal

Re: MP3-Funkgong-Framework

Beitrag von DukeNukem4Ever » 24.09.2021, 08:14

ID des Funkgongs
---------------------

string xmp3gong="NameDesFunkgongs:2"; Bitte hier den Gerätenamen des Funkgongs - Ton eintragen.

Es fehlt ein ! vor dem Bitte....

mop2208
Beiträge: 5
Registriert: 08.01.2015, 10:31
Danksagung erhalten: 1 Mal

Re: MP3-Funkgong-Framework

Beitrag von mop2208 » 31.01.2022, 12:10

Ist korrigiert. Danke für den Hinweis.

Antworten

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