MQTT Thing EX Source code Buy me a boba
English

Your MQTT devices,
in Apple Home.

A Homebridge plugin that turns MQTT topics into HomeKit accessories: lights, sensors, locks, thermostats and more. It is the actively maintained successor to homebridge-mqttthing, and your existing configuration works unchanged.

Free and open source. Works with Homebridge 1.8 or later, including 2.x.

Living Room Lamp
MQTT messages

    Try it. Drag the slider with the publish queue on and off.

    Switch over without starting again

    Coming from homebridge-mqttthing? Your config.json stays exactly as it is. Accessory blocks keep "accessory": "mqttthing", and codec files and apply expressions keep working.

    1. Uninstall homebridge-mqttthing

      Both plugins answer to the name mqttthing, so only one can be installed at a time.

    2. Install MQTT Thing EX

      From the Homebridge UI, or with npm.

    3. Restart Homebridge once

      Do it all in one go, with a single restart. Accessories keep their identity, so rooms, scenes and automations stay as they are.

    No re-pairing is needed. Homebridge identifies each accessory by its name, not by the plugin, and the names stay the same.

    config.json
    {
      "accessory": "mqttthing",
      "type": "lightbulb",
      "name": "Living Room Lamp",
      "url": "mqtt://broker.local:1883",
      "topics": {
        "setOn": "living/lamp/setOn",
        "getOn": "living/lamp/getOn",
        "setBrightness": "living/lamp/setBrightness",
        "getBrightness": "living/lamp/getBrightness"
      }
    }

    One connection per broker, not per device

    The original plugin opens an MQTT connection for every accessory. Optional platform mode puts all your devices in one block and gives them a shared connection, so twenty-four lights on one broker need one connection instead of twenty-four.

    Accessory mode

    12 devices, 12 connections

    MQTT

    Platform mode

    12 devices, 1 connection

    MQTT
    • Renaming is safe

      Devices carry a stable id, so the name is just a label. Change it whenever you like.

    • Mistakes don't cost you the setup

      A device with a broken configuration keeps its place in HomeKit, room and automations included, while you fix it. Mistakes are reported in the log at start-up.

    • Move when you are ready

      The settings screen moves accessories into platform mode for you and keeps their HomeKit identity. Accessory mode stays fully supported.

    What you get

    Everything homebridge-mqttthing did, rebuilt in TypeScript for Homebridge 2, with the long-standing problems fixed.

    • Settings built for big setups

      A searchable device list, an editor that knows each type's topics, apply functions you can edit safely, a connection test and live topic probing.

    • Gentle on small devices

      An optional publish queue paces messages and keeps only the latest value per topic, so scenes and slider drags don't flood a low-power device.

    • Your payloads, your way

      Codec files, apply expressions and JSONPath (topic$.path) all keep working, so devices with unusual payloads fit in without a custom bridge.

    • History in the Eve app

      Temperature, humidity, air pressure, power and more are recorded for the Eve app's history charts.

    • Upstream bugs fixed

      Spurious colour publishes at start-up, adaptive lighting turning lights on, wildcard subscriptions, crashes on empty payloads and more.

    • Ready for Homebridge 2

      Modern HomeKit APIs and ES modules. Runs on Homebridge 1.8 and later and on 2.x, with a clean npm audit.

    Almost anything HomeKit has

    37 accessory types, from a single switch to a custom accessory that groups several services together.

    Lights
    Light bulb, with brightness, colour, white and colour temperature, and adaptive lighting
    Switches and outlets
    SwitchOutletStateless programmable switch
    Sensors
    MotionOccupancyLightTemperatureHumidityAir pressureWeather stationContactSmokeLeakAir qualityCarbon dioxideCarbon monoxide
    Climate
    ThermostatHeater coolerDehumidifierFanFan v2Air purifier
    Security and access
    Security systemDoorbellGarage doorLockWindow coveringWindowDoor
    Water
    ValveIrrigation system
    Media and more
    TelevisionMicrophoneSpeakerBatteryCustom, several services in one accessory

    Each type lists its topics and options in the documentation. All accessory types

    Set it up in a few minutes

    1. Install the plugin

      In the Homebridge UI, open Plugins, search for MQTT Thing EX and install it.

    2. Add a device

      Open the plugin settings, choose Add, pick the device type and enter your broker and topics. Test the connection right there.

    3. Restart Homebridge

      The device appears in the Home app, ready for rooms, scenes and Siri.

    Requires Homebridge 1.8 or later (2.x supported) and Node.js 18.17 or later. Full configuration reference

    Keep it free

    The plugin has no ads and no paid version. If it keeps your devices talking to Apple Home, a boba or a small tip helps me keep up with new Homebridge releases and your bug reports.

    Boba is paid by card. No PayPal account needed.