===== Kombisignalgeber / MP3-Player mit LED Signalleuchte ===== Der Kombisignalgeber - MP3-Player ist dem Homematik Funkgong HM-OU-CFM-TW nachempfunden.\\ {{:public:mp3-signalgeber.jpg?300|}} \\ \\ Anders als beim Homematic Funkgong muss man das Gerät nicht mittels CUL 868MHz oder LAN-Gateway anlernen, sondern integriert es einfach im lokalen Netzwerk per WLAN.\\ Die WLAN-Verbindung wird genau wie bei unserer Mini-Wetterstation hergestellt. Demzufolge hier ein kurzer Verweis auf dessen Doku jedoch bitte als SSID "Kombisignalgeber" anwählen: [[http://wiki.gorjup.de/doku.php?id=public:fhem_wetterstation#wifi-verbindung|WLAN Konfigurieren]]\\ LOL **Danach bitte wieder hierher zurück kehren.**\\ \\ In den eingebauten MP3-Player wird eine microSD/microSDHC-Speicherkarte eingesteckt, welche bis zu 32GB fassen kann. Beim Kauf ist bereits eine 256MB Karte enthalten, welche 6000-7000 Smart-Home Tracks fassen kann.\\ Da die MP3-Tacks nicht viel Speicher benötigen, reicht diese 256MB Speicherkarte vollkommen aus.\\ Die Karte ist mit **FAT** formatiert und es ist ein Ordner namens **mp3** angelegt. In diesen werden sämtliche Tracks beginnend mit dem Dateinamen **0001_trackname.mp3** bis **9999_trackname.mp3** abgelegt.\\ Auf der mitgelieferten Karte ist sind bereits ein paar Demo-Tracks enthalten. Über einen Online Text2Speech Generator kann man sich sehr einfach alle benötigten Tracks erstellen.\\ Text2Speech MP3-Generator: [[http://www.fromtexttospeech.com]]\\ \\ :!: Das System erkennt manchmal die Tracks anhand der gespeicherten Reihenfolge. Bei Problemen bitte die Dateien nacheinander kopieren und entsprechend durchnummerieren.\\ Also erste Datei auf die Karte kopieren und mit 0001.mp3 benennen. Danach die zweite Datei kopieren und mit 0002.mp3 benennen.\\ \\ === Schaltung === Symbolische Schaltung. Die Verbindungen sind mit DUPONT-Kabel gesteckt.\\ \\ {{:public:schaltung_kombisignalgeber.jpg?800|}} \\ === Konfiguration (bei Auslieferung bereits vorhanden) === {{:public:mp3-signalgeber-config.jpg?600|}} \\ === Kommandos per URL === Die Wiedergabe bzw. die Signalleuchte wird per URL aktiviert.\\ Hierbei ist **** durch die IP-Adresse im eigenen Netzwerk zu ersetzen.\\ \\ **Track abspielen (hier Track Nr. 2)** http:///control?cmd=play,2 **Signalleuchte blinken:start** http:///control?cmd=event,start_warning **Signalleuchte blinken:stop** http:///control?cmd=event,stop_warning **Signalleuchte an** http:///control?cmd=event,led=1 **Signalleuchte aus** http:///control?cmd=event,led=0 === Regeln === **Rules Set 1 (Startsound beim Einschalten)**\\ Hier wird die Track-Nummer hinter "play" angegeben, die beim Einschalten gespielt werden soll und auch gleich die Laustärke mittels "vol" definiert (Einstellbereich 1-30).\\ On System#Boot do vol,28 play,1 endon \\ **Rules Set 2**\\ Die v.g. Kommandos werden durch folgende Regeln realisiert (Bereits bei Auslieferung gespeichert).\\ //start the warning signal when we receive a start_warning event: On start_warning do timerSet,1,1 endon //stop the warning signal when we receive a stop_warning event: On stop_warning do timerSet,1,0 endon //create an actual warning signal, every time timer 1 expires: On Rules#Timer=1 do //repeat after 2 seconds timerSet,1,1 //pulse some led on pin 4 shortly Pulse,16,1,500 endon On led do gpio,16,%eventvalue% endon ==== FHEM Integration ==== Im Router (z.B. Fritzbox) sollte man in der Netzwerk-Übersicht dem Kombisignalgeber immer die selbe IP-Adresse zuweisen. Somit ändert sich diese nicht und man kann in FHEM mit dieser IP-Adresse arbeiten.\\ (Auswahl: [X] Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen) \\ \\ Somit in folgendem Script für die Adresse im Heimnetz eintragen.\\ sub PlaySound($) { my ($track)= @_; system("wget -q -O- 'http:///control?cmd=play,".$track."'"); } sub BlinkLED($) { my ($value)= @_; if ( $value eq "start_warning") { system("wget -q -O- 'http:///control?cmd=event,start_warning'"); } if ( $value eq "stop_warning") { system("wget -q -O- 'http:///control?cmd=event,stop_warning'"); } if ( $value eq "on") { system("wget -q -O- 'http:///control?cmd=event,led=1'"); } if ( $value eq "off") { system("wget -q -O- 'http:///control?cmd=event,led=0'"); } } **DOIF**\\ Hier ein Beispiel wie per DOIF (hier bei schwacher Batterie) ein Track z.B. **0025_Batteriewarnung.mp3** abgespielt wird und die LED anfängt zu blinken.\\ define not_BatteryCheck notify .*:[Bb]attery:.* { if ($EVENT !~ m/ok/ ) { my $alias = $attr{$NAME}{'alias'}; Log 3, "$NAME : Batteriewarnung $EVENT [$alias]"; PlaySound("25"); BlinkLED("start_warning"); } } ==== ioBroker Integration ==== An folgendem Beispiel erkennt man, wie im ioBroker mit Blocky ein Script erstellt werden kann, welches z.B. Track Nr. 5 abspielt. Bei euch muss natürlich die IP-Adresse in der Funktion mit eurer ersetzt werden. {{:public:kombisignalgeber_iobroker_blocky.jpg?600|}} \\ **JavaScript Code:**\\ var timeout, Track; /** * Spiele einen MP3 Track aus dem Kombisignalgeber ab. */ function SpieleMP3(Track) { try { require("request")(('http://10.4.70.174/control?cmd=play,' + String(Track))).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } console.log('MP3 wurde abgespielt'); } timeout = setTimeout(function () { SpieleMP3('5'); }, 0);