Virtueller Ausgang HTML-Werte via PUT uebergeben

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • tholle
    MS Profi
    • 26.08.2015
    • 830

    #1

    Virtueller Ausgang HTML-Werte via PUT uebergeben

    Hi Leute,

    weiss jemand, wie man folgenden String als virtuellen Ausgang an eine HA-Bridge uebergeben kann?
    Code:
    http://loxberry:8088/api/konsole/lights/15/state -d '{"on":true}'
    Ich habe mal ein bisschen mit dem virtuellen Ausgang herumgespielt, aber klappt in keiner meiner Konstellationen.

    Im Terminal ohne Probleme.
    Code:
    curl -X PUT "http://loxberry:8088/api/konsole/lights/15/state" -d '{"on":true}'
    thx und Gruss,
    tholle

  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5161

    #2
    Hallo tholle,
    Schon mit
    Code:
    /api/konsole/lights/15/state -d '{"on":true}'
    in Befehl bei EIN versucht?
    lg Romildo

    Kommentar

    • tholle
      MS Profi
      • 26.08.2015
      • 830

      #3
      Hi Romildo,

      ja jetzt.
      Geht aber auch nicht.

      Noch eine Idee?
      Kann man ueberhaupt via virtuellem Ausgang fuer HTTP Werte uebergeben?

      Gruss,
      tholle

      Kommentar


      • romildo
        romildo kommentierte
        Kommentar bearbeiten
        Für die HA-Bridge gibt es im LoxWiki was.
        Ich habe keine und kann daher nicht konkret weiterhelfen.

        Werte übergeben kann man schon ich mach das sehr oft für Raspberry, ESP8266 und auch Homematic CCU2.

        Ich bin jetzt davon ausgegangen, dass Dein erster Code in #1 im Webbrowser eingegeben funktioniert.
        Liege ich da falsch? Funktioniert es, wenn Du die Eingabe im Webbrowser machst?
    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6320

      #4
      Das war doch auch erst Thema hier.
      -d bedeutet, dass die entsprechenden Werte, in dem Fall JSON per POST übergeben werden müssen. Also muss das Command das bis zum -d sein und nach dem -d das muss als POST Data übergeben werden
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar

      • tholle
        MS Profi
        • 26.08.2015
        • 830

        #5
        romildo, ich bin jetzt kein HTML-Experte, aber ich glaube, in einer Browser-URL kann man kein PUT uebergeben. Lediglich ein GET. Aber das ist eher Glauben als Wissen.
        In von der Konsole aus klappt der Befehlt mit curl. - Als direkter Browseraufruf nicht.

        svethi, habe ich schon versucht. Klappt so leider auch nicht.

        Gruss,
        tholle
        Zuletzt geändert von tholle; 23.07.2017, 17:40.

        Kommentar


        • tholle
          tholle kommentierte
          Kommentar bearbeiten
          Mit GET geht das an der HA-Bridge nicht. Dort muss es PUT sein. Via GET lassen sich keine Werte uebertragen.
          Ich glaube, ich schreibe mir ein keines Python-Skript, welches die GETs in PUTs konvertiert.

          Gibt es die Moeglichkeit per TCP "Freitext" zu uebertagen oder gehen nur Int-Werte?

        • svethi
          svethi kommentierte
          Kommentar bearbeiten
          Nee, Loxone sendet wahrscheinlich die POST-Daten so nicht, das muss sicher POST sein und bist Du sicher, dass das PUT ist und nicht POST? PUT wird Loxone gar nicht kennen. Curl sendet die Daten ja auch per POST und da sagtest Du, dass das geht.

        • romildo
          romildo kommentierte
          Kommentar bearbeiten
          In Loxone kann GET, PUT, POST, DELETE ausgewählt werden. Dies nur so am Rande
      • tholle
        MS Profi
        • 26.08.2015
        • 830

        #6
        Ja, ich bin mir zu 100% sicher, dass es PUT sein muss.

        Beispiel mit PUT:
        Code:
        tholle@tholles-MBP:~$ curl -X [I][B]PUT[/B][/I] "http://loxberry:8088/api/loxone/lights/15/state" -d '{"on":true}'
        Ergebnis: Testlampe geht an.
        Ausgabe:
        Code:
        [{"success":{"/lights/15/state/on":true}}]
        Beispiel mit POST:
        Code:
        tholle@tholles-MBP:~$ curl -X [I][B]POST[/B][/I] "http://loxberry:8088/api/loxone/lights/15/state" -d '{"on":true}'
        Ergebnis: Testlampe geht nicht an.
        Ausgabe:
        Code:
        {"success":{"username":"a9f1659022fe4998978b7d76f781be77"}}]
        Wie man sieht, wir bei POST etwas voellig Anderes gemacht.

        Ich habe uebrigens nirgends erwaehnt, dass es mit POST funktionert. Ich glaube, da verwechselst du etwas.

        Gruss,
        tholle

        Kommentar

        • svethi
          Lebende Foren Legende
          • 25.08.2015
          • 6320

          #7
          Sorry, hab grad nochmal hochgescrollt und gesehen dass das PUT da auch schon steht. Dann weiß ich grad auch nicht.
          Bei dem Wert steht ja POST Data bei Ein. Wenn es schon PUT kann, vielleicht kann es dann keine Daten bei PUT? Musst mal Loxone fragen.
          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

          Kommentar

          • bausi2k
            Smart Home'r
            • 01.02.2018
            • 94

            #8
            Hallo, ein altes Thema, dass mich auch gerade interessiert!
            Ich möchte eine ZigBee Steckdose schalten, die an eine Hue Bridge hängt und müsste dazu eigentlich nur {"on":true} ,mit eine PUT schicken, schaffe es aber leider nicht? PUT steht in der HUE Doku drinnen.
            tholle dürfte das selbe versucht haben vor 3 Jahren.
            Hast du es hinbekommen?

            Kommentar

            • svethi
              Lebende Foren Legende
              • 25.08.2015
              • 6320

              #9
              Du weißt aber schon, dass Du für die Kommunikation mit der HUE Bridge einen API Key benötigst?
              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

              Kommentar

              • bausi2k
                Smart Home'r
                • 01.02.2018
                • 94

                #10
                svethi natürlich! der API Key wird ja in der URL bereits mitgegeben. Hab das ganze ja schon mit Postman erfolgreich getestet. Das PicoC script das du geschrieben hast, macht ja auch nichts anderes als den Eingangswert zu nehmen und dann ein JSON zu bauen und an die HUE Bridge zu schicken.Verstehe mich nicht falsch, das Programm ist schon sehr genial mit den Umrechnungen der Farbe, ich will da deinen Aufwand und dein Hirnschmalz nicht schmäleren! Für eine "einfache" Anwendung wie das JSON zu schicken, sollte der MS ja ausreichen...
                Ich habe das PicoC Script im Einsatz, aber nur, falls die NAS nicht erreichbar ist, dort habe ich alles mittlerweile mit NodeRed umgesetzt, weil es schneller ist als der Gen1 MS. Aktuell verwende ich für die Steckdose jetzt das PicoC Script, weil ich nicht mehr genug Zeit hatte und einfach wollte, dass das Ding tut!

                Kommentar

                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6320

                  #11
                  Keine Ahnung wieso Du Dich da angegriffen fühlst. Du hast keine Screenshots geliefert und auch keine weitere Information. Woher sollen wir hier wissen, was Du bisher wie gemacht hast? Die Frage muss ja in dem Umfeld gestattet sein. Des Weiteren hast Du da wohl was durcheinander gebracht. Das HUE Script ist nicht von mir. Ich habe das mal für meine Zwecke erweitert aber ich möchte mich hier nicht mit fremden Federn schmücken.
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar

                  • bausi2k
                    Smart Home'r
                    • 01.02.2018
                    • 94

                    #12
                    svethi ich habe mich in keiner Weise angegriffen gefühlt und wollte auch meine Antwort nicht so wirken lassen. Tut mir leid, falls es so gewirkt hat. Ich kenn die HUE Api relativ gut mittlerweile und das mit dem Key war mir bewusst. :-)

                    Bezüglich des Virtuellen Ausgangs:

                    Ich habe versucht das JSON in der Zeile:
                    • HTTP Erweiterung bei EIN
                    • HTTP-POST Befehl bei EIN

                    zu schreiben. beides ohne Erfolg.

                    Die Adresse ist bereit "http://<ip hue bridge>/api/<username>/lights/<id>/state" somit reicht es ja, wenn ein JSON mit {"on":true} mitgeschickt wird. Leider bis dato ohne Erfolg. Ich habe auch die HTTP-Methode bei EIN auf PUT gestellt, wie es notwendig wäre(siehe Bild)

                    Das ganze habe ich auch bei AUS eingetragen.

                    Kommentar

                    • svethi
                      Lebende Foren Legende
                      • 25.08.2015
                      • 6320

                      #13
                      Man müsste mal sniffen was der Miniserver dann wirklich schickt. Dann weiß man vielleicht mehr
                      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                      Kommentar

                      • bausi2k
                        Smart Home'r
                        • 01.02.2018
                        • 94

                        #14
                        Ich habe konfiguriert, "HTTP Antwort speichern" beim Ausgang und den Pfad /user/common/innr.html aber die Datei wird nie geschrieben!
                        somit weiß ich auch nicht, welchen Fehler die API zurück gibt...

                        Ich werde mal schauen, was der WireShark heraus findet.

                        Kommentar

                        • Christian Fenzl
                          Lebende Foren Legende
                          • 31.08.2015
                          • 11238

                          #15
                          Probier das mal so wie hier, nur eben mit PUT statt POST.


                          Bei HTTP-Erweiterung Evt noch
                          Content-Type: application/json
                          dazunehmen.

                          Vielleicht auch wirklich mal mit curl ausprobieren, ob die API überhaupt so reagiert wie erhofft.

                          lg, Christian
                          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                          Kommentar

                          Lädt...