Brightness can be configured
This commit is contained in:
parent
db10de101c
commit
d6e34a8e75
@ -13,6 +13,6 @@
|
|||||||
#define HOMIE_SETTINGS
|
#define HOMIE_SETTINGS
|
||||||
|
|
||||||
#define HOMIE_FIRMWARE_NAME "RoomSensor"
|
#define HOMIE_FIRMWARE_NAME "RoomSensor"
|
||||||
#define HOMIE_FIRMWARE_VERSION "2.1.0"
|
#define HOMIE_FIRMWARE_VERSION "2.2.0"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
22
src/main.cpp
22
src/main.cpp
@ -74,6 +74,8 @@
|
|||||||
strcat(topic, "/"); \
|
strcat(topic, "/"); \
|
||||||
strcat(topic, test);
|
strcat(topic, test);
|
||||||
|
|
||||||
|
#define PERCENT2FACTOR(b, a) ((b * a.get()) / 100)
|
||||||
|
|
||||||
#define NUMBER_TYPE "Number"
|
#define NUMBER_TYPE "Number"
|
||||||
#define NODE_PARTICLE "particle"
|
#define NODE_PARTICLE "particle"
|
||||||
#define NODE_TEMPERATUR "temp"
|
#define NODE_TEMPERATUR "temp"
|
||||||
@ -130,6 +132,7 @@ HomieSetting<bool> i2cEnable("i2c",
|
|||||||
|
|
||||||
);
|
);
|
||||||
HomieSetting<bool> rgbTemp("rgbTemp", "Show temperature via red (>20 °C) and blue (< 20°C)");
|
HomieSetting<bool> rgbTemp("rgbTemp", "Show temperature via red (>20 °C) and blue (< 20°C)");
|
||||||
|
HomieSetting<long> rgbDim("rgbDim", "Factor (1 to 200%) of the status LEDs");
|
||||||
|
|
||||||
static SoftwareSerial pmSerial(SENSOR_PM1006_RX, SENSOR_PM1006_TX);
|
static SoftwareSerial pmSerial(SENSOR_PM1006_RX, SENSOR_PM1006_TX);
|
||||||
#ifdef BME680
|
#ifdef BME680
|
||||||
@ -258,9 +261,9 @@ void bmpPublishValues() {
|
|||||||
String(bmx.readAltitude(SEALEVELPRESSURE_HPA))), MQTT_LOG_I2READ);
|
String(bmx.readAltitude(SEALEVELPRESSURE_HPA))), MQTT_LOG_I2READ);
|
||||||
if ( (rgbTemp.get()) && (!mSomethingReceived) ) {
|
if ( (rgbTemp.get()) && (!mSomethingReceived) ) {
|
||||||
if (bmx.readTemperature() < TEMPBORDER) {
|
if (bmx.readTemperature() < TEMPBORDER) {
|
||||||
strip.setPixelColor(0, strip.Color(0,0,127));
|
strip.setPixelColor(0, strip.Color(0,0,PERCENT2FACTOR(127, rgbDim)));
|
||||||
} else {
|
} else {
|
||||||
strip.setPixelColor(0, strip.Color(127,0,0));
|
strip.setPixelColor(0, strip.Color(PERCENT2FACTOR(127, rgbDim),0,0));
|
||||||
}
|
}
|
||||||
strip.show();
|
strip.show();
|
||||||
}
|
}
|
||||||
@ -286,11 +289,11 @@ void loopHandler()
|
|||||||
particle.setProperty(NODE_PARTICLE).send(String(pM25));
|
particle.setProperty(NODE_PARTICLE).send(String(pM25));
|
||||||
if (!mSomethingReceived) {
|
if (!mSomethingReceived) {
|
||||||
if (pM25 < 35) {
|
if (pM25 < 35) {
|
||||||
strip.fill(strip.Color(0, 127, 0)); /* green */
|
strip.fill(strip.Color(0, PERCENT2FACTOR(127, rgbDim), 0)); /* green */
|
||||||
} else if (pM25 < 85) {
|
} else if (pM25 < 85) {
|
||||||
strip.fill(strip.Color(127, 64, 0)); /* orange */
|
strip.fill(strip.Color(PERCENT2FACTOR(127, rgbDim), PERCENT2FACTOR(64, rgbDim), 0)); /* orange */
|
||||||
} else {
|
} else {
|
||||||
strip.fill(strip.Color(127, 0, 0)); /* red */
|
strip.fill(strip.Color(PERCENT2FACTOR(127, rgbDim), 0, 0)); /* red */
|
||||||
}
|
}
|
||||||
strip.show();
|
strip.show();
|
||||||
}
|
}
|
||||||
@ -373,6 +376,9 @@ void setup()
|
|||||||
Homie.onEvent(onHomieEvent);
|
Homie.onEvent(onHomieEvent);
|
||||||
i2cEnable.setDefaultValue(false);
|
i2cEnable.setDefaultValue(false);
|
||||||
rgbTemp.setDefaultValue(false);
|
rgbTemp.setDefaultValue(false);
|
||||||
|
rgbDim.setDefaultValue(100).setValidator([] (long candidate) {
|
||||||
|
return (candidate > 1) && (candidate <= 200);
|
||||||
|
});
|
||||||
memset(serialRxBuf, 0, 80);
|
memset(serialRxBuf, 0, 80);
|
||||||
|
|
||||||
pmSerial.begin(PM1006_BIT_RATE);
|
pmSerial.begin(PM1006_BIT_RATE);
|
||||||
@ -420,7 +426,7 @@ void setup()
|
|||||||
/* Extracted from library's example */
|
/* Extracted from library's example */
|
||||||
mFailedI2Cinitialization = !bmx.begin();
|
mFailedI2Cinitialization = !bmx.begin();
|
||||||
if (!mFailedI2Cinitialization) {
|
if (!mFailedI2Cinitialization) {
|
||||||
strip.fill(strip.Color(0,64,0));
|
strip.fill(strip.Color(0,PERCENT2FACTOR(64, rgbDim),0));
|
||||||
strip.show();
|
strip.show();
|
||||||
#ifdef BME680
|
#ifdef BME680
|
||||||
bmx.setTemperatureOversampling(BME680_OS_8X);
|
bmx.setTemperatureOversampling(BME680_OS_8X);
|
||||||
@ -443,7 +449,7 @@ void setup()
|
|||||||
}
|
}
|
||||||
strip.fill(strip.Color(0,0,0));
|
strip.fill(strip.Color(0,0,0));
|
||||||
for (int i=0;i < (PIXEL_COUNT / 2); i++) {
|
for (int i=0;i < (PIXEL_COUNT / 2); i++) {
|
||||||
strip.setPixelColor(0, strip.Color(0,0,128));
|
strip.setPixelColor(0, strip.Color(0,0,128 * rgbDim.get()));
|
||||||
}
|
}
|
||||||
strip.show();
|
strip.show();
|
||||||
} else {
|
} else {
|
||||||
@ -481,7 +487,7 @@ void loop()
|
|||||||
if (mButtonPressed > BUTTON_MAX_CYCLE) {
|
if (mButtonPressed > BUTTON_MAX_CYCLE) {
|
||||||
mButtonPressed = (BUTTON_MAX_CYCLE -1);
|
mButtonPressed = (BUTTON_MAX_CYCLE -1);
|
||||||
if (SPIFFS.exists("/homie/config.json")) {
|
if (SPIFFS.exists("/homie/config.json")) {
|
||||||
strip.fill(strip.Color(0,128,0));
|
strip.fill(strip.Color(0,PERCENT2FACTOR(127, rgbDim),0));
|
||||||
strip.show();
|
strip.show();
|
||||||
printf("Resetting config\r\n");
|
printf("Resetting config\r\n");
|
||||||
SPIFFS.remove("/homie/config.json");
|
SPIFFS.remove("/homie/config.json");
|
||||||
|
Loading…
Reference in New Issue
Block a user