Just to mention some proven alternative approaches for your research if you havenβt already considered them:
- float level sensors
- ultrasonic level sensors
- capacitive level sensors
Just to mention some proven alternative approaches for your research if you havenβt already considered them:
I also found the logparser did not handle certain log entries, such as the logfile produced by the mysensors gateway on raspberry pi, e.g. prefixed with timestamps, etc.
Opened pull request to improve this, comments welcome, especially if you are able to test this locally (only need to copy the Logparser directory and open logparser.html locally in a browser):
https://github.com/mysensors/MySensors/pull/1468
maybe a good knowledge resource for cross-compilation against rpi targets:
https://tttapa.github.io/Pages/Raspberry-Pi/C++-Development/Building-The-Toolchain.html
FWIW,
on a more specific tweak, one of the things I struggled with for a while was why the mysensors defaults for RF24 transport use tx power level RF24_PA_HIGH (-6 dBm) by default instead of RF24_PA_MAX (0 dBm)
I wound up setting:
#define MY_RF24_PA_LEVEL (RF24_PA_MAX)
in all my sketches, as it seems to make the difference for those several walls and/or extra few meters of range.
(Not sure why the -6 dBm setting was chosen?)
Very easy to program with SDCC (via makefiles and/or vscode/platformio), however, it's all pure C, and I dont know if anyone has any recent C-only implementations of mysensors (it all seems to be C++).
https://github.com/zerog2k/stc_blinky
Also, the STC15F204EA (or STC15L204EA) are probably the least capable - only 256b ram, 4k code, and no hardware uart/spi, etc. The can do some basic RF24 tasks, but I doubt they could handle the full mysensors state machine.
There are the more capable versions, e.g. STC15W408AS, etc with more ram (2-4k), code (8+ kB), and a basic set of peripherals (hw uart, spi, etc) - however still far underperforming typical arduino (atmega328p) specs.
@Dreded
FWIW, I don't have direct experience myself with longevity and durability of heatshrink + hot glue, but one of the YT channels I follow does. Julian Ilett has a custom-built pwm solar charge controller which he made small production runs of, and started having failure issues with this method, as these are exposed to outdoor environmental conditions.
Autopsy: Faulty PWM5 Solar Charge Controller β 16:40
β Julian Ilett
however, I would think that "potting" or filling the heatshrink openings with "RTV" (i.e. room-temperature vulcanizing) silicone sealant. This stuff is used on marine and aircraft applications to completely waterproof stuff.
So this is where I see for atmega 168/328, Tone lib is modding Timer2:
https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/Tone.cpp
So that's why it's important to explicitly set every Timer2 register.
Reviewing AVR130 app note, I think I was incorrect about being able to sleep and externally clock T1 (to count pulses), as T0/T1 seem to be synchronous, meaning they require the system (i/o) clock to be running to latch in the edges of external source, and only IDLE power save mode supports running the clk_io. This mode will use way more current, e.g. w/ internal rc osc at 8MHz at 3.3v about 700uA.
Seems that only Timer2 can allow an "asynchronous" external clocking event (pulse counting) with cpu clocks off (in very low power modes).
Just blabbering, yet another aproach could be to, instead of bothering with RTC crystal on Timer2:
regarding the mysensors lib, I'm not an expert, but reviewing the code, seems like you covered it:
mysensors sleep overloads call _sleep in MySensorsCore.cpp
https://github.com/mysensors/MySensors/blob/master/core/MySensorsCore.cpp#L562
which call transportDisable() like you do then call hwSleep() variants in MyHwAVR.cpp (depending upon how you call sleep, e.g. with pin interrupt setups or not), which eventually call hwPowerDown()
https://github.com/mysensors/MySensors/blob/master/hal/architecture/AVR/MyHwAVR.cpp#L83
which seems to do pretty much what you are doing (maybe a few other things, etc..) to call sleep. ref: https://www.microchip.com/webdoc/AVRLibcReferenceManual/group__avr__sleep.html
So I dont really see any additional state machine stuff happening w.r.t. MySensors itself.
@Encrypt
yes, interesting... i also had strange issues trying to implement rtc first time, but it was due to arduino lib mucking with Timer2 registers (due to Tone libs). The answer was to make sure all registers were not assumed to be default, but explicitly set in setup(). You seem to have that here.
I did a quick scan of mysensors repo code, but I don't see where it is touching any of Timer2's registers, so not sure.
Did you toggle led/pin in the current code's ISR, to be 100% sure your the issue is that the isr is getting triggered at unexpected interval? (maybe sanity check that with scope.) That should bifurcate the problem either to the timer implementation/configuration, or something else.
@zboblamont I also agree here. But it should be totally possible to setup Timer1 as externally clocked counter, i.e. pulse from meter can increment Timer1 counters without interrupting CPU from sleep, and only interrupt and increment another counter variable on Timer1 overflow (if it happens) so you can be sure you have complete, accurate count when you wake up from your long sleep to do your accounting and reporting.
Briefly looking at the datasheet for the water sensor, I didn't get a sense of what the unit of water volume/flow a single HF pulse means. Depending on what this unit is, and how often you wakeup and check the T1 counter value, it may not even be necessary to bother with handling counter overflow, e.g. pulses = 1 liter; would you ever consume >65kL in <10 mins?
In this case, you only simply need to worry about waking up from long sleep interval, polling and clearing counter, sending, and going back to sleep.
also, declaring static var inside isr is strange to me (maybe it works?) but I have always seen that you should declare any vars to be manipulated in isr to be global and volatile
If you are using watch crystal (32khz) connected to TOSC1/2, I have an "rtc" one second tick counter you can use (from an unrelated project):
https://github.com/zerog2k/rcxr01/blob/master/rcxr01_demo1/src/rtc.h
You can extend this to different tick periods with different prescalers.
But i think any interrupt will bring mysensors out of wait? Which means you will need to enter sleep yourself, and decide whether to go back to sleep or hand control back to main loop for mysensors to do reporting thing.
Here are some examples i put together for directly controlling entering/exiting low-power sleep:
https://github.com/zerog2k/rcxr01/blob/master/rcxr01_demo1/src/sleep.h
You can also use watchdog timer as (less accurate) wakeup timer.
(But you said you need more exact, <1 sec, accuracy to send at [exactly] 5 sec boundaries, which means you'll need timer2/rtc/watch crystal for that level of accuracy)
You can use a separate counter, e.g. timer1 in counter mode to capture sensor pulses as an external clock for the counter. You probably only need interrupt on counter overflow, so you can capture overflow counts. Then when you wake up on an interval and check the number of pulses you can evaluate overflows + remaining counter value, and determine number of pulses since previous wakeup, etc. (without needing wakeup/cpu to keep track of individual pulses)
maybe try using the RF24 library's simple scanner example sketch to scan your rf channels to ensure there is no other source of interference on your selected nrf channels (defaulting to chan 76 [0x4C])
(ok sorry, i see that you are using rfm69
for others trying to find a good channel, I found this useful showing Wifi and BLE channels. (Orange are BLE advertising channels, which should always be reserved/unoccupied by NRF stuff):
Yes I think wifi channels >11 (like 12,13,14 overlap to 2476).
So sometimes nrf channel 1 is a good choice, but as always, depends on your environment
Do you have wireless mice, keyboards, etc - many of these use NRF24 or similar 2.4GHz ISM? Are you sure the other 2.4GHz devices are really bluetooth and not proprietary?
@magpern glad to see you got it fixed, however I don't think wifi channel 11 interferes with channel 76, which is at 2476 MHz.
Maybe there are some other sources of interference on nrf channel 76 in your environment?
I would like to suggest that the "Serial Protocol" button/page (https://www.mysensors.org/download/serial_api_20) be renamed to a more generic "Protocol" button. The contents are relevant regardless of whether folks are using serial gateways, or like in my case mqtt gateway.
nm, I seems like it eventually sends the sketch name
ok, I think i have also may have found a bug in the HA mysensors implementation, i.e. if you name your sketch with some reserved names, it never registers in HA.
I.e.
sendSketchInfo("motion_sensor", "1.0");
won't work in HA
but sendSketchInfo("motion_sensor_foo", "1.0");
shows up
I didn't see any mention of this in https://www.home-assistant.io/components/mysensors/
Maybe it's a bug (should mysensors ha component rename it or prefix with some namespace, etc; or should this be documented in guide - and then what are the reserved names which we cannot name sketches to?)
@bereska
look at how the reference sketch in the homeassistant mysensors page works.
I starts with a bool initialValueSent
set to false.
It checks for this in loop, and if not already set to true, it will send initial values, then set initialValueSent = false, so that it never runs again (until sensor is restarted).
Also regarding your sketch logic, should it periodically send values of all sensors (like at least once per hour, per day, etc)? You may want to look at that as well.
Looking at your HA log, do you see that both V_FLOW and V_VOLUME values are sent after some time?
With the sketch, their idea is that you use initialValueSent
to send initial values (for all types) only once (at first boot) in loop section.
@bereska
looks mostly correct, althought I would take a look at the example here to use their technique for ensuring you send initial values for V_FLOW and V_VOLUME.
ref: https://www.home-assistant.io/components/mysensors/
From your sketch, it seems possible that either may not be sent right away, e.g. if volume or flow is not changing, etc.
Also, where in HA UI are you looking? I had to add my sensor to one of my lovelace cards. Still getting the hang of the new UI (but definitely better than it was before). I also saw it in developer
, states
under current entities
So I too was having this issue and pulling my hair out trying to understand what was wrong.
The homeassistant/mysensor doc page says you have to send intial values, but the important nuanced point is that ALL possible value types must have an initial value sent for a given sensor type.
In my example, I could not figure out why my motion sensor (S_MOTION) was not registering in HA UI - I was sending an initial (V_TRIPPED) state.
However, S_MOTION sensors can have both V_TRIPPED and V_ARMED.
ref: https://www.mysensors.org/download/serial_api_20#presentation
Once I sent an initial value for V_ARMED, it started working - whew!
So check carefully that you are sending some initial value for EVERY possible value type of your sensor type.
maybe also try just loading up a simple sketch with RF24 lib, and dump out RF24::printDetails() to see what the chip identifies as.
I have an older device with genuine NRF24L01 (not plus), which it correctly identifies.
http://tmrh20.github.io/RF24/classRF24.html#adc95213ed4c8569a90eb33122e16cea6
Might also be some strange clone behavior like yveaux mentioned.
Also, are you sure the nrf is getting 3.3vdc? I have seen some strange behavior when I powered a 3v3 mini input with 4.2v lipo, where the nrf24 would seem to initialize but not really work with mysensors. (This exceeded the 3.6v Vin max, but somehow after reducing the voltage back to normal operating levels, i.e. 3.3v, the nrf24 seemed fine again.)
@nca78 problem is ams1117 high Iq and always-on power led:
https://forum.arduino.cc/index.php?topic=418299.0
again, nano like this could be perfectly well designed for battery power - the advantage of nano form-factor is built in usb connection for reprogramming or powering from ubiquitous usb power adapters, etc.
Again, using ldo holtek or torex would help make sure you can reduce the consumption by an order of magnitude when on batteries (e.g. lipo pack, etc).
(I wish they made a cheap and pin-compatible ams1117 replacement
3mA sleep current is very high, you should probably set a goal for a few hundred uA maximum.
I would suggest determining what is causing high sleep current consumption.
This is theoretically possible with atmega328p as well as nrf24l01, should be able to accomplish this if using proper sleep and/or standby modes for each.
Another thing to look at is the hardware your boards are using. One notorious culprit for high sleep current is AMS1117 voltage regulator, which has very sad ~4mA quiescent current - not appropriate for power-saving/battery nodes - but far to common on boards you will find (like clone of pro-minis, etc).
(There are several other 3.3v LDOs with much better Iq - https://ethercalc.org/500ma-ldos)
This might also have some good ideas as a place to start as well:
http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/
@mark-swift looking at the pictures, seems like they are using the AMS1117 regulator, which probably means some mods are in order to make it low power/battery-friendly. Still surprised that someone making a specialty unit like this would not use a torex or holtek ldo. The AMS1117 is just absolutely the worst Iq you can possibly get.
Ok, this was super silly resolution.
I had wrong CE pin selected, and confusion bit me again on the pin vs gpio thing of the header/brcm gpio mapping.
On my rf24 module, I had (from previous implementations) wired up CE to GPIO 22 (pin 15), and IRQ to GPIO 25 (pin 22). So default CE line for rpi/rf24/mysgw is "22" (pin, NOT gpio
The frustration was that my module was being recognized, which gave false appearance of complete wiring correctness, but I think it never transitioned to TX.
Not sure if it would be possible to sanity check RF24 driver to verify if CE line is working in module wiring or not.
Anyhow, moral of the story is to check and double-check the wiring!!!
Hi folks, I'm looking for help in troubleshooting why my raspberry pi gateway is not working (seems like not acking?).
I have tried different rpi (rpi1 b+ vs pi zero), different radio modules (all of them are chinese modules, but they all have marked nrf24l01+ chip on them, not cob etc). Tried using irq vs not. Modules have cap (10uF, 4.7uF, etc) on vcc to gnd at module. On pi i have tried powering module w/ separate 3.3v power supply, etc.
I have tried changing rf power levels, data rates, channels, etc, to no avail. I have tried 2.3.1 (master branch, vs development, etc), also even tried 2.3.0 tag.
The most important thing here is that all of this works when I use esp8266-mqtt-rf24 gateway (nodemcu) - the rpi gateways do not seem to work with rf24 mysensors for some reason.
See below for debug output examples (with rf24 debug on, from rpi gateway and sample node).
gateway:
./configure --my-transport=rf24 --my-gateway=mqtt --my-controller-ip-address=192.168.1.8 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway-pi --extra-cxxflags="-DMY_DEBUG_VERBOSE_RF24"
pi@pihome ~/build/MySensors $ sudo bin/mysgw
Jan 20 12:48:06 INFO Starting gateway...
Jan 20 12:48:06 INFO Protocol version - 2.3.2-alpha
Jan 20 12:48:06 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,REL=1,VER=2.3.2-alpha
Jan 20 12:48:06 DEBUG TSF:LRT:OK
Jan 20 12:48:06 DEBUG TSM:INIT
Jan 20 12:48:06 DEBUG TSF:WUR:MS=0
Jan 20 12:48:06 DEBUG RF24:INIT
Jan 20 12:48:06 DEBUG RF24:INIT:PIN,CE=22,CS=24
Jan 20 12:48:06 DEBUG RF24:SBY
Jan 20 12:48:06 DEBUG RF24:WBR:REG=0,VAL=14
Jan 20 12:48:06 DEBUG RF24:WBR:REG=3,VAL=3
Jan 20 12:48:06 DEBUG RF24:WBR:REG=4,VAL=95
Jan 20 12:48:06 DEBUG RF24:WBR:REG=5,VAL=76
Jan 20 12:48:06 DEBUG RF24:WBR:REG=6,VAL=37
Jan 20 12:48:06 DEBUG RF24:WBR:REG=29,VAL=4
Jan 20 12:48:06 DEBUG RF24:RBR:REG=29,VAL=4
Jan 20 12:48:06 DEBUG RF24:RBR:REG=6,VAL=37
Jan 20 12:48:06 DEBUG RF24:RBR:REG=5,VAL=76
Jan 20 12:48:06 DEBUG RF24:WBR:REG=2,VAL=2
Jan 20 12:48:06 DEBUG RF24:WBR:REG=1,VAL=0
Jan 20 12:48:06 DEBUG RF24:WBR:REG=28,VAL=3
Jan 20 12:48:06 DEBUG RF24:FRX
Jan 20 12:48:06 DEBUG RF24:FTX
Jan 20 12:48:06 DEBUG RF24:WBR:REG=7,VAL=112
Jan 20 12:48:06 DEBUG TSM:INIT:TSP OK
Jan 20 12:48:06 DEBUG TSM:INIT:GW MODE
Jan 20 12:48:06 DEBUG RF24:WBR:REG=2,VAL=3
Jan 20 12:48:06 DEBUG RF24:WBR:REG=1,VAL=1
Jan 20 12:48:06 DEBUG RF24:STL
Jan 20 12:48:06 DEBUG RF24:WBR:REG=0,VAL=15
Jan 20 12:48:06 DEBUG RF24:WBR:REG=10,VAL=0
Jan 20 12:48:06 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
Jan 20 12:48:06 DEBUG MCO:REG:NOT NEEDED
Jan 20 12:48:06 DEBUG RF24:RBR:REG=23,VAL=17
Jan 20 12:48:06 DEBUG MCO:BGN:STP
Jan 20 12:48:06 DEBUG RF24:RBR:REG=6,VAL=37
Jan 20 12:48:06 DEBUG RF24:RBR:REG=5,VAL=76
Jan 20 12:48:06 DEBUG MCO:BGN:INIT OK,TSP=1
Jan 20 12:48:06 DEBUG GWT:RMQ:CONNECTING...
Jan 20 12:48:06 DEBUG connected to 192.168.1.8
Jan 20 12:48:06 DEBUG GWT:RMQ:OK
Jan 20 12:48:06 DEBUG GWT:TPS:TOPIC=mysensors-out/0/255/0/0/18,MSG SENT
Jan 20 12:48:06 DEBUG TSM:READY:NWD REQ
Jan 20 12:48:06 DEBUG RF24:SPL
Jan 20 12:48:06 DEBUG RF24:WBR:REG=0,VAL=14
Jan 20 12:48:06 DEBUG RF24:OWP:RCPT=255
Jan 20 12:48:06 DEBUG RF24:WBR:REG=10,VAL=255
Jan 20 12:48:06 DEBUG RF24:WBR:REG=16,VAL=255
Jan 20 12:48:06 DEBUG RF24:TXM:TO=255,LEN=7
Jan 20 12:48:06 DEBUG RF24:FTX
Jan 20 12:48:08 DEBUG RF24:WBR:REG=7,VAL=48
Jan 20 12:48:08 DEBUG RF24:STL
Jan 20 12:48:08 DEBUG RF24:WBR:REG=0,VAL=15
Jan 20 12:48:08 DEBUG RF24:WBR:REG=10,VAL=0
Jan 20 12:48:08 DEBUG TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
Jan 20 12:48:08 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:08 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:08 DEBUG RF24:RBR:REG=23,VAL=1
... snipped, idle waiting for uno node to start ...
Jan 20 12:48:24 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:24 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:24 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:24 DEBUG RF24:RBR:REG=23,VAL=0
Jan 20 12:48:24 DEBUG RF24:RXM:LEN=7
Jan 20 12:48:24 DEBUG RF24:WBR:REG=7,VAL=64
Jan 20 12:48:24 DEBUG TSF:MSG:READ,102-102-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
Jan 20 12:48:24 DEBUG TSF:MSG:BC
Jan 20 12:48:24 DEBUG TSF:MSG:FPAR REQ,ID=102
Jan 20 12:48:24 DEBUG TSF:PNG:SEND,TO=0
Jan 20 12:48:24 DEBUG TSF:CKU:OK
Jan 20 12:48:24 DEBUG TSF:MSG:GWL OK
Jan 20 12:48:25 DEBUG RF24:SPL
Jan 20 12:48:25 DEBUG RF24:WBR:REG=0,VAL=14
Jan 20 12:48:25 DEBUG RF24:OWP:RCPT=102
Jan 20 12:48:25 DEBUG RF24:WBR:REG=10,VAL=102
Jan 20 12:48:25 DEBUG RF24:WBR:REG=16,VAL=102
Jan 20 12:48:25 DEBUG RF24:TXM:TO=102,LEN=8
Jan 20 12:48:25 DEBUG RF24:FTX
Jan 20 12:48:26 DEBUG RF24:WBR:REG=7,VAL=48
Jan 20 12:48:26 DEBUG RF24:STL
Jan 20 12:48:26 DEBUG RF24:WBR:REG=0,VAL=15
Jan 20 12:48:26 DEBUG RF24:WBR:REG=10,VAL=0
Jan 20 12:48:26 DEBUG !TSF:MSG:SEND,0-0-102-102,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
Jan 20 12:48:26 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:26 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:26 DEBUG RF24:RBR:REG=23,VAL=1
... snipped repeating ...
Jan 20 12:48:27 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:27 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:27 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:27 DEBUG RF24:RBR:REG=23,VAL=0
Jan 20 12:48:27 DEBUG RF24:RXM:LEN=7
Jan 20 12:48:27 DEBUG RF24:WBR:REG=7,VAL=64
Jan 20 12:48:27 DEBUG TSF:MSG:READ,102-102-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
Jan 20 12:48:27 DEBUG TSF:MSG:BC
Jan 20 12:48:27 DEBUG TSF:MSG:FPAR REQ,ID=102
Jan 20 12:48:27 DEBUG TSF:CKU:OK,FCTRL
Jan 20 12:48:27 DEBUG TSF:MSG:GWL OK
Jan 20 12:48:27 DEBUG RF24:SPL
Jan 20 12:48:27 DEBUG RF24:WBR:REG=0,VAL=14
Jan 20 12:48:27 DEBUG RF24:OWP:RCPT=102
Jan 20 12:48:27 DEBUG RF24:WBR:REG=10,VAL=102
Jan 20 12:48:27 DEBUG RF24:WBR:REG=16,VAL=102
Jan 20 12:48:27 DEBUG RF24:TXM:TO=102,LEN=8
Jan 20 12:48:27 DEBUG RF24:FTX
Jan 20 12:48:29 DEBUG RF24:WBR:REG=7,VAL=48
Jan 20 12:48:29 DEBUG RF24:STL
Jan 20 12:48:29 DEBUG RF24:WBR:REG=0,VAL=15
Jan 20 12:48:29 DEBUG RF24:WBR:REG=10,VAL=0
Jan 20 12:48:29 DEBUG !TSF:MSG:SEND,0-0-102-102,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
... snipped repeating ...
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:29 DEBUG RF24:RBR:REG=23,VAL=0
Jan 20 12:48:29 DEBUG RF24:RXM:LEN=7
Jan 20 12:48:29 DEBUG RF24:WBR:REG=7,VAL=64
Jan 20 12:48:29 DEBUG TSF:MSG:READ,102-102-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
Jan 20 12:48:29 DEBUG TSF:MSG:BC
Jan 20 12:48:29 DEBUG TSF:MSG:FPAR REQ,ID=102
Jan 20 12:48:29 DEBUG TSF:CKU:OK,FCTRL
Jan 20 12:48:29 DEBUG TSF:MSG:GWL OK
Jan 20 12:48:29 DEBUG RF24:SPL
Jan 20 12:48:29 DEBUG RF24:WBR:REG=0,VAL=14
Jan 20 12:48:29 DEBUG RF24:OWP:RCPT=102
Jan 20 12:48:29 DEBUG RF24:WBR:REG=10,VAL=102
Jan 20 12:48:29 DEBUG RF24:WBR:REG=16,VAL=102
Jan 20 12:48:29 DEBUG RF24:TXM:TO=102,LEN=8
Jan 20 12:48:29 DEBUG RF24:FTX
Jan 20 12:48:31 DEBUG RF24:WBR:REG=7,VAL=48
Jan 20 12:48:31 DEBUG RF24:STL
Jan 20 12:48:31 DEBUG RF24:WBR:REG=0,VAL=15
Jan 20 12:48:31 DEBUG RF24:WBR:REG=10,VAL=0
Jan 20 12:48:31 DEBUG !TSF:MSG:SEND,0-0-102-102,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
Jan 20 12:48:31 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:31 DEBUG RF24:RBR:REG=23,VAL=1
Jan 20 12:48:31 DEBUG RF24:RBR:REG=23,VAL=1
... snipped, repeating while idle ...
MockMySensors sketch on arduino uno with door, armed sensor mocked
> Executing task in folder mysensors-uno-test1: platformio device monitor <
--- Miniterm on /dev/cu.wchusbserial14b30 9600,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
__ __ ____
| \/ |_ _/ ___| ___ _ __ ___ ___ _ __ ___
| |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
| | | | |_| |___| | __/ | | \__ \ _ | | \__ \
|_| |_|\__, |____/ \___|_| |_|___/\___/|_| |___/
|___/ 2.3.1
209 MCO:BGN:INIT NODE,CP=RNNNA---,REL=255,VER=2.3.1
331 TSM:INIT
345 TSF:WUR:MS=0
362 RF24:INIT
377 RF24:INIT:PIN,CE=9,CS=10
407 RF24:SBY
421 RF24:WBR:REG=0,VAL=14
453 RF24:WBR:REG=3,VAL=3
479 RF24:WBR:REG=4,VAL=95
506 RF24:WBR:REG=5,VAL=76
533 RF24:WBR:REG=6,VAL=37
561 RF24:WBR:REG=29,VAL=4
587 RF24:RBR:REG=29,VAL=4
615 RF24:RBR:REG=6,VAL=37
643 RF24:RBR:REG=5,VAL=76
669 RF24:WBR:REG=2,VAL=2
696 RF24:WBR:REG=1,VAL=0
721 RF24:WBR:REG=28,VAL=3
749 RF24:FRX
762 RF24:FTX
777 RF24:WBR:REG=7,VAL=112
804 TSM:INIT:TSP OK
826 TSM:INIT:STATID=102
850 RF24:WBR:REG=2,VAL=3
877 RF24:WBR:REG=1,VAL=1
903 RF24:STL
917 RF24:WBR:REG=0,VAL=15
944 RF24:WBR:REG=10,VAL=102
973 TSF:SID:OK,ID=102
996 TSM:FPAR
1010 RF24:SPL
1025 RF24:WBR:REG=0,VAL=14
1053 RF24:OWP:RCPT=255
1077 RF24:WBR:REG=10,VAL=255
1107 RF24:WBR:REG=16,VAL=255
1138 RF24:TXM:TO=255,LEN=7
1166 RF24:FTX
1216 RF24:WBR:REG=7,VAL=48
1244 !RF24:TXM:MAX_RT
1267 RF24:FTX
1282 RF24:STL
1296 RF24:WBR:REG=0,VAL=15
1325 RF24:WBR:REG=10,VAL=102
1355 TSF:MSG:SEND,102-102-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
1432 RF24:RBR:REG=23,VAL=17
1462 RF24:RBR:REG=23,VAL=17
1490 RF24:RBR:REG=23,VAL=17
1520 RF24:RBR:REG=23,VAL=17
1550 RF24:RBR:REG=23,VAL=17
1579 RF24:RBR:REG=23,VAL=17
1608 RF24:RBR:REG=23,VAL=17
1638 RF24:RBR:REG=23,VAL=17
1667 RF24:RBR:REG=23,VAL=17
1696 RF24:RBR:REG=23,VAL=17
1726 RF24:RBR:REG=23,VAL=17
1755 RF24:RBR:REG=23,VAL=17
1784 RF24:RBR:REG=23,VAL=17
1814 RF24:RBR:REG=23,VAL=17
1843 RF24:RBR:REG=23,VAL=17
1872 RF24:RBR:REG=23,VAL=17
1902 RF24:RBR:REG=23,VAL=17
1931 RF24:RBR:REG=23,VAL=17
1960 RF24:RBR:REG=23,VAL=17
1990 RF24:RBR:REG=23,VAL=17
2019 RF24:RBR:REG=23,VAL=17
2049 RF24:RBR:REG=23,VAL=17
2077 RF24:RBR:REG=23,VAL=17
2107 RF24:RBR:REG=23,VAL=17
2137 RF24:RBR:REG=23,VAL=17
2165 RF24:RBR:REG=23,VAL=17
2195 RF24:RBR:REG=23,VAL=17
2225 RF24:RBR:REG=23,VAL=17
2253 RF24:RBR:REG=23,VAL=17
2283 RF24:RBR:REG=23,VAL=17
2313 RF24:RBR:REG=23,VAL=17
2341 RF24:RBR:REG=23,VAL=17
2371 RF24:RBR:REG=23,VAL=17
2401 RF24:RBR:REG=23,VAL=17
2429 RF24:RBR:REG=23,VAL=17
2459 RF24:RBR:REG=23,VAL=17
2489 RF24:RBR:REG=23,VAL=17
2518 RF24:RBR:REG=23,VAL=17
2547 RF24:RBR:REG=23,VAL=17
2577 RF24:RBR:REG=23,VAL=17
2606 RF24:RBR:REG=23,VAL=17
2635 RF24:RBR:REG=23,VAL=17
2665 RF24:RBR:REG=23,VAL=17
2694 RF24:RBR:REG=23,VAL=17
2723 RF24:RBR:REG=23,VAL=17
2753 RF24:RBR:REG=23,VAL=17
2782 RF24:RBR:REG=23,VAL=17
2811 RF24:RBR:REG=23,VAL=17
2840 RF24:RBR:REG=23,VAL=17
2870 RF24:RBR:REG=23,VAL=17
2899 RF24:RBR:REG=23,VAL=17
2928 RF24:RBR:REG=23,VAL=17
2958 RF24:RBR:REG=23,VAL=17
2988 RF24:RBR:REG=23,VAL=17
3016 RF24:RBR:REG=23,VAL=17
3046 RF24:RBR:REG=23,VAL=17
3076 RF24:RBR:REG=23,VAL=17
3104 RF24:RBR:REG=23,VAL=17
3134 RF24:RBR:REG=23,VAL=17
3164 RF24:RBR:REG=23,VAL=17
3192 RF24:RBR:REG=23,VAL=17
3222 RF24:RBR:REG=23,VAL=17
3252 RF24:RBR:REG=23,VAL=17
3280 RF24:RBR:REG=23,VAL=17
3310 RF24:RBR:REG=23,VAL=17
3340 RF24:RBR:REG=23,VAL=17
3368 RF24:RBR:REG=23,VAL=17
3398 RF24:RBR:REG=23,VAL=17
3428 RF24:RBR:REG=23,VAL=17
3457 !TSM:FPAR:NO REPLY
3482 TSM:FPAR
3496 RF24:SPL
3512 RF24:WBR:REG=0,VAL=14
3539 RF24:OWP:RCPT=255
3564 RF24:WBR:REG=10,VAL=255
3595 RF24:WBR:REG=16,VAL=255
3624 RF24:TXM:TO=255,LEN=7
3653 RF24:FTX
3702 RF24:WBR:REG=7,VAL=48
3731 !RF24:TXM:MAX_RT
3753 RF24:FTX
3769 RF24:STL
3783 RF24:WBR:REG=0,VAL=15
3812 RF24:WBR:REG=10,VAL=102
3842 TSF:MSG:SEND,102-102-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
3919 RF24:RBR:REG=23,VAL=17
3948 RF24:RBR:REG=23,VAL=17
3978 RF24:RBR:REG=23,VAL=17
4007 RF24:RBR:REG=23,VAL=17
4036 RF24:RBR:REG=23,VAL=17
4066 RF24:RBR:REG=23,VAL=17
4096 RF24:RBR:REG=23,VAL=17
4124 RF24:RBR:REG=23,VAL=17
4154 RF24:RBR:REG=23,VAL=17
4183 RF24:RBR:REG=23,VAL=17
4212 RF24:RBR:REG=23,VAL=17
4242 RF24:RBR:REG=23,VAL=17
4271 RF24:RBR:REG=23,VAL=17
4300 RF24:RBR:REG=23,VAL=17
4330 RF24:RBR:REG=23,VAL=17
4359 RF24:RBR:REG=23,VAL=17
4388 RF24:RBR:REG=23,VAL=17
4418 RF24:RBR:REG=23,VAL=17
4447 RF24:RBR:REG=23,VAL=17
4476 RF24:RBR:REG=23,VAL=17
4506 RF24:RBR:REG=23,VAL=17
4535 RF24:RBR:REG=23,VAL=17
4564 RF24:RBR:REG=23,VAL=17
4594 RF24:RBR:REG=23,VAL=17
4623 RF24:RBR:REG=23,VAL=17
4653 RF24:RBR:REG=23,VAL=17
4682 RF24:RBR:REG=23,VAL=17
4711 RF24:RBR:REG=23,VAL=17
4741 RF24:RBR:REG=23,VAL=17
4770 RF24:RBR:REG=23,VAL=17
4799 RF24:RBR:REG=23,VAL=17
4829 RF24:RBR:REG=23,VAL=17
4857 RF24:RBR:REG=23,VAL=17
4887 RF24:RBR:REG=23,VAL=17
4917 RF24:RBR:REG=23,VAL=17
4945 RF24:RBR:REG=23,VAL=17
4975 RF24:RBR:REG=23,VAL=17
5005 RF24:RBR:REG=23,VAL=17
5033 RF24:RBR:REG=23,VAL=17
5063 RF24:RBR:REG=23,VAL=17
5093 RF24:RBR:REG=23,VAL=17
5122 RF24:RBR:REG=23,VAL=17
5151 RF24:RBR:REG=23,VAL=17
5181 RF24:RBR:REG=23,VAL=17
5210 RF24:RBR:REG=23,VAL=17
5239 RF24:RBR:REG=23,VAL=17
5269 RF24:RBR:REG=23,VAL=17
5298 RF24:RBR:REG=23,VAL=17
5327 RF24:RBR:REG=23,VAL=17
5357 RF24:RBR:REG=23,VAL=17
5386 RF24:RBR:REG=23,VAL=17
5415 RF24:RBR:REG=23,VAL=17
5445 RF24:RBR:REG=23,VAL=17
5474 RF24:RBR:REG=23,VAL=17
5504 RF24:RBR:REG=23,VAL=17
5533 RF24:RBR:REG=23,VAL=17
5562 RF24:RBR:REG=23,VAL=17
5592 RF24:RBR:REG=23,VAL=17
5620 RF24:RBR:REG=23,VAL=17
5650 RF24:RBR:REG=23,VAL=17
5680 RF24:RBR:REG=23,VAL=17
5708 RF24:RBR:REG=23,VAL=17
5738 RF24:RBR:REG=23,VAL=17
5768 RF24:RBR:REG=23,VAL=17
5796 RF24:RBR:REG=23,VAL=17
5826 RF24:RBR:REG=23,VAL=17
5856 RF24:RBR:REG=23,VAL=17
5884 RF24:RBR:REG=23,VAL=17
5914 RF24:RBR:REG=23,VAL=17
5944 !TSM:FPAR:NO REPLY
5968 TSM:FPAR
5984 RF24:SPL
5998 RF24:WBR:REG=0,VAL=14
6027 RF24:OWP:RCPT=255
6050 RF24:WBR:REG=10,VAL=255
6081 RF24:WBR:REG=16,VAL=255
6112 RF24:TXM:TO=255,LEN=7
6139 RF24:FTX
6189 RF24:WBR:REG=7,VAL=48
6217 !RF24:TXM:MAX_RT
6241 RF24:FTX
6255 RF24:STL
6269 RF24:WBR:REG=0,VAL=15
6298 RF24:WBR:REG=10,VAL=102
6329 TSF:MSG:SEND,102-102-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
6406 RF24:RBR:REG=23,VAL=17
6435 RF24:RBR:REG=23,VAL=17
6464 RF24:RBR:REG=23,VAL=17
6494 RF24:RBR:REG=23,VAL=17
6523 RF24:RBR:REG=23,VAL=17
6552 RF24:RBR:REG=23,VAL=17
6582 RF24:RBR:REG=23,VAL=17
6611 RF24:RBR:REG=23,VAL=17
6640 RF24:RBR:REG=23,VAL=17
6670 RF24:RBR:REG=23,VAL=17
6700 RF24:RBR:REG=23,VAL=17
6728 RF24:RBR:REG=23,VAL=17
6758 RF24:RBR:REG=23,VAL=17
6788 RF24:RBR:REG=23,VAL=17
6816 RF24:RBR:REG=23,VAL=17
6846 RF24:RBR:REG=23,VAL=17
6875 RF24:RBR:REG=23,VAL=17
6904 RF24:RBR:REG=23,VAL=17
6934 RF24:RBR:REG=23,VAL=17
6963 RF24:RBR:REG=23,VAL=17
6992 RF24:RBR:REG=23,VAL=17
7022 RF24:RBR:REG=23,VAL=17
7051 RF24:RBR:REG=23,VAL=17
7080 RF24:RBR:REG=23,VAL=17
7110 RF24:RBR:REG=23,VAL=17
7139 RF24:RBR:REG=23,VAL=17
7169 RF24:RBR:REG=23,VAL=17
7198 RF24:RBR:REG=23,VAL=17
7227 RF24:RBR:REG=23,VAL=17
7257 RF24:RBR:REG=23,VAL=17
7286 RF24:RBR:REG=23,VAL=17
7315 RF24:RBR:REG=23,VAL=17
7345 RF24:RBR:REG=23,VAL=17
7374 RF24:RBR:REG=23,VAL=17
7403 RF24:RBR:REG=23,VAL=17
7433 RF24:RBR:REG=23,VAL=17
7462 RF24:RBR:REG=23,VAL=17
7491 RF24:RBR:REG=23,VAL=17
7521 RF24:RBR:REG=23,VAL=17
7550 RF24:RBR:REG=23,VAL=17
7579 RF24:RBR:REG=23,VAL=17
7609 RF24:RBR:REG=23,VAL=17
7638 RF24:RBR:REG=23,VAL=17
7667 RF24:RBR:REG=23,VAL=17
7697 RF24:RBR:REG=23,VAL=17
7726 RF24:RBR:REG=23,VAL=17
7755 RF24:RBR:REG=23,VAL=17
7785 RF24:RBR:REG=23,VAL=17
7814 RF24:RBR:REG=23,VAL=17
7843 RF24:RBR:REG=23,VAL=17
7873 RF24:RBR:REG=23,VAL=17
7902 RF24:RBR:REG=23,VAL=17
7931 RF24:RBR:REG=23,VAL=17
7961 RF24:RBR:REG=23,VAL=17
7990 RF24:RBR:REG=23,VAL=17
8019 RF24:RBR:REG=23,VAL=17
8049 RF24:RBR:REG=23,VAL=17
8078 RF24:RBR:REG=23,VAL=17
8108 RF24:RBR:REG=23,VAL=17
8137 RF24:RBR:REG=23,VAL=17
8166 RF24:RBR:REG=23,VAL=17
8196 RF24:RBR:REG=23,VAL=17
8225 RF24:RBR:REG=23,VAL=17
8254 RF24:RBR:REG=23,VAL=17
8284 RF24:RBR:REG=23,VAL=17
8313 RF24:RBR:REG=23,VAL=17
8342 RF24:RBR:REG=23,VAL=17
8372 RF24:RBR:REG=23,VAL=17
8400 RF24:RBR:REG=23,VAL=17
8430 !TSM:FPAR:NO REPLY
8456 TSM:FPAR
8470 RF24:SPL
8485 RF24:WBR:REG=0,VAL=14
8513 RF24:OWP:RCPT=255
8538 RF24:WBR:REG=10,VAL=255
8567 RF24:WBR:REG=16,VAL=255
8598 RF24:TXM:TO=255,LEN=7
8627 RF24:FTX
8676 RF24:WBR:REG=7,VAL=48
8705 !RF24:TXM:MAX_RT
8727 RF24:FTX
8741 RF24:STL
8757 RF24:WBR:REG=0,VAL=15
8785 RF24:WBR:REG=10,VAL=102
8815 TSF:MSG:SEND,102-102-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
8893 RF24:RBR:REG=23,VAL=17
8922 RF24:RBR:REG=23,VAL=17
8951 RF24:RBR:REG=23,VAL=17
8981 RF24:RBR:REG=23,VAL=17
9010 RF24:RBR:REG=23,VAL=17
9039 RF24:RBR:REG=23,VAL=17
9068 RF24:RBR:REG=23,VAL=17
9098 RF24:RBR:REG=23,VAL=17
9127 RF24:RBR:REG=23,VAL=17
9156 RF24:RBR:REG=23,VAL=17
9186 RF24:RBR:REG=23,VAL=17
9216 RF24:RBR:REG=23,VAL=17
9244 RF24:RBR:REG=23,VAL=17
9274 RF24:RBR:REG=23,VAL=17
9304 RF24:RBR:REG=23,VAL=17
9332 RF24:RBR:REG=23,VAL=17
9362 RF24:RBR:REG=23,VAL=17
9392 RF24:RBR:REG=23,VAL=17
9420 RF24:RBR:REG=23,VAL=17
9450 RF24:RBR:REG=23,VAL=17
9480 RF24:RBR:REG=23,VAL=17
9508 RF24:RBR:REG=23,VAL=17
9538 RF24:RBR:REG=23,VAL=17
9568 RF24:RBR:REG=23,VAL=17
9596 RF24:RBR:REG=23,VAL=17
9626 RF24:RBR:REG=23,VAL=17
9656 RF24:RBR:REG=23,VAL=17
9684 RF24:RBR:REG=23,VAL=17
9714 RF24:RBR:REG=23,VAL=17
9743 RF24:RBR:REG=23,VAL=17
9773 RF24:RBR:REG=23,VAL=17
9802 RF24:RBR:REG=23,VAL=17
9831 RF24:RBR:REG=23,VAL=17
9861 RF24:RBR:REG=23,VAL=17
9890 RF24:RBR:REG=23,VAL=17
9919 RF24:RBR:REG=23,VAL=17
9949 RF24:RBR:REG=23,VAL=17
9978 RF24:RBR:REG=23,VAL=17
10007 RF24:RBR:REG=23,VAL=17
10038 RF24:RBR:REG=23,VAL=17
10068 RF24:RBR:REG=23,VAL=17
10098 RF24:RBR:REG=23,VAL=17
10129 RF24:RBR:REG=23,VAL=17
10160 RF24:RBR:REG=23,VAL=17
10190 RF24:RBR:REG=23,VAL=17
10220 RF24:RBR:REG=23,VAL=17
10251 RF24:RBR:REG=23,VAL=17
10281 RF24:RBR:REG=23,VAL=17
10311 RF24:RBR:REG=23,VAL=17
10342 RF24:RBR:REG=23,VAL=17
10373 RF24:RBR:REG=23,VAL=17
10403 RF24:RBR:REG=23,VAL=17
10433 RF24:RBR:REG=23,VAL=17
10464 RF24:RBR:REG=23,VAL=17
10494 RF24:RBR:REG=23,VAL=17
10524 RF24:RBR:REG=23,VAL=17
10555 RF24:RBR:REG=23,VAL=17
10586 RF24:RBR:REG=23,VAL=17
10616 RF24:RBR:REG=23,VAL=17
10646 RF24:RBR:REG=23,VAL=17
10677 RF24:RBR:REG=23,VAL=17
10707 RF24:RBR:REG=23,VAL=17
10737 RF24:RBR:REG=23,VAL=17
10768 RF24:RBR:REG=23,VAL=17
10799 RF24:RBR:REG=23,VAL=17
10828 RF24:RBR:REG=23,VAL=17
10859 RF24:RBR:REG=23,VAL=17
10890 RF24:RBR:REG=23,VAL=17
10920 !TSM:FPAR:FAIL
10942 TSM:FAIL:CNT=1
10964 TSM:FAIL:DIS
10984 TSF:TDI:TSL
11003 RF24:SLP
11019 RF24:WBR:REG=0,VAL=12
...
Great Scott! channel did a few great videos on this:
https://www.youtube.com/watch?v=pGLUsQozT94
How to Waterproof Electronics || Nail Polish, Silicone, Potting Compound β 07:49
β GreatScott!
(I have been using cheap clear nail polish from dollar store, and it seems like it works for moisture protection... not using for submersion however.)