mirror of
https://github.com/lumapu/ahoy.git
synced 2025-06-06 12:41:37 +02:00
0.8.42
* add LED to display whether it's night time or not. Can be reused as output to control battery system #1308
This commit is contained in:
parent
f2e1e536f5
commit
cd9cc976e7
8 changed files with 51 additions and 37 deletions
32
src/app.cpp
32
src/app.cpp
|
@ -456,14 +456,11 @@ void app::mqttSubRxCb(JsonObject obj) {
|
|||
//-----------------------------------------------------------------------------
|
||||
void app::setupLed(void) {
|
||||
uint8_t led_off = (mConfig->led.high_active) ? 0 : 255;
|
||||
|
||||
if (mConfig->led.led0 != DEF_PIN_OFF) {
|
||||
pinMode(mConfig->led.led0, OUTPUT);
|
||||
analogWrite(mConfig->led.led0, led_off);
|
||||
}
|
||||
if (mConfig->led.led1 != DEF_PIN_OFF) {
|
||||
pinMode(mConfig->led.led1, OUTPUT);
|
||||
analogWrite(mConfig->led.led1, led_off);
|
||||
for(uint8_t i = 0; i < 3; i ++) {
|
||||
if (mConfig->led.led[i] != DEF_PIN_OFF) {
|
||||
pinMode(mConfig->led.led[i], OUTPUT);
|
||||
analogWrite(mConfig->led.led[i], led_off);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -472,27 +469,34 @@ void app::updateLed(void) {
|
|||
uint8_t led_off = (mConfig->led.high_active) ? 0 : 255;
|
||||
uint8_t led_on = (mConfig->led.high_active) ? (mConfig->led.luminance) : (255-mConfig->led.luminance);
|
||||
|
||||
if (mConfig->led.led0 != DEF_PIN_OFF) {
|
||||
if (mConfig->led.led[0] != DEF_PIN_OFF) {
|
||||
Inverter<> *iv;
|
||||
for (uint8_t id = 0; id < mSys.getNumInverters(); id++) {
|
||||
iv = mSys.getInverterByPos(id);
|
||||
if (NULL != iv) {
|
||||
if (iv->isProducing()) {
|
||||
// turn on when at least one inverter is producing
|
||||
analogWrite(mConfig->led.led0, led_on);
|
||||
analogWrite(mConfig->led.led[0], led_on);
|
||||
break;
|
||||
}
|
||||
else if(iv->config->enabled)
|
||||
analogWrite(mConfig->led.led0, led_off);
|
||||
analogWrite(mConfig->led.led[0], led_off);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mConfig->led.led1 != DEF_PIN_OFF) {
|
||||
if (mConfig->led.led[1] != DEF_PIN_OFF) {
|
||||
if (getMqttIsConnected()) {
|
||||
analogWrite(mConfig->led.led1, led_on);
|
||||
analogWrite(mConfig->led.led[1], led_on);
|
||||
} else {
|
||||
analogWrite(mConfig->led.led1, led_off);
|
||||
analogWrite(mConfig->led.led[1], led_off);
|
||||
}
|
||||
}
|
||||
|
||||
if (mConfig->led.led[2] != DEF_PIN_OFF) {
|
||||
if((mTimestamp > (mSunset + mConfig->sun.offsetSecEvening)) || (mTimestamp < (mSunrise + mConfig->sun.offsetSecMorning)))
|
||||
analogWrite(mConfig->led.led[2], led_on);
|
||||
else
|
||||
analogWrite(mConfig->led.led[2], led_off);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue