When i change the brightness from a sertain level to another level, like 100% to 40% nothing happens. I have to choose an other color only then the brightness changes to 40%.
hope you can help,
Willem
Explore... Chat... Share...
"service": "Light",
#include <ESP8266WiFi.h>
#define redPin 13 //D7 - Red channel
#define grnPin 12 //D6 - Green channel
#define bluPin 14 //D5 - Blue channel
WiFiServer server(80); //Set server port
String readString; //String to hold incoming request
String hexString = "000000"; //Define inititial color here (hex value), 080100 would be a calm warmtone i.e.
int state;
int r, g, b, V;
float R, G, B, x;
///// WiFi SETTINGS - Replace with your values /////////////////
const char* ssid = "SSID";
const char* password = "PASSWORD";
////////////////////////////////////////////////////////////////////
void WiFiStart() {
Serial.begin(115200);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.softAPdisconnect(true);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print("_");
}
Serial.println();
Serial.println("Done");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("");
server.begin();
}
void allOff() {
state = 0;
analogWrite(redPin, 0);
analogWrite(grnPin, 0);
analogWrite(bluPin, 0);
}
//Write requested hex-color to the pins (10bit pwm)
void setHex() {
state = 1;
long number = (long) strtol( &hexString[0], NULL, 16);
r = number >> 16;
g = number >> 8 & 0xFF;
b = number & 0xFF;
r = map(r, 0, 255, 0, 1023); //added for 10bit pwm
g = map(g, 0, 255, 0, 1023); //added for 10bit pwm
b = map(b, 0, 255, 0, 1023); //added for 10bit pwm
analogWrite(redPin, (r));
analogWrite(grnPin, (g));
analogWrite(bluPin, (b));
}
//Compute current brightness value
void getV() {
R = roundf(r / 10.23); //for 10bit pwm, was (r/2.55);
G = roundf(g / 10.23); //for 10bit pwm, was (g/2.55);
B = roundf(b / 10.23); //for 10bit pwm, was (b/2.55);
x = max(R, G);
V = max(x, B);
}
//For serial debugging only
void showValues() {
Serial.print("Status on/off: ");
Serial.println(state);
Serial.print("RGB color: ");
Serial.print(r);
Serial.print(".");
Serial.print(g);
Serial.print(".");
Serial.println(b);
Serial.print("Hex color: ");
Serial.println(hexString);
getV();
Serial.print("Brightness: ");
Serial.println(V);
Serial.println("");
}
void setup() {
Serial.begin(9600);
delay(1);
pinMode(redPin, OUTPUT); //declaration added
pinMode(grnPin, OUTPUT); //declaration added
pinMode(bluPin, OUTPUT); //declaration added
setHex(); //Set initial color after booting. Value defined above
WiFi.mode(WIFI_STA);
WiFiStart();
//showValues(); //Uncomment for serial output
int state = 0;
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while (client.connected() && !client.available()) {
delay(1);
}
//Respond on certain Homebridge HTTP requests
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n') {
//Serial.print("Request: "); //Uncomment for serial output
//Serial.println(readString); //Uncomment for serial output
//Send reponse:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
//On:
if (readString.indexOf("on") > 0) {
setHex();
//showValues();
}
//Off:
if (readString.indexOf("off") > 0) {
allOff();
//showValues();
}
//Set color:
if (readString.indexOf("set") > 0) {
hexString = "";
hexString = (readString.substring(9, 15));
setHex();
//showValues();
}
//Status on/off:
if (readString.indexOf("status") > 0) {
client.println(state);
}
//Status color (hex):
if (readString.indexOf("color") > 0) {
client.println(hexString);
}
//Status brightness (%):
if (readString.indexOf("bright") > 0) {
getV();
client.println(V);
}
delay(1);
while (client.read() >= 0); //added: clear remaining buffer to prevent ECONNRESET
client.stop();
readString.remove(0);
}
}
}
}
}
tommrodrigues wrote:(...) I believe you forgot to includeCode: Select allin the config.json as without it, HomeKit says it does not support that type of accessory. (...)"service": "Light",
(...) However, the problem which I am still experiencing is with the brightness. (...)
Philipp1887 wrote:I dont know if someone else has or had problems with the accessory entry in the config.json file, but I had:
I had to insertCode: Select allunder"service": "Light",
Code: Select all. Otherwise Homekit would show the strip as "Not supported"."name": "Single Color Light",
Also for a correct RGBW Output I had to insertCode: Select allin the "color" property."brightness": true
Otherwise I couldnt set any White color in homekit.
It takes about 20-25 seconds for home assistant c[…]
I tried to upgrade tof my sonoff basic R2 with the[…]
a problem Perhaps you want to define "Probl[…]
Rebooting your router will not give you a faster I[…]
There are no other notifications from esptool.py i[…]
Using the Arduino IDE, you'll learn how to set up […]
In this project, you will post to Twitter using an[…]
In this project, we will build a water level contr[…]
I guess I'm late, but I had the same problem and f[…]
Last night I received my first D1 Minis for a lear[…]
Although I am aware that this is an old post, I fe[…]