Change Websocket led control to control variables

I’m working on a wifi-controlable-drone and I can’t figure out how I can change a websocket led control sketch to control 3 variables between 0 and 1000.
I’m new to all of this all help is appreciated.
Sources: A Beginner's Guide to the ESP8266
GitHub - Links2004/arduinoWebSockets: arduinoWebSockets

here is the sketch I’m using:
/*

  • WebSocketServer_LEDcontrol.ino
  • Created on: 26.11.2015

*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <WebSocketsServer.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <Hash.h>

#define LED_RED 15
#define LED_GREEN 12
#define LED_BLUE 13

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

ESP8266WebServer server = ESP8266WebServer(80);
WebSocketsServer webSocket = WebSocketsServer(81);

void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {

switch(type) {
case WStype_DISCONNECTED:
USE_SERIAL.printf("[%u] Disconnected!\n", num);
break;
case WStype_CONNECTED: {
IPAddress ip = webSocket.remoteIP(num);
USE_SERIAL.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);

// send message to client
webSocket.sendTXT(num, “Connected”);
}
break;
case WStype_TEXT:
USE_SERIAL.printf("[%u] get Text: %s\n", num, payload);

if(payload[0] == ‘#’) {
// we get RGB data

// decode rgb data
uint32_t rgb = (uint32_t) strtol((const char *) &payload[1], NULL, 16);

analogWrite(LED_RED, ((rgb >> 16) & 0xFF));
analogWrite(LED_GREEN, ((rgb >> 8) & 0xFF));
analogWrite(LED_BLUE, ((rgb >> 0) & 0xFF));
}

break;
}

}

void setup() {
//USE_SERIAL.begin(921600);
USE_SERIAL.begin(9600);

//USE_SERIAL.setDebugOutput(true);

USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();

for(uint8_t t = 4; t > 0; t–) {
USE_SERIAL.printf("[SETUP] BOOT WAIT %d…\n", t);
USE_SERIAL.flush();
delay(1000);
}

pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_BLUE, OUTPUT);

digitalWrite(LED_RED, 1);
digitalWrite(LED_GREEN, 1);
digitalWrite(LED_BLUE, 1);

WiFiMulti.addAP(“ZONNEWIND2”, “”);

while(WiFiMulti.run() != WL_CONNECTED) {
delay(100);
}

// start webSocket server
webSocket.begin();
webSocket.onEvent(webSocketEvent);

if(MDNS.begin(“esp8266”)) {
USE_SERIAL.println(“MDNS responder started”);
}

// handle index
server.on("/", {
// send index.html
server.send(200, “text/html”, "LED Control:

R: <input id=“r” type=“range” min=“0” max=“255” step=“1” oninput=“sendRGB();” />
G: <input id=“g” type=“range” min=“0” max=“255” step=“1” oninput=“sendRGB();” />
B: <input id=“b” type=“range” min=“0” max=“255” step=“1” oninput=“sendRGB();” />

"); });

server.begin();

// Add service to MDNS
MDNS.addService(“http”, “tcp”, 80);
MDNS.addService(“ws”, “tcp”, 81);

digitalWrite(LED_RED, 0);
digitalWrite(LED_GREEN, 0);
digitalWrite(LED_BLUE, 0);

}

void loop() {
webSocket.loop();
server.handleClient();
}

WebSocketServer_LEDcontrol.ino (3.79 KB)

What does that code actually do, and how does that differ from what you want?

The code creates a webpage with 3sliders to control a RGB strip when I change the sliders I get a output like this:
[0] get Text: #f70000
[0] get Text: #ff0000
[0] get Text: #6b0000
[0] get Text: #000000

What I want to get is 3sliders wich control 3 diffrent variables from 0 to thousand and not one variable like this 6b0000

(I'm using this board: Smart Electronics ESP 12E D1 WiFi uno based ESP8266 shield for arduino Compatible|d1 dvr|d1 recorderd1 digital video recorder - AliExpress )

The lambda in the server.on() function defines the sliders and the ranges. The sendRGB() function defines how the slider data gets sent back. Change that to send "nnnn,mmmm,oooo", instead of "#rrggbb".

Then, in webSocketEvent(), take your string apart, using strtok(), and convert each token to an int, using atoi().