Worx Mähroboter starten & Stoppen / HTTP-Post-Request

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • LJSven
    Extension Master
    • 28.01.2016
    • 136

    #16
    svethi & hodojazi : Danke für Eure Hilfe. Hier ist mal der Mitschnitt, wenn ich das über das WebIF des Mähers mache.Ist da was aufflällig?

    POST /jsondata.cgi HTTP/1.1
    Host: fe.example***.de:8866
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
    Accept: application/json, text/javascript, */*; q=0.01
    Accept-Language: de,en-US;q=0.7,en;q=0.3
    Accept-Encoding: gzip, deflate
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    X-Requested-With: XMLHttpRequest
    Referer: http://fe.example***.de:8866/
    Content-Length: 40
    Cookie: %7B%22style%22%3A%22dark%22%2C%22updateCurrentInte rval%22%3A120000%2C%22updateBouquetInterval%22%3A3 00000%7D; i18next=de
    Authorization: Basic YWRtaW46MTcwOA==
    Connection: keep-alive

    data=%5B%5B%22settaggi%22%2C12%2C1%5D%5DHTTP/1.1 200 OK
    Server: Keil-EWEB/2.1
    Content-Type: text/html
    Cache-Control: no-cache
    Connection: close

    {"versione_fw":2.61,"lingua":1,"ore_funz":[90,90,90,90,90,60,60],"ora_on":[9,9,9,9,9,10,10],"min_on":[0,0,0,0,0,0,0],"allarmi":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0],"settaggi":[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0],"mac":[0,35,167,80,171,25],"time_format":1,"date_format":0,"rit_pioggia":0," area":0,"enab_bordo":1,"percent_programmatore":0," indice_area":9,"tempo_frenatura":20,"perc_rallenta _max":70,"canale":0,"num_ricariche_batt":79,"num_a ree_lavoro":1,"dist_area":[1,1,1,1],"perc_per_area":[1,1,1,1],"area_in_lavoro":0,"email":"","perc_batt":"60","v er_proto":1,"state":"searching wire","workReq":"landroid req manual homing","message":"none","batteryChargerState":"id le","distance":318221}","distance":318221}

    Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6318

      #17
      Hallo LJSven,

      Hmm, da wird auch ein Cookie verwendet. Wir wollen ja mal hoffen, dass die Firmware-Version Deines Roboters auf das Cookie angewiesen ist.
      Was mir natürlich auffällt ist, dass die Daten encodet sind. Es kann gut sein, dass Loxone das nicht tut. Dann versuche doch mal
      data=%5B%5B%22settaggi%22%2C12%2C1%5D%5D für 12 und data=%5B%5B%22settaggi%22%2C11%2C1%5D%5D für 11
      anstatt data=[["settaggi...
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar

      • LJSven
        Extension Master
        • 28.01.2016
        • 136

        #18
        Habe ich versucht - geht leider auch nicht.

        Kommentar

        • svethi
          Lebende Foren Legende
          • 25.08.2015
          • 6318

          #19
          Tja, dann kann ich auch nicht weiterhelfen.

          Hast Du denn mal von der Loxberry-Konsole:
          curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]' http://IP-VOM-WORX/jsondata.cgi
          versucht?
          Vielleicht geht das ja auch schon gar nicht erst.
          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

          Kommentar

          • LJSven
            Extension Master
            • 28.01.2016
            • 136

            #20
            Zitat von svethi
            Tja, dann kann ich auch nicht weiterhelfen.

            Hast Du denn mal von der Loxberry-Konsole:
            curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]' http://IP-VOM-WORX/jsondata.cgi
            versucht?
            Vielleicht geht das ja auch schon gar nicht erst.
            Ich habe zwar keine Loxberry-Konsole, aber über meine Dreambox funktioniert der curl Code einwandfrei. Jetzt könnte ich es über die Dreambox realiseren, allerdings möchte ich eigentlich den Zwischenschritt vermeiden.

            Kommentar

            • LJSven
              Extension Master
              • 28.01.2016
              • 136

              #21
              Das ist die Ausgabe, wenn ich über die Fritzbox mitschneide ->

              POST /jsondata.cgi HTTP/1.1

              Host: fe.example***.de

              User-Agent: [en]

              Content-Length: 24

              Content-Type: text/xml; charset=utf-8

              .....................Accept: application/json

              Content-type: application/x-www-form-urlencoded

              Authorization: Basic YWRtaW46MTcwOA==


              data=[["settaggi",12,1]]HTTP/1.1 200 OK

              Server: Keil-EWEB/2.1

              Content-Type: text/html

              Cache-Control: no-cache

              Connection: close

              {"versione_fw":2.61,"lingua":1,"ore_funz":[90,90,90,90,90,60,60],"ora_on":[9,9,9,9,9,10,10],"min_on":[0,0,0,0,0,0,0],"allarmi":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0],"settaggi":[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0],"mac":[0,35,167,80,171,25],"time_format":1,"date_format":0,"rit_pioggia":0," area":0,"enab_bordo":1,"percent_programmatore":0," indice_area":9,"tempo_frenatura":20,"perc_rallenta _max":70,"canale":0,"num_ricariche_batt":82,"num_a ree_lavoro":1,"dist_area":[1,1,1,1],"perc_per_area":[1,1,1,1],"area_in_lavoro":0,"email":"","perc_batt":"66","v er_proto":1,"state":"grass cutting","workReq":"user req grass cut","message":"none","batteryChargerState":"idle" ,"distance":588415}

              Kommentar

              • hodojazi
                Extension Master
                • 03.10.2016
                • 102

                #22
                Ich sehe, da wird eine Basic Auth verwendet. Hast du die auf dem Host in Loxone auch angegeben?

                Wenn ja, aktivier dir mal den Debug-Monitor in der LoxoneConfig vielleicht siehst du da ja schon etwas. Ansonsten versuche auch mal mit Wireshark mitzuschneiden was Loxone an den Robo schickt und was er antwortet.

                Kommentar

                • LJSven
                  Extension Master
                  • 28.01.2016
                  • 136

                  #23
                  So langsam komme ich weiter - wenn ich mir das richtig anschaue, wird die Portfreigabe nicht übernommen?! Wenn ich aber die IP eingebe, kommt folgende Meldung:

                  POST /rx_data.php HTTP/1.1

                  Host: remote.worxlandroid.com

                  Connection: keep-alive

                  Content-Length: 414

                  Content-Type: application/x-www-form-urlencoded

                  model="WG796E.1"&fwVer=2.61&state="home"&workReq=" landroid req manual homing"&message="none"&batteryChargerState="chargi ng"&batteryTemp="39.9"&landoTemp="38.0"&email=""&p in="1708"&mac="0023A750AB19"&lingua=1&indice_area= 9&enab_bordo=1&rit_pioggia=0&perc_batt=100&percent _programmatore=0&ore_funz=%5B90%2C90%2C90%2C90%2C9 0%2C60%2C60%5D&ora_on=%5B9%2C9%2C9%2C9%2C9%2C10%2C 10%5D&min_on=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%5D

                  HTTP/1.1 200 OK

                  Server: nginx/1.10.3

                  Date: Wed, 23 Aug 2017 12:11:02 GMT

                  Content-Type: text/html

                  Content-Length: 5

                  Connection: keep-alive

                  X-Powered-By: PHP/5.4.45-0+deb7u9

                  Vary: Accept-Encoding

                  OK###

                  Kommentar

                  • LJSven
                    Extension Master
                    • 28.01.2016
                    • 136

                    #24
                    Zitat von hodojazi
                    Ich sehe, da wird eine Basic Auth verwendet. Hast du die auf dem Host in Loxone auch angegeben?

                    Wenn ja, aktivier dir mal den Debug-Monitor in der LoxoneConfig vielleicht siehst du da ja schon etwas. Ansonsten versuche auch mal mit Wireshark mitzuschneiden was Loxone an den Robo schickt und was er antwortet.
                    Wie meinst du das?

                    Kommentar

                    • hodojazi
                      Extension Master
                      • 03.10.2016
                      • 102

                      #25
                      kann mich auch täuschen, aber wenn Basic Auth verwendet wird, muss du in Loxone ja angeben http://userassword@URLoderIPAdresse

                      Aber ich habe mittlerweile die Übersicht verloren um welche Anfrage es geht. Schau einfach mal was im Debug-Monitor passiert und was Loxone schickt mithilfe von Wireshark. Dann siehst du sicher ob die Anfrage so funktioniert wie du das möchtest bzw. auch ob der Webserver einen Fehler zurückgibt.

                      Kommentar

                      • LJSven
                        Extension Master
                        • 28.01.2016
                        • 136

                        #26
                        Zitat von hodojazi
                        kann mich auch täuschen, aber wenn Basic Auth verwendet wird, muss du in Loxone ja angeben http://userassword@URLoderIPAdresse

                        Aber ich habe mittlerweile die Übersicht verloren um welche Anfrage es geht. Schau einfach mal was im Debug-Monitor passiert und was Loxone schickt mithilfe von Wireshark. Dann siehst du sicher ob die Anfrage so funktioniert wie du das möchtest bzw. auch ob der Webserver einen Fehler zurückgibt.
                        So habe ich das in Loxone auch angegeben. Mich wundert einfach nur, daß die Portfreigabe nicht übergeben wird.

                        Kommentar

                        • hodojazi
                          Extension Master
                          • 03.10.2016
                          • 102

                          #27
                          Zitat von LJSven

                          ...die Portfreigabe nicht übergeben wird.
                          Das verstehe ich nicht. Welche Portfreigabe?

                          Kommentar

                          • svethi
                            Lebende Foren Legende
                            • 25.08.2015
                            • 6318

                            #28
                            Der Mäher antwortet doch aber mit OK ... Was ich aber sehe, ist, dass der String aber nicht encoded rausgeschickt wird.
                            Und warum Du intern nicht die lokale Adresse des Mähers nimmst, verstehe ich auch nicht, denn da gibt es auch manchmal Probleme mit dem internen Routing.
                            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                            Kommentar

                            • LJSven
                              Extension Master
                              • 28.01.2016
                              • 136

                              #29
                              Hm, keine Idee was du genau meinst mit encoded - wenn ich die INTERNE IP eingebe, steht da ein anderer Host (siehe Post 23)

                              Kommentar

                              • hodojazi
                                Extension Master
                                • 03.10.2016
                                • 102

                                #30
                                Nicht, dass du dich an remote.worxload... authentifizieren musst und das Cookie dann intern weitergeben musst welcher dies dann seinerseits wieder gegenüber dem Server abgleicht. Nichtsdestotrotz würde ich aber, wie gesagt exakt die Anfrage (wie aus der App oder CCU oder woher du das hast) nachbauen in Loxone und Wireshark kontrollieren ob es so geschickt wird wie du es willst.

                                Kommentar

                                Lädt...