Umgebaut auf Arduino-interne String-Funktion. Untested!

This commit is contained in:
starcalc 2017-11-28 11:54:49 +01:00
parent 8e487aa213
commit cfde48c2b3
1 changed files with 14 additions and 1 deletions

View File

@ -20,8 +20,21 @@ HomieNode switchNode("switch", "switch");
bool switchHandler(const HomieRange& range, const String& value) {
Homie.getLogger() << "switch " << ": " << value << endl;
int localByte = 0;
if (sscanf(value, "%d %d %d %d", &commandbytes[0], &commandbytes[1], &commandbytes[2], &commandbytes[3]) == 4)
int lastspace = 0;
int nextspace = 0;
while (nextspace < value.length()-1)
{
// Nur solange wir noch Platz für Inputbytes haben... :)
if (localByte <= 3) {
nextspace = value.indexOf(' ', lastspace);
commandbytes[localByte] = (value.substring(lastspace,nextspace-1)).toInt(); // TEST for sanity
localByte++;
}
}
if (localByte ==4)
{
// Nur wenn wirklich 4 Werte übernommen wurden
switchNode.setProperty("switch").send(value);