Geändert habe ich:
self.api.cache["mqtt"].client.publish(self.topic, payload=json.dumps({"state": "on"}), qos=2, retain=True)
auf
self.api.cache["mqtt"].client.publish(self.topic, payload="on", qos=2, retain=True)
und Zeile 46 von
self.api.cache["mqtt"].client.publish(self.topic, payload=json ...