Esp32 -> WLED

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Esp32 -> WLED

Inlägg av GeekJoan »

Finns ett program som man kan ladda upp bilder till och sen skicka direkt till "skärmen".
Pixel art converter: https://kno.wled.ge/features/pixel-art-converter/
Ser ut så här:
WLED-PixelArtConverter.png
Man klickar bara Send to device och så ploppar den upp på skärmen.
MEN, man får ju "coden" som beskriver bilden där direkt på sidan:
{"on":true,"bri":126,"seg":{"id":0,"i":[0,6,'00a650','00a550','00a74e','00a64e','00a54f',10,18,'00a650','00a54f','00a951','04a34e','129a5b','5e6831','f7f18d','f6e789','415b2b','03a251',27,33,'00a650','00a44e','319931','faf47c','18310c','fdf06e','fef46e','6d6837','171701','142e08','1c8052','00a845','05a052',45,49,'00a650','01a550','e8e482','f4f678','fef47f','fef46e','fff56f','fff56e','fff56f','fff56e','fef56e','fef36a','b3bd69','00a84c',62,65,'00a650','02a251','f8e87d','fdf56e','fef46e',69,75,'fff56f','fff46e','fef36e','f3f27d','04a44b',79,81,'00a650','199753','fcf26d','fff56e',84,93,'fff56f','fef46f','00a84c',95,97,'00a650','179a53','fbf470','fef274','fff46f',101,103,'fff56f','fef56b',104,106,'fef46e','fff46e','fdf46f','fef36c','fdf56c',110,112,'00a650','01a650','0ca453','f6ee8b','f4bfa4','fbf267','fbf66a','dbd688','a29c6c','aba762','6c693e','fbf46e','f9f6ad','f0bb9e','f8f669','02a352',127,129,'00a650','06a351','877c44','fabcaa','fae980','755f57','fdfcfc','f6fafa','fdfcfa','fcfcf9','d1b49d','e1b9a2','fabda5','faf277','01a44f',143,145,'00a650','00a34f','faec67','291615','f6beab','fdbfa7','857368','f4b9a7','e4b6a8','ecc2b1','f8bda8','795a51','b1ab6e','fbf779','00a64f',159,161,'00a650','00a54e','1b5d3a','e1aba5','f4c5bb','edc3b8','e2a998','50362f','492c25','fbbca3','554847','f3bfb1','1c3914','02a054','00a64f',175,178,'00a650','00a44f','0c3e1f','dddad7','b2b2b2','785c55','fdbca6','fdbca4','f8f7f8','d1d2d0','392823','07a357',189,195,'00a650','00a54f','514334','eae7e8','818181','bcbcbc','7b7b7b','f6f9f9','917a6c','15542f','01a44e',205,212,'00a650','00a44c','6f2b4f','ab8782','e7b9a9','d0ab9c','370c18','0e2e17','03a350',220,227,'00a650','00a64f','1a9955','91295e',230,233,'932b60','90285d','832553','02a853',236,240,'00a650','007438',241,243,'00a650','00a450','3a222f','932b60',246,250,'942c61','8b295c','248754','00a550',253,256,'00a650']}}

OK, så min fråga nu då. Hur skriver jag manuellt det som skickas när jag klickar på Send?
Jag vill ju kunna spara ner massa bilder i en fil och sen skicka dessa med tex fem sekunders mellanrum.
Har försökt läsa på om "curl -X POST" men det får jag inte att funka.
Har testat massa med /json/state, but noo.
Har sökt i koden, testat att "spela in" vad som händer när man klickar Send. Men för mig är det rappakalja.

Jag vill ju bara få till en länk som innehåller det som programmet skickar.
Typ http://192.168.1.35/{"on":true,"bri":12 ... {"id":0,"i":[0,6,'00a650','00a550 etc.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Det borde inte vara svårare än att spara ner den JSON du får från programmet i en fil och skicka det som en POST till ESPn:

curl -X POST "http://<WLED-IP>/json/state" -H "Content-Type: application/json" --data @data.json

Är det så du gjort utan att få det att fungera? Ger curl något felmeddelande?

EDIT: Ser att du försökt att lägga datat i URLn. Det lär inte fungera då dokumentationen säger POST (du försöker med GET).
simply
Inlägg: 530
Blev medlem: 19 januari 2006, 11:27:36
Ort: sthlm
Kontakt:

Re: Esp32 -> WLED

Inlägg av simply »

Om du väljer CURL istf. WLED JSON i Output Format, så får man ju en command line för att skicka data via CURL, fungerar inte det tro?

*spekulerar vilt när jag inte har tillgång till prylarna just nu*

//Andreas
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Jag testade och väljer man "curl" i menyn så får man en "oneliner" med datat (JSON) som argument till curl.

Typ samma sak som det jag skrev fast utan omvägen via en fil. Det funkar så länge man inte har några specialtecken i datat och datats storlek inte överskrider vad som kan hanteras på kommandoraden.

Men ja, det var ju en smidig feature.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Esp32 -> WLED

Inlägg av GeekJoan »

Helst vill jag inte ha ut det som curl eftersom jag inte vet hur jag exekverar dessa om jag inte öppnar typ powershell på en windows burk. Men någon här kanske vet?
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Svaret är att det nog inte går så som du vill (att bara klistra in en URL i en browser), i.a.f. inte enligt dokumentationen för WLED. När du anger saker i URLn så kommer datat skickas med metoden GET. WLED vill ha datat med metoden POST (det vanligaste när datat är större än några tecken).

curl är go-to applikationen för att lösa sånt här om man inte vill skriva en egen applikation. Och en egen applikation använder inte sällan curl den också :)

Förklara lite utförligare vad du vill göra så blir det lättare att komma på en lösning.

EDIT: Ser att du vill skicka något var femte sekund (automatiskt antar jag). Då är väl ett skript som använder curl ett av de enklaste sätten.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Esp32 -> WLED

Inlägg av GeekJoan »

Jo, det är möjligt att curl är lösningen. Men jag vet inte hur det funkar. Kan en vanlig webserver skicka curl's från ett script? Eller om jag sätter upp en hallon pi?
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Alltså, du kan (förenklat) tänka på curl som en textbaserad HTTP-klient (webläsare) som kan skriptas att köras utan mänsklig interaktion. Så om webservern kan exekvera ett skript, och curl finns installerat och tillgängligt för det skriptet så ja, då kan webservern göra det.

Och självklart kan curl användas på en raspberry.

Men jag saknar fortfarande en tydligare beskrivning av vad du vill uppnå. Jag tror nog att jag kan hjälpa dig, om jag bara fattar exakt vad du vill göra :)
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Esp32 -> WLED

Inlägg av GeekJoan »

OK, jag har byggt en 16x16 matris som jag kör via en ESP32 och WLED. Allt funkar som det ska.
Med "Pixel art converter programmet" som egentligen bara är en websida som ligger lokalt på min dator så kan jag ladda in bilder så konverterar sidan om det till 16x16 bilder och spottar ur sig "koden" för bilden. Där finns även en knapp SEND TO DEVICE. Klickar man på den så skickar den över filen till EPS'n och visar bilden.
Nu vill jag ha en textfil/script med hundratals bilder i kodform som sen skickas till EPS'n med jämna mellanrum eller om det är en animering så skickar den 20 såna textsträngar en efter en.
m3.jpg
Om jag ber Pixel art converter om en CURL "fil" och stoppar in den i tex Windows PowerShell som ska klara CURL så får jag felmeddelande:
m4.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
rvl
Inlägg: 7257
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Esp32 -> WLED

Inlägg av rvl »

Vad jag minns så är windows curl inte riktig curl och har därför egenheter.
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Korrekt, i powershell är curl bara ett alias till något windowskommando som saknar saker som curl har. Idioti.

Testa att skriva curl.exe istället för det finns faktiskt ofta installerat från början i windows.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Esp32 -> WLED

Inlägg av GeekJoan »

Nu försökte den i alla fall, MEN:

curl.exe
{"error":9}curl: (3) unmatched close brace/bracket in URL position 1449:
00a650,00a550,00a74e,00a64e,00a54f,10,18,00a650,00

Hittade en video på ett annat "program"

Det är också bara en websida: https://github.com/mvaneijgen/wled-draw ... thing.html
Så någonstans i koden så skickas ju informationen om vad jag ritar.
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Jag tror att curl försöker tolka strängen istället för att bara skicka den "as is". Testa att slå av det med "-g"

EDIT: Eller så är det ngt med powershell (jag är inte så kunnig på dess egenheter) som påverkar strängen. Testa att spara ner JSON-datat till en fil och skicka som jag skrev tidigare i tråden med @-tecken för att läsa en fil istället för sträng.

Den där websidan du länkar till använder javascript för att göra en POST till angiven adress. Du kan se koden i "source" i webläsaren. Men det hjälper dig nog inte mer än curl om du vill skripta detta.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11429
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Esp32 -> WLED

Inlägg av GeekJoan »

Tror faktiskt jag kommit på hur jag kan göra men det är inte som jag vill göra.
Jag kan ta "koden" och peta in det i Wled där man gör en ny "preset", då kan man stoppa in "kod" i ett API fält.
Detta gör att filerna sparas på ESP'n och jag har inte samma kontroll om jag vill göra animeringar.
RoAd
Inlägg: 447
Blev medlem: 5 september 2024, 22:51:49

Re: Esp32 -> WLED

Inlägg av RoAd »

Det låter som en dålig lösning. Det finns inte så mycket minne i en ESP så du kommer bli begränsad av hur många bilder du kan lägga in i binären. Dessutom måste du bygga om den varje gång du vill lägga till en ny bild.

Varför ger du upp med curl? Det lär inte vara så långt ifrån att få det att fungera. Hade du använt linux är jag ganska säker på att det redan gjort det.

Har du testat de två sakerna jag föreslog tidigare? Fungerade inte något av det heller?
Skriv svar