Which communication protocol(s) to use?

See attached.

I've read about wifi (connecting to router with username/password), wifi (using pipes), BT/BLE, and ZigBee but my project may include one or more of these.
The "sensor" setup/config must be very simple to communicate with "controller": user installation. Next-to-no interface.
Similarly with the "controlled". Next-to-no interface.
The "controller" I expect to be setup/config using Web page interface and/or console on controller.
Not sure if I will use (1) through the cloud or (2) locally.
I could use help as to what protocol(s) to use.
Thanks.

may include one or more of these

That makes it hard to answer, as they are not simply mix and match. You need to give more of a functional description. Also when you say, "next to no interface" does this suggest that you could have hard coded identities, or do names/IP addresses have to be configured?

Each communication type has it's own set of protocols, so you have to break it down that way. Basically, it is too early to ask about protocols if you aren't sure how things should function.

Not directly an answer to your question but the scheme may interest you.

I have a system using a RPi, and 6 ESP32's.

The RPi runs as a MQTT BROKER to the ESP32's.

I use a Python program, I wrote, that serves as communications broker. The program receives data from the ESP32's and sends/routes data to the ESP32's. The program reads and writes to the MQTT broker and reads from and writes to a database on my website.

One of the ESP32's is a weather station. The weather station runs on solar/battery and uses MQTT to pass data to the Broker.

You can go online and find public MQTT Brokers as well as further info on the MQQT thing do

I can't answer your question because it is too broad of a subject to fit into a simple answer. Like Idaho, I will simply describe my home system.

I have about two-dozen sensors, switches and lights around my house. Many are on ESP devices like a Wemos D1 Mini and some running Tasmota firmware. I also have a number of Sonoff devices (running Tasmota). All communicate using MQTT over WiFi. I have Mosquitto MQTT broker running on a Raspberry Pi 3.

For control I use a mix of Node Red and Home Assistant. Home Assistant can be overwhelming at first because it uses YAML configuration files, but you get used to it. Plus the user forums are very helpful. Node-Red is the LEGO of smart home control. (It was actually developed by IBM for industrial controls). Both Home Assistant and Node-Red have a web based GUI, so any PC, tablet or phone on my home network can access the GUIs.

I also have a few Z-Wave switches. I gave up on my ZigBee lights (Ikea) as too unreliable.

I've recently added some 433 MHz devices that also communicate using MQTT (Sonoff RF Bridge).

Hope this helps.

Found some more articles and it appears Zigbee is the protocol to use for sensors. The module I found requires 3.3 v and cmos-to-ttl converter. So I'm thinking of using nano Iot as the controller. I'd like to use nano every for the sensor device but it uses 5 v and Zigbee module uses 3.3 v.
Should I use MKR boards (1 wifi and 2 not) instead?
With RTC.
And data logger.
And Zigbee modules.
And cmos-to-ttl converters
And power converters

Read something about MQTT and MQTT-SN but got overwhelmed. I'm trying to avoid learning Rpi and Python for the time being and don't have a Linux machine.

+1, @SteveMann.

I, also, understand that Node-Red can be used to connect to a database.


I, orginally, used AWS, Amazon Web Services, as a MQTT Broker with the ESP32's. They give a year grace before they start charging, the experience was great but, they begin to hint that I'd have to pay a dollar a day, after the first year, I stopped using their services.

The ESP32's connected directly to AWS. The tricky part was getting the TLS to properly work. There is a good thread on this site about using TLS, search 'idahowalker mqtt tls'.

MQTT or Modbus TCP are options. In my opinion, the Modbus TCP is better because it is not required a central server. You just need to use your multiple smartphones as Modbus Masters, and Controller as Modbus Slave. An other advantage of Modbus is that the protocol has defined the application interface. If you use MQTT, you have to define the application interface (command structure ...). See more in Arduino Modbus tutorial

IoT_hobbyist:
If you use MQTT, you have to define the application interface (command structure ...).

That's an advantage.

As I said, both Node-Red and Home Assistant have a web-based UI. Any device with a browser on your local LAN can access it.

Idahowalker... Does your weather station include anemometer?

@jcampbell, Not at the moment.

I plan on adding a hot wire and spinner anemometer somewhen.

MQTT Broker, which is free, can be ran on a PC. There are, also, public MQTT Brokers such as one from Adafruity Connecting to the Adafruit IO MQTT Broker | MQTT in CircuitPython | Adafruit Learning System

Idahowalker:
@jcampbell, Not at the moment.

I plan on adding a hot wire and spinner anemometer somewhen.

MQTT Broker, which is free, can be ran on a PC. There are, also, public MQTT Brokers such as one from Adafruity Connecting to the Adafruit IO MQTT Broker | MQTT in CircuitPython | Adafruit Learning System

Since the broker must be online whenever you expect data, why waste a PC? Mine is on a headless Arduino (oops) Raspberry Pi3 in a closet and it's been running non-stop for many months.

You could even put it on a Pi Zero-W (a $5 computer), but I prefer wired Ethernet.

SteveMann:
Since the broker must be online whenever you expect data, why waste a PC? Mine is on a headless Arduino in a closet and it's been running non-stop for many months.

You could even put it on a Pi Zero-W (a $5 computer), but I prefer wired Ethernet.

You got a Arduino running MQTT Broker? Point me the Arduino MQTT Broker Library, please.

Idahowalker:
You got a Arduino running MQTT Broker? Point me the Arduino MQTT Broker Library, please.

Oops. No, it's an old Raspberry Pi 3.

SteveMann:
Oops. No, it's an old Raspberry Pi 3.

nods


I looked through Paho and figured out how to add qos 2 to the ClientPubSub. I may tackle that someday.

Idaho Walker...is your controller for the weather station also outside or just the sensors?
I'm trying to find operating temperatures for arduinos.

jcampsall:
Idaho Walker...is your controller for the weather station also outside or just the sensors?
I'm trying to find operating temperatures for arduinos.

The AVR 328 processor electrical characteristics are specified in terms of ambient temperature between -40C and +85C.

Weather station components that are outside:
solar cells, LifePo4 battery, PWM charge controller, 5V switching regulator, 3.3V MCP1700 and filter components, ESP32, and a BME680.