mysensors on rpi with NRF2401 with Domoticz
-
hello all,
the best thing on my Domoticz was MySensors.
But is was because Domoticz crashed during the latest update.
I had ti re-buid it but i can get MySensors back to work.The NRF pcb is directly connected to the MOSI and MISO of the RPI connector.
But i have only three posible choices in hardware on Domoticz.
MySensors Gateway with MQTT, with LAN interface or USB.What do i have to do to get it working again.
i have 10 MySensors units and 15 esp via MQTT units and since MySensors are the most reliable so don't want to change it to ESP-MQTT
Thanks
-
Hello @goblin, welcome to the forum.
You probably had installed the raspberry pi gateway, which supports serial (usb), ethernet (LAN) and mqtt.
Instructions: https://www.mysensors.org/build/raspberry
Easiest is probably ethernet.
-
that's correct. but i seems to have a problem with the correct Domoticz settings.
I need to select one out of three and i get a message "Error: rf: Failed to start, return code: 14/Connection refused (Check IP/Port" when select mqtt
and when select LAN the message "Error: rf: Can not connect to: 127.0.0.1:5003".
so it's obvious that i have did something wrong.Thanks
-
good evening,
I have tried ./configure --my-gateway=ethernet --my-controller-ip-address=127.0.0.1
But still the same errorThanks
-
good night
i have tried "Step-by-step procedure to connect the NRF24L01+ to the GPIO pins and use the Raspberry as a Serial Gateway (MySensors 1.x) " and get an error that is not mentioned (MySensor.cpp:644:5: error: ‘gettimeofday’ was not declared in this scope).
and this after sudo: /usr/local/sbin/PiGatewaySerial: command not foundi will have a good sleep and continue tomorrow
-
Nice work @goblin
Could you share all commands you ran and the entire output, including the configure, build and test steps?
Also, I don’t think Domoticz can use the gateway as a client. You should probably omit the
--my-controller-ip-address=127.0.0.1
argument.
-
thanks for your response.
I tried all possible combinations but one ( the one that works)
I started with "https://www.mysensors.org/build/raspberry"
git clone https://github.com/mysensors/MySensors.git --branch master. Expected response "fatal: destination path 'MySensors' already exists and is not an empty directory"
cd MySensors
/MySensors $ ./configure --my-transport=rf24
[SECTION] Detecting target machine.
[OK] machine detected: SoC=BCM2837, Type=rpi3, CPU=armv7l.
[SECTION] Detecting SPI driver.
[OK] SPI driver detected:BCM.
[SECTION] Gateway configuration.
[OK] Type: ethernet.
[OK] Transport: rf24.
[OK] Signing: Disabled.
[OK] Encryption: Disabled.
[OK] CPPFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI
[OK] CXXFLAGS: -std=c++11
[SECTION] Detecting init system.
[OK] Init system detected: systemd.
[SECTION] Saving configuration.
[OK] Saved.
[SECTION] Cleaning previous builds.
[OK] Finished./MySensors $ make .
return : gcc -MT build/hal/architecture/Linux/drivers/core/config.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/config.c -o build/hal/architecture/Linux/drivers/core/config.o
gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o
g++ -MT build/hal/architecture/Linux/drivers/core/compatibility.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/compatibility.cpp -o build/hal/architecture/Linux/drivers/core/compatibility.o
g++ -MT build/hal/architecture/Linux/drivers/core/EthernetClient.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetClient.cpp -o build/hal/architecture/Linux/drivers/core/EthernetClient.o
g++ -MT build/hal/architecture/Linux/drivers/core/EthernetServer.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetServer.cpp -o build/hal/architecture/Linux/drivers/core/EthernetServer.o
g++ -MT build/hal/architecture/Linux/drivers/core/GPIO.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/GPIO.cpp -o build/hal/architecture/Linux/drivers/core/GPIO.o
hal/architecture/Linux/drivers/core/GPIO.cpp: In constructor ‘GPIOClass::GPIOClass()’:
hal/architecture/Linux/drivers/core/GPIO.cpp:53:71: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
53 | snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
| ^~
hal/architecture/Linux/drivers/core/GPIO.cpp:53:33: note: ‘snprintf’ output between 22 and 277 bytes into a destination of size 64
53 | snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
hal/architecture/Linux/drivers/core/GPIO.cpp:62:71: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
62 | snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
| ^~
hal/architecture/Linux/drivers/core/GPIO.cpp:62:33: note: ‘snprintf’ output between 23 and 278 bytes into a destination of size 64
62 | snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
g++ -MT build/hal/architecture/Linux/drivers/core/interrupt.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/interrupt.cpp -o build/hal/architecture/Linux/drivers/core/interrupt.o
hal/architecture/Linux/drivers/core/interrupt.cpp:33:10: fatal error: stropts.h: No such file or directory
33 | #include <stropts.h>
| ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:99: build/hal/architecture/Linux/drivers/core/interrupt.o] Error 1Then i need to make a hardware choice in domoticz : between USB,LAN or MQTT.
and that is something i don't understand because non are used. The NRF24L01 is connected to MOSI MISO of the RPI.sorry for the long Reply
:
-
I am missing mysgw
I have searched the whole sdcard with WINSCP but can't find the config file, should be in /etc/mysensors.conf.
-
The key is here:
hal/architecture/Linux/drivers/core/interrupt.cpp:33:10: fatal error: stropts.h: No such file or directory
33 | #include <stropts.h>
| ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:99: build/hal/architecture/Linux/drivers/core/interrupt.o] Error 1See https://forum.mysensors.org/topic/11138/mysensors-build-problem-on-ubuntu-20-04-rpi-or-tinker-board/2 for a possible workaround. Then restart from the make step.
Mysgw will only be created after successful make.
-
thanks for pointing this out .
i have added a empty file stropts.h with sudo touch stropts.h. in the dir : usr/include
then Build make
a lot of response with a lot of warnings but 1 error at the end
(last lines )
/usr/bin/ld: build/examples_linux/mysgw.o: in function.LANCHOR1': /home/pi/MySensors/./hal/architecture/Linux/drivers/core/config.h:39: multiple definition of
conf'; build/hal/architecture/Linux/drivers/core/config.o:/home/pi/MySensors/hal/architecture/Linux/drivers/core/config.h:39: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:80: bin/mysgw] Error 1and still no "If there were no errors during compilation the file bin/mysgw will be created"
any idea were to look for this error ?
thanks
-
The bew error you got is discussed in https://forum.mysensors.org/topic/11448/config-h-39-first-defined-here/4
Easiest way is probably to switch to the development branch of mysensors.
Run
git checkout development
and then start over from the configure step. Or follow the step ”To use the development version with the latest updates” on the raspberry pi gateway build page.