Hardware für Statusanzeige und Tonausgabe

Begonnen von Samsi, 01 Januar 2013, 22:52:38

Vorheriges Thema - Nächstes Thema

Samsi

Hallo,

ich hab schon etwas recherchiert und etlich Beiträge gefunden, das viele z.B. für Statusanzigen den mp3 Funkgong verwenden, oder umgebaute Bilderrahmen um FHEM - anzeigen zu basteln.
Das alles war mir aber irgendwie nicht ausgereift genug, also hab ich mir Gedanken gemacht, wie es vielleicht universeller geht.

Seit kurzem läuft das XBMC auf Android Basis. Per HTTP schnittstelle kann man dort bequem beliebige Inhalte anzeigen (z.B. Bilder, einfache Animationsvideos  oder mp3 abspielen oder notify popups  anzeigen). Und zur Steurung könnte man dann natürlich auch zum Webbrowser mit FHEM wechseln.

Hier ist die API: http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6

Android tablets gibt es ja schon für 100€ und zum anzeigen von Bildern und mp3 sollten auch einfache Tablets ausreichend sein (man muss allerdings das NO-NEON build installieren http://code.google.com/p/xbmc-android/downloads/list, da das reguläre build alte Hardware nicht unterstützt)


Leider geht das bei dem XBMC Frodo nicht mehr mit einem einfachen HTTP request, sondern nur noch mit JSON request.  Hat jemand Erfahrung, wie man das aus FHEM aufrufen kann?





FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Markus

Ich hab seit ein paar Tagen aivc auf meinem android das versteht fast alles und kann sich mit dir sogar unterhalten. eine http Schnittstelle stellt die Verbindung zu fhem her. Ich sage jetzt blos noch "Schalte das Licht in der Küche auf 37 Prozent" Alice (Die Software) antwortet:"Ich habe in der Küche das Licht auf 37 Prozent eingestellt" und fhem stellt sofort den Dimmer auf 37%

Die app ist gratis kann aber nur 10 oder 20 Kommandos weis nicht mehr aber um 2,5 Euro gibt es die Vollversion

w w w .yourapp24.com/aivc.html

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Matzek83

> Ich hab seit ein paar Tagen aivc auf meinem android das versteht fast alles und kann sich mit dir sogar unterhalten. eine http Schnittstelle stellt die Verbindung zu fhem her. Ich sage jetzt blos noch "Schalte das Licht in der Küche auf 37 Prozent" Alice (Die Software) antwortet:"Ich habe in der Küche das Licht auf 37 Prozent eingestellt" und fhem stellt sofort den Dimmer auf 37%

Die app ist gratis kann aber nur 10 oder 20 Kommandos weis nicht mehr aber um 2,5 Euro gibt es die Vollversion



Danke für den tollen Tipp - funktioniert spitzenmäßig und ist eine ziemlich lustige Sache.

MfG
Matthias


Samsi

Ja coole Sache werde ich auch mal ausprobieren, allerdings nicht ganz was ich eigentlich gemeint habe.

Ich will mir mit dem XBMC eine Sprachausgabe machen wenn ein Ereignis eintritt, z.B. wenn ein Alarm ausgelöst wird.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Markus

Ich will mir mit dem XBMC eine Sprachausgabe machen wenn ein Ereignis eintritt, z.B. wenn ein Alarm ausgelöst wird.

Das hört sich auch gut an, leider kann ich dir dabei nicht weiterhelfen.

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

kud

Also ich habe einen Mini-Linux-Rechner und daran hängt ein NX-Würfel von Yamaha.
Die auszugebenden Worte, Sätze und Zahlen habe ich per
http://www.nuance.com/vocalizer5/flash/index.html

umgewandelt.
Bei der Ausgabe bastele ich mir das ganze zusammen und gebe es per "aplay" aus.

Es folgt ein Beispiel aus der 99_myUtils.pm zum ansagen der gemessenen Temperaturen aller S300Th und des Wetters.
Natürlich gebe ich auch "Bestätigungssätze" auf Fhem-Aktion aus.

##### Temperaturen/Status ansagen
sub Temperaturen_ansagen() {
  my @s300ths = devspec2array("TYPE=CUL_WS");
  my @wopen = ();
  my $device_name = "";
  my $feldwert = "";
  foreach(@s300ths) {
    my $s300th_wert = ReadingsVal($_, "temperature",0);
    my $s300th_feuchte = ReadingsVal($_, "humidity",0);
    $device_name = AttrVal($_,"alias",0);
    $feldwert = $device_name . " " . $s300th_wert . " " . $s300th_feuchte;
   # my $feldwert = $_ . " " . $s300th_wert;
    push (@wopen,$feldwert);
 }
  my $num_wopen = @wopen;
  my $resultstring="";
  my $wav1 = "";
  my $wav2 = "";
  my $z = 0;
  my $temp = 0;

system "aplay /Soundfiles/dingdong3.wav";
system "mpg123 /Soundfiles/Folgende_temperaturen.mp3";

foreach(@wopen) {

   my  @array_werte = split(/ /,$_);

        SWITCH: {
        $array_werte[0] eq "Temperatur_Wohnzimmer" && do { $wav1 = "/Soundfiles/Wohnzimmer.mp3"; last SWITCH; };
        $array_werte[0] eq "Temperatur_Keller" && do { $wav1 = "/Soundfiles/Keller.mp3"; last SWITCH; };
        $array_werte[0] eq "Temperatur_Arbeitszimmer" && do { $wav1 = "/Soundfiles/Obergeschoss.mp3"; last SWITCH; };
        $array_werte[0] eq "Temperatur_Aussen" && do { $wav1 = "/Soundfiles/Aussen.mp3"; last SWITCH; };
        $array_werte[0] eq "Temperatur_Kinderzimmer" && do { $wav1 = "/Soundfiles/Kinderzimmer.mp3"; last SWITCH; };
        $array_werte[0] eq "Temperatur_Hobbyraum" && do { $wav1 = "/Soundfiles/Hobbyraum.mp3"; last SWITCH; };
    }
    my @array_tempwert = split(/\./,$array_werte[1]);
    $temp = $array_tempwert[0];
    ## Minusgrade beachten
   {fhem ("log 3". "\" $wav1 : " .$temp." \"")}
    if ($temp < 0) {
             my @array_minuswert = split(/\-/,$temp);
             $wav2 = " /Soundfiles/Minus.mp3" . " /Soundfiles/" . $array_minuswert[1] . "grad.mp3" ;
    } else {
            $wav2 = "/Soundfiles/" . $temp . "grad.mp3";
    }
    system "mpg123 $wav1 $wav2";

}
### Wetter ###

my $wetter_condition = ReadingsVal("MyWeather","fc1_condition","0");
### Leerzeichen zwischen den Worten entfernen wegen der Suche nach entsprechenden Dateinamen
$wetter_condition =~ s/ //g;
my $wetter_temp_max = ReadingsVal("MyWeather","fc1_high_c","0");

### Ausgabe
$wav1 = "/Soundfiles/Wetter_lorsch.mp3";
system "mpg123 $wav1";
$wav1 = "/Soundfiles/Hoechsttemperatur.mp3";
if ($wetter_temp_max < 0) {
             my @array_minuswert = split(/\-/,$wetter_temp_max);
             $wav2 = " /Soundfiles/Minus.mp3" . " /Soundfiles/" . $array_minuswert[1] . "grad.mp3";
    } else {
             $wav2 = "/Soundfiles/" . $wetter_temp_max . "grad.mp3";
}
system "mpg123 $wav1 $wav2";
my $dateiname = "/Soundfiles/" . $wetter_condition . ".mp3";
system "mpg123 $dateiname";

## Ende Funktion
}


 

kud

Ach, fast vergessen.
Nehmt bei der Sprachsyntese die "Anna".

Gruss und viel Spaß
Kai-Uwe

Tobias

Hi KUD,

kannst du daraus mal bitte einen WIKI Beitrag machen?
Das mit dem Vocalizer kannte ich auch noch nicht.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter