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

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

    Hallo zusammen, ich möchte meinen Mähroboter per App starten und stoppen. Leider bin ich nicht so gut bei der Programmierung. Kann mir hier jemand sagen, wie ich das machen soll? Ich habe folgenden Codeschnipsel gefunden:

    Um den Worx über die CCU zu starten und zu stoppen, sind folgende Schritte notwendig.
    CUXD muss auf der CCU erfolgreich laufen.
    Unter Programme "Programm Mähroboter starten" anlegen
    Aktivität: Script mit folgenden Inhalt:
    string stdout;
    string stderr;
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "/www/addons/cuxd/worx-start");

    Unter Programme "Programm Mähroboter stoppen" anlegen
    Aktivität: Script mit folgenden Inhalt:
    string stdout;
    string stderr;
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "/www/addons/cuxd/worx-stop");

    Auf der CCU per ssh einloggen und die beiden Scripte anlegen:
    ------------------- /www/addons/cuxd/worx-start --------------------------
    /usr/local/addons/cuxd/curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",11,1]]' http://IP-VOM-WORX/jsondata.cgi
    ------------------- /www/addons/cuxd/worx-stop --------------------------
    /usr/local/addons/cuxd/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

    Beide Scripte auf der CCU ausführbar machen mit chmod 755 worx*
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6292

    #2
    Hallo LJSven,

    um was soll es hier denn nun jetzt gehen? Du sagst, dass Du den Mähroboter per App starten willst. Das hat nichts mit dem MiniServer zu tun. Du postest einen Beispielcode für CCU. Das hat auch nichts mit dem MiniServer zu tun. Was möchtest Du denn jetzt wirklich??
    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

      #3
      Zitat von svethi
      Hallo LJSven,

      um was soll es hier denn nun jetzt gehen? Du sagst, dass Du den Mähroboter per App starten willst. Das hat nichts mit dem MiniServer zu tun. Du postest einen Beispielcode für CCU. Das hat auch nichts mit dem MiniServer zu tun. Was möchtest Du denn jetzt wirklich??
      Das ist mir alles klar - ich möchte den Mäher via Loxone mit Start & Stop steuern. Auf einer anderen Seite habe ich den Code gefunden um es über die CCU zu steuern. Die Frage ist, ob man den Code umbauen kann, um den Mäher per Loxone zu steuern. Mir fehlt da das Hintergrundwissen um es zu realisieren.

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6292

        #4
        Das hat mit Code nicht viel zu tun. Du musst da nur HTTP Ausgänge, oder Einen, anlegen. Als Adresse kommt http://admin:WORX-PIN@IP-VOM-WORX/jsondata.cgi rein Methode POST und bei POST Data data=[["settaggi",11,1]] bzw. data=[["settaggi",12,1]]. Ich habe jetzt keine Config hier, und weiß nicht ob man auch Header angeben kann. Mit Glück funktioniert es so schön, ansonsten müsste man sich noch um die Header kümmern.

        Hättest Du hier mal die Suche verwendet, so wie ich jetzt für Dich, hättest Du auch schon etwas dazu gefunden.
        Sieh Dir mal das hier an.
        Zuletzt geändert von svethi; 19.08.2017, 11:15.
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Labmaster
          Lox Guru
          • 20.01.2017
          • 2517

          #5
          Es gab da schon mal hier jemanden der sich damit beschäftigt hat:
          https://www.loxforum.com/forum/faqs-...boter-mit-wlan

          So einfach scheint das aber wohl leider nur noch bei älteren Firmware-Versionen des E-Schafs zu gehen.

          Kommentar

          • LJSven
            Extension Master
            • 28.01.2016
            • 136

            #6
            Ich habe mich daran noch mal versucht, leider ohne Erfolg. Auslesen ist kein Problem - allerdings kann ich den Mäher nicht starten und stoppen. Das Protokoll habe ich mal mitgeschnitten. Was machen ich falsch?

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11217

              #7
              Kleine Korrektur von Svens Beitrag:
              In den Virtuellen Ausgang kommt: http://admin:WORX-PIN@IP-VOM-WORX
              In den Virtuellen Ausgangsbefehl kommt: Befehl bei EIN: /jsondata.cgi
              Und dann die POST-Daten, wie du sie eh schon korrekt hast.

              (Hab das Gerät nicht, aber so müsste POST funktionieren).
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • LJSven
                Extension Master
                • 28.01.2016
                • 136

                #8
                Zitat von Christian Fenzl
                Kleine Korrektur von Svens Beitrag:
                In den Virtuellen Ausgang kommt: http://admin:WORX-PIN@IP-VOM-WORX
                In den Virtuellen Ausgangsbefehl kommt: Befehl bei EIN: /jsondata.cgi
                Und dann die POST-Daten, wie du sie eh schon korrekt hast.

                (Hab das Gerät nicht, aber so müsste POST funktionieren).
                Ich weiß ehrlich gesagt nicht was ich falsch mache - kannst du mir das sagen?

                Kommentar

                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6292

                  #9
                  Christian Fenzl: Ja, stimmt, hatte den Block nicht mehr vor Augen.
                  LJSven : Ich hatte noch geschrieben, dass es sein kann, dass die Header mit übertragen werden müssen. Dann habe ich auch noch gesehen, dass Dein Ausgang nun startet und stoppt und Start und Stopp vertauscht sind. Bei Ein 11 und bei Aus 12 muss es sein. Du müsstest nach meine Infos:
                  "Accept: application/json\nContent-type: application/x-www-form-urlencoded\n[["settaggi",1X,1]]" als POST-Befehl stehen haben.
                  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

                    #10
                    Habe es mal so eingegeben - ohne Erfolg. Hast du den Mitschnitt gesehen? Was mache ich nur falsch?

                    Kommentar

                    • svethi
                      Lebende Foren Legende
                      • 25.08.2015
                      • 6292

                      #11
                      Also eigentlich ohne die Anführungszeichen.
                      Sorry, hab da auch zu viel rausgeschnitten
                      ​​​​​​​Accept: application/json\nContent-type: application/x-www-form-urlencoded\n\ndata=[["settaggi",1X,1]]

                      wenn das nicht klappt, kannst Du auch mal die anderen CR's probieren.
                      Accept: application/json\r\nContent-type: application/x-www-form-urlencoded\r\n\r\ndata=[["settaggi",1X,1]]

                      Und dann vllt nochmal ein Mitschnitt, aber mit dem Datenbereich
                      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

                        #12
                        Zitat von svethi
                        Also eigentlich ohne die Anführungszeichen.
                        Sorry, hab da auch zu viel rausgeschnitten
                        ​​​​​​​Accept: application/json\nContent-type: application/x-www-form-urlencoded\n\ndata=[["settaggi",1X,1]]

                        wenn das nicht klappt, kannst Du auch mal die anderen CR's probieren.
                        Accept: application/json\r\nContent-type: application/x-www-form-urlencoded\r\n\r\ndata=[["settaggi",1X,1]]

                        Und dann vllt nochmal ein Mitschnitt, aber mit dem Datenbereich
                        Ich habe beides versucht - leider ohne Erfolg. Was meinst du mit Datenbereich? Wenn ich das über den Miniserver aktiviere, oder über das Webinterface vom Roboter?

                        Kommentar

                        • hodojazi
                          Extension Master
                          • 03.10.2016
                          • 102

                          #13
                          LJSven ohne den Webservice des Roboters zu kennen würde ich versuchen:
                          1. Anführungszeichen am Anfang und Ende entfernen.
                          2. Accept und Content-Type bei "HTTP-Erweiterung..." rein.
                          3. data usw. muss beim Feld HTTP-Post-Befehl rein. Ob die Zeichenfolge "data=" da aber hingehört, bin ich mir nicht sicher.

                          Wenn das alles nicht hilft:
                          Poste ggf. mal einen Mitschnitt wenn du das auf der Webseite machst aus den Chrome oder Firefox Developer Tools. Bzw. habe gesehen du hast bereits ein Wireshark verwendet. Dann klicke das Paket mal mit der rechten Mousetaste an und wähle "Follow -> TCP Stream", dann siehst du die komplette Anfrage und Antwort. Daraus lässt sich der Befehl leicht bauen.

                          Habe mich auch schon mit Loxone geärgert, weil sie die Felder so ungeschickt benannt haben und in der Doku das nicht genauer beschreiben. Eine Katastrophe wird es, wenn du vom Eingang noch dynamische Werte aus Loxone darüber schicken möchtest...

                          Kommentar

                          • svethi
                            Lebende Foren Legende
                            • 25.08.2015
                            • 6292

                            #14
                            HTTP-Erweiterung sind die Header?? Okay, da muss man erst einmal drauf kommen. Bei Loxone ist halt alles anders :-)
                            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                            Kommentar

                            • svethi
                              Lebende Foren Legende
                              • 25.08.2015
                              • 6292

                              #15
                              Also ehrlich sehe ich das mit dem data= auch nicht. Allerdings wird dies ja so in einer angeblich funktionierenden Version so übergeben. Also auch gerne nochmal ohne das data= versuchen
                              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                              Kommentar

                              Lädt...