Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
public:mp3_kombisignalgeber [2020/03/31 21:31]
admin [FHEM Integration]
public:mp3_kombisignalgeber [2020/10/24 06:16] (aktuell)
admin
Zeile 6: Zeile 6:
 \\ \\
 \\ \\
-Anders als beim Homematic Funkgong muss man das Gerät nicht mittels CUL 868MHz anlernen, sondern integriert es einfach im lokalen Netzwerk per WLAN.\\ +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 Verweis auf dessen Doku: [[http://​wiki.gorjup.de/​doku.php?​id=public:​fhem_wetterstation#​wifi-verbindung|WLAN Konfigurieren]]\\+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 MP3-Player wird eine microSD/​microSDHC-Speicherkarte eingesteckt,​ welche bis zu 32GB fassen kann.\\ +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 MP3-Tacks ​aber nicht viel Speicher benötigen, reicht ​eine 256MB oder 1-2GB Speicherkarte vollkommen aus.\\ +Da die MP3-Tacks nicht viel Speicher benötigen, reicht ​diese 256MB Speicherkarte vollkommen aus.\\ 
-Die Karte wird mit **FAT** formatiert und es wird ein Ordner namens **mp3** angelegt. In diesen werden sämtliche Tracks beginnend mit dem Dateinamen **0001_trackname.mp3** bis **9999_trackname.mp3** abgelegt.\\+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]]\\ 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.\\ :!: 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) === === Konfiguration (bei Auslieferung bereits vorhanden) ===
Zeile 23: Zeile 31:
 === Kommandos per URL === === Kommandos per URL ===
 Die Wiedergabe bzw. die Signalleuchte wird per URL aktiviert.\\ Die Wiedergabe bzw. die Signalleuchte wird per URL aktiviert.\\
 +Hierbei ist **<​ip-adresse>​** durch die IP-Adresse im eigenen Netzwerk zu ersetzen.\\
 \\ \\
 **Track abspielen (hier Track Nr. 2)** **Track abspielen (hier Track Nr. 2)**
Zeile 51: Zeile 60:
 === Regeln === === Regeln ===
 **Rules Set 1 (Startsound beim Einschalten)**\\ **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).\\
 <​code>​ <​code>​
 On System#Boot do  On System#Boot do 
Zeile 92: Zeile 102:
  
 <​code>​ <​code>​
-sub MySpeaker($) {+sub PlaySound($) {
   my ($track)= @_;   my ($track)= @_;
   system("​wget -q -O- '​http://<​ip-adresse>/​control?​cmd=play,"​.$track."'"​);​   system("​wget -q -O- '​http://<​ip-adresse>/​control?​cmd=play,"​.$track."'"​);​
 }  ​ }  ​
  
-sub MyLED($) {+sub BlinkLED($) {
   my ($value)= @_;   my ($value)= @_;
   if ( $value eq "​start_warning"​) { system("​wget -q -O- '​http://<​ip-adresse>/​control?​cmd=event,​start_warning'"​);​ }   if ( $value eq "​start_warning"​) { system("​wget -q -O- '​http://<​ip-adresse>/​control?​cmd=event,​start_warning'"​);​ }
Zeile 107: Zeile 117:
  
 **DOIF**\\ **DOIF**\\
-Hier ein Beispiel wie per DOIF (hier bei schwacher Batterie) ein Track z.B. **0025_Batteriewarnung.mp3** abgespielt wird.\\+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.\\
 <​code>​ <​code>​
 define not_BatteryCheck notify .*:​[Bb]attery:​.* { if ($EVENT !~ m/ok/ ) { define not_BatteryCheck notify .*:​[Bb]attery:​.* { if ($EVENT !~ m/ok/ ) {
    my $alias = $attr{$NAME}{'​alias'​};​    my $alias = $attr{$NAME}{'​alias'​};​
    Log 3, "$NAME : Batteriewarnung $EVENT [$alias]";​    Log 3, "$NAME : Batteriewarnung $EVENT [$alias]";​
-   MySpeaker("​25"​);​+   PlaySound("25"); 
 +   ​BlinkLED("​start_warning");
   }    } 
  }  }
 </​code>​ </​code>​
  
 +==== 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:**\\
 +<​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);
 +</​code>​

Navigation
Eigene Werkzeuge