Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi und WLED Json/API

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

    Edomi und WLED Json/API

    Hallo alle zusammen,

    ich wollte mal nachfragen ob ihr eine Idee habe. Ich habe mir ein WLED Band eingerichtet mit ESP8226 was auch super läuft. ich kann auch einfache Sachen über MQTT abfragen und senden. Aber ich würde halt gern die Json/APi nutzen worüber ich auch mehr Einstellungen fahren kann. Ich habe halt ein Beispiel gesehen wie jemand das über curl aufruft. Habt ihr eine Idee wie ich halt z.b mit einem Schalter in EDOMI halt solche Abfragen starten kann ?

    Gruß
    Marhal
    Zuletzt geändert von vento66; 11.11.2021, 15:11.

    #2
    MQTT nutz doch die JSOn API! Einfach die gleichen Befehle per MQTT versenden. Ansonsten über http getAbfragen (und die dann über ein iko auslösen)

    Code:
    http://10.0.0.95/win/&PL=51
    startet die Playlist 51

    Kommentar


      #3
      Hallo vento,

      ich hatte das halt versucht ...
      mosquitto_pub -u wled -P wled -h edomi.mylan.de -p 1883 -t "wled" '{"on":"t","v":true}' -H "Content-Type: application/json" -d
      Error: Unknown option '{"on":"t","v":true}'.

      aber er meint er kennt die Option nicht. Wo mache ich da den Denkfehler ?

      Gruß
      Marhal

      Kommentar


        #4
        Topic ist bei mir:

        Code:
        wled/buero/api
        Mein Payload schaut so aus

        Code:
        {"on":true}

        etwas komplexer:
        Code:
        {"on":true,"bri":255,"transition":7,"ps":7,"pl":-1,"nl":{"on":false,"dur":60,"mode":1,"tbri":0,"rem":-1},"udpn":{"send":false,"recv":false},"lor":0,"mainseg":1,"seg":[{"id":1,"start":36,"stop":108,"len":72,"grp":1,"spc":0,"of":0,"on":true,"bri":255,"col":[[255,255,255,255],[0,0,0,255],[0,0,0,0]],"fx":0,"sx":64,"ix":113,"pal":0,"sel":true,"rev":false,"mi":false}]}

        Kommentar


          #5
          Hat sich erledigt habe es hinbekommen...

          Danke Vento

          Kommentar


            #6
            vento66 Jetzt muss ich dich doch noch mal behelligen, meine Freude war doch nur von kurzer dauer. Magst du mir mal den ganzen mosquitto_pub string posten ? Den du benutzt ?

            Gruß
            Marhal

            Kommentar


              #7
              Bei mir geht das so in den Mosquitto LBS, ich setzt da keine Strings zusammen.

              Kommentar


                #8
                vento66 magst du mir den verraten wie du das in Edomi machst ? würdest mir da sehr helfen. Ich habe die MQTT Bausteine installiert und auch das video von VIMO angeschaut. Aber mehr fehlt irgendwie der letzte Rest.

                Gruß
                Marhal

                Kommentar


                  #9
                  Zufälligerweise bin ich just dieser Tage dabei, neben meinen fest installierten LEDs (zumeist DALI) auch mal ad-hoc/flexible LED-Lösungen besonders bei den Kindern integrieren zu wollen. Da ist's heute ein hinterleuchtes Startrek-Logo, morgen ein Paletten-Sofa mit Beleuchtung, usw. Da ich für eine RS232-Anbindung und andere Sensoren ESPhome probiert und recht begeistert war, nahm ich an, ich würde damit auch die LEDs lösen. Nun bin ich über diese Thread auf WLED gestoßen, gerade mal probiert und denke, dass es für LEDs die bessere Lösung ist. Eine sehr coole Lösung und wunderbar einfach. Danke für den Stubser auf WLED

                  WLED ist so einfach, dass man es wunderbar auch anderen empfehlen kann. Konkret Freunden, die zwar auch edomi haben, aber pur und so einfach wie möglich, also ohne MQTT oder anderes im Haus.

                  Frage: Welche non-MQTT-Optionen gibt es out-of-the-box in edomi, um WLED zu steuern? Vermutlich keine, die nächstbeste Option wäre wohl HTTP-POST-Lösung mit JSON, richtig? Edomi kann nur GET. Gibt es generische/möglichst einfache POST-Lösungen/LBS, die ich übersehen habe? Mit 19000933 weiß ich nicht, wie ich das JSON an die URL hänge, der 19001076 trifft es auch nicht.

                  Sollte es tatsächlich noch keine generische HTTP POST-Lösung geben? Hat vielleicht jemand schon einen LBS im Köcher, aber noch nicht veröffentlicht? Oder nutzen alle WLED nur via MQTT?

                  Kommentar


                    #10
                    Zitat von saegefisch Beitrag anzeigen
                    Hat vielleicht jemand schon einen LBS im Köcher, aber noch nicht veröffentlicht?
                    Hi Carsten,

                    Ich habe eine PHP Klasse für HomeConnect geschrieben, welche HTTP-GET, HTTP-POST, HTTP-PUT und HTTP-DELETE implementiert.
                    Ich könnte das übers Wochenende mal extrahieren und in einen generischen HTTP Request LBS packen.

                    Frage wäre nur, welche Optionen initial notwendig/sinnvoll wären?
                    (z.B. SSL, HEADERS: User-Agent, Content-Type, Accept, Authorization)

                    Falls das interessant wäre, einfach hier mal ein paar Ideen ausspeichern, welchen Ein-/Ausgänge so ein LBS haben sollte.

                    Zitat von saegefisch Beitrag anzeigen
                    Frage: Welche non-MQTT-Optionen gibt es out-of-the-box in edomi, um WLED zu steuern?
                    EDIT: Wenn ich es richtig verstanden habe, kann man viele Funktionen von WLED auch per HTTP-GET steuern, oder?
                    Zuletzt geändert von jonofe; 11.11.2021, 10:18.

                    Kommentar


                      #11
                      Ja, hab da auch einen rudimentären LBS, der Http Get und Strings für MQTT ausgibt. Der ist aber mangels Zeit in nächster Zeit auch sicher nicht zum DL verfügbar.

                      Kommentar


                        #12
                        Zitat von jonofe Beitrag anzeigen
                        EDIT: Wenn ich es richtig verstanden habe, kann man viele Funktionen von WLED auch per HTTP-GET steuern, oder?
                        Hi André,
                        GET funktioniert ja wunderbar OOTB, aber nach meinem Verständnis der API nur für das Abfragen von Informationen, also den aktuellen Status. Für das Setzen von Werten braucht's POST. Oder ich habe die WLED-Anleitung falsch verstanden, die Du ja auch verlinkt hast.

                        Erstaunlich, dass es da noch keinen Bedarf gab...vermutlich stecken die alle in spezifischen LBSen...für SMA habe ich da vor Jahren glaube ich sogar selber mal was gemacht... müsste mal schauen, aber es hat sich seit dem auch viel getan in edomi und PHP. Wenn Du daher "was auf der Pfanne hast", dann freut mich das. Aber mach' Dir wegen mir keine Arbeit.Vielleicht hast Du eine Code-Rumpf, den ich mir dann selber in einen generischen LBS bringen. Ganz sicher nicht in Deiner Code-Quali, aber als bemühter Laie...

                        POST mit JSON senden und JSON empfangen sollte - zumindest für diesen Zweck - reichen. Ich würde wohl wählen:
                        E1 = Trigger = entweder generisch (dann braucht es unbedingt eine Eingang für Content-Type) oder fix JSON request
                        E2 = URL
                        E3ff = ggf. weitere Optionen: Content-Type siehe E1, weitere nett, aber zumindest für WLED nicht erforderlich
                        E4 = Debug
                        A1 = response (was meist JSON sein dürfte und bei WLED auf jeden Fall)

                        Bei den Optionen könnte SSL für einen generischen Ansatz sinnvoll sein, aber WLED macht nur non-SSL und wäre für diesen Zweck daher nicht nötig.
                        genauso wie: connect-timeout? Cookie? Header? insecure-Flag (wenn SSL, dann auf jeden Fall sinnvoll),... beliebig ausbaubar...

                        Kommentar


                          #13
                          Hallo alle zusammen,

                          auch wenn ich nur Bahnhof verstehe finde ich euren Einsatz super. Vielleicht bekommt ihr ja zusammen ein WLED Baustein hin für LED. Ich bin mir sicher der Bedarf wird da sein. Ich hätte ihn auf jedenfalls.

                          Gruß
                          Marhal

                          Kommentar


                            #14
                            das wäre erst mal "nur" ein generischer HTTP-POST für die Nutzung der API - damit man überhaupt ohne MQTT Werte setzen kann.

                            Das WLED-spezifische und verzwicktere wird das Erzeugen eines zielführenden JSON sein. Da denk' ich dann mal drüber nach, ob es da etwas spezifisches braucht oder nicht schon genug generische JSON-LBS bereit stehen, um das sinnvoll zu nutzen. Oder ganz einfach - das wird mein erster Ansatz sein: Ein KO mit fertigem JSON und dann die paar veränderbaren Werte darin durch iKO als Variablen ersetzen. Per LBS 18000005 werden die dann zur Laufzeit ersetzen und befeuern den POST-LBS. Denn mal ehrlich: Es ergibt wenig Sinn, die WLED-App nach zu programmieren und in edomi jeden Effect und Segmente setzen zu können. Mein Ziel ist, die WLED-Strips in Szenen mitbenutzen zu können, also solid Farbe (ggf. Pallete) und Brightness und AN/AUS und gerne noch effect/preset aufrufen. Ende. Aber das Setzen der presets macht man besser mit der WLED-App. Daher ist der zu sendende JSON auch überschaubar komplex
                            Zuletzt geändert von saegefisch; 11.11.2021, 13:25.

                            Kommentar


                              #15
                              Vielleicht hilft es anderen, die WLED auch mal testen möchten: Ein erster Wurf, um das response-JSON von WLED in edomi nutzbar zu machen. So zunächst ist die Quelle HTTP-GET (edomi-Standard, hier mit URL "http://<WLED-IP>/json/state"), später dann auch die Antwort auf ein HTTP POST.
                              Damit kann man die 3 Farben des 1. Segments visualisieren und ein paar Parameter anzeigen (AN/AUS, Brightness, Effekt,...)
                              WLED.jpg

                              vento66 : Hi Micha, magst Du das Titelthema vielleicht um das Stichwort "WLED" ergänzen? Weil darum geht es ja seit Eröffnung hier. Danke!
                              Zuletzt geändert von saegefisch; 11.11.2021, 15:04.

                              Kommentar

                              Lädt...
                              X