Step-by-step procedure to connect the NRF24L01+ to the GPIO pins and use the Raspberry as a Serial Gateway (MySensors 1.x)
-
Which capacitor(s) are you using?
Do you use a power amplified version of the nrf24l01+ or the regular version?
What is the output of /usr/local/sbin/PiGatewaySerial until the gateway stops working?@mfalkvidd
I have a 4.7uf electrolytic cap soldered directly to the pins on the radio module.
Radio is standard, ie antenna via board traces.I just did another batch of testing to try and answer your last question.
I started the gateway manually, ie sudo /usr/local/sbin/PiGatewaySerial
I plugged in a temp sensor (dallas 18b20, 3.3v apm, via 3.3v FTDI) into the computer so I could monitor the serial port.The first time I turned on the temp sensor, the gateway closed after 5 "read:"'s. I tried it again and the gateway stopped (meaning I was back at the prompt in putty) after 2 reads.
I decided to reboot the rpi. When it came back up, I had the Domoticz log open and I could see the gateway start before I could reopen a putty session. It appears the auto start worked correctly, and so far, it's still up.
I've been sending temp data successfully for ~10 minutes now....time passes...
I typed out the above, but didn't hit submit as I wanted to go put the relay node back together and test it.After gathering up those parts, I check the Domoticz log and it's still reading temp. While it IS working, the temps are displaying wrong in Domoticz. My sensor is sending F, but domoticz thinks it's C and it converts.
I'm mentioning this because, when I open the serial monitor to confirm the node was sending F values, it of course resets the node. This killed the gateway. I got the following in my domoticz log:
2016-02-19 15:00:30.362 (MySensorsSerial) Temp (Temp)
2016-02-19 15:00:38.371 (MySensorsSerial) Temp (Temp)
2016-02-19 15:00:46.380 (MySensorsSerial) Temp (Temp)
2016-02-19 15:00:50.384 (MySensorsSerial) Temp (Temp)
2016-02-19 15:00:54.389 (MySensorsSerial) Temp (Temp)
2016-02-19 15:00:58.393 (MySensorsSerial) Temp (Temp)
2016-02-19 15:01:02.398 (MySensorsSerial) Temp (Temp)
2016-02-19 15:01:06.403 Error: Serial Port closed!... Error: End of file
2016-02-19 15:01:06.864 MySensors: retrying in 30 seconds...
2016-02-19 15:01:35.867 MySensors: Using serial port: /dev/ttyUSB20
2016-02-19 15:01:35.868 Error: MySensors: Error opening serial port!
2016-02-19 15:01:36.869 MySensors: retrying in 30 seconds...
2016-02-19 15:02:05.871 MySensors: Using serial port: /dev/ttyUSB20
2016-02-19 15:02:05.872 Error: MySensors: Error opening serial port!
2016-02-19 15:02:06.872 MySensors: retrying in 30 seconds...
2016-02-19 15:02:20.010 Active notification subsystems: (0/10)
2016-02-19 15:02:35.875 MySensors: Using serial port: /dev/ttyUSB20
2016-02-19 15:02:35.875 Error: MySensors: Error opening serial port!
2016-02-19 15:02:36.875 MySensors: retrying in 30 seconds...I ran sudo cat /dev/ttyMySensorsGateway and get 'No such file' message. I interpret this to mean the gateway has stopped running, right?
Next I manually started the gateway again. It immediately starts reading the temp sensor again. After the next 30 second timer expires, Domoticz picks it right back up too.
I think I figured something out... If I restart a node with the gateway running, it kills the gateway and my above symptoms start. I'm able to repeat this without failure.
I'm going to do some more testing, but it seems that when the node sends the s=255 message, the gateway is dieing.
I want to see what happens if I turn on another node while the first is alraedy running. Perhaps I have to have all my nodes on before I start the gateway?I am very encouraged as I at least finally feel like I'm moving forward. Was getting frustrated for awhile there. :)
Thanks again for the write to help me get started. -
Did some more testing. Now I know why it seemed related to the relay node.
The relay node needs the gateway to be listening when it wakes up. If it fails when it presents, ie the gateway is down, it doesn't try again.I did have the relay sketch working at some point, so I don't think it's that sketch. I'm thinking I have a problem with the gateway. I work as a developer, so I've been trying to acquaint myself with the code. I mostly use SQL and VB.net in my day job. I loved C++ in college, but it's been almost that long since I used it. :)
Does anyone have any ideas what might be causing this? I'm going to go reread the section on the mysensors protocol and see I can spot anything wrong in those presentation messages.
-
Hi there
I did everything according to the instructions. Installing went without complications. However, when trying to verify the gateway problems arise.After typing
sudo /usr/local/sbin/PiGatewaySerialI receive the message: command not found.
Also, no /dev/ttyMySensorsGateway file has been created.When I am entering
sudo /etc/init.d/PiGatewaySerial startnothing happens. I only get a new command line.
I can start the gateway, however, when I am entering
sudo ./PiGatewaySerialin the Raspberry folder.
I already tried to uninstall and re-install everything, without success. Has anybody any suggestions how to solve this issue?
-
Hi there
I did everything according to the instructions. Installing went without complications. However, when trying to verify the gateway problems arise.After typing
sudo /usr/local/sbin/PiGatewaySerialI receive the message: command not found.
Also, no /dev/ttyMySensorsGateway file has been created.When I am entering
sudo /etc/init.d/PiGatewaySerial startnothing happens. I only get a new command line.
I can start the gateway, however, when I am entering
sudo ./PiGatewaySerialin the Raspberry folder.
I already tried to uninstall and re-install everything, without success. Has anybody any suggestions how to solve this issue?
-
@Justinian looks like you forgot to run "sudo make install" after "make all"
@mfalkvidd said:
@Justinian looks like you forgot to run "sudo make install" after "make all"
I took a little break from this project, but I worked on it again this weekend. I decided to start from scratch and rebuild the gateway completely. I put a fresh Domoticz image onto the SD card, updated and upgraded, cloned, compiled, and installed the RF24 and Raspberry code.
Now I have the exact same symptom as Justinian :(
Since this used to work for me at some point, next I will try using an older Dmoticz image. I read somewhere that people had better success by NOT using apt-get update. Perhaps it's a problem with Jessie vs Wheezy? Domoticz switched kernels during on of the version upgrades.
Winter is over, so I can live without getting my furnace controls working right now. I know relays have an issue, but now I'm just needing to monitor the temperature in an egg incubator.
I'm surprised that using a rpi with this radio module directly attached is not a more popular platform. Is it just not a reliable platform? With the rpi3 out now, there shouldn't be a CPU load issue trying to act as an HA controller even with a large installation. I've got lots of ideas I want to implement if I can ever get a stable backend.
-
@Justinian looks like you forgot to run "sudo make install" after "make all"
@mfalkvidd thanks for your help. Unfortunately, this didn't resolve the issue. I repeated the installation, this time deliberately executing sudo make install, but the problem remained.
@hayduke Maybe this indeed is an issue with Raspbian Jessie as I am on Jessie. -
Jessie uses a different init system than Wheezy. Systemd should be able to handle most old init scripts, but this case might be an exception.
Has anyone successfully installed this on Jessie?
A unit file for systemd would be a good addition, in any case, in my opinion.
-
Jessie uses a different init system than Wheezy. Systemd should be able to handle most old init scripts, but this case might be an exception.
Has anyone successfully installed this on Jessie?
A unit file for systemd would be a good addition, in any case, in my opinion.
I'm on the latest Jessie version. Prior to that I also used DietPi as a platform for Domoticz and Mysensors. I have not done an apt-get update or apt-upgrade since the install (I used the Jessie image from the Raspberry Org site).
As for load, here is the image of Domoticz CPU load of the last year:
As you can see, combining the Gateway function with the Controller function on the Raspberry 2 gives virtually no load. I could probably add the Plex Media Player software to this and still have room for some more cron jobs.
-
Thanks @mfalkvidd - will check it out.
-
Ps. I followed https://github.com/abouillot/HomeAutomation/tree/master/piGateway and now have a MQTT service running. But I do not know how to connect this to domoticz or even debug that it can actually see my test sensor etc.
-
@mfalkvidd said:
@Justinian looks like you forgot to run "sudo make install" after "make all"
I took a little break from this project, but I worked on it again this weekend. I decided to start from scratch and rebuild the gateway completely. I put a fresh Domoticz image onto the SD card, updated and upgraded, cloned, compiled, and installed the RF24 and Raspberry code.
Now I have the exact same symptom as Justinian :(
Since this used to work for me at some point, next I will try using an older Dmoticz image. I read somewhere that people had better success by NOT using apt-get update. Perhaps it's a problem with Jessie vs Wheezy? Domoticz switched kernels during on of the version upgrades.
Winter is over, so I can live without getting my furnace controls working right now. I know relays have an issue, but now I'm just needing to monitor the temperature in an egg incubator.
I'm surprised that using a rpi with this radio module directly attached is not a more popular platform. Is it just not a reliable platform? With the rpi3 out now, there shouldn't be a CPU load issue trying to act as an HA controller even with a large installation. I've got lots of ideas I want to implement if I can ever get a stable backend.
This thread has been great - thanks @mfalkvidd!
@hayduke I had a similar problem earlier. I haven't fixed it yet, but here's where I'm at:
Clean install (Jessie, RF24, Raspberry) March 25th 2016 has the problem where it works for a few minutes, then stops (/dev/pts/0 dissapears, which breaks the symbolic links - ttyMySensorsGateway and ttyUSB20). This is at home where I have a bunch of nodes around and a Vera with serial gateway, so there are lots of different signals coming in.
But when I move to another location with just one node (that just sends a light status update regularly), it works fine - at least, I've been sitting here with it running for 30 minutes so far.
I know this might not help much, I'm new to all this and still getting my head around everything. I would probably agree with what you suggested earlier: something in one of the messages that causes a problem with the gateway (possibly to do with already having another serial gateway nearby).
I'll try to do some more testing by changing this gateway to a different channel to my other one, and gradually bringing nodes across to see when it breaks.
-
Hello, im just starting to set up some mysensors nodes and have already set up a gateway with nodemcu (esp).
But to eliminate the number of devices i am thinking about moving the gateway directly to the Raspberry pi as mentioned in this thread. Is there any downsides (or upsides) by connecting the nrf24 chip directly to the RPI?And btw:
"The radio module NRF24L01+ is cheap and power efficient, but it is unable to communicate with regular wifi."
That is not entirely correct, the nrf24 can connecct to wifi and send TCP/IP packets with an arduino. -
@stranger just to make sure - you said you have two gateways at home. Did you change the channel so that they do not interfere with each other?
@alexsh1 No actually. I didn't want to go around and reprogram all my nodes, and I forgot to turn off my other gateway. That is what I was going to do next, but I've just been running it for a few hours with no problems (with a heap of nodes and another gateway a few metres away, all on the same channel).
I then Home Assistant and tested out a few nodes, and now it sometimes breaks, but mostly works fine.
All that being said, I've realised I need signing (I have a few electronic locks), so I'm going back to a hardware serial gateway. If anyone has got signing working I'd love to hear how - I had a look but couldn't figure it out and don't have much time to spare on it.
-
pi@Domoticz3:~/Raspberry$ sudo ./PiGatewaySerial Starting PiGatewaySerial... Protocol version - 1.4 Created PTY '/dev/pts/1' Gateway tty: /dev/ttyMySensorsGateway ================ SPI Configuration ================ CSN Pin = CE0 (PI Hardware Driven) CE Pin = Custom GPIO25 Clock Speed = 8 Mhz ================ NRF Configuration ================ STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xa8-------------------------------- RX_ADDR_P2-5 = 0xff 0xc----------------- TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x20 0x20 0x20 0x00 0x00 0x00 EN_AA = 0x3b EN_RXADDR = 0x06 RF_CH = 0x4c RF_SETUP = 0x23 CONFIG = 0x0e DYNPD/FEATURE = 0x3f 0x06 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_LOW ^[read: 1-1-0 s=0,c=1,t=0,pt=7,l=5:16.1 read: 1-1-0 s=0,c=1,t=23,pt=2,l=2:1022 read: 1-1-0 s=1,c=1,t=23,pt=2,l=2:1023 read: 1-1-0 s=2,c=1,t=23,pt=2,l=2:1021 Received SIGINT^C Exiting... pi@Domoticz3:~/Raspberry$ sudo cat /dev/ttyMySensorsGateway cat: /dev/ttyMySensorsGateway: No such file or directory pi@Domoticz3:~/Raspberry$ sudo /etc/init.d/PiGatewaySerial start [....] Starting PiGatewaySerial (via systemctl): PiGatewaySerial.serviceFailed to start PiGatewaySerial.service: Unit PiGatewaySerial.service failed to load: No such file or directory. failed! pi@Domoticz3:~/Raspberry$Playing with a RPI 3 B and a NRF24+ radio I got this error message above.
Running Jessie but with no luck...Anybody else got this problem?
-
pi@Domoticz3:~/Raspberry$ sudo ./PiGatewaySerial Starting PiGatewaySerial... Protocol version - 1.4 Created PTY '/dev/pts/1' Gateway tty: /dev/ttyMySensorsGateway ================ SPI Configuration ================ CSN Pin = CE0 (PI Hardware Driven) CE Pin = Custom GPIO25 Clock Speed = 8 Mhz ================ NRF Configuration ================ STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xa8-------------------------------- RX_ADDR_P2-5 = 0xff 0xc----------------- TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x20 0x20 0x20 0x00 0x00 0x00 EN_AA = 0x3b EN_RXADDR = 0x06 RF_CH = 0x4c RF_SETUP = 0x23 CONFIG = 0x0e DYNPD/FEATURE = 0x3f 0x06 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_LOW ^[read: 1-1-0 s=0,c=1,t=0,pt=7,l=5:16.1 read: 1-1-0 s=0,c=1,t=23,pt=2,l=2:1022 read: 1-1-0 s=1,c=1,t=23,pt=2,l=2:1023 read: 1-1-0 s=2,c=1,t=23,pt=2,l=2:1021 Received SIGINT^C Exiting... pi@Domoticz3:~/Raspberry$ sudo cat /dev/ttyMySensorsGateway cat: /dev/ttyMySensorsGateway: No such file or directory pi@Domoticz3:~/Raspberry$ sudo /etc/init.d/PiGatewaySerial start [....] Starting PiGatewaySerial (via systemctl): PiGatewaySerial.serviceFailed to start PiGatewaySerial.service: Unit PiGatewaySerial.service failed to load: No such file or directory. failed! pi@Domoticz3:~/Raspberry$Playing with a RPI 3 B and a NRF24+ radio I got this error message above.
Running Jessie but with no luck...Anybody else got this problem?