Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Siri-Proxy - wer hat know how und will mitbasteln?
also bei mir läuft der Proxy auf dem Wiregate!
Installation wie auf einem normalen Debian.
Ich suche aber immer noch eine Lösung den Prozess automatisch zu starten und ihn evtl. im Status-Menü zu bedienen (start, stop , restart).
Soweit bin ich gerade:
Also der Proxy läuft bei mir jetzt mal endlich auf einen Barebone. dnsmasq und Konsorten funktionieren scheinbar auch (Externe Anfragen nach dem Wetter gehen an Apple, die Frage nach Test Proxy Server landet richtig auf dem Proxy)
jetzt hab ich die siriproxy-example.rb um folgendes erweitert:
Code:
listen_for /(Licht|Lampe|Beleuchtung) (ein|an)/i do
say "OK, Ich schalte die Beleuchtungsautomatik aus!" #say something to the user!
wasGood = system( "groupswrite ip:10.0.0.8 0.0.1 1" )
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
listen_for /(Licht|Lampe|Beleuchtung) aus/i do
say "Lichtautomatik ein!" #say something to the user!
wasGood = system( "groupswrite ip:10.0.0.8 0/0/1 0" )
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
Nur kommt immer bei "Beleuchtung ein" oder jedem anderen Versuch:
"Es tut mir leid, ich weis nicht was Du mit xyz meinst"
Das ist eigentlich das original, mit den Zeilen hinten angefügt
Code:
require 'cora'
require 'siri_objects'
require 'pp'
#######
# This is a "hello world" style plugin. It simply intercepts the phrase "test siri proxy" and responds
# with a message about the proxy being up and running (along with a couple other core features). This
# is good base code for other plugins.
#
# Remember to add other plugins to the "config.yml" file if you create them!
######
class SiriProxy::Plugin::Example < SiriProxy::Plugin
def initialize(config)
#if you have custom configuration options, process them here!
end
#get the user's location and display it in the logs
#filters are still in their early stages. Their interface may be modified
filter "SetRequestOrigin", direction: :from_iphone do |object|
puts "[Info - User Location] lat: #{object["properties"]["latitude"]}, long: #{object["properties"]["longitude"]}"
#Note about returns from filters:
# - Return false to stop the object from being forwarded
# - Return a Hash to substitute or update the object
# - Return nil (or anything not a Hash or false) to have the object forwarded (along with any
# modifications made to it)
end
listen_for /test siri proxy/i do
say "Siri Proxy funktioniert!"#say something to the user!
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
#Demonstrate that you can have Siri say one thing and write another"!
listen_for /you don't say/i do
say "Sometimes I don't write what I say", spoken: "Sometimes I don't say what I write"
end
#demonstrate state change
listen_for /siri proxy test state/i do
set_state :some_state #set a state... this is useful when you want to change how you respond after certain conditions are met!
say "I set the state, try saying 'confirm state change'"
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
listen_for /confirm state change/i, within_state: :some_state do #this only gets processed if you're within the :some_state state!
say "State change works fine!"
set_state nil #clear out the state!
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
#demonstrate asking a question
listen_for /siri proxy test question/i do
response = ask "Is this thing working?" #ask the user for something
if(response =~ /yes/i) #process their response
say "Great!"
else
say "You could have just said 'yes'!"
end
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
#demonstrate capturing data from the user (e.x. "Siri proxy number 15")
listen_for /siri proxy number ([0-9,]*[0-9])/i do |number|
say "Detected number: #{number}"
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
#demonstrate injection of more complex objects without shortcut methods.
listen_for /test map/i do
add_views = SiriAddViews.new
add_views.make_root(last_ref_id)
map_snippet = SiriMapItemSnippet.new
map_snippet.items << SiriMapItem.new
utterance = SiriAssistantUtteranceView.new("Testing map injection!")
add_views.views << utterance
add_views.views << map_snippet
#you can also do "send_object object, target: :guzzoni" in order to send an object to guzzoni
send_object add_views #send_object takes a hash or a SiriObject object
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
listen_for /(Licht|Lampe|Beleuchtung) (ein|an|start)/i do
say "OK, Ich schalte die Beleuchtungsautomatik ein!" #say something to the user!
wasGood = system( "groupswrite ip:10.0.0.8 0.0.1 1" )
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
listen_for /(Licht|Lampe|Beleuchtung) aus/i do
say "Lichtautomatik ein!" #say something to the user!
wasGood = system( "groupswrite ip:10.0.0.8 0/0/1 0" )
request_completed #always complete your request! Otherwise the phone will "spin" at the user!
end
end
Das komische ist, wenn ich "Siri Proxy is up and running" in "Siri Proxy funktioniert" ändere, meldet Siri sich immer noch mit "..ist up and running"
okay - du verwendest nicht die VM - das macht das suchen etwas schwieriger...
schau mal in deinem Siri-Proxy verzeichniss - da müsste eine config.yml drinn sein (wenn es nur eine config-example.yml ist -> kopieren)
In dieser config.yml müsste sowas drinnstehen:
Das passt alles so
Genau die Config habe ich angepasst. Den Server hab ich auch schon paar mal neugestartet... Jetzt hab ich im Moment keinen Plan mehr.
... nur um sicherzugehen... (du kennst das: stecker drinn? einschalter eingeschaltet?... usw).
Wenn der Siri-proxy gestartet wird - zeigt er ja auf der Konsole wenn Daten zu Apple übertragen werden, was erkannt zurückkommt, und ob er was im Plugin findet.
Siehst du diese Meldungen zur Kommunikation?
Gruß
Thorsten
Nachtag: so sieht das bei mir aus:
Code:
[Info - iPhone] Received Object: StartSpeechRequest
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - Guzzoni] Received Object: RequestCompleted
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
zlib(finalizer): the stream was freed prematurely.
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: SpeechPacket
[Info - iPhone] Received Object: FinishSpeech
[Info - Guzzoni] Received Object: SpeechRecognized
[Info - Plugin Manager] Processing 'Test Siri Proxy '
[Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::Example:0x86d2b50>
[Info - Plugin Manager] Matches (?i-mx:test siri proxy)
[Info - Plugin Manager] Applicable states:
[Info - Plugin Manager] Current state:
[Info - Plugin Manager] Matches, executing block
[Info - Plugin Manager] Say: Siri Proxy is up and running!
[Info - Plugin Manager] Sending Request Completed
Ja, ich versteh Dich! Aber die Meldungen auf der Konsole sehen bei mir genauso aus, nur das hinter Example irgend ne Zahl mit 9xxxx kommt. Kann das aber auch erst morgen wieder testen, weil ich gerade unterwegs bin.
Ich muss mich jetzt wohl einklinken, obwohl ich sowas nie haben werde..
-> Ist hier jemand zugegen, der sich mit dem Ruby-sums auskennt (ich fahre nicht Zug ) und mich in die richtige Richtung schubsen kann?
Ziel: SiriProxy on WireGate, aber "the Debian way", komplette Buildumgebung installieren und das ganze rake-rvm-Zeugs geht ja mal wirklich garnicht! Das muss sich ja auch in richtig realisieren lassen..
Debian-Paket für ruby 1.9.3-p0 ist bereits erledigt, aber wie macht man jetzt aus dem Zeug im GIT etwas, das normale Menschen einfach ausführen können? Gepackaged bekomme ich das dann schon, aber:
Also in kurzform, wie macht aus der Sache im git etwas statisch ausführbares ohne sich vorher das ruby lokal 4x zu kompilieren ? (mich interessiert dabei weder was rake ist, noch wozu die Welt das oder gems braucht oder gar warum das bei Ruby alles viel besser ist )
-> Am Ende des Tages muss es nämlich IMHO wenn als .deb installierbar sein, mit init-script, default-config und all sowas.. Um den hinteren Teil bemühe ich mich wenn es die Zeit zulässt aber jetzt 2 Tage in Ruby einlesen:
Und dann muss man da noch ein paar Dinge ändern, damit nach 3J nicht die Zertifikate auslaufen und der Ärger losgeht und so (achso, solange hälts ja eh nicht, ich vergass )
Makki
Edit: ok der erste war dumm, 15min lesen muss man wohl doch
Also "../env ruby" in "..env/ruby1.9.3" geändert und schon siehts besser aus aber jetzt kommt der nächste:
Code:
markstaller@Elab18:~/WG_debs/SiriProxy/bin$ ./siriproxy bundle
/home/markstaller/WG_debs/SiriProxy/lib/siriproxy/command_line.rb:80:in ``': No such file or directory - bundle (Errno::ENOENT)
from /home/markstaller/WG_debs/SiriProxy/SiriProxy/lib/siriproxy/command_line.rb:80:in `run_bundle'
from /home/markstaller/WG_debs/SiriProxy/SiriProxy/lib/siriproxy/command_line.rb:39:in `initialize'
from ./siriproxy:6:in `new'
from ./siriproxy:6:in `<main>'
also will es was installieren vermute ich, das dürfen scriptsprachen spezifische Routinen aber nicht selbst - by design also: was braucht es?
-> Ich les mal weiter solange es der Blutdruck zulässt
Hi,
falls der Siri-Proxy bei euch nicht mehr Funktioniert:
Ich musste in
plamoni-SiriProxy-5982ab6/siri_proxy/connection/iphone.rb
die Adresse des Proxys ändern:
self.other_connection = EventMachine.connect('17.130.16.4'
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar