The MQTT architecture according to mqqtt.org is shown below


MQTT Brokers and Clients
Home Assistant is the Broker (installed by Add-on)Clients include Comfort, and Mobile phones.
The following MQTT topics are published (by Comfort):the MQTT published topics ae used to show status in Home Assistant
{ "Time": "2024-06-12T15:12:44",
"Name": "ScsRioResp129",
"ZoneWord": null,
"State": 0,
"Bypass": null
}


MQTT Brokers and Clients
- Clients publish messages to a topic on an MQTT broker.
- The Broker distributes these messages to any clients subscribed to that topic.
Home Assistant is the Broker (installed by Add-on)Clients include Comfort, and Mobile phones.
The following MQTT topics are published (by Comfort):the MQTT published topics ae used to show status in Home Assistant
- comfort2mqtt/alarm - current MQTT alarm state (disarmed, pending, armed_home, armed_away, armed_night, arm_vacation, triggered)
- comfort2mqtt/alarm/online - '1' for online, '0' for offline comfort2mqtt/alarm/message - Informational messages, e.g. the zone that triggered an alarm
- comfort2mqtt/alarm/timer - countdown entry/exit timer in seconds when arming to away mode or entering. updates every second.
- comfort2mqtt/alarm/status - Status of the alarm (Idle, Trouble, Alert, Alarm
- comfort2mqtt/alarm/bypass - List of Bypassed zones. EG. 1,3,5,7,9. '0' indicates no bypassed zones.
- comfort2mqtt/alarm/LWT - Online or Offline text status
- comfort2mqtt/alarm/refresh - Trigger a refresh of all objects. Used when a refresh of all object states are required.
- comfort2mqtt/alarm/connected - Status of LAN Connection to Comfort. \'1\' when connected and logged in
- comfort2mqtt/alarm/doorbell - '0' for off/answered or '1' for on
- comfort2mqtt/alarm/mode - Integer values for current Alarm Mode. 0 - 4 (Off, Away, Night, Day, Vacation), See Comfort M? or MD documentation.
- comfort2mqtt/input<1 to 96>; (Zone Input) have the following JSON attributes EG. { "Time": "2024-06-12T15:12:42",
- "Name": "GarageDoor",
"ZoneWord": "Garage Door",
"State": 0,
"Bypass": 0
}
{ "Time": "2024-06-12T15:12:44",
"Name": "ScsRioResp129",
"ZoneWord": null,
"State": 0,
"Bypass": null
}
- comfort2mqtt/output<1 to 96> (Zone Output) have the following JSON attributes EG.
{
\"Time\": \"2024-06-12T15:12:44\",
\"Name\": \"Output01\",
\"State\": 0
}
- comfort2mqtt/output<129 to 248> (SCS/RIO Output) have the following JSON attributes EG.
{
\"Time\": \"2024-06-12T15:12:45\",
\"Name\": \"ScsRioOutput129\",
\"State\": 0
}
- comfort2mqtt/flag<1 to 254> have the following JSON attributes EG.
{
\"Time\": \"2024-06-12T15:12:46\",
\"Name\": \"Flag01\",
\"State\": 0
}
- comfort2mqtt/sensor<0 to 31> have the following JSON attributes EG.
{
\"Time\": \"2024-06-12T17:16:54\",
\"Name\": \"Sensor01\",
\"Value\": 0
}
- comfort2mqtt/counter<0 to 254> have the following JSON attributes EG.
{
\"Time\": \"2024-06-12T15:12:49\",
\"Name\": \"Counter000\",
\"Value\": 0,
\"State\": 0
}
*Note: \'State\' 1 for On, 0 for Off. State is set to 1 when Value is non-zero. Used for lighting as this indicates On|Off status while Value could indicate brightness
- comfort2mqtt/alarm/set - sent from Home Assistant, DISARM, ARMED_HOME, ARMED_NIGHT, ARMED_VACATION or ARMED_AWAY
- comfort2mqtt/alarm/refresh - sent from Home Assistant, <Key> triggers a complete object refresh
- comfort2mqtt/alarm/battery_update - sent from Home Assistant, <id> triggers a battery update query \'D?id01 and D?id02 id\'s 1,33-37 are supported for Main and Slaves when ARM CPU is detected.
- comfort2mqtt/input<1 to 96>/set - 1 for open/active, 0 for closed/inactive. Settable if zone is a Virtual input
- comfort2mqtt/input<129 to 248>/set
- comfort2mqtt/output<1 to 96>/set - 0=off, 1=on, 2=change state , 3 = Pulse Output for 1 second, 4 - Flash Output at 1 sec On/Off rate
- comfort2mqtt/output<129 to 248>/set
- comfort2mqtt/response<1 to 1024>/set - value is ignored. Comfort response is activated as programmed in Comfigurator
- comfort2mqtt/flag<1 to 254>/set - 1 for on, 0 for off
- comfort2mqtt/counter<0 to 254>/set - 16-bit value
- comfort2mqtt/sensor<0 to 31>/set - 16-bit value














