I’ve got two older roombas that are outfitted with ESP8266 wifi and are set up with MQTT. They work, but share a “channel”, so that they respond simultaneously to commands that I issue - obviously not the best way to go.
What is the best way to differentiate the two in terms of MQTT?
I’m thinking that in configuration.yaml
I’d want to change from:
mqtt:
vacuum:
- command_topic: "vacuum/command"
unique_id: "roomba-780"
unique_id: "roomba-860"
to something like:
mqtt:
vacuum:
- command_topic: "vacuum/roomba-780/command"
unique_id: "roomba-780"
- command_topic: "vacuum/roomba-860/command"
unique_id: "roomba-860"
… and of course, recompile the programs to match the new paths for MQTT… like this for the 860…
// MQTT Topic Settings
const char *MQTT_DISCOVERY_TOPIC = "homeassistant/vacuum/roomba-860/config";
const char *MQTT_STATE_TOPIC = "vacuum/roomba-860/state";
const char *MQTT_COMMAND_TOPIC = "vacuum/roomba-860/command";
const char *MQTT_AVAILABILITY_TOPIC = "vacuum/roomba-860/status";
… etc…
Maybe there is another more elegant/efficient way?
I’m thinking that the program should auto-populate the MQTT topics with a readable hostname htat contains the MAC address of the wifi card so that they are somewhat uniquely identified… Or a simple hostname?