@andriej
Hi, I had problem using the main branch mysensors/Raspberry, that because of the bit-field struct (header_s) in Sensor.h They will get packed in different order on the arduino compared to the RPi (at least with my compiler, gcc). In order to fix this I created the 1.4dev branch. It uses full bytes instead of the bit-fields, but you need (of cause) to compile both the sensors (arduino) and the gateway (RPi) using the 1.4dev branch.
We need to fix this in the main branch later on (and use the same files as in mysensors/Arduino/libraries/MySensors)
LiFePO4 batteries are a great choice because they have a long life cycle and are much safer than other lithium-based batteries. However, you need a solar charge controller that’s compatible with LiFePO4 to prevent overcharging and maintain efficiency. A good MPPT controller can significantly boost energy harvest from your panels. Also, ensure your solar panel output matches your power needs. If you're in solar ireland, you might find some local companies that offer tailored solutions for maximizing solar efficiency in lower light conditions.
@TheoL Not only did I put in delays, too, but I put in delays that were based upon the ID (which was stored in NVRAM)! This helped.
caveat: This is probably not accurate be helps to explain the challenges with a large network.
My initial experience with Arduino/nRF24 was using the libraries from TMRh20. Those libraries allowed a node to be a repeater, but only for 6 nodes. The primary node 0, master, only allowed 6 nodes to connect to it. The nodes connected to it also allowed 6 nodes. Subsequent nodes had to go through one of these repeating nodes. But the depth was only 4 deep. The master assigned node IDs if the node didn't already have one; similar to a MAC address.
The master also kept track of the addresses (ARP table?). Addresses were 4 octets (base in the form of D/C/B/A. A node connected directly to the master had an address of 0/0/0/a (where 0/0/0/0 was reserved for the master). A node connected through another node had an address of 0/0/b/a, and so forth.
But what happens is that a parent node has to mange the data from all its child nodes and their child nodes and their child nodes. Thus a node would get so bogged down dealing with this traffic that it din't do its sensor task very well.
It is my belief that MySensors either uses TMRh20's libraries or has developed some aspects based on his initial work. I see that that TMRh20 has a version 2 and I have not experimented with it. I did find that MySensors worked better than version 1.
Thus, my curiosity.
I am also duly impressed at the magnitude of hardware. Currently a nano like device from Aliexperss is US$2-3, nRF24 ~ US$1, power supply ~ US$1.50, power cord ?, case?, sensors!? While the hardware cost is daunting, even with a PCB it's a lot of work building those up. So, yeah, I'm impressed!
-OSD
@OldSurferDude My old 2.0 setup is with nRF24L01 radios. This is a link to the thread on some light switches that I designed and built.
https://forum.mysensors.org/topic/7376/us-decora-wall-switch-continued/2
I am aware that you cannot have two MQTT gatways. When I designed my old setup I was not that familiar with MQTT so I never ended up implementing it. On the home assistant server that I have set up though, I have installed the MQTT broker on there so I should be able to comunicate with any MySensors stuff over MQTT in the future devices I make/set up. As I mentioned, I do have a Home Assistant box that I have started about 4 months ago and eventually want to migrate my Vera equipment to the HA box.
As for the YAML and Python, I'll muddle my way through. used to program in PHP and have done enough on Arduino that I'm sure it won't hurt my brain too much.
Nice work so far @wint0178, great that you try expanding on the examples. Sorry for the late reply.
If you look at https://github.com/mysensors/MySensorsArduinoExamples/blob/bba998bce09bc5139eb4ca7a05b0279f4083ff88/examples/PressureSensor/PressureSensor.ino#L90 you see where the existing child ids are defines. You just add another one for the gas sensor, with a unique number (incrementing by 1 is an easy way).
Try that and report back on your result. If something is unclear, just post a followup.