def publish_properties(self):
publish = self.publish<EOL>publish(b"<STR_LIT>", b"<STR_LIT>")<EOL>publish(b"<STR_LIT>", self.settings.DEVICE_NAME)<EOL>publish(b"<STR_LIT>", b"<STR_LIT>")<EOL>publish(b"<STR_LIT>", b"<STR_LIT>")<EOL>publish(b"<STR_LIT>", __version__)<EOL>publish(b"<STR_LIT>", bytes(sys.platform, "<STR_LIT:utf-8>"))<EOL>publish(b"<STR_LIT>", utils.get_local_ip())<EOL>publish(b"<STR_LIT>", utils.get_local_mac())<EOL>publish(b"<STR_LIT>", b"<STR_LIT>")<EOL>publish(b"<STR_LIT>", self.stats_interval)<EOL>publish(b"<STR_LIT>", b"<STR_LIT:U+002C>".join(self.node_ids))<EOL>for node in self.nodes:<EOL><INDENT>try:<EOL><INDENT>for propertie in node.get_properties():<EOL><INDENT>if propertie:<EOL><INDENT>publish(*propertie)<EOL><DEDENT><DEDENT><DEDENT>except NotImplementedError:<EOL><INDENT>raise<EOL><DEDENT>except Exception as error:<EOL><INDENT>self.node_error(node, error)<EOL><DEDENT><DEDENT>
publish device and node properties