Prepare and execute a HTTP POST call to AppCommand.xml end point.

        Returns XML ElementTree on success and None on fail.

def exec_appcommand_post(self, attribute_list):
        """
        Prepare and execute a HTTP POST call to AppCommand.xml end point.

        Returns XML ElementTree on success and None on fail.
        """
        # Prepare POST XML body for AppCommand.xml
        post_root = ET.Element("tx")

        for attribute in attribute_list:
            # Append tags for each attribute
            item = ET.Element("cmd")
            item.set("id", "1")
            item.text = attribute
            post_root.append(item)

        # Buffer XML body as binary IO
        body = BytesIO()
        post_tree = ET.ElementTree(post_root)
        post_tree.write(body, encoding="utf-8", xml_declaration=True)

        # Query receivers AppCommand.xml
        try:
            res = self.send_post_command(
                self._urls.appcommand, body.getvalue())
        except requests.exceptions.RequestException:
            _LOGGER.error("No connection to %s end point on host %s",
                          self._urls.appcommand, self._host)
            body.close()
        else:
            # Buffered XML not needed anymore: close
            body.close()

            try:
                # Return XML ElementTree
                root = ET.fromstring(res)
            except (ET.ParseError, TypeError):
                _LOGGER.error(
                    "End point %s on host %s returned malformed XML.",
                    self._urls.appcommand, self._host)
            else:
                return root