per_listener_settings true allow_zero_length_clientid true autosave_interval 5 autosave_on_changes true log_dest syslog log_timestamp false persistence true persistence_location /var/lib/mosquitto/ pid_file /run/mosquitto/mosquitto.pid set_tcp_nodelay ${str(node.metadata.get('mosquitto/tcp_nodelay', True)).lower()} % for port, config in sorted(node.metadata.get('mosquitto/listeners', {}).items()): listener ${port} max_connections ${config.get('max_connections', -1)} protocol ${config.get('protocol', 'mqtt')} allow_anonymous ${str(config.get('allow_anonymous', True)).lower()} % endfor % for bridge, config in sorted(node.metadata.get('mosquitto/bridges', {}).items()): connection ${bridge} address ${config['peer']} bridge_attempt_unsubscribe true cleansession ${str(config.get('cleansession', True)).lower()} notifications true notifications_local_only true remote_clientid ${config.get('client_id', node.name)} % if 'auth' in config: remote_password ${config['auth']['password']} remote_username ${config['auth']['username']} % endif start_type automatic % for topic in config['topics']: topic ${topic['pattern']} ${topic.get('direction', 'in')} ${topic.get('qos', 0)} /${topic.get('local_prefix', bridge)}/ ${topic.get('remote_prefix', '')} % endfor try_private ${str(config.get('try_private', True)).lower()} % endfor