Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi und WLED Json/API

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

  • jonofe
    antwortet
    Zitat von saegefisch Beitrag anzeigen
    Für das Setzen von Werten braucht's POST. Oder ich habe die WLED-Anleitung falsch verstanden,
    Ganz ober steht doch

    Code:
    Example (AP): 192.168.4.1/win&A=255 sets the brightness to maximum
    Example (mdns): led.local/win&A=128&FX=0 sets the brightness to half and the effect to Solid
    Das sah für mich spontan nach HTTP-GET aus. Nicht?

    Wenn man per JSON ansteuert, dann ist HTTP-POST notwendig. So zumindest mein initiales Verständnis...
    Zuletzt geändert von jonofe; 11.11.2021, 19:23.

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    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.

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    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.

    Einen Kommentar schreiben:


  • marhal
    antwortet
    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

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    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...

    Einen Kommentar schreiben:


  • vento66
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    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?

    Einen Kommentar schreiben:


  • marhal
    antwortet
    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

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Bei mir geht das so in den Mosquitto LBS, ich setzt da keine Strings zusammen.

    Einen Kommentar schreiben:


  • marhal
    antwortet
    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

    Einen Kommentar schreiben:


  • marhal
    antwortet
    Hat sich erledigt habe es hinbekommen...

    Danke Vento

    Einen Kommentar schreiben:


  • vento66
    antwortet
    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}]}

    Einen Kommentar schreiben:


  • marhal
    antwortet
    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

    Einen Kommentar schreiben:


  • vento66
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X