These are chat archives for esp8266/Arduino

5th
Jul 2015
probonopd
@probonopd
Jul 05 2015 08:46
@me-no-dev I get "REJECT: upnp:rootdevice" frequently - do you have an idea what that might be?
Me No Dev
@me-no-dev
Jul 05 2015 08:47
yeah
do not bother
those are just messages that we should not respond to
maye should change it to SKIP
probonopd
@probonopd
Jul 05 2015 08:47
not sure why the Hue app does not entirely like what I send yet
it starts communicating but then says it's disconnected
Me No Dev
@me-no-dev
Jul 05 2015 08:48
probably because you are sending static data
i imagine there ismore to it than what you are doing
probonopd
@probonopd
Jul 05 2015 08:49
what do you mean by that? sending timestamps etc?
Me No Dev
@me-no-dev
Jul 05 2015 08:49
yeah
probonopd
@probonopd
Jul 05 2015 08:49
argh.
Me No Dev
@me-no-dev
Jul 05 2015 08:49
they might also communicate on another level as well
probonopd
@probonopd
Jul 05 2015 08:49
i was hoping i could get the basics easily.
not according to the official api doc
actually it looks very straightforward
they encourage 3rd parties to "have fun", and write 3rd party apps. that is why it's well documented
i can't see "other channels" there
Me No Dev
@me-no-dev
Jul 05 2015 08:50
then maybe ssdp info should contain specific data
the profile that we send does not expose any services or capabilities
probonopd
@probonopd
Jul 05 2015 08:51
that might be why
Me No Dev
@me-no-dev
Jul 05 2015 08:51
it's the basic upnp profile
if you can grab what a real device actually sends maybe we can emulate it
probonopd
@probonopd
Jul 05 2015 08:51
let me investigate some more
btw, looks like i have to switch to a json library ;-)
micropet
@micropet
Jul 05 2015 08:53

Hello everybody.

I flashed on my Nodemcu DNS_SD_Arduino_OTA and could then invite a sketch over OTA. Good thing.!
What is the trick if I want to load another sketch?

Greetings Peter

@micropet do you have the OTA stuff in your sketch? Your sketch needs additional code if you want to OTA "from" it
basically you need to merge DNS_SD_Arduino_OTA into your sketch
micropet
@micropet
Jul 05 2015 08:55
yes, i have. ive loaded the sketch over ota, but only once.
oh, i think i have not the stuff in it
probonopd
@probonopd
Jul 05 2015 08:56
That's why then
@me-no-dev " If the responses contain “IpBridge”, it is considered to be a Hue bridge, and additional information can be retrieved"
micropet
@micropet
Jul 05 2015 08:56
where do i find somethink?
ok, will try it
probonopd
@probonopd
Jul 05 2015 08:58
@micropet I do not understand your question but you need to put in the stuff from DNS_SD_Arduino_OTA into your sketch
possibly (hopefully) that will not be necessary in the future
micropet
@micropet
Jul 05 2015 08:58
yes i understand
Me No Dev
@me-no-dev
Jul 05 2015 09:01
@micropet yup, all that will go in the core later, but is still work in progress
micropet
@micropet
Jul 05 2015 09:01
ok, thank you
Me No Dev
@me-no-dev
Jul 05 2015 09:01
with the latest things I did, I get success every time, except when I get lmac.c error which is realted to the wifi and nothing we can do about
yo should get the success in the IDE console
Starting on 0.0.0.0:48266
Upload size: 319792
Sending invitation to: 192.168.254.191
Waiting for device...

Uploading...............................................................................
Waiting for result...

Result: OK
@probonopd Access Denied
Sorry! You are not authorized to view this page.
probonopd
@probonopd
Jul 05 2015 09:05
possibly you need to sign up on http://www.developers.meethue.com - they don't ask 1000 questions and I couldn't find anything critical in their terms
Me No Dev
@me-no-dev
Jul 05 2015 09:05
or not :D
more garbage in my email
probonopd
@probonopd
Jul 05 2015 09:06
if you don't want i can send you the relevant info
Me No Dev
@me-no-dev
Jul 05 2015 09:06
do that
oops, reading that, i might have found what my mistake was
Me No Dev
@me-no-dev
Jul 05 2015 09:11
well there are some things that need to be changed in ssdp
for starters to be able to change the shema URL
then to also export the URLBase
icons are not important
but we will be able to support them when SPIFFS is done
probonopd
@probonopd
Jul 05 2015 09:13
" change the schema URL" is hat i meant yesterday ;-)
Me No Dev
@me-no-dev
Jul 05 2015 09:13
imme a sec
probonopd
@probonopd
Jul 05 2015 09:22
looks like it cares about getting the correct mac addresses in the resposes, too
micropet
@micropet
Jul 05 2015 09:40

OTA works now, even more than once.
I can turn over a MQTT message in the OTA mode.
Very good.

Here's the code:
http://plischka.at/Infos/esp_07_v028_NodeMCU_I2C_OTA.ino

Me No Dev
@me-no-dev
Jul 05 2015 09:41
@probonopd just pushed what's neede
look at the example now
added what was in the doc
@micropet where do you call do_ota?
and when do you check for OTA command
did not see those
your do_ota should e called in the setup()
and the check should be performed every loop
micropet
@micropet
Jul 05 2015 09:46
at this point:
if (msgtopic == "/ESP-07/in/ota")
{
intmsgReceived = (msgReceived.toInt()); // String nach int wandeln
    if (intmsgReceived == 1) {  
      SendMsg("/ESP-07/out/ota", "Trying OTA");
      do_ota(); 

    }
}
Me No Dev
@me-no-dev
Jul 05 2015 09:46
asI said
the do_ota is for setup()
have to be called once you have wifi up
then the while thing should be called every loop
probonopd
@probonopd
Jul 05 2015 09:47
@me-no-dev probably a stupid question but how am I supposed to install your library without pulling your whole >1GB repo?
i liked it better in the separate repo
Me No Dev
@me-no-dev
Jul 05 2015 09:47
@probonopd have you forked the main one?
@micropet
micropet
@micropet
Jul 05 2015 09:48
i call do_ota, before ich upload a new sketch
Me No Dev
@me-no-dev
Jul 05 2015 09:48
MDNS.begin(host);
    MDNS.addService("arduino", "tcp", aport);
    OTA.begin(aport);
    TelnetServer.begin();
    TelnetServer.setNoDelay(true);
put this in setup
probonopd
@probonopd
Jul 05 2015 09:48
not sure what you mean by that but me-no-dev/Arduino is very large when in fact i need only this tiny library
Me No Dev
@me-no-dev
Jul 05 2015 09:48
to be called ONLY once
micropet
@micropet
Jul 05 2015 09:49
ok
Me No Dev
@me-no-dev
Jul 05 2015 09:49
then the rest in function
probonopd
@probonopd
Jul 05 2015 09:49
@micropet here did you buy your esp module? the ones i have are either too little memory for ota (ESP-01) or seem to contain an unsupported flash chip(?) (ESP-12) wich gives me "cum err"
Me No Dev
@me-no-dev
Jul 05 2015 09:49
void check_ota(){
if (OTA.parsePacket()) {
    IPAddress remote = OTA.remoteIP();
    int cmd  = OTA.parseInt();
    int port = OTA.parseInt();
    int size   = OTA.parseInt();

    Serial.print("Update Start: ip:");
    Serial.print(remote);
    Serial.printf(", port:%d, size:%d\n", port, size);
    uint32_t startTime = millis();

    WiFiUDP::stopAll();

    if(!Update.begin(size)){
      Serial.println("Update Begin Error");
      return;
    }

    WiFiClient client;
    if (client.connect(remote, port)) {

      Serial.setDebugOutput(true);
      while(!Update.isFinished()) Update.write(client);
      Serial.setDebugOutput(false);

      if(Update.end()){
        client.println("OK");
        Serial.printf("Update Success: %u\nRebooting...\n", millis() - startTime);
        ESP.restart();
      } else {
        Update.printError(client);
        Update.printError(Serial);
      }
    } else {
      Serial.printf("Connect Failed: %u\n", millis() - startTime);
    }
  }
  //IDE Monitor (connected to Serial)
  if (TelnetServer.hasClient()){
    if (!Telnet || !Telnet.connected()){
      if(Telnet) Telnet.stop();
      Telnet = TelnetServer.available();
    } else {
      WiFiClient toKill = TelnetServer.available();
      toKill.stop();
    }
  }
  if (Telnet && Telnet.connected() && Telnet.available()){
    while(Telnet.available())
      Serial.write(Telnet.read());
  }
  if(Serial.available()){
    size_t len = Serial.available();
    uint8_t * sbuf = (uint8_t *)malloc(len);
    Serial.readBytes(sbuf, len);
    if (Telnet && Telnet.connected()){
      Telnet.write((uint8_t *)sbuf, len);
      yield();
    }
    free(sbuf);
  }
  delay(1);
}
call that method in the loop
it will only trigger if there is a OTA request
with your code, you will miss it
probonopd
@probonopd
Jul 05 2015 09:50
@me-no-dev i think there is a typo, "_shemaURL" should probably be "_schemaURL"
but it's commented out anyway ;-)
micropet
@micropet
Jul 05 2015 09:51
will try it. The module are from here:
Me No Dev
@me-no-dev
Jul 05 2015 09:52
the module does not matter in this case
it's just how OTA works
probonopd
@probonopd
Jul 05 2015 09:52
ota needs 4M flash, right?
Me No Dev
@me-no-dev
Jul 05 2015 09:52
you call that in the begin to advertise the service
then check if you ghave request
OTA needs 1MB flash
probonopd
@probonopd
Jul 05 2015 09:53
ESP-01 has 512k, right?
Me No Dev
@me-no-dev
Jul 05 2015 09:53
do not remember on top of my head
probonopd
@probonopd
Jul 05 2015 09:54
anyway, my ESP-12 gives "csum err". stupid. reading out the contents of the flash shows no difference to what i have flashed though.
so i'm using ESP-01 for now
Me No Dev
@me-no-dev
Jul 05 2015 09:54
if you did not get ALL of my changes you will get screwed by eboot
i fixed that but it's an elf file
probonopd
@probonopd
Jul 05 2015 09:55
@me-no-dev you should offer an url for the Boards Manager
so that we can get the latest version all the time
Me No Dev
@me-no-dev
Jul 05 2015 09:55
why?
@igrr will pull it when he's online and will go to all
probonopd
@probonopd
Jul 05 2015 09:55
that's cool but his Boards Manager URL is not updated very frequently
Me No Dev
@me-no-dev
Jul 05 2015 09:56
there is a staging one that has the latest things usually
probonopd
@probonopd
Jul 05 2015 09:56
i think i am using that
Me No Dev
@me-no-dev
Jul 05 2015 09:56
also people fork it to be able to pull things from other forks like mine
i pulled @Links2004 changes yesterday
but you need to rebuild the IDE and so on
probonopd
@probonopd
Jul 05 2015 09:57
that's a bit much for me now ;)
Me No Dev
@me-no-dev
Jul 05 2015 09:57
since I changed things there as well
probonopd
@probonopd
Jul 05 2015 09:57
try to push them to arduino.cc
Me No Dev
@me-no-dev
Jul 05 2015 09:57
sure, it's not easy, but it's how it's done :)
probonopd
@probonopd
Jul 05 2015 09:57
they accept esp related PRs
e.g., they accepted a new serial baud rate especially for us :)
Me No Dev
@me-no-dev
Jul 05 2015 09:58
that is minor change
probonopd
@probonopd
Jul 05 2015 09:58
it's in their nightlies
Me No Dev
@me-no-dev
Jul 05 2015 09:58
I did way more than that and I need this tested well before senfing PR
probonopd
@probonopd
Jul 05 2015 09:58
next thing i would like to see is disabling dtr/rts in the arduino.cc ide
Me No Dev
@me-no-dev
Jul 05 2015 09:59
just unplug the leads :D
probonopd
@probonopd
Jul 05 2015 09:59
so what you are saying then is that you need perople testing your ide, and for that it'd be cool to have nightly bulds?
i had set up automated builds for igrr's ide some time back
probably i could change this to build yours instead
Me No Dev
@me-no-dev
Jul 05 2015 09:59
as I said, those changes will get into the main esp8266 arduino repo
no need to pull mine
patience is required
probonopd
@probonopd
Jul 05 2015 10:00
then igrr confused me because he writes that the Boards Manager is the new way to consume his repo -)
which means i will never see the ide changes
Me No Dev
@me-no-dev
Jul 05 2015 10:01
let's just say that OTA uploads will not be automated yet, and the Monitor console will not work with mainstream IDE
once the network upload makes it into esptool, then the IDE will upload where it needs to
probonopd
@probonopd
Jul 05 2015 10:01
anyway, here is my travis-ci.org build automation https://github.com/probonopd/arduino-esp8266/blob/master/.travis.yml
Me No Dev
@me-no-dev
Jul 05 2015 10:02
my changes make things more generic and offer other boards to implement OTA
probonopd
@probonopd
Jul 05 2015 10:02
wow @me-no-dev that will rock
Me No Dev
@me-no-dev
Jul 05 2015 10:05
we can also move all that functionality to tools that will show in the menu, but it will suck for people not have to hit different buttons that the usual ones for upload and monitor
also the IDE communcates with the advertised port, so it can be changed to something other than 8266
and there is a way to implement security for uploading and console, so people can't go around flashing ESPs in the open
probonopd
@probonopd
Jul 05 2015 10:10
is there a way for just the payload of the sketch being uploaded rather than the entire esp firmware?
Me No Dev
@me-no-dev
Jul 05 2015 10:10
not yet
probonopd
@probonopd
Jul 05 2015 10:10
like write only certain blocks
best would be to have 2 "slots" for firmwares (old and new)
Me No Dev
@me-no-dev
Jul 05 2015 10:10
not really
have such setup working
it requires different linkers and so on
probonopd
@probonopd
Jul 05 2015 10:11
btw, I have put up https://gist.github.com/probonopd/48d45f7ebc6db3da77c6 because I think it's allowed by the Terms :-)
ouch
Me No Dev
@me-no-dev
Jul 05 2015 10:12
i see a point in it only if I want to store let's say 6 different sketched and switch between
probonopd
@probonopd
Jul 05 2015 10:12
2 sketches: before and after the OTA
Me No Dev
@me-no-dev
Jul 05 2015 10:12
and I have a use case for that :D
probonopd
@probonopd
Jul 05 2015 10:12
if the OTA goes bad, then the old is booted
Me No Dev
@me-no-dev
Jul 05 2015 10:13
if OTA goes bad, eboot will not copy it so it will boot the old one anyway
probonopd
@probonopd
Jul 05 2015 10:13
ah, even better!
Me No Dev
@me-no-dev
Jul 05 2015 10:13
it is the current state
probonopd
@probonopd
Jul 05 2015 10:14
this will rock so badly :-)
Me No Dev
@me-no-dev
Jul 05 2015 10:14
only on all success ,the OTA writes to tell eboot to reflash
as I said I have a fool proof OTA running here
only sometimes espressif hickups with lmac
probonopd
@probonopd
Jul 05 2015 10:15
what is an easy way to get the IP and MAC addresses into Arduino Strings?
(i'd love to see that abstracted away by the lib for "the rest of us")
Me No Dev
@me-no-dev
Jul 05 2015 10:16
// print your ESP8266 IP address:
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());

  // print your MAC address:
  Serial.print("MAC address: ");
  Serial.println(WiFi.macAddress());
actually IP is not but...
MAC is
probonopd
@probonopd
Jul 05 2015 10:16
i need String ipString=
fiddling with this sort of conversion is hard for people who are not used to C
Me No Dev
@me-no-dev
Jul 05 2015 10:17
String mac = WiFi.macAddress();
oops
String(WiFi.macAddress())
IP has many ways to be converted
convert it to char
first
people shopuld need the IP in string for only to print it to something
and Print prints IPs
why would you store it in a string?
probonopd
@probonopd
Jul 05 2015 10:20
to combine it with the String that hilds my json
holds
Me No Dev
@me-no-dev
Jul 05 2015 10:21
you should look at the SSDP lib
see how it's done there
I push the whole response at once, so only one packet goes out
probonopd
@probonopd
Jul 05 2015 10:22
yes i know and i have done it before, but my point is it'd be cool if the lib could have a macString() function or something easy like that
ahm, i mean IP not MAC
MAC is easy enough the way you explained it
Me No Dev
@me-no-dev
Jul 05 2015 10:27
extern "C" {
#include "ip_addr.h"
}
char ipChars[16];
os_sprintf(ipChars, IPSTR, IP2STR(WiFi.localIP()));
String ipString = String(ipChars);
probonopd
@probonopd
Jul 05 2015 10:30
could it be made so that ipString = String(WiFi.localIP());"just works"?
thanks @me-no-dev
Me No Dev
@me-no-dev
Jul 05 2015 10:39
i do not know how good of idea is String to extend Print
but if done, you can just print it into the string
probonopd
@probonopd
Jul 05 2015 10:40
I guess that'd be what I'd be looking for ;)
probonopd
@probonopd
Jul 05 2015 12:46
how do I handle PUT requests, i.e., how do I get the BODY of the request?
Me No Dev
@me-no-dev
Jul 05 2015 13:14
PUT request is like POST request
you get it like you get any other
is it a file?
probonopd
@probonopd
Jul 05 2015 13:31
sorry, I actually meant a POST request. But the data in the POST is a JSON
Me No Dev
@me-no-dev
Jul 05 2015 13:34
if it's a plain json in the post body, you might not be ale to get it
i don't think i put parsing of such content
else it will show as any other passed parameter....
probonopd
@probonopd
Jul 05 2015 13:35
damn, that's how hue apps communicate
Me No Dev
@me-no-dev
Jul 05 2015 13:35
did you check to see what is parsed?
probonopd
@probonopd
Jul 05 2015 13:37
how?
Me No Dev
@me-no-dev
Jul 05 2015 13:37
go read the WiFi server class
probonopd
@probonopd
Jul 05 2015 13:38
afair I gan get parameters, but this is not a "parameter" right?
Me No Dev
@me-no-dev
Jul 05 2015 13:46
just go through and see if it is parset mate
you can list what params are parsed
call it arguments for the sake of clarity
probonopd
@probonopd
Jul 05 2015 13:50
i mean, usually there is ?foo=bar. But here is no "foo" so how do i get at the "bar"?
Me No Dev
@me-no-dev
Jul 05 2015 13:50
what you describe is GET arguments
they are in the URL not in the request body
probonopd
@probonopd
Jul 05 2015 13:51
ok,i will read up :-)
Me No Dev
@me-no-dev
Jul 05 2015 13:51
you could have checked by now :P
probonopd
@probonopd
Jul 05 2015 13:51
thought GET and POST work similar in that regard
Me No Dev
@me-no-dev
Jul 05 2015 13:53
for (uint8_t i=0; i<server.args();i++) Serial.printf("ARG[%u]: %s=%s\n", i, server.argName(i), server.arg(i));
probonopd
@probonopd
Jul 05 2015 16:55
@me-no-dev I don't seem to get the data
I had a similar situation here https://github.com/probonopd/ProntoHex/blob/master/examples/IRServer/IRServer.ino and did without the HTTP Server but for more complex cases (like the one I am working on now) I'd really like something using the HTTP Server
Btw, the Hue app is now successfully talking to my sketch :)
Me No Dev
@me-no-dev
Jul 05 2015 16:57
yeah i need to figure out the best way to detect JSON data in the plain post body and keep it
will do
probonopd
@probonopd
Jul 05 2015 16:59
no need to do fancy detection, just give a way to access the body/data of the request
Me No Dev
@me-no-dev
Jul 05 2015 16:59
not that simple ;) we do not keep that data
probonopd
@probonopd
Jul 05 2015 16:59
uh
Me No Dev
@me-no-dev
Jul 05 2015 17:00
don't "uh" this is MCU after all
not a computer
:D
probonopd
@probonopd
Jul 05 2015 17:01
If you haven't realized so far, I'm coming from the Python side of things. But I realize at least that what you are saying is entirely correct, even though I haven't adopted to this style of coding yet :-)
Me No Dev
@me-no-dev
Jul 05 2015 17:02
yeah, here bytes matter, microseconds too :)
probonopd
@probonopd
Jul 05 2015 17:02
indeed
Me No Dev
@me-no-dev
Jul 05 2015 17:02
what is possibe is to detect the plain post json data and stream it in
maybe the whole data if it's not much
else better use upload to take care of that
can you post sample json POST request?
probonopd
@probonopd
Jul 05 2015 17:03
possibly it would make sense to have the sketch pass it to the ArduinoJson library
sure
    "hue": 50000,
    "on": true,
    "bri": 200
}
oops
Me No Dev
@me-no-dev
Jul 05 2015 17:04
yeah that will be fine in a single shot
probonopd
@probonopd
Jul 05 2015 17:04
{
    "hue": 50000,
    "on": true,
    "bri": 200
}
Are you familiar with the https://github.com/bblanchon/ArduinoJson library?
Me No Dev
@me-no-dev
Jul 05 2015 17:07
define familiar
had a look at it recently because a user had a problem with it
but it was a user problem so the lib works
probonopd
@probonopd
Jul 05 2015 17:08
I have a question there, bblanchon/ArduinoJson#85
Me No Dev
@me-no-dev
Jul 05 2015 17:13
try this and see if you get the json
me-no-dev/Arduino@4f0a047
you should read what authors post and the header file at least before posting such questions ;)
i cought you a few times today to do the same here
read those files, ask when you can not find anything
probonopd
@probonopd
Jul 05 2015 17:16
ok let me figure it out at my own :)
Me No Dev
@me-no-dev
Jul 05 2015 17:16
there are tons of examples and comments
with the change above, json should come as server.arg("plain")
probonopd
@probonopd
Jul 05 2015 17:18
trying it now
Me No Dev
@me-no-dev
Jul 05 2015 17:23
change line to
if(bodyLine.startsWith("{") || bodyLine.startsWith("[") || bodyLine.indexOf('=') == -1)
startsWith complains for double quotes
probonopd
@probonopd
Jul 05 2015 17:27
server.arg("plain") with server being a ESP8266WebServer instance, right?
Me No Dev
@me-no-dev
Jul 05 2015 17:27
just print all arguments like above mate
for (uint8_t i=0; i<server.args();i++) Serial.printf("ARG[%u]: %s=%s\n", i, server.argName(i), server.arg(i));
probonopd
@probonopd
Jul 05 2015 17:31
cannot pass objects of non-trivially-copyable type 'class String' through '...' so I changed it to for (uint8_t i=0; i<HTTP.args();i++) Serial.printf("ARG[%u]: %s=%s\n", i, HTTP.argName(i).c_str(), HTTP.arg(i).c_str());
I hope the .c_str()doesn't hurt
Me No Dev
@me-no-dev
Jul 05 2015 17:32
no, it's actually needed
i just don't use Strings so i'm not used to dealing with c_str()
probonopd
@probonopd
Jul 05 2015 17:42
It does not seem to work for me, I have made a little demo sketch:
Me No Dev
@me-no-dev
Jul 05 2015 17:45
well... for starters in handleRoot, you should server.send at the end not beginning
and then you are not even looking for post...
or is it accepting it?
yeah it will take it
so server.send after you print the arguments
probonopd
@probonopd
Jul 05 2015 18:02
i thought doing server.send beforehand speeds up response times. i've put it to the end now
and i've changed to server.on("/", HTTP_POST, handleRoot);
but it's not working for me
server.on("/", HTTP_POST, [](){ handleRoot(); });makes no difference either
Me No Dev
@me-no-dev
Jul 05 2015 18:18
i'm missing a char in the update
me-no-dev/Arduino@d4894b1
ARG[1]: plain={'something':123}
probonopd
@probonopd
Jul 05 2015 18:23
yes! it's working :-)
Thank you. Probably it would help people to have this included in a sample sketch.
Me No Dev
@me-no-dev
Jul 05 2015 18:24
no need
it will "just work"
probonopd
@probonopd
Jul 05 2015 18:25
OK :-)
you made my day
Me No Dev
@me-no-dev
Jul 05 2015 18:26
:D
if chicks were that easy...
now finish your app and show what you've made
i want to see it working
probonopd
@probonopd
Jul 05 2015 18:29
me too :-)
do you have a strip of neopixels?
Me No Dev
@me-no-dev
Jul 05 2015 18:40
i have a few "pixels"
probonopd
@probonopd
Jul 05 2015 19:41
yay! I can switch on and off 3 pixels now using the Hue app :-)
Me No Dev
@me-no-dev
Jul 05 2015 20:34
good work
probonopd
@probonopd
Jul 05 2015 20:54
for colors etc. to work i need t save the state (brightness, hue,...) of each pixel. not sure yet what the best approach for that will be. Was thinking of a pixel class but it might be overkill
i mean "keep track of" not "save"
Michael Miller
@Makuna
Jul 05 2015 22:20
Are you talking about the jsn format to send the pixel data?
probonopd
@probonopd
Jul 05 2015 22:22
Hi Makuna. In case you haven't been following this thread, I am implementing a Hue emulator using an ESP8266 and WS2812b pixels. I have it working to the point that the Hue app can switch on and off pixels.
The app communicates with the emulated bridge via JSON
with each response, the real bridge sends information about the state (e.g., on/off) of each pixel; so I have to emulate that too