diff --git a/service.mqtt/resources/language/English/strings.po b/service.mqtt/resources/language/English/strings.po index 9bac79f4a9ff7aa69aa45fb669742cbeafd81432..892484a9d76576494366cb44613eacf8795205b3 100644 --- a/service.mqtt/resources/language/English/strings.po +++ b/service.mqtt/resources/language/English/strings.po @@ -32,6 +32,10 @@ msgctxt "#30013" msgid "MQTT Topic Prefix" msgstr "" +msgctxt "#30014" +msgid "MQTT Debug Logging" +msgstr "" + msgctxt "#30100" msgid "Authentication" msgstr "" diff --git a/service.mqtt/resources/settings.xml b/service.mqtt/resources/settings.xml index 935dc334e83c36daf809063fe1d44838f64c70e1..2b7aef600f6f7f529e0b25ef8f35c10289ca2f21 100644 --- a/service.mqtt/resources/settings.xml +++ b/service.mqtt/resources/settings.xml @@ -4,6 +4,7 @@ <setting label="30011" type="text" id="mqtthost" default="127.0.0.1"/> <setting label="30012" type="number" id="mqttport" default="1883"/> <setting label="30013" type="text" id="mqtttopic" default="kodi/"/> + <setting label="30014" type="bool" id="mqttdebug" default="false"/> </category> <category label="30100"> <setting label="30101" type="bool" id="mqttanonymousconnection" default="true" /> diff --git a/service.mqtt/service.py b/service.mqtt/service.py index 10f61ce21a0ef7a32ed5dd98ed099793786fc1ef..7da80b186503e3d03aece40150bb282e023bee5a 100644 --- a/service.mqtt/service.py +++ b/service.mqtt/service.py @@ -15,9 +15,13 @@ activeplayertype="" lasttitle="" lastdetail={} +def mqttlogging(log): + if __addon__.getSetting("mqttdebug")=='true': + xbmc.log(log) + def sendrpc(method,params): res=xbmc.executeJSONRPC(json.dumps({"jsonrpc":"2.0","method":method,"params":params,"id":1})) - xbmc.log("MQTT: JSON-RPC call "+method+" returned "+res) + mqttlogging("MQTT: JSON-RPC call "+method+" returned "+res) return json.loads(res) # @@ -33,7 +37,7 @@ def publish(suffix,val,more): robj.update(more) jsonstr=json.dumps(robj) fulltopic=topic+"status/"+suffix - xbmc.log("MQTT: Publishing @"+fulltopic+": "+jsonstr) + mqttlogging("MQTT: Publishing @"+fulltopic+": "+jsonstr) mqc.publish(fulltopic,jsonstr,qos=0,retain=True) # @@ -97,7 +101,7 @@ def publishdetails(): class MQTTMonitor(xbmc.Monitor): def onSettingsChanged(self): global mqc - xbmc.log("MQTT: Settings changed, reconnecting broker") + mqttlogging("MQTT: Settings changed, reconnecting broker") mqc.loop_stop(True) startmqtt() @@ -130,7 +134,7 @@ class MQTTPlayer(xbmc.Player): setplaystate(1,"speed") def onQueueNextItem(): - xbmc.log("MQTT onqn"); + mqttlogging("MQTT onqn"); # # Handles commands @@ -172,7 +176,7 @@ def processcommand(topic,data): elif topic=="playbackstate": processplaybackstate(data) else: - xbmc.log("MQTT: Unknown command "+topic) + mqttlogging("MQTT: Unknown command "+topic) # # Handles incoming MQTT messages @@ -186,14 +190,14 @@ def msghandler(mqc,userdata,msg): if mytopic.startswith("command/"): processcommand(mytopic[8:],msg.payload) except Exception as e: - xbmc.log("MQTT: Error processing message %s: %s" % (type(e).__name__,e)) + mqttlogging("MQTT: Error processing message %s: %s" % (type(e).__name__,e)) def connecthandler(mqc,userdata,rc): - xbmc.log("MQTT: Connected to MQTT broker with rc=%d" % (rc)) + mqttlogging("MQTT: Connected to MQTT broker with rc=%d" % (rc)) mqc.subscribe(topic+"command/#",qos=0) def disconnecthandler(mqc,userdata,rc): - xbmc.log("MQTT: Disconnected from MQTT broker with rc=%d" % (rc)) + mqttlogging("MQTT: Disconnected from MQTT broker with rc=%d" % (rc)) time.sleep(5) mqc.reconnect() @@ -213,7 +217,7 @@ def startmqtt(): if not topic.endswith("/"): topic+="/" mqc.will_set(topic+"connected",0,qos=2,retain=True) - xbmc.log("MQTT: Connecting to MQTT broker at %s:%s" % (__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport"))) + mqttlogging("MQTT: Connecting to MQTT broker at %s:%s" % (__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport"))) mqc.connect(__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport"),60) mqc.publish(topic+"connected",2,qos=1,retain=True) mqc.loop_start()