Siri @home

Interessant…
Wenn ich den Say Befehl auskommentier kommt der Request im Log… aber das Phone hängt wieder wie vorher… D.h. doch, daß das Telefon keinerlei Rückmeldungen vom Proxy empfangen kann. :confused:


[Info - Guzzoni] Received Object: SpeechRecognized
[Info - Plugin Manager] Processing 'Licht Wohnzimmer an '
[Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::IPS:0x9f65208>
[Info - Plugin Manager] Matches (?i-mx:Licht.*Wohnzimmer.*an)
[Info - Plugin Manager] Applicable states: 
[Info - Plugin Manager] Current state: 
[Info - Plugin Manager] Matches, executing block
[Info - Plugin Manager] Sending Request Completed

Habe eben den proxy mit nem Tool aufm Iphone angepingt… Das geht wunderbar. Namensauflösung funzt auch.

Ok, dann funktionieren aus irgendwelchen Gründen die Rückmeldungen an Dein iPhone nicht und der Proxy bleibt daher an dieser Stelle hängen. Das ist ein 4S mit letzter Firmware?

korrekt ! nagelneu… nicht gejailbreaked

Habe jetzt nich alles genau gelesen von deiner Problembeschreibung. Hatte jedoch gestern beim aufsetzen auch probleme mit dem say befehl.

Das an den anfang der Ruby Datei zu setzen (siriproxy-ips.rb) hat abhilfe geschafft:

require ‚httparty‘
require ‚cora‘
require ‚siri_objects‘
require ‚pp‘

MFG Alex

Ich danke Dir ! Wow… das hat geholfen ! :D:D:D
Jetzt kann ich richtig loslegen !!

Komisch, dass das sonst auch ohne funktioniert.

@Kronos:

ich habe ganz an den Anfang

# encoding: utf-8

gesetzt.

Aber wenn ich folgende Zeile einfüge mag er das nicht und schmiert ab.

listen_for(/Küchenlicht.*an/i) { licht_kueche_on }

Denn Küche mit ue schreiben geht… aber das als Mensch aussprechen geht nicht bzw. hört sich blöd an ^^

Oder wie realisiere ich das mit der Frage nach der Außentemperatur ? oder Temperatur draußen ?
das „ß“ mag der Proxy ja auch nicht…

Seit dem ich den UTF-8 drin habe funktionieren Dinge wie „Außentemperatur“, „grün“, „Küche“, usw. wunderbar. Auch die Antworttexte könne jetzt Umlaute enthalten - wobei mir vorher der Server immer mit einem Syntaxfehler abgeschmiert ist.

Welchen SiriProxy nutzt Du jetzt?

Nick oder die manuelle Version.

Die Manuelle. Siehst Du doch an den Skripten, das gibt es so bei Nick nicht.:wink:

Die siriproxy-ips.rb gibt es natürlich schon er hat nur mit der Klasse probleme.

Vielleicht hilt das einbinden der requiere weiter.

Werde morgen mal auf beiden Versionen weitertesten da die Nick-Version prinzipiell besser läuft und nicht dauernd um die Veröffentlichung von ruby gekümmert werden muss.

Ich pushe meine Frage nochmal hoch: Wie habt Ihr den autostart beim boot up vom siriproxy gelöst?

Hab meinen Fehler gefunden… mein Notepad++ stand auf ANSI. habs mal auf utf-8 umgestellt :wink:
Aber nun funktioniert nur noch ca. jede 3. Anfrage über Siri. Er spuckt mir jetzt bei jeder 2…3. Anfrage mein 4S KEy im log aus und kann die Anfrage dann nicht über den Proxy sondern nur von Apple beantworten. Das nervt. Irgendwas verbiegt das utf-8

[EDIT]
Wieder ein Problemherd beseitigt. (Ich habe das encoding in der ersten Zeile für UTF-8 rausgenommen und habe den Editor (Notepad++) auf UTF-8 gestellt. Nun funktioniert auch wieder jede Anfrage.


require 'httparty'
require 'cora'
require 'siri_objects'
require 'pp'


Noch gar nicht… (also ich zumindest) da ich ne VM habe und den Snapshot nach belieben laden kann. Bin genau so´n Linux legastheniker hier :wink:

Prinzipiell finde ich ihn auch besser. Wenn er mit Plugins irgendwann richtig umgehen kann. Hab dem Schöpfer schon nen Kommentar auf seiner Seite hinterlassen. Ich selber hab mit den requiere auch schon rumgespielt, aber nicht weiter gekommen… daher benutze ich gerade den anderen Proxy den alle hier nutzen. Nur noch aktuell mit Umlauteproblem.

Hallo,

ich besitze zwar kein iPhone und habe demnach auch keine Siri(Proxy), etc. aber da ich mich einigermaßen mit Linux auskenne, hier vielleicht ein paar Ideen.

Unter Linux werden standardmäßig Init Scripte beim Booten ausgeführt (mit Parameter „start“ beim Hochfahren und „Stop“ beim Shutdown).

Schaut doch mal einige Dateien/Scripte unter /etc/init.d an. Diese können mit diversen Parametern wie „stop“, „start“, „status“ etc. aufgerufen werden.

Oft gibt es hier auch ein Beispielscript „/etc/init.d/skeleton“.
Kopiert euch das doch nach /etc/init.d/siriproxy und passt es entsprechend an (da kann ich euch als nicht Siri Nutzer leider nicht direkt helfen).
Dann könnt ihr den Proxy mit

/etc/init.d/siriproxy start
starten, bzw. beenden mit
/etc/init.d/siriproxy stop

Dann müsst ihr nur noch dafür sorgen, dass das Script beim Systemstart auch aufgerufen wird.
Dazu solltet ihr wissen in welchem „Runlevel“ eurer System standardmäßig bootet.
Gebt dazu folgendes Kommando ein:

„runlevel“
Dann seht ihr schätzungsweise sowas wie „N 2“ oder „N 3“ oder „N 5“.
Das bedeutet, ihr habt seit dem Systemstart eurer Runlevel noch nicht geändert und läuft per Default auf 2.

Jetzt schaut ihr euch das Verzeichnis der Runscripte folgendermaßen an

"ls -lh /etc/rc<Nummer von oben>.d/

Da kommt dann u.a. vielleicht sowas:

S89cron -> …/init.d/cron

Das bedeutet, dass <S>tart an 89 Stelle im Bootvorgang den Cron-Daemon.

Jetztz müsst ihr euer neues Siri-Proxy Initscript noch entsprechend verlinken.

ln -s /etc/init.d/siriproxy /etc/rc2.d/S99Siriproxy

Damit wird beim Systemstart euer Initscript ausgeführt und sollte damit laufen.

Im späteren Betrieb solltet ihr den Siriproxy dann mit
/etc/init.d/siriproxy stop bzw. /etc/init.d/siriproxy start steuern können.

Das ganze ist jetzt natürlich sehr theoretisch, aber vielleicht bringt es euch etwas weiter.

Gruß
Thorsten

Danke für deine Anleitung.

Die Simplicity für Linux fasziniert mich immer wieder :rolleyes:

Aber diese Anleitung werde ich in Papierform archivieren da ich auch ein absolute NOOB in Sachen Linux bin.

Prima Thorsten, danke.
@all: Ich habe im Moment das Problem, dass beim siriproxy bundle das plugin siriproxy-ips nicht geladen wird. Zumindest ist es in der Liste, die durch

sudorvm siriproxy bundle

angezeigt wird nicht drin. Das standard example plugin im gleichen Pfad aber schon.

Meine config.yml steht in ./SiriProxy/ und sieht so aus:

port: 443
log_level: 10
plugins:
# NOTE: run bundle after changing plugin configurations to update required gems

- name: 'Example'
  path: './plugins/siriproxy-example'
- name: 'IPS'
  path: './plugins/siriproxy-ips'
  host: 'IP_DES_IPS_SERVERS:443'

IP Adresse natürlich vom IPS Server in der Datei.
Hat jemand eine Idee?

wupperi

path: ‚./plugins/siriproxy-ips‘

Das passt nicht. Mach da mal den Pfad zu Deinem Home-Directory davor.

Hatte ich schon. Das siriproxy-example im gleichen Pfad wird geladen :confused:
Der scheint meine config.yml gar nicht auszulesen. Ich habe die umbenannt, gibt keinen Fehler.

ok. Fehler gefunden:

in der ./SiriProxy/Gemfile war der Pfad zu config.yml falsch gesetzt, obwohl ich das teil original installiert habe…

Pfad war: ~/siriproxy/config.yml

Das Directory wurde bei mir aber als ~./SiriProxy angelegt.
Habe auch gleich absolute Pfadnamen reingeschrieben.

Das siriproxy-example im gleichen Pfad wird geladen

Das existiert im Gegensatz zu dem IPS-Plugin-Ordner bei mir an zwei Orten. Ich hatte exakt Dein Problem und habe es damit gelöst:

path: ‚/home/DEIN_USER_VERZEICHNIS/SiriProxy/plugins/siriproxy-ips‘

Nachtrag: Dann vergiß diesen Post. Hat sich überlebt.