Add gpio output for MQTT status (#698)

This commit is contained in:
Jan-Ole Schümann
2025-10-01 23:09:50 +07:00
committed by GitHub
parent 7be88db6b1
commit c6e7c8b0a9
7 changed files with 1023 additions and 1024 deletions

View File

@@ -36,6 +36,9 @@ NukiNetwork::NukiNetwork(Preferences *preferences)
#endif
{
_inst = this;
#ifndef NUKI_HUB_UPDATER
_pinsMqttConnected = _gpio->getPinsWithRole(PinRole::OutputHighMqttConnected);
#endif
setupDevice();
}
@@ -434,6 +437,8 @@ bool NukiNetwork::update()
int64_t ts = espMillis();
_device->update();
updateNetworkStatusLeds();
if(_importExport->getTOTPEnabled() && _importExport->_invalidCount > 0 && (ts - (120000 * _importExport->_invalidCount)) > _importExport->_lastCodeCheck)
{
_importExport->_invalidCount--;
@@ -674,6 +679,16 @@ bool NukiNetwork::update()
return true;
}
void NukiNetwork::updateNetworkStatusLeds()
{
bool mqttConnected = _device->mqttConnected();
for (uint8_t pin : _pinsMqttConnected)
{
_gpio->setPinOutput(pin, mqttConnected ? HIGH : LOW);
}
}
void NukiNetwork::checkInternetConnectivity()
{
_hasInternet = Ping.ping("github.com", 3);
@@ -1411,9 +1426,8 @@ void NukiNetwork::parseGpioTopics(const espMqttClientTypes::MessageProperties &p
Log->print(pin);
Log->print(" (Output) --> ");
Log->println(pinState);
digitalWrite(pin, pinState);
_gpio->setPinOutput(pin, pinState);
}
}
}