Closed der-pw closed 4 years ago
Bitte mal den HM-Sen-LI-O Sketch aus dem dev_HM-Sen-LI-O_txThreshold
Branch testen.
Hab grad keine Hardware zum Testen.
Unsicher bin ich mir bei der Berechnung der prozentualen Änderungen zwischen altem und neuem Lux-Wert: https://github.com/jp112sdl/Beispiel_AskSinPP/blob/abfb98fdc5e7fdb595c83e59e164254818dd7d5c/examples/HM-Sen-LI-O/HM-Sen-LI-O.ino#L158
P.S.: Vorher die AskSinPP Lib auf den neuesten Master updaten. Hab da noch was anpassen müssen.
Du bist ja wieder flott unterwegs!
Es scheint als würde "txThresholdPercent" nicht geändert werden. Bleibt bei 0
Habe die Ser.-Printausgabe mal vor die Bedingung geholt:
bool sendMsg = true;
uint8_t txThresholdPercent = this->getList1().txThresholdPercent();
DPRINT(F("thresholdPcnt pcnt: "));DDECLN(txThresholdPercent);
if (txThresholdPercent > 0) { // a threshold is configured
uint8_t pcnt = (lux > 0) ? min(abs(100L / (lux_prev / lux) - 100), 100) : 0;
DPRINT(F("thresholdPcnt pcnt: "));DDECLN(txThresholdPercent);
DPRINT(F("lux changed pcnt: "));DDECLN(pcnt);
if (pcnt >= txThresholdPercent) { // the calculated percentage between lux_prev and lux is greater or equal to the configured txThresholdPercent
lux_prev = lux; // save the current lux in lux_prev
} else {
sendMsg = false; // otherwise do not send messager
}
}
Weil sie sonst nicht ausgegeben wurde.
AskSin++ V4.1.1 (Dec 22 2019 13:49:21)
MAX44009 Sensor OK
Address Space: 32 - 77
CC init1
CC Version: 14
- ready
iVcc: 3332
TX Delay = 8
Measure... 864 lux
thresholdPcnt pcnt: 0
<- 0F 01 84 53 34FD01 000000 00 C1 00 01 51 80 - 1337
<- 0E 02 A2 10 34FD01 6A5EFF 06 01 00 00 00 - 1437
-> 0A 02 80 02 6A5EFF 34FD01 00 - 1562
waitAck: 01
TX Delay = 8
Measure... 864 lux
thresholdPcnt pcnt: 0
<- 0F 03 84 53 34FD01 000000 00 C1 00 01 51 80 - 2093
nachdem ich das Register vorkonfiguriert (txThresholdPercent(10);) habe und nach einem Reset erfolgt das:
AskSin++ V4.1.1 (Dec 22 2019 13:59:41)
MAX44009 Sensor OK
Address Space: 32 - 77
CC init1
CC Version: 14
- ready
iVcc: 3332
TX Delay = 8
Measure... 864 lux
thresholdPcnt pcnt: 1
thresholdPcnt pcnt: 1
lux changed pcnt: 100
<- 0F 01 84 53 34FD01 000000 00 C1 00 01 51 80 - 1339
<- 0E 02 86 10 34FD01 000000 06 01 00 00 00 - 1435
TX Delay = 8
Measure... 835 lux
thresholdPcnt pcnt: 1
thresholdPcnt pcnt: 1
lux changed pcnt: 0
TX Delay = 8
Measure... 864 lux
thresholdPcnt pcnt: 1
thresholdPcnt pcnt: 1
lux changed pcnt: 0
´´´
Falls mal ganz, ganz viel Zeit über ist, würde ich mich beim HM-Sen-LI-O über eine Implementierung des Threshold, zur Verringerung des Sendezyklus, freuen. Ich scheitere arg. Prinzipiell wüsste ich was nötig wäre, aber ich habe null Plan, das asksintauglich umzusetzen.
Grüße, Patrick