Interessant wäre auch noch die Möglichkeit, Befehle zu verketten. Also wenn drei zusammengehörige Muster gefunden wurden den Algorithmus mit dem verbleibenden Text zu wiederholen. Dadurch wären Sätze wie "Schalte das Licht im Badezimmer ein und stelle die Heizung auf 22 Grad". Beim zweiten Teil könnte man dann eine fehlende Angabe durch die aus dem ersten Teil ersetzen (hier z.B. das Zimmer = "Badezimmer").
Ankündigung
Einklappen
Keine Ankündigung bisher.
Siri-Proxy - wer hat know how und will mitbasteln?
Einklappen
X
-
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) -
-
Das ist eine gute Idee!
Ich versuche gerade auch Quellen zu finden wie Apple das grob macht. Werden die als Objekt gelieferten Antworten z.B. auf dem iPhone verarbeitet oder bekommt es irgendwie schon eine Handlungsanweisung vom Server mit? Weil gerade wenn Apple wirklich Siri für Apps zulassen würde, müsste ja jede App selbst parsen und damit wäre pro App mit einer großen Menge von Daten zu rechnen.
Wenn also jemand Quellen zur groben Funktionsweise von Siri hat wäre ich dankbar. Irgendwer im www wird doch bestimmt schon sämtliche Sources auf dem iPhone 4S gecheckt haben ;-)
Kommentar
-
Hi,
@RalMue: hört sich gut an. Die Frage ist aber - ob sich der Aufwand lohnt!
Besonders meine ich den "lern"-Algorythmus. Im Prinzip könnte man sich die Toilette=Bad=Klo einmal fix definieren - da wird irgendwann der Lernprozess abgeschlossen sein.
Ich will aber keinen Bremsen :-)
@All: ich habe immernoch mein Problem die Variablen richtig zu füllen:
Das geht - hier wird der Wert schön in "number" geschrieben:
Code:listen_for /Rollladen im Wohnzimmer auf ([0-9,]*[0-9])/i do |number|
Code:listen_for /(Rollladen|Jalousie) im Wohnzimmer (auf) ([0-9,]*[0-9])/i do |number|
Gruß
Thorsten
Kommentar
-
Code:md = /(Porsche) (\w+)/.match(opa) md[0] #-> "Porsche 944" alles md[1] #-> "Porsche" erste Klammer md[2] #-> "944" zweite Klammer md.pre_match #-> "Opa fährt einen " vorher md.post_match #-> " Turbo" nachher
Code:$& #-> alles: "Porsche 944" $1 #-> erste Klammer: "Porsche" $2 #-> zweite Klammer: "944" $` #-> vorher: "Opa fährt einen " $' #-> nachher: " Turbo
Kommentar
-
Hi Berliner,
danke - aber wie setzte ich das in der listen-zeile um?
Bitte 2 konkrete Hilfestellungen:
Code:1. Beispiel listen_for /(Rollladen|Jalousie) im Wohnzimmer (auf) ([0-9,]*[0-9])/i do |number| say "Rolladen wird im Wohnzimmer auf #{number[2]} % gefahren " #say something to the user! 2. Beispiel: listen_for /Wecker (für|von) Verena (auf) ([0-9,]*[0-9]):([0-9,]*[0-9]) Uhr (einstellen|stellen|einschalten)/i do |number| say "Okay, Wecker für Verena wird auf #{number[2]}:#{number[3]} eingestellt"
Gruß
Thorsten
Kommentar
-
Hallo,
das sollte klappen:
Code:listen_for /(Rollladen|Jalousie) im Wohnzimmer (auf) ([0-9,]*[0-9])/i do |raum,auf,nummer| say "Rolladen wird im Wohnzimmer auf #{nummer} % gefahren " #say something to the user! request_completed #always complete your request! Otherwise the phone will "spin" at the user! end listen_for /Wecker (für|von) Verena (auf) ([0-9,]*[0-9]):([0-9,]*[0-9]) Uhr (einstellen|stellen|einschalten)/i do |von,auf,nummer1,nummer2| say "Okay, Wecker für Verena wird auf #{nummer1}:#{nummer2} eingestellt" request_completed #always complete your request! Otherwise the phone will "spin" at the user! end
Gruß
Markus
Kommentar
-
Hallo ihr Cracks :-)
Hab da mal ne Anfängerfrage: Für was benötigt man das Zertifikat auf dem Iphone?
@muerlemann: Hat das bei dir mit der statischen route in der Firewall geklappt um guzzoni umzubiegen?
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
-
Und wie sehen die nächsten Schritte aus?
Hier ein Vorschlag: das Script liest ein XML/CSV File mit den Gruppenadressen ein, welches mit ETS generiert wurde. Bislang ist jede Applikation ja sehr speziell und individuell. Da im XML File ja auch die Bezeichnungen inkl. GA stehen, wäre das ein großer Schritt in Richtung Flexibilität.
Wenn die Bezeichnungen dann so etwa lauten "Wohnzimmer Decklicht schalten" und die GA 1/0/1, hätte man doch a) den Suchstring und b) die dann zu schaltende Gruppenadresse..
Kommentar
-
Hi,
Zitat von marlan99 Beitrag anzeigenHab da mal ne Anfängerfrage: Für was benötigt man das Zertifikat auf dem Iphone?
Die ist zwar auch in der VM - ich habe sie hier aber nochmal attached (muss in ca.pem umbenannt werden)
Zum umbiegen des DNS: wäre schön wenn ein Fritzbox-user mal screenshots posten würde... :-)
Wenn jemand openwrt oder ähnliches hat: einfach in /etc/dnsmasq.com folgende zeile einfügen:
address=/guzzoni.apple.com/192.168.x.y
@Berliner:
von einem Import der ETS Daten halte ich nicht viel - da hat jeder sicherlich eine eigene Namensdefinition. Eine Anpassung der Config - im Source oder als ausgelagerte Config - wird unumgänglich sein.
@WiBa: doch - das anpassen des Example-Scripts reicht aus!
Danach musst du den proxy natürlich neu starten.
Ich mache das gerne in 2 unterschiedlichen sessions (mit dem "screen" Befehl) ("strg+a c" erzeugt ein neues Screen, "strg+a n" springt zum nächsten fenster, wenn man die Sitzung beendet kommt man mit "screen -Dr" wieder zum letzten screen)
Also: script anpassen, ins proxy-screen wechseln, ctrl-c zum abbrechen und wieder mit "rvmsudo ruby start.rb" starten.
Gruß
Thorsten
Gruß
ThorstenAngehängte Dateien
Kommentar
-
Zitat von ThorstenGehrig Beitrag anzeigenHi,
Du brauchst die ca.pem
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
-
Relativ einfach.
Die Verbindung zu guzzoni ist eine HTTPS-Verbindung.
D.h. das iPhone will die gültigkeit des zertifikats überprüfen.
Da wir aber guzzoni spielen, passt das Zertifikat nicht.
Daher erstellen wir ein eigenes Zertifikat durch eine eigene CA (certification authority). Das diese CA aber dem Iphone nicht bekannt ist, vertraut dem iPhone diesem auch nicht....
... wenn man das Zertifikat dem iPhone aber als "Vertrauenswürdig" einpflanzt... ist alles gut.
ACHTUNG: Security gefahr! Wenn jetzt ein Hacker diese VM nimmt, damit falsche Zertifikate erstellt und damit Man-in-the-Middle-Attacken gegen euch fährt - wird das iPhone diesen Zertifikaten auch vertrauen.
Wer davor Angst hat: eigene Fake-CA mit eigenen Fake-Zertifikaten erstellen (Aufwand: 2 Minuten, Anleitung: siehe Siri-Guthup)
Gruß
Thorsten
Nachtrag: gen_certs.zsh ist das script zum erzeugenen eigener Zertifikate. Zeitaufwand dann nur 20 Sekunden ;-)
Kommentar
-
@ThorstenGehrig
ok, wir kommen der Sache schon näher. Ich bin nicht so der Ruby/Linux-Profi. Ich habe den Server aus dem Youtube-Video von Siri mit Siriproxy erweitern – mit ungeahnten Möglichkeiten | Robins Blog nachgebaut und funktioniert. Jetzt verlangt das System cora (weil es in dem Script vorkommt). Wie kann man das nachinstallieren?
LG
Werner
Kommentar
Kommentar