Things file for mqtt 2.4 "empty or cannot be parsed properly"

Still struggling with MQTT 2.4 things file.
Got this error about mqtt.things file being “empty or cannot be parsed properly” I did a seperate one for mqtt broker which was fine and seen in the paper UI.

mqtt.things

{
    Thing mqtt:topic:sonoffps1 "PS1 Powerstrip Masterbedroom" @ "Master Bedroom" {
        Type string : reachable "Reachable"            [ stateTopic="tele/sonoff/powerstrip1/LWT" ]
        Type switch : power     "Power"                [ stateTopic="stat/sonoff/powerstrip1/POWER", commandTopic="cmnd/sonoff/powerstrip1/POWER" ]
        Type number : rssi      "WiFi Signal Strength" [ stateTopic="tele/sonoff/powerstrip1/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

    Thing mqtt:topic:sonoffps2 "PS2 Powerstrip 2nd Floor Landing" @ "2nd Floor Landing" {
        Type string   : reachable  "Reachable"            [ stateTopic="tele/sonoff/powerstrip2/LWT" ]
        Type switch   : power      "Power"                [ stateTopic="stat/sonoff/powerstrip2/POWER", commandTopic="cmnd/sonoff/powerstrip2/POWER" ]
        Type number   : rssi       "WiFi Signal Strength" [ stateTopic="tele/sonoff/powerstrip2/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

     Thing mqtt:topic:sonoffps3 "PS3 Powerstrip 22U Rack" @ "Study" {
        Type string   : reachable  "Reachable"            [ stateTopic="tele/sonoff/powerstrip3/LWT" ]
        Type switch   : power      "Power"                [ stateTopic="stat/sonoff/powerstrip3/POWER", commandTopic="cmnd/sonoff/powerstrip3/POWER" ]
        Type number   : rssi       "WiFi Signal Strength" [ stateTopic="tele/sonoff/powerstrip3/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

     Thing mqtt:topic:rackfan "Rackfan" @ "Study" {
        Type string   : reachable  "Reachable"            [ stateTopic="tele/sonoff/sonoff-rackfan/LWT" ]
        Type switch   : power      "Power"                [ stateTopic="stat/sonoff/sonoff-rackfan/POWER", commandTopic="cmnd/sonoff/sonoff-rackfan/POWER" ]
        Type number   : rssi       "WiFi Signal Strength" [ stateTopic="tele/sonoff/sonoff-rackfan/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

    Thing mqtt:topic:UPS05 "UPS for 192.168.0.5" @ "Study" {
        Type string : reachable "Reachable"              [ stateTopic="tele/sonoff/ups05/LWT" ]
        Type switch : power     "Power"                  [ stateTopic="stat/sonoff/ups05/POWER", commandTopic="cmnd/sonoff/ups05/POWER" ]
        Type number : powerload "Power load"             [ stateTopic="tele/sonoff/ups05/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
        Type number : voltage   "Line voltage"           [ stateTopic="tele/sonoff/ups05/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : current   "Line current"           [ stateTopic="tele/sonoff/ups05/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : total     "Total energy today"     [ stateTopic="tele/sonoff/ups05/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
        Type number : totalyest "Total energy yesterday" [ stateTopic="tele/sonoff/ups05/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/sonoff/ups05/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

    Thing mqtt:topic:UPS04 "UPS for 192.168.0.4" @ "Study" {
        Type string : reachable "Reachable"              [ stateTopic="tele/sonoff/ups04/LWT" ]
        Type switch : power     "Power"                  [ stateTopic="stat/sonoff/ups04/POWER", commandTopic="cmnd/sonoff/ups04/POWER" ]
        Type number : powerload "Power load"             [ stateTopic="tele/sonoff/ups04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
        Type number : voltage   "Line voltage"           [ stateTopic="tele/sonoff/ups04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : current   "Line current"           [ stateTopic="tele/sonoff/ups04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : total     "Total energy today"     [ stateTopic="tele/sonoff/ups04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
        Type number : totalyest "Total energy yesterday" [ stateTopic="tele/sonoff/ups04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/sonoff/ups04/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

    Thing mqtt:topic:sonoffsc "Sonoff SC" @ "Another Room" {
        Type string : reachable   "Reachable"            [ stateTopic="tele/sonoff-sc/LWT" ]
        Type number : temperature "Temperature"          [ stateTopic="tele/sonoff-sc/SENSOR", transformationPattern="JSONPATH:$.SonoffSC.Temperature"]
        Type number : humidity    "Humidity"             [ stateTopic="tele/sonoff-sc/SENSOR", transformationPattern="JSONPATH:$.SonoffSC.Humidity"]
        Type number : light       "Light"                [ stateTopic="tele/sonoff-sc/SENSOR", transformationPattern="JSONPATH:$.SonoffSC.Light"]
        Type number : noise       "Noise"                [ stateTopic="tele/sonoff-sc/SENSOR", transformationPattern="JSONPATH:$.SonoffSC.Noise"]
        Type number : airquality  "Air Quality"          [ stateTopic="tele/sonoff-sc/SENSOR", transformationPattern="JSONPATH:$.SonoffSC.AirQuality"]
        Type number : rssi        "WiFi Signal Strength" [ stateTopic="tele/sonoff-sc/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }

        Thing mqtt:topic:bridge1 "RF Bridge" @ "Master Bedroom" {
        Type string : reachable     "Reachable"            [ stateTopic="tele/sonoff/bridge1/LWT" ]
        Type string : recieveddata  "Received Data"        [ stateTopic="tele/sonoff/bridge1/RESULT", transformationPattern="JSONPATH:$.RfReceived.Data"]
        Type string : recievedsync  "Received Sync"        [ stateTopic="tele/sonoff/bridge1/RESULT", transformationPattern="JSONPATH:$.RfReceived.Sync"]
        Type string : recievedlow   "Received Low"         [ stateTopic="tele/sonoff/bridge1/RESULT", transformationPattern="JSONPATH:$.RfReceived.Low"]
        Type string : recievedhigh  "Received High"        [ stateTopic="tele/sonoff/bridge1/RESULT", transformationPattern="JSONPATH:$.RfReceived.High"]
        Type string : recievedrfkey "Received RfKey"       [ stateTopic="tele/sonoff/bridge1/RESULT", transformationPattern="JSONPATH:$.RfReceived.RfKey"]
        Type switch : button1       "Button 1"             [ stateTopic="stat/sonoff/bridge1/RESULT", commandTopic="cmnd/sonoff/bridge1/RFKEY1", transformationPattern="JSONPATH:$.RfKey1" ]
        Type switch : button16      "Button 16"            [ stateTopic="stat/sonoff/bridge1/RESULT", commandTopic="cmnd/sonoff/bridge1/RFKEY16", transformationPattern="JSONPATH:$.RfKey16" ]
        Type number : rssi          "WiFi Signal Strength" [ stateTopic="tele/sonoff/bridge1/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
    }
}

What did I do wrong?
Much thanks

Did you try following the examples and add the broker at the top of the mqtt.things file?

Oops…yes, I forgot to add the broker at the top of the things file.
Does this mean the broker part is needed for every things file?

Just put all your mqtt things in the same file