ok, ich sehe schon das wird wohl komplizierter. Gibt es ein einfaches Script, welches ich ausprobieren kann, ohne das irgendwelche Libraries nachgeladen werden müssen? In diesem Thread gibt es einige Snippets aber wenn man daraus eine .rb Datei macht, wird das System Fehler.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Siri-Proxy - wer hat know how und will mitbasteln?
Einklappen
X
-
Hi
@Wiba: was willst du denn mit cora machen?
Hier im thread geht es um die KNX-Anbindung und sinnvolle scripts - cora braucht man dazu IMHO nicht.
Die hier genannten Textbausteine sind Anpassungen im Siri-Proxy-Example-Script.
Sorry - aber ich habe keine Lust Siri-Proxy-Installationshilfe zu geben - und ein Mehrwert für die KNX-Community ist nicht drinn... (dazu sollte es andere Foren geben).
@All: hier mal ein Textblock für meine Wecker:
Code:#Thorsten listen_for /(Wecker|Weckzeit|Weckruf) (für|von) Thorsten (auf) ([0-9,]*[0-9]):([0-9,]*[0-9]) Uhr/i do |weckzeit,von,auf,number1,number2| say "Okay, HausWecker für Thorsten wird auf #{number1}:#{number2} eingestellt" wasGood = system( "/home/rubyuser/senduhr.sh 8/2/1 #{number1} 8/2/2 #{number2}" ) request_completed #always complete your request! Otherwise the phone will "spin" at the user! end listen_for /(Wecker|Weckzeit|Weckruf) (für|von) Thorsten (aus|ausschalten|deaktivieren)/i do say "Okay, der Wecker von Thorsten ist nun ausgeschaltet." wasGood = system( "groupwrite ip:wiregate 8/2/3 1" ) wasGood = system( "groupwrite ip:wiregate 8/2/3 0" ) request_completed #always complete your request! Otherwise the phone will "spin" at the user! end listen_for /(Wecker|Weckzeit|Weckruf) (für|von) (Klara|Clara|Verena|Thorsten) (ein|einschalten|aktivieren)/i do say "Zum Einschalten bitte die Weckzeit angeben." request_completed #always complete your request! Otherwise the phone will "spin" at the user! end
Was mir zur vollständigkeit beim Wecker fehlt sind Fragen wie "wie ist die Weckzeit von ...." - da muss ich mir mal gedanken machen, kommt aber noch.
(hat schon jemand groupread in diesem zusammenhang verwendet??? tips erwünscht)
Gruß
Thorsten
Kommentar
-
Hi,
ich war mal wieder auf Copy&Paste-Tour.
Hier ist ein Baustein zum Hoch/Runterdimmen - geklaput hier:
https://github.com/IMcD23/SiriProxy/
Erstmal hört das script auf "computer heller" bzw. "computer dunkler"
Code:listen_for /computer (.*)/i do |userAction| say "Kommando #{userAction} " if userAction == "Heller " or userAction == "Hella " then currentvol = `/home/rubyuser/readhex.sh 1/1/81` newvol = (currentvol.to_i + 20) if newvol > 255 then newvol = 255 end wasGood = system( "/home/rubyuser/sendhex.sh 1/1/43 #{newvol}" ) #say "Hellichkeit hoch auf #{newvol} prozent." begin keepgoing = ask "Hell genug?" keepgoing.strip! if keepgoing == "Nein" or keepgoing == "Nope" or keepgoing == "weiter" or keepgoing == "heller" or keepgoing == "That's not good" then keepgoing = "1" currentvol = `/home/rubyuser/readhex.sh 1/1/81` newvol = (currentvol.to_i + 20) if newvol < 0 then newvol = 0 end wasGood = system( "/home/rubyuser/sendhex.sh 1/1/43 #{newvol}" ) #say "Hellichkeit hoch auf #{newvol} prozent." else keepgoing = "0" say "Ok. Bleibe bei #{newvol} Prozent." end end while keepgoing == "1" elsif userAction == "dunkler " or userAction == "weiter " then currentvol = `/home/rubyuser/readhex.sh 1/1/81` newvol = (currentvol.to_i - 20) if newvol < 0 then newvol = 0 end wasGood = system( "/home/rubyuser/sendhex.sh 1/1/43 #{newvol}" ) #say "Hellichkeit runter auf #{newvol} prozent." begin keepgoing = ask "Ist das ok?" keepgoing.strip! if keepgoing == "Nein" or keepgoing == "Nope" or keepgoing == "weiter" or keepgoing == "That isn't good" or keepgoing == "That's not good" then keepgoing = "1" currentvol = `/home/rubyuser/readhex.sh 1/1/81` newvol = (currentvol.to_i - 20) if newvol < 0 then newvol = 0 end wasGood = system( "/home/rubyuser/sendhex.sh 1/1/43 #{newvol}" ) #say "Hellichkeit runnter auf #{newvol} prozent." else keepgoing = "0" say "Ok. Bleibe bei #{newvol} Prozent." end end while keepgoing == "1" else say "Das kann ich gerade nicht tun." end request_completed end
readhex.sh
Code:#!/bin/bash #echo "Wert1: $1 " vara=`groupcacheread ip:wiregate $1 | awk '{ if (FNR == 1) print "0x"$4 }'` varb=`printf %d $vara ` echo $varb exit 0
Code:#!/bin/bash echo "Wert1: $1 $2" groupwrite ip:wiregate $1 `/usr/bin/perl -e 'printf("%X\n",$ARGV[0]);' $2` exit 0
Eigentlich müsste ich noch 0-255 auf 0-100% "normalisieren" - hatte aber gerade keine Lust & Idee.
Gruß
Thorsten
Nachtrag: damit´s "sauberer" wird könnte man noch die "vol" durch "light" oder "percent" ersetzen ;-)
Kommentar
-
Guten Morgen zusammen,
extrem spannendes Topic hier mal wieder
Hab selber leider nur ein iPhone4, aber ein Siri-Port gibt es ja schon. Nur die Kommunikation zu Apple scheint nicht zu gehen. Ist das bei dem Siri-Proxy notwendig?
So wie ich Siri verstanden habe, schickt die App ja nur komprimierte Sprache bzw. Worte an Apple, der diese analysiert und gegen eine DB abgleicht.
Macht das der Siri-Proxy auch oder erfüllt dieser die Aufgaben, sprich antwortet direkt auf die Spracheingabe des Benutzers? Denn in den Scripten lese ich ja die Kommandos in Klartext "Licht an" mit den entsprechenden Aktionen dahinter...
Viele Grüße und weiter so.. wirklich cool!
Ciao
--Ted
Kommentar
-
@Thorsten
Meine Idee war ganz einfach: ich nehme aus dem Video-Tutorial das RB-Script, wandle es etwas um, um meine MusicPals zu steuern.
Also bin ich hingegangen und habe dieses Demo-Script verändert (also erst mal statt "Up and Running" einfach dort nur "up" reingeschrieben und gespeichert. Alles neu gestartet und nichts funktioniert. Anhand Deiner Anleitung habe ich nun bemerkt, dass man das script irgendwo noch (kompilieren?) muss. Danach flogen mir die Fehler (z. B. mit require Cora) um die Ohren. ich weiß gar nicht was Cora ist, also minimal-Script (die Snippets) genommen aus dem Forum hier. Aber das klappt auch nicht, auch Fehlermeldung. Ich glaube ich gebe das Projekt auf, das dauert mir alles zu lange.
Werner
Kommentar
-
Zitat von phreaks Beitrag anzeigen... Nur die Kommunikation zu Apple scheint nicht zu gehen. Ist das bei dem Siri-Proxy notwendig?
Da geht es Dir genau so wie mir, hab' leider auch noch kein 4s.
Der Proxy ist ein "Man in the Middle", der eigene Befehle und eigene Reaktionen einschleust. Der Server von Apple ist natürlich notwendig dazu. Wenn Apple das für "diese Spezialnutzung" irgendwie dicht machen sollte dann funzt hier erstmal nichts mehr.Grüsse Bodo
Fragen gehören ins Forum, und nicht in mein Postfach;
EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;
Kommentar
-
Zitat von Bodo Beitrag anzeigenHoi Ted
Da geht es Dir genau so wie mir, hab' leider auch noch kein 4s.
Der Proxy ist ein "Man in the Middle", der eigene Befehle und eigene Reaktionen einschleust. Der Server von Apple ist natürlich notwendig dazu. Wenn Apple das für "diese Spezialnutzung" irgendwie dicht machen sollte dann funzt hier erstmal nichts mehr.
d.h. der Proxy schiebt die Wörter als Audio (welches Format auch immer) zu Apple und Apple antwortet, was erkannt wurde. Der Proxy empfängt das und startet nun die Befehlsabarbeitung, richtig?
Kommentar
-
so sicher wäre ich mir da nicht, dass es nur mit Apple Servern geht. Hab neulich ne Nachricht gelesen (glaub bei ifun), dass ein Diktat App fürs iPhone 4 direkt auf die Server von Nuance zugreifen. Das müsste für unsere Zwecke reichen. Man müsste nur den Proxy dementsprechend anpassen.Mit freundlichen Grüßen
Niko Will
Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
- Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -
Kommentar
-
Zitat von phreaks Beitrag anzeigenHi Bodo,
d.h. der Proxy schiebt die Wörter als Audio (welches Format auch immer) zu Apple ......
Bei dem Aufsetzen meines i4S musste ich angeben welche Sprache Siri unterstützen soll. Daraufhin hat iTunes ein Packet auf de i4 installiert. Dies müsste die Spracherkennung gewesen sein (audio2text).
Aber alles reine Vermutung und wilde Interpretation von Beobachtungen.
Gruss
Marcelseit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
HS3: 99% / VISU: PV 99%, iPad 99%
60 Akt. Linie1 / 14 Akt. Linie2
Kommentar
-
Hi
Definitiv wird speex (Audio Stream) zu Apple übertragen (schon während des Sprechens) und der erkannte Text zurück übermittelt.*
Dieser wird durch den Proxy ausgewertet und (wenn zutreffend) manipuliert.*
Auf dem iPhone findet maximal die Adressbuch Erkennung statt - wobei ich selbst das bezweifle...
@wiba: danke - richtige Entscheidung.
Gruß
Thorsten
Kommentar
-
Autostart
Hi,
zunächst @Thorsten: vielen lieben Dank für die VM.
Ich habe jetzt mal den dnsmasq und den siriproxy auf einem wiregate installiert. Läuft eigentlich ganz gut. Nur das abändern des example plugin ist etwas mühsam (Wie geht ihr da vor?)
Ich starte den proxy momentan über:
~$ cd SiriProxy
~/SiriProxy$ siriproxy server
Dann muss ich mein root Passwort eingeben und die Sache rennt.
Aber wie kann ich die Sache beim Booten automatisieren, sodass der siriproxy nach dem booten läuft.
Vielen Dank und Grüße
Johannes
Kommentar
-
Mike hat grad in der Facebook Gruppe von mmh/nomos auch ein Siri Proxy Plugin gepostet: https://github.com/nomos/SiriProxy-NomosMit freundlichen Grüßen
Niko Will
Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
- Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -
Kommentar
-
Zitat von ThorstenGehrig Beitrag anzeigen@Bodo: ich würde MINDESTENS mal warten ob die 5.1 (ist ja seit heute als Beta draußen) das noch zulässt.
Alternativ - falls du ein 4er hast - kannst du mal schauen was Sirius (der Cydia-Siri-Hack) für dein 4er so möglich macht...
Hab' mal auf meinem 3Gs mit Spire (a simple Siri installer) angefangen. Der geht nur mit proxy. Mal schaun'Grüsse Bodo
Fragen gehören ins Forum, und nicht in mein Postfach;
EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;
Kommentar
Kommentar