diff options
author | jwansek <eddie.atten.ea29@gmail.com> | 2025-01-24 12:53:56 +0000 |
---|---|---|
committer | jwansek <eddie.atten.ea29@gmail.com> | 2025-01-24 12:53:56 +0000 |
commit | 8fc3775a16a6195f8ecf792cffe81afcf3b8a857 (patch) | |
tree | 1941c393dbe3637ef1d788b29ee3a55062a80f34 | |
parent | 88c7f1395c889cce14a9ad67da9b21212db75dde (diff) | |
download | TasmotaCLI-8fc3775a16a6195f8ecf792cffe81afcf3b8a857.tar.gz TasmotaCLI-8fc3775a16a6195f8ecf792cffe81afcf3b8a857.zip |
Stopped asking for the sudo password unless actually required
-rw-r--r-- | tasmota-mqtt-client.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/tasmota-mqtt-client.py b/tasmota-mqtt-client.py index 2151641..e8a43b8 100644 --- a/tasmota-mqtt-client.py +++ b/tasmota-mqtt-client.py @@ -34,7 +34,7 @@ class MQTTClient: def _on_connect_cb(self, mqtt, userdata, flags, rc): # print("Connected to broker") - topic = "tele/TasmotaPlug/%s/SENSOR" % self.friendlyname + topic = "tele/TasmotaPlug/%s/+" % self.friendlyname if self.message is None: print("Waiting for '%s'" % topic) self.mqtt_c.subscribe(topic) @@ -48,10 +48,10 @@ class MQTTClient: def _on_message_cb(self, mqtt, userdata, msg): # print('Topic: {0} | Message: {1}'.format(msg.topic, msg.payload)) - if msg.topic.split("/")[1] == self.friendlyname: - if msg.topic.split("/")[2] == "SENSOR": + if msg.topic.split("/")[2] == self.friendlyname: + if msg.topic.split("/")[3] == "SENSOR": self.switch_energy = json.loads(msg.payload.decode())["ENERGY"] - elif msg.topic.split("/")[2] == "STATE": + elif msg.topic.split("/")[3] == "STATE": self.switch_power = json.loads(msg.payload.decode())["POWER"] if self.switch_power is not None and self.switch_energy is not None: @@ -64,7 +64,7 @@ parser.add_argument( "-m", "--mqtt-host", type = str, help = "MQTT Server", - default = docker_net.get_mqtt_addr()[0] + default = "<docker>" ) parser.add_argument( "-u", "--user", @@ -86,6 +86,8 @@ parser.add_argument( if __name__ == "__main__": args = vars(parser.parse_args()) + if args["mqtt_host"] == "<docker>": + args["mqtt_host"] = docker_net.get_mqtt_addr()[0] if args["user"] is not None: args["password"] = getpass.getpass("Input password for %s@%s: " % (args["user"], args["mqtt_host"])) else: |