Ankündigung

Einklappen
Keine Ankündigung bisher.

Siri-Proxy - wer hat know how und will mitbasteln?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hi
    sehr schön - und wenn man die Programmierasprache bererscht (nicht so wie ich) - kriegt man das Hex<>Dec umwandeln auch viel einfacher hin ;-)

    Gruß
    Thorsten

    Kommentar


      Hat irgendjemand Siri schon auf einem iPhone4 zum Laufen bekommen?!

      Kommentar


        Schau mal hier: https://knx-user-forum.de/200690-post103.html

        Kommentar


          Hi Jungs,

          hat den Siri Proxy schon jemand auf dem Wiregate am laufen ???

          Kommentar


            Siri auf Wiregate

            Hallo,

            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:

            Bildschirmfoto 2012-01-24 um 12.13.24.png

            Aber es stehen jetzt Prüfungen an der Uni an, deswegen geht's hier gerade nicht weiter.

            Gruß Johannes

            Kommentar


              Siri Proxy is up and running

              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"

              Wo hab ich hier noch einen Fehler?

              Kommentar


                Hi
                schick mir mal das gesamte script - oder poste es komplett.
                Eigentlich passt das...

                Gruß
                Thorsten

                Kommentar


                  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"

                  Das Config File liegt unter
                  Code:
                  /root/SiriProxy/plugins/siriproxy-example/lib/siriproxy-example.rb
                  ich starte als root und mit cd SiriProxy siriproxy server startet der Server.

                  Ich hab schon gesucht ob das config File noch irgendwo existiert, aber nichts gefunden. Kurios

                  Kommentar


                    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:

                    - name: 'Example'
                    path: './plugins/siriproxy-example'

                    Das richtige script liegt dann ind
                    ./plugin/siriproxy-example/lib/siriproxy-example.rb

                    Nach dem ändern hast du den Proxy gestoppt und neu gestartet?

                    Gruß
                    Thorsten

                    Kommentar


                      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.

                      Danke für deine Hilfe

                      Kommentar


                        ... 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

                        Kommentar


                          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.


                          Sent from my iPhone using Tapatalk

                          Kommentar


                            So Komando zurück! falsche example.rb geändert! Irgendwie gabs da noch ne 2.Version vom SiriProxy

                            Licht schaltet jetzt mit Siri

                            Kommentar


                              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:

                              Code:
                              markstaller@Elab18:~/WG_debs/SiriProxy$ rake1.9.3 --trace install
                              rake aborted!
                              cannot load such file -- bundler/gem_tasks
                              /usr/lib/ruby/1.9.3/rubygems/custom_require.rb:36:in `require'
                              /usr/lib/ruby/1.9.3/rubygems/custom_require.rb:36:in `require'
                              /home/markstaller/WG_debs/SiriProxy/Rakefile:3:in `<top (required)>'
                              /usr/lib/ruby/1.9.3/rake/rake_module.rb:25:in `load'
                              /usr/lib/ruby/1.9.3/rake/rake_module.rb:25:in `load_rakefile'
                              /usr/lib/ruby/1.9.3/rake/application.rb:501:in `raw_load_rakefile'
                              /usr/lib/ruby/1.9.3/rake/application.rb:82:in `block in load_rakefile'
                              /usr/lib/ruby/1.9.3/rake/application.rb:133:in `standard_exception_handling'
                              /usr/lib/ruby/1.9.3/rake/application.rb:81:in `load_rakefile'
                              /usr/lib/ruby/1.9.3/rake/application.rb:65:in `block in run'
                              /usr/lib/ruby/1.9.3/rake/application.rb:133:in `standard_exception_handling'
                              /usr/lib/ruby/1.9.3/rake/application.rb:63:in `run'
                              /usr/bin/rake1.9.3:32:in `<main>'
                              
                              markstaller@Elab18:~/WG_debs/SiriProxy/bin$ ./siriproxy 
                              ./siriproxy:4:in `require': ./../lib/siriproxy/command_line.rb:74: syntax error, unexpected '>' (SyntaxError)
                                  repl = -> prompt { print prompt; cora.process(gets.chomp!) }
                                           ^
                              	from ./siriproxy:4
                              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
                              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                              -> Bitte KEINE PNs!

                              Kommentar


                                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'

                                Gruß
                                Thorsten

                                Kommentar

                                Lädt...
                                X