Ankündigung

Einklappen
Keine Ankündigung bisher.

Antwort mit Network-Plugin senden

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

    Antwort mit Network-Plugin senden

    Hallo,

    ich versuche gerade über Tasker (http get) eine Logik zu triggern, was auch mit dem Network-Plugin funktioniert. Jetzt soll zusätzlich auf die http-Anfrage eine Antwort (im Prinzip der "Inhalt der Seite") gesendet werden (z.B. "Licht wurde eingeschaltet") um die Antwort ebenfalls mit Tasker auszuwerten.

    Ist so etwas mit dem Network-Plugin möglich, in der Anleitung steht nichts dies bezüglich?

    #2
    Hi,

    das geht nicht. Das Plugin gibt ein HTTP-Status von 200 an wen es klappt und 400 wenn es ein Problem gibt.

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo Markus,

      danke für die Antwort.

      Ich möchte noch nach Fragen:

      Vorweg die Erläuterung meines Vorhabens: Ich habe mir eine Logik erstellt die relativ fehlertolerant und automatisch Sprachbefehle über mein Android-Smartphone entgegen nimmt (d.h. Tasker sendet mit http get den gesprochenen Satz, z.B. Licht in der Küche einschalten), das Netzwerk-Plugin triggert meine Logik und übergibt den Satz. Die Logik wertet den Satz/Befehl aus und setzt das entsprechende Item. Mit sh.nw.udp wird eine Antwort an das Smartphone zurück gesendet (App: UDP Test Tool) und per Sprachausgabe ausgegeben. Das alles funktioniert besser als erwartet.

      Mein Ziel ist es das "UDP Test Tool" raus zu haben, ich möchte vorzugshalber das NW-Plugin für mich so abändern, dass nicht nur "HTTP/1.1 200 OK\r\n\r\n" gesendet wird sondern so erweitert: "HTTP/1.1 200 OK\r\n\r\nContent-Type: text/plain \r\n "+varAnswer+"\r\n\r\n" (wobei varAnswer = die generierte Antwort von der Logik)

      Zusätzlich muss ein Timeout laufen, d.h. wird varAnswer nicht innerhalb von z.B. maximal 10 Sekunden erzeugt, dann wird nur 200 OK gesendet ansonsten 200 OK mit Content und die Verbindung geschlossen.

      Meine Frage ist jetzt, wie bekomme ich am elegantesten die generierte Antwort aus meiner Logik in das Plugin und wie realisiere ich am Besten den Timeout?
      Wobei ich gestehen muss, dass ich den Aufbau der Plugins noch nicht richtig verstanden habe, insbesondere im Zusammenspiel mit dem Update von Items oder durch Logiken. Wenn jemand eine Idee hat oder mir auf die Sprünge hilft, wäre das sehr nett.

      Die Befehlserkennungslogik veröffentliche ich später noch, ich muss aber noch eine Erläuterung schreiben (insbesondere zur Konfiguration von Tasker).

      Kommentar


        #4
        Hallo,

        das klingt ja super. Ich halte schon das Smartphone in der Hand, um es möglichst bald auszuprobieren. Ich freue mich auf die Anleitung.

        Danke !

        Michel

        Kommentar


          #5
          Hallo Axel,

          verwerfe besser den Gedanken das NW-Plugin anzupassen.

          Das Plugin, besser gesagt kein Plugin, ruft eine Logik direkt auf. Es regt lediglich die Ausführung der Logik, mit ein paar Parametern, an.

          Die Logik läuft dann in einem anderen Thread. Du müsstest hier eine Kommunikation zwischen den beiden Threads aufbauen.

          Du musst auch darauf achten, das das NW-Plugin nicht an einer Stelle steht und auf etwas wartet (z.B. mit time.sleep), sonst steht die gesamte Netzwerkkommunikation von SH.py und nicht nur die des Plugins.

          Man kann es bestimmt programmieren, das ist jedoch etwas aufwändiger.

          Bis bald

          Marcus

          Kommentar


            #6
            Hallo Markus,

            danke für die Rückmeldung, dachte ich mir schon fast. Dann bleibe ich bei meiner jetzigen Lösung, funktioniert auch ganz brauchbar.

            Gruß Axel

            Kommentar


              #7
              Das gehört zwar nicht mehr zur Ausgangsfrage, aber ich hab folgendes Problem:

              Ich bin gerade dabei ein Spracherkennungs-Plugin zu erstellen, welches auf dem network-Plugin basiert und eine Rückmeldung generiert.

              Eine erste Version funktioniert sehr gut, aber ich bekomme es nicht hin den Wert eines Items abzufragen, sprich ich benötige sowas wie bei den Logiken "sh.return_item('eg.kueche.temperatur')", damit ich anschließend den Wert erhalte.

              Das scheint einfach, ist es vermutlich auch, aber ich sehe die Lösung nicht :-(

              In anderen Plugins kommt der Fall vor, dass die Änderung des Items das Plugin "triggert", so ist es in diesem Fall nicht...
              Im Anhang die sehr frühe Version des Plugins, ab Zeile 218 ist der Fall wo ich den Wert des Items benötige.

              Es wäre nett wenn mir jemand auf die Sprünge hilft...
              Angehängte Dateien

              Kommentar


                #8
                Hi,

                Du musst dem ParseText eine Referenz auf sh übergeben. Die meisten Plugins verwenden dafür self._sh als lokale Referenz.

                Und dann kannst Du self._sh.return_item('eg.kueche.temperatur') verwenden.

                Bis bald

                Marcus

                Kommentar


                  #9
                  Danke so funktioniert es ... Manchmal sieht man den Wald vor lauter Bäumen nicht...

                  Kommentar

                  Lädt...
                  X