Ankündigung

Einklappen
Keine Ankündigung bisher.

Android - Taster auf Homescreen mit direktem Befehl belegen

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

    Android - Taster auf Homescreen mit direktem Befehl belegen

    Hallo, ich möchte auf meinem Homescreen meines Android Smartphones einen Button haben, der eine Openhab Aktion ausführt, wenn ich ihn drücke.

    Ich hab schon einiges gefunden, z.B. mit IFTTT und DO Button, aber ich will nichts in der cloud, sondern direkten Zugriff auf mein eigenes Openhab, von mir aus reicht es auch nur im heimischen WLAN aus.

    Dafür gibts doch ein Binding, keine Ahnung wie das heisst, vielleicht wars das exec? Ich hab mal was darüber gelesen, dass auf dem Homescreen ein Link angelegt werden muss und dann als Webadresse der Befehl eingetragen wird... irgendwie so ähnlich.


    Kann mir jemand sagen, wie das geht?
    z.B. Garagentor öffnen


    Mit Habdroid gehts natürlich auch, aber das ist mir zu umständlich, erst Habdroid starten, dann das richtige Menü auswählen usw - ich will einfach einen Button auf meinem Homescreen, damit ich ganz schnell darauf zugreifen kann.

    #2
    Hey,

    das sollte sich mit Tasker bewerkstelligen lassen:
    1. neuen Task in Tasker erstellen
    2. neue Aktion per "+" hinzufügen und in der Kategorie "Net" die Aktion "HTTP Post" auswählen.
    3. Felder entsprechend deiner openHAB-Konfiguration eintragen und Task abspeichern
    4. auf dem Homescreen kannst du nun ein Tasker Widget hinzufügen ("Tasker Shortcut"), welches du auf deinen eben angelegten Task verlinken kannst.

    Ein extra Binding sollte also eigentlich nicht nötig sein. Du musst nur den passenden HTTP-Pfad deines Items, das du schalten möchtest, wissen und in Tasker hinterlegen.

    Kommentar


      #3
      Wenn ich einfach einen Favoriten mit dem Browser erstelle und diesen auf dem Homescreen ablege, dann klappt das nicht - also ohne Tasker?

      Kommentar


        #4
        Interessant, darüber habe ich bisher noch nicht nachgedacht gehabt, da ich fest davon ausging, dass es nur mit POST und PUT-Requests funktioniert. Laut der Beschreibung der REST-API (klick) scheint es aber tatsächlich auch mit einem GET-Request zu klappen (und ein eben solcher wird ja beim Aufrufen einer URL im Browser abgesendet).
        Die passende URL sollte also lauten:
        Code:
        http://IP:8080/CMD?ITEMNAME=NEUER_WERT
        Probiert habe ich es selbst bisher jedoch nicht...

        Kommentar


          #5
          Hm, also mit

          Code:
          http://192.xxx.xxx.xxx:8080//CMD?Licht_OG_Ankleide=ON
          kommt folgende Fehlermeldung:
          Code:
           [h=2]HTTP ERROR 404[/h]  [COLOR=#000000][FONT=Times New Roman]Problem accessing //CMD. Reason:[/FONT][/COLOR]  
               ProxyServlet: //CMD  [COLOR=#000000][FONT=Times New Roman] [/FONT][/COLOR]  [HR][/HR][I]Powered by Jetty://[/I]

          Kommentar


            #6
            Da hast du einen Slash zuviel, korrekt wäre:
            Code:
            http://192.xxx.xxx.xxx:8080/CMD?Licht_OG_Ankleide=ON

            Kommentar


              #7
              Oh, hab ich übersehen.

              Aber trotzdem kommt immer noch eine Fehlermeldung:

              Code:
               [COLOR=#000000][FONT=Times New Roman]This XML file does not appear to have any style information associated with it. The document tree is shown below.[/FONT][/COLOR]
                [COLOR=#000000][FONT=monospace][SIZE=13px] <root/>
               [/SIZE][/FONT][/COLOR]

              Kommentar


                #8
                Seltsam, bei mir funktioniert es (getestet mit Firefox und Chrome auf Android und OS X). Als Resultat erscheint bei mir im Browser lediglich eine leere Seite.
                Hast du eventuell Authentifizierung in openHAB aktiviert, sodass Username + Passwort angegeben werden müssen? Was sagt das openHAB-Log, wenn du die Befehle im Browser absetzt?

                Kommentar


                  #9
                  Ich hab die Authentifizierung nur für extern eingestellt, ich bin gerade in der Arbeit am PC, jedoch mit VPN zu mir nach Hause und ich habe auch den IP-Bereich der Arbeit als lokalen Bereich ohne Authentifizierung hinzugefügt.

                  Kommentar


                    #10
                    Kommst du denn an andere Elemente per REST ran? Versuche z.B. mal
                    Code:
                    http://IP:8080/rest/items
                    Testweise könntest du auch versuchen, Username+PW in der URL zu übermitteln:
                    Code:
                    http://username:passwort@192.xxx.xxx.xxx:8080/CMD?Licht_OG_Ankleide=ON
                    (für den Fall, dass die REST-API die Authentifizierungs-Einstellungen bzw. die freigegebenen IP-Adressbereiche nicht korrekt interpretiert).

                    Kommentar


                      #11
                      Die item-Übersicht klappt.

                      Aber das mit dem User:Passwort klappt nicht...


                      Meine users.cfg sieht so aus:
                      Code:
                      user=password,user,role
                      Aber mein Browser akzeptiert die Eingabe mit dem @-Zeichen überhaupt nicht.
                      Zuletzt geändert von halloween; 26.10.2015, 13:31.

                      Kommentar


                        #12
                        Halt! Es klappt trotz der Anzeige des Fehlers mit dem XML usw - siehe Post weiter oben. Licht Ankleide geht sofort ein.


                        Jetzt hab ich nur noch das Problem, dass es auch von ausserhalb klappen muß. Da brauch ich dann aber doch die dyndns-Adresse und auch ein Portforwarding auf den Openhab-Server, nehme ich mal an. Das geht mit my.openhab alles so schön konfigurationslos...

                        Kommentar


                          #13
                          Warum machst Du das nicht über VPN?

                          Kommentar


                            #14
                            Hm, gute Frage... Aber dann muss ich zuerst ja noch immer das VPN manuell starten. Wobei mir gerade einfällt, dass ich es eh nur im WLAN nutze, also z.B. wenn ich heim komme und das Garagentor öffnen möchte, dann soll das schnell gehen, aber im Hof hab ich ja bereits WLAN.

                            Also den abgespeicherten Link auf eine Sperrbildschirm-Schnellwahltaste und ich muss nur noch den Ein-Knopf drücken und zum Befehl sliden --> Tor geht auf.

                            Kommentar


                              #15
                              Ohne VPN wäre das auch reichlich sinnfrei, da du so jedem, der die URL kennt, Zugang zu deinem Haus verschaffen würdest. Simples Portforwarding bietet schließlich keinerlei Sicherheitsmaßnahmen -- und auch die Authentifizierungsdaten würden dann im Klartext übertragen, sodass sie einfach abgehört werden könnten (es sei denn, du würdest openHAB über SSL/TLS laufen lassen).

                              Aber wenn du es ohnehin nur im heimischen WLAN nutzt, passt das natürlich :-)

                              Edit: VPN könntest du auch mit Tasker on-demand starten und stoppen, hatte ich bei mir mal einige Zeit in Betrieb. Aber das nur am Rande...

                              Kommentar

                              Lädt...
                              X