diff --git a/service.mqtt/resources/language/English/strings.po b/service.mqtt/resources/language/English/strings.po
index 049c1e45c18fce038a9cfb513bef23fefa82331b..9bac79f4a9ff7aa69aa45fb669742cbeafd81432 100644
--- a/service.mqtt/resources/language/English/strings.po
+++ b/service.mqtt/resources/language/English/strings.po
@@ -32,3 +32,18 @@ msgctxt "#30013"
 msgid "MQTT Topic Prefix"
 msgstr ""
 
+msgctxt "#30100"
+msgid "Authentication"
+msgstr ""
+
+msgctxt "#30101"
+msgid "Use anonymous connection"
+msgstr ""
+
+msgctxt "#30102"
+msgid "Username"
+msgstr ""
+
+msgctxt "#30103"
+msgid "Password"
+msgstr ""
diff --git a/service.mqtt/resources/settings.xml b/service.mqtt/resources/settings.xml
index a0da45ef22c787073e463fb8bf53d88a70e4e588..935dc334e83c36daf809063fe1d44838f64c70e1 100644
--- a/service.mqtt/resources/settings.xml
+++ b/service.mqtt/resources/settings.xml
@@ -5,4 +5,9 @@
         <setting label="30012" type="number"   id="mqttport" default="1883"/>
         <setting label="30013" type="text" id="mqtttopic" default="kodi/"/>
     </category>
-</settings>
\ No newline at end of file
+    <category label="30100">
+        <setting label="30101" type="bool"   id="mqttanonymousconnection" default="true" />
+        <setting label="30102" type="text"   id="mqttusername" default="" visible="eq(-1,false)" />
+        <setting label="30103" type="text"   id="mqttpassword" option="hidden" default="" visible="eq(-2,false)" />
+    </category>
+</settings>
diff --git a/service.mqtt/service.py b/service.mqtt/service.py
index 552a88a276fd9c04e21232be28fdb15d23f960f8..10f61ce21a0ef7a32ed5dd98ed099793786fc1ef 100644
--- a/service.mqtt/service.py
+++ b/service.mqtt/service.py
@@ -207,6 +207,8 @@ def startmqtt():
     mqc.on_message=msghandler
     mqc.on_connect=connecthandler
     mqc.on_disconnect=disconnecthandler
+    if __addon__.getSetting("mqttanonymousconnection")=='false':
+        mqc.username_pw_set(__addon__.getSetting("mqttusername"), __addon__.getSetting("mqttpassword"))
     topic=__addon__.getSetting("mqtttopic")
     if not topic.endswith("/"):
         topic+="/"
@@ -228,4 +230,4 @@ if (__name__ == "__main__"):
     while not monitor.waitForAbort(20):
         publishdetails()
     mqc.loop_stop(True)
-    
\ No newline at end of file
+