đź’¬ Building a Raspberry Pi Gateway
-
Update:
-
tested the RFM69 gateway with a radio module attached -> Not working
-
tried to compile and execute the NRF24 gateway on the first spi bus (--spi-spidev-device=/dev/spidev0.0) -> same error as above
ERROR Could not open /sys/class/gpio/gpio12/directionI have checked my Makefile and configure files and they don't contain the modification proposed by @phildefer . Is this normal? I'm using the development branch.
-
-
Tested with this commit of @phildefer, now both gateways compiles and starts but for both I got this error.
Oct 27 20:50:41 DEBUG !TSM:INIT:TSP FAIL -
Hi, if someone needs more info (debug, log, etc...) I'm here.
I can perform tests on Rpi 3 and Rpi 4 (Raspbian Buster) with NRF24 and RFM69 radio modules and then report the results. Not so much but maybe this can help the development.
-
I'm doing a brand new install of Openhab2 and the mysensors gateway on a new Raspberry Pi 4 after having run Openhab(1) and the mysensors gateway successfully on a Raspberry Pi 3 for years. I used the development branch of the mysensorsgateway as discussed here: https://github.com/mysensors/MySensors/pull/1364
I wrote down my step by step procedure here in case it helps someone else. I'm starting out with the pre-built Openhabian image found here: https://www.openhab.org/docs/installation/openhabian.html
Install the PiGatewaySerial using these instructions:
- First get to your Downloads directory
cd cd Downloads- Clone the MySensors repository into your Downloads directory and then go into that folder
git clone https://github.com/mysensors/MySensors.git --branch development cd MySensors- Set configuration options (you can use “./configure —help” to see your options)
a. In this case we are choosing to use the serial gateway with a pseudo terminal and a symbolic link to that pseudoterminal called ttyUSB20 in /dev. We then set the group to tty.
./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB20 --my-serial-groupname=ttyEdit: If building this on a 64bit operating system you will need to edit the configure file before running make. Do the following:
cp configure configure_bk nano configureFind this function
function gcc_cpu_flags { local soc=$1 case $soc inand find your CPU. In my case it is the BCM2711 (I've only done this on this one CPU so your mileage may vary) and I changed this:
BCM2711) flags="-march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard"to this:
BCM2711) flags="-march=armv8-a+crc -mtune=cortex-a72"Then proceed to step 4 below.
- Run make and make install
make sudo make install- We can set it to launch on boot up by running
sudo systemctl enable mysgw.service- To launch it manually right now run (skip this step to run and see output for confirmation that it works)
sudo systemctl start mysgw.service- Executable in located:
cd /usr/local/bin- need root to run it:
sudo mysgwThat's pretty much it. I was happily greeted with:
Dec 29 16:01:50 INFO Starting gateway...
Dec 29 16:01:50 INFO Protocol version - 2.4.0-alpha
Dec 29 16:01:50 DEBUG Serial port /dev/ttyUSB20 (115200 baud) created
Dec 29 16:01:50 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
Dec 29 16:01:50 DEBUG TSF:LRT:OK
Dec 29 16:01:50 DEBUG TSM:INIT
Dec 29 16:01:50 DEBUG TSF:WUR:MS=0
Dec 29 16:01:50 DEBUG TSM:INIT:TSP OK
Dec 29 16:01:50 DEBUG TSM:INIT:GW MODE
Dec 29 16:01:50 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
Dec 29 16:01:50 DEBUG MCO:REG:NOT NEEDED
Dec 29 16:01:50 DEBUG MCO:BGN:STP
Dec 29 16:01:50 DEBUG MCO:BGN:INIT OK,TSP=1
Dec 29 16:01:50 DEBUG TSM:READY:NWD REQ
Dec 29 16:01:50 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
Dec 29 16:01:50 DEBUG TSF:MSG:READ,4-4-0,s=255,c=3,t=21,pt=1,l=1,sg=0:0
Dec 29 16:01:50 DEBUG TSF:MSG:READ,0-4-255,s=255,c=3,t=20,pt=0,l=0,sg=0:
Dec 29 16:01:50 DEBUG TSF:MSG:BC
Dec 29 16:01:52 DEBUG TSF:MSG:READ,4-4-0,s=1,c=1,t=2,pt=2,l=2,sg=0:0
Dec 29 16:01:52 DEBUG TSF:MSG:READ,4-4-0,s=2,c=1,t=2,pt=2,l=2,sg=0:0
Dec 29 16:01:52 DEBUG TSF:MSG:READ,4-4-0,s=3,c=1,t=2,pt=2,l=2,sg=0:1
Dec 29 16:01:52 DEBUG TSF:MSG:READ,4-4-0,s=4,c=1,t=2,pt=2,l=2,sg=0:1
^CDec 29 16:02:35 NOTICE Received SIGINT -
Be advised that there seems to be an issue with rfm69HW on the raspberry pi:
When using the radio directly on the pi (not as a serial gateway) the range drops significantly:
https://github.com/mysensors/MySensors/issues/1367
Apparently this wasn't an issue with mysensors 2.2, so using that is an option if you can compile it for you raspberry pi.
-
I'm getting a bad file descriptor error, any advice? Seems only 1 instance to be running.
pi@raspberrypi:~ $ sudo mysgw Mar 19 20:14:04 INFO Starting gateway... Mar 19 20:14:04 INFO Protocol version - 2.3.2 Mar 19 20:14:04 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2 Mar 19 20:14:04 DEBUG TSF:LRT:OK Mar 19 20:14:04 DEBUG TSM:INIT Mar 19 20:14:04 DEBUG TSF:WUR:MS=0 Mar 19 20:14:04 DEBUG TSM:INIT:TSP OK Mar 19 20:14:04 DEBUG TSM:INIT:GW MODE Mar 19 20:14:04 DEBUG TSM:READY:ID=0,PAR=0,DIS=0 Mar 19 20:14:04 DEBUG MCO:REG:NOT NEEDED Mar 19 20:14:04 ERROR bind: Address already in use Mar 19 20:14:04 ERROR Failed to bind! Mar 19 20:14:04 DEBUG MCO:BGN:STP Mar 19 20:14:04 DEBUG MCO:BGN:INIT OK,TSP=1 Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 DEBUG TSM:READY:NWD REQ Mar 19 20:14:04 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK: Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor -
I'm getting a bad file descriptor error, any advice? Seems only 1 instance to be running.
pi@raspberrypi:~ $ sudo mysgw Mar 19 20:14:04 INFO Starting gateway... Mar 19 20:14:04 INFO Protocol version - 2.3.2 Mar 19 20:14:04 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2 Mar 19 20:14:04 DEBUG TSF:LRT:OK Mar 19 20:14:04 DEBUG TSM:INIT Mar 19 20:14:04 DEBUG TSF:WUR:MS=0 Mar 19 20:14:04 DEBUG TSM:INIT:TSP OK Mar 19 20:14:04 DEBUG TSM:INIT:GW MODE Mar 19 20:14:04 DEBUG TSM:READY:ID=0,PAR=0,DIS=0 Mar 19 20:14:04 DEBUG MCO:REG:NOT NEEDED Mar 19 20:14:04 ERROR bind: Address already in use Mar 19 20:14:04 ERROR Failed to bind! Mar 19 20:14:04 DEBUG MCO:BGN:STP Mar 19 20:14:04 DEBUG MCO:BGN:INIT OK,TSP=1 Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 DEBUG TSM:READY:NWD REQ Mar 19 20:14:04 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK: Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor Mar 19 20:14:04 ERROR accept: Bad file descriptor -
@mfalkvidd thanks, I was wrongly under the impression that sudo mysgw would show the logs but it creates a second instance. Thanks for helping :smile:!
-
I have an Arduino Mesh network (see https://tmrh20.github.io/RF24Mesh/) (master and 4 nodes)
networkChannel 120, networkDataRate RF24_1MBPS, nodes 0-4Now I want to have my master be an RPi because it can talk to the real world.
It looks like I have the RPi wired up and software loaded (per https://www.mysensors.org/build/raspberry). Now I need to know how to talk to my Arduino's.
Now how do I talk to my Arduino's?
o- general description of what you are trying to do
Raspberry Pi controller with serial gateway with nrf24l01+ to connect to Arduino's
o- the exact configure command you used
git clone https://github.com/mysensors/MySensors.git --branch master
cd MySensors
./configure --my-transport=rf24 --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyMySensorsGateway
make
sudo ./bin/mysgw
[reboot RPi]
cd MySensors
sudo make install
sudo systemctl enable mysgw.service
sudo systemctl start mysgw.service
ls -als /dev/ttyMySensorsGateway [yeilds: 0 lrwxrwxrwx 1 root root 10 Apr 9 19:22 /dev/ttyMySensorsGateway -> /dev/pts/1]o- the output from the test
Apr 09 18:47:32 INFO Config file /etc/mysensors.conf does not exist, creating new file.
Apr 09 18:47:32 INFO Starting gateway...
Apr 09 18:47:32 INFO Protocol version - 2.3.2
Apr 09 18:47:32 DEBUG Serial port /dev/ttyMySensorsGateway (115200 baud) created
Apr 09 18:47:32 INFO EEPROM file /etc/mysensors.eeprom does not exist, creating new file.
Apr 09 18:47:32 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2
Apr 09 18:47:32 DEBUG TSF:LRT:OK
Apr 09 18:47:32 DEBUG TSM:INIT
Apr 09 18:47:32 DEBUG TSF:WUR:MS=0
Apr 09 18:47:32 DEBUG TSM:INIT:TSP OK
Apr 09 18:47:32 DEBUG TSM:INIT:GW MODE
Apr 09 18:47:32 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
Apr 09 18:47:32 DEBUG MCO:REG:NOT NEEDED
Apr 09 18:47:32 DEBUG MCO:BGN:STP
Apr 09 18:47:32 DEBUG MCO:BGN:INIT OK,TSP=1
Apr 09 18:47:32 DEBUG TSM:READY:NWD REQ
Apr 09 18:47:32 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
[did not return to command prompt]
o- the settings you used in your controller
n/a -
I have an Arduino Mesh network (see https://tmrh20.github.io/RF24Mesh/) (master and 4 nodes)
networkChannel 120, networkDataRate RF24_1MBPS, nodes 0-4Now I want to have my master be an RPi because it can talk to the real world.
It looks like I have the RPi wired up and software loaded (per https://www.mysensors.org/build/raspberry). Now I need to know how to talk to my Arduino's.
Now how do I talk to my Arduino's?
o- general description of what you are trying to do
Raspberry Pi controller with serial gateway with nrf24l01+ to connect to Arduino's
o- the exact configure command you used
git clone https://github.com/mysensors/MySensors.git --branch master
cd MySensors
./configure --my-transport=rf24 --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyMySensorsGateway
make
sudo ./bin/mysgw
[reboot RPi]
cd MySensors
sudo make install
sudo systemctl enable mysgw.service
sudo systemctl start mysgw.service
ls -als /dev/ttyMySensorsGateway [yeilds: 0 lrwxrwxrwx 1 root root 10 Apr 9 19:22 /dev/ttyMySensorsGateway -> /dev/pts/1]o- the output from the test
Apr 09 18:47:32 INFO Config file /etc/mysensors.conf does not exist, creating new file.
Apr 09 18:47:32 INFO Starting gateway...
Apr 09 18:47:32 INFO Protocol version - 2.3.2
Apr 09 18:47:32 DEBUG Serial port /dev/ttyMySensorsGateway (115200 baud) created
Apr 09 18:47:32 INFO EEPROM file /etc/mysensors.eeprom does not exist, creating new file.
Apr 09 18:47:32 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=255,VER=2.3.2
Apr 09 18:47:32 DEBUG TSF:LRT:OK
Apr 09 18:47:32 DEBUG TSM:INIT
Apr 09 18:47:32 DEBUG TSF:WUR:MS=0
Apr 09 18:47:32 DEBUG TSM:INIT:TSP OK
Apr 09 18:47:32 DEBUG TSM:INIT:GW MODE
Apr 09 18:47:32 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
Apr 09 18:47:32 DEBUG MCO:REG:NOT NEEDED
Apr 09 18:47:32 DEBUG MCO:BGN:STP
Apr 09 18:47:32 DEBUG MCO:BGN:INIT OK,TSP=1
Apr 09 18:47:32 DEBUG TSM:READY:NWD REQ
Apr 09 18:47:32 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
[did not return to command prompt]
o- the settings you used in your controller
n/a -
hi i am trying to install an MQTT type gateway on a raspberry pi 3,
Â
I configured it as in the example:./configure --my-gateway = mqtt --my-controller-ip-address = 127.0.0.1 --my-mqtt-publish-topic-prefix = mysensors-out --my-mqtt-subscribe-topic-prefix = mysensors-in --my-mqtt-client-id = mygateway1
Then I do make and it does not generate errors.
and when i run
sudo mysgw
returns the following result, I do not understand what it can be or what it means.
Apr 10 15:12:21 DEBUG connected to 127.0.0.1
Apr 10 15:12:22 DEBUG! GWT: RMQ: FAIL
Apr 10 15:12:22 DEBUG GWT: RMQ: CONNECTING ...
Apr 10 15:12:22 DEBUG connected to 127.0.0.1
Apr 10 15:12:23 DEBUG! GWT: RMQ: FAIL
Apr 10 15:12:23 DEBUG GWT: RMQ: CONNECTING ...
Apr 10 15:12:23 DEBUG connected to 127.0.0.1I appreciate your time to explain this to me please, I am just starting to use Mysensors and it is incredible everything that can be generated.
Also I want to connect it to Mycontrroller.org to manage my devices from my sensor network with only 1 Gateway, I already downloaded it in my RPI3 and it runs fine, but when I connect or create the mqtt type gateway, it asks me for the broker host and I do not know what to put there, I thought of 127.0.0.1, but after that it tells me that the State is down and an error message with the IP of 127.0.0.1 and I do not know then that I need this. Thanks again for your time to explain this to you.
-
You're not being able to connect to your MQTT broker (Mosquitto or Moqutte as was in mycontroller.org). I havent used mycontroller so I cant help with that.
I use Mosquitto on the same Rpi (so just install mosquitto and mosquitto-clients). You should secure it but test first without credentials to get going. Remember to create credentials in mosquitto AND reconfig your gw
-
You're not being able to connect to your MQTT broker (Mosquitto or Moqutte as was in mycontroller.org). I havent used mycontroller so I cant help with that.
I use Mosquitto on the same Rpi (so just install mosquitto and mosquitto-clients). You should secure it but test first without credentials to get going. Remember to create credentials in mosquitto AND reconfig your gw
@MasMat I already managed to configure my gateway it already works with Mycontroller.org, I like the interface of this, but I was thinking if the nodes of my network, which are esp8266 can be configured an operating system like FreeRTOS, TinyOS or ApacHE MyNewt can be configured in my osp and handle all Mysensors processes?
There is a possibility or it is impossible -
@MasMat I already managed to configure my gateway it already works with Mycontroller.org, I like the interface of this, but I was thinking if the nodes of my network, which are esp8266 can be configured an operating system like FreeRTOS, TinyOS or ApacHE MyNewt can be configured in my osp and handle all Mysensors processes?
There is a possibility or it is impossible@Nicolás-Potier that's way way over my understanding and fluency with Mysensors. And way off topic, I think.
-
Hi all,
I want to launch gateway on RaspberryPi with a RS485 network.
I downloaded the software (MySensors Library v2.4.0-alpha).
And i made coniguration:
./configure --my-transport=rs485 --my-rs485-serial-port=/dev/ttyUSB0 --my-rs485-baudrate=9600 --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyUSB20 -my-serial-baudrate=115200 -my-serial-groupname=ttyI have USB-RS485 (it uses FT232RL) converter connected to the /dev/ttyUSB0.
On the other side i have Arduino uno with UART-RS485 (MAX485) converter, and a MotionSensorRS485 example on it.After i made the program (make), and type sudo ./bin/mysgw, i've got this:

I'm able to add the hardware in domoticz (serial gateway ttyYSB20, 115200), but it doesn't see nodes.

Please help.
-
Hi all,
I want to launch gateway on RaspberryPi with a RS485 network.
I downloaded the software (MySensors Library v2.4.0-alpha).
And i made coniguration:
./configure --my-transport=rs485 --my-rs485-serial-port=/dev/ttyUSB0 --my-rs485-baudrate=9600 --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyUSB20 -my-serial-baudrate=115200 -my-serial-groupname=ttyI have USB-RS485 (it uses FT232RL) converter connected to the /dev/ttyUSB0.
On the other side i have Arduino uno with UART-RS485 (MAX485) converter, and a MotionSensorRS485 example on it.After i made the program (make), and type sudo ./bin/mysgw, i've got this:

I'm able to add the hardware in domoticz (serial gateway ttyYSB20, 115200), but it doesn't see nodes.

Please help.
@rafal9318 please don't post the same question in multiple threads. Posting in multiple threads means the discussion is split. Important information might be available in one thread, but not the other, which means people have to ask you for that information multiple times. It is a waste of the community members' (including you) time.
If anyone can help @rafal9318 please respond in https://forum.mysensors.org/topic/11128/raspberrypi-4-as-a-gateway-controller
-
@rafal9318 please don't post the same question in multiple threads. Posting in multiple threads means the discussion is split. Important information might be available in one thread, but not the other, which means people have to ask you for that information multiple times. It is a waste of the community members' (including you) time.
If anyone can help @rafal9318 please respond in https://forum.mysensors.org/topic/11128/raspberrypi-4-as-a-gateway-controller
@mfalkvidd Okey, sorry.
-
I’m sorry if this is a newbie question. I have managed to create a controller using MyController on a Raspberry Pi. I have connected a NRF24l01 and created a gateway, and my controller picks up that I have a gateway present, so I assume my wiring is correct.
I have started to wire up the status LEDs, and this is where I am confused. I am used to using LEDs on PI, but connecting between he GPIO pin and ground, where the GPIO provides the voltage. The diagram above suggests that they should be permanently connected to the voltage and the GPIO provides the ground connection. Is this correct? And if it is, is it possible to test the LEDs? Thanks in advance. -
I’m sorry if this is a newbie question. I have managed to create a controller using MyController on a Raspberry Pi. I have connected a NRF24l01 and created a gateway, and my controller picks up that I have a gateway present, so I assume my wiring is correct.
I have started to wire up the status LEDs, and this is where I am confused. I am used to using LEDs on PI, but connecting between he GPIO pin and ground, where the GPIO provides the voltage. The diagram above suggests that they should be permanently connected to the voltage and the GPIO provides the ground connection. Is this correct? And if it is, is it possible to test the LEDs? Thanks in advance.@ej3-martin My LEDs come on when the Rpi boots (is that what you mean by testing?). Also you can invert the LEDs (on but blink off) if you want. I figured the wiring makes for better power delivery rather than feeding voltage from the GPIO
-
@MasMat I was purely wanting to find a way of testing them, to check my wiring, if they do come on during boot then this is a great way to test. It would also possibly be useful (for those of us less experienced) to have a script to run to check the wiring is correct. I think it much more useful to have them off, and blink on, and it was the wiring that confused me. I will have to see if I can investigate this further.