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

    'nabend alle zusammen!

    Ich sehe gerade das rege Treiben um den Siri Proxy.
    Hab das ganze auch schon länger verfolgt, aber mangels iPhone 4S nie ausprobiert.

    Das hat sich am Freitag geändert, da ist mein neues Handy angekommen
    Also ich gleich dran den SiriProxy auf einem Lion Server installiert und jetzt habe ich schon ein Mini-Example Plugin erstellt und bestehende Plugins geändert und einige auf deutsch übersetzt (iTunes/Mac-Control und IMDB Plugin).

    Da ich jetzt schon in die meisten Fettnäpfchen reingetreten bin, helfe ich gerne allen anderen die hier nicht weiterkommen.
    Wenn ich also helfen kann, dann bitte schreien.

    Ich helfe auch gerne mit. Ruby kann ich noch nicht, habe aber früher Java, Perl und Shell-Programmierung gemacht.

    Ach ja falls notch nicht bekannt hier gibt es ein KNX-Plugin, dass mit der Calimero API läuft, muss ich mir aber noch anschauen:

    https://github.com/edsonaj/siriproxy-knx

    gtx,
    Manolo

    Kommentar


      Hi
      das KNX-Plugin ist wenig interessant - da gibt's hier schon bessere Beispiele ;-)
      Eine Frage habe ich aber (nach einem kurzem Code-Review): was wird da gemacht:

      def initialize(config) end
      filter "SetRequestOrigin", direction: :from_iphone do |object|
      puts "[Info - User Location] lat: #{object["properties"]["latitude"]}, long: #{object["properties"]["longitude"]}"
      end


      Gruß
      Thorsten

      Kommentar


        sieht aus als ob damit per GPS der Standort des Benutzers iPhone abgefragt wird (Länge- und Breitengrad).
        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


          Yo - das hab ich mir auch schon gedacht?
          Nur: wozu?
          Werden die Befehle nur innerhalb einer Position angenommen (nur bei VPN-Nutzung interessant, aber?). Eigentlich die die WLAN-Nutzung ja ideal für die Gebäudezuordnung...
          WLAN Zuhause -> KNX zuhause
          WLAN Ferienwohnung -> KNX Ferienwohnung

          Einen wirkliche Nutzung dieser Info kann ich da aber nicht erkennen - daher die Frage ob es nicht einen anderen Zweck gibt.

          Gruß
          Thorsten

          Kommentar


            ist ja auch nur eine Ausgabe... also im Code wird es nicht verwendet. Aber die Idee mit KNX Zuhause, KNX Ferienhaus finde ich ganz witzig. Mangels Ferienhaus aber für mich uninteressant
            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 2ndsky Beitrag anzeigen
              Mangels Ferienhaus aber für mich uninteressant
              Kann ja auch deine Hochseejacht sein
              ECMACOM GmbH
              Konzeption, Planung, Implementation, Unterhalt
              www.ecmacom.ch
              www.knxshop4u.ch

              Kommentar


                Hoi

                Typischerweise wird damit der Sonnenstand sowie -Aufgang und -Untergang berechnet.
                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 eckerho1 Beitrag anzeigen
                  Kann ja auch deine Hochseejacht sein
                  die hab ich ja ganz vergessen
                  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


                    ...ja soweit ich das sehe wird das momentan nur mit geloggt (GPS Position),
                    aber wie schon erwähnt kann man das für andere Dinge nutzen wie Sonnenstand berechnen o.ä.

                    Läuft der SiriProxy bei euch sauber? Ich bin gerade dabei den Proxy umzukonfigurieren, damit er auf einem Highport lauscht z.B. 2000.

                    Kommentar


                      Zitat von pheno Beitrag anzeigen
                      ...ja soweit ich das sehe wird das momentan nur mit geloggt (GPS Position),
                      aber wie schon erwähnt kann man das für andere Dinge nutzen wie Sonnenstand berechnen o.ä.
                      Dann sollte man das aber tunlichst nicht vom Büro aus über VPN nutzen
                      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 ThorstenGehrig Beitrag anzeigen
                        Yo - das hab ich mir auch schon gedacht?
                        Nur: wozu?
                        Apple ist neugierig ??
                        www.knx-Hausblog.de

                        Kommentar


                          das kommt nicht von Apple sondern ist Bestandteil des KNX Plugins für den Siri Proxy!
                          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


                            Hi Thorsten,

                            Zitat von ThorstenGehrig Beitrag anzeigen
                            ...dazu noch die shell-scripte
                            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
                            sendhex.sh
                            Code:
                            #!/bin/bash
                            echo "Wert1: $1 $2"
                            groupwrite ip:wiregate $1 `/usr/bin/perl -e 'printf("%X\n",$ARGV[0]);' $2`
                            
                            exit 0
                            Mit den Shell-Scripten wandle ich die Hex-Werte vom Eibd in Dezimal-Werte (bzw. umgekehrt)...
                            sag mal wie muss ich den eibd starten, damit ich mit groupcacheread/groupswrite Werte abfragen/ändern kann?

                            Mein Daemon läuft momentan mit:
                            Code:
                            # eibd -d -D -S -T -i ipt:192.168.1.12
                            Was mache ich falsch?

                            Beste Grüße, Manolo

                            Kommentar


                              ...ups.

                              hab's schon rausgefunden. Ich sollte natürlich die IP benutzen wo eibd läuft und nicht das EIB IP-Interface.

                              Danke!

                              Kommentar


                                Aloha,

                                angeregt durch Thorsten's Code Schnipsel habe ich mich auch mal rangesetzt.
                                Jetzt kann man den EIBD auch ohne externes Skript steuern.

                                Licht an/aus und auch dimmen.

                                Einmal die Methode:
                                Code:
                                def controlLights(grpAddr, grpVal, oneBit)
                                        if oneBit
                                          system "/opt/knx/bin/groupswrite ip:localhost #{grpAddr} #{grpVal}"
                                        else
                                          grpVal = grpVal.hex
                                          system "/opt/knx/bin/groupwrite ip:localhost #{grpAddr} #{grpVal}"
                                        end
                                end
                                Und dann die beiden Abfragen:
                                Code:
                                listen_for /licht (an|aus|einschalten|ausschalten) ([\w]+)/i do |action, room|
                                    say "#{room.chomp}licht #{action.chomp}." # say which light was turned on
                                
                                    if action.chomp == "ein" or action.chomp == "einschalten" then
                                      switch = 1
                                    elsif action.chomp == "aus" or action.chomp == "ausschalten" then
                                      switch = 0
                                    end
                                
                                    case room.chomp.upcase
                                        when "SOFA"
                                          controlLights '2/0/1', switch, true
                                        when "ESSZIMMER"
                                          controlLights '2/0/6', switch, true
                                        else
                                          say "Ich kenne #{room.chomp.downcase.capitalize} nicht!"
                                    end
                                
                                    request_completed # always complete your request! Otherwise phone will "spin"
                                end
                                
                                listen_for /licht ([\w]+) auf ([\d]+) \%/i do |room, percent|
                                    say "#{room.chomp}licht wird auf #{percent} Prozent gedimmt."
                                
                                    case room.chomp.upcase
                                        when "ESSZIMMER"
                                          controlLights '2/0/22', percent, false
                                        else
                                          say "Ich kenne #{room.chomp.downcase.capitalize} nicht!"
                                    end
                                
                                    request_completed # always complete your request! Otherwise phone will "spin"
                                end
                                Bei Fragen einfach melden!
                                gtx, Manolo

                                Kommentar

                                Lädt...
                                X