• Stars
    star
    337
  • Rank 122,272 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

HomeKit to MQTT bridge πŸ‘πŸ“±

homekit2mqtt

mqtt-smarthome NPM version dependencies Status Build Status Coverage Status XO code style License

HomeKit to MQTT bridge πŸ‘πŸ“±

Depends on HAP-NodeJS by KhaosT, all credits belong to him.

This project follows the mqtt-smarthome architecture. I'm using this to control a multitude of MQTT-connected "Things" in my home automation through Siri and with HomeKit apps.

Warning: Version 0.9.4 possibly introduces a breaking change. Due to the issue #89 service subtypes where added, please give your Home app a few minutes to get updates, if the accessories don't work at all anymore after an update from <=0.9.3 to >=0.9.4 you have to delete the persistence files and delete and re-add the bridge in iOS...:-(

Installation

Requirements

  • Debian, Ubuntu, Raspbian or macOS
  • Node.js 6 or higher
  • If you want to use the Camera Service FFmpeg has to be installed (on Linux: sudo apt install ffmpeg)

sudo npm install -g homekit2mqtt --unsafe-perm

I suggest to use pm2 to manage the homekit2mqtt process (start on system boot, manage log files, ...)

Command Line Options

Usage: homekit2mqtt [options]

Options:
  -v, --verbosity       possible values: "error", "warn", "info", "debug"
                                                               [default: "info"]
  -m, --mapfile         JSON file containing HomeKit Services to MQTT mapping
                        definitions. See Readme.                       [default:
                                                  "./example-homekit2mqtt.json"]
  -n, --name            instance name. used as prefix for connected topic
                                                            [default: "homekit"]
  -u, --url             mqtt broker url.           [default: "mqtt://127.0.0.1"]
  -s, --storagedir      directory to store homekit data
  -p, --port            port homekit2mqtt is listening on       [default: 51826]
  -w, --web-port        port webserver is listening on          [default: 51888]
  -x, --disable-web     disable webserver
  --disable-json-parse  disable json parsing of received mqtt payloads [boolean]
  --insecure            allow tls connections with invalid certificates[boolean]
  --retain              if set, ALL MQTT messages sent will have the retain flag
                        set                                            [boolean]
  -h, --help            Show help                                      [boolean]
  --version             Show version number                            [boolean]
  -c, --pincode                                          [default: "031-45-154"]
  -a, --username                                  [default: "CC:22:3D:E3:CE:F6"]
  -b, --bridgename                                      [default: "MQTT Bridge"]

                                                             

Persisted Data

I strongly advice you to set the --storagedir and --mapfile option to a directory outside of the homekit2mqtt folder, otherwise an update of homekit2mqtt could overwrite your config.

MQTT Authentication and TLS

You can put credentials for authentication in the url supplied to the --url option: mqtt://user:password@broker. If you want to use TLS for the connection to the broker use mqtts:// as URL scheme, e.g. mqtts://broker:8883.

MQTT Payload parsing

By default homekit2mqtt parses incoming JSON payloads and tries to use the attribute val (following mqtt-smarthome payload convention). For a future release it is planned that this attribute will be configurable (see #67).

If you set the --disable-json-parse option there will be no JSON parsing at all and homekit2mqtt just hands the incoming JSON through as string.

Plain (non-JSON) payloads containing the strings true or false are casted to boolean. Strings containing numbers are casted to numbers with parseFloat().

Configuration

homekit2mqtt needs a JSON file that defines devices and mappings from MQTT-topics and payloads to HomeKit-characteristics. You can either create this manually or use the Web UI to configure homekit2mqtt. The Webserver listens on Port 51888 by default, authentication username is homekit and the password is the pincode (031-45-154 by default).

Web UI Web UI

See example-homekit2mqtt.json for an example configuration. Every Accessory is represented like this in the JSON file:

  "TemperatureSensor": {                                    // Unique name - used to generate the accessory UUID
    "name": "TemperatureSensor LivingRoom",                 // Accessory name
    "services": [
        {
            "service": "TemperatureSensor",                 // HomeKit service type (see available service types below)
            "name": "Temperature LivingRoom",               // Service name
            "topic": {                                              
                // ... MQTT topic configuration ...
            },
            "payload": {
                // ... MQTT payload configuration ...
            },
            "props": {
                // ... Optional Characteristic properties
            },
            "config": {
                // ... Optional Service configuration
            }       
        },
        // ... more services
    ],
    "manufacturer": "DIY Home Brew",                        // Additional accessory infos (optional)
    "model": "TemperatureSensor"                            // Additional accessory infos (optional)
  }

Available Service Types

AirPurifier

topic

  • statusActive
  • setActive
  • statusCurrentAirPurifierState
    0 = INACTIVE, 1 = IDLE, 2 = PURIFYING_AIR
  • statusTargetAirPurifierState
    0 = MANUAL, 1 = AUTO
  • setTargetAirPurifierState
    0 = MANUAL, 1 = AUTO
  • statusLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • setLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • statusSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • setLockSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • statusRotationSpeed (optional)
    Percentage 0-100
  • setRotationSpeed (optional)
    Percentage 0-100

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • rotationSpeedFactor (optional, default: 1)

AirQualitySensor

topic

  • statusAirQuality
    0 = UNKNOWN, 1 = EXCELLENT, 2 = GOOD, 3 = FAIR, 4 = INFERIOR, 5 = POOR
  • statusOzoneDensity (optional)
  • statusNitrogenDioxideDensity (optional)
  • statusSulphurDioxideDensity (optional)
  • statusPM2_5Density (optional)
  • statusPM10Density (optional)
  • statusVOCDensity (optional)
  • statusCarbonMonoxideLevel (optional)
  • statusCarbonDioxideLevel (optional)
  • onLowBattery (optional)
  • onTampered (optional)
  • onActive (optional)
  • onFault (optional)

payload

  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

BatteryService

topic

  • statusBatteryLevel
    Percentage 0-100
  • statusChargingState
    0 = NOT_CHARGING, 1 = CHARGING, 2 = NOT_CHARGEABLE
  • statusLowBattery
    0 = BATTERY_LEVEL_NORMAL, 1 = BATTERY_LEVEL_LOW

payload

  • onLowBattery
  • invertLowBattery (optional, default: false)
  • minBatteryLevel (optional, default: 0)
  • maxBatteryLevel (optional, default: 100)

CameraRTSPStreamManagement

topic

payload

config

  • source (default: -re -i rtsp://myfancy_rtsp_stream)
  • stillImageSource (default: -i http://faster_still_image_grab_url/this_is_optional.jpg)
  • maxStreams (default: 2)
    the maximum number of streams that will be generated for this camera
  • maxWidth (default: 1280)
  • maxHeight (default: 720)
  • maxFPS (default: 10)
    the maximum frame rate of the stream
  • maxBitrate (default: 300)
    the maximum bit rate of the stream in kbit/s
  • vcodec (default: libx264)
    If you're running on a RPi with the omx version of ffmpeg installed, you can change to "h264_omx" for hardware accelerated video codec
  • audio
    can be set to true to enable audio streaming from camera. To use audio ffmpeg must be compiled with --enable-libfdk-aac, see https://github.com/KhaosT/homebridge-camera-ffmpeg/wiki
  • packetSize (default: 1316)
    If audio or video is choppy try a smaller value, set to a multiple of 188
  • debug
    Show the output of ffmpeg in the log
  • videoProcessor (default: ffmpeg)

CarbonDioxideSensor

topic

  • statusCarbonDioxideDetected
  • statusCarbonDioxideLevel (optional)
  • statusCarbonDioxidePeakLevel (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onCarbonDioxideDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

CarbonMonoxideSensor

topic

  • statusCarbonMonoxideDetected
  • statusCarbonMonoxideLevel (optional)
  • statusCarbonMonoxidePeakLevel (optional)
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onCarbonMonoxideDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

ContactSensor

topic

  • statusContactSensorState
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onContactDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

Door

topic

  • setTargetPosition
  • statusTargetPosition (optional)
  • statusCurrentPosition (optional)
  • statusPositionState (optional)
  • statusObstruction (optional)
  • setHoldPosition (optional)

payload

  • targetPositionFactor (optional)
  • currentPositionFactor (optional)
  • positionStatusDecreasing (optional)
  • positionStatusIncreasing (optional)
  • onObstructionDetected (optional)
  • holdPositionTrue (optional, default: true)
  • holdPositionFalse (optional, default: false)

Doorbell

topic

  • statusEvent

payload

Fan

topic

  • setOn
  • statusOn (optional)
  • setRotationDirection (optional)
  • statusRotationDirection (optional)
  • setRotationSpeed (optional)
  • statusRotationSpeed (optional)

payload

  • onTrue (optional, default: true)
  • onFalse (optional, default: false)
  • rotationDirectionCounterClockwise (optional, default: 1)
  • rotationDirectionClockwise (optional, default: 0)
  • rotationSpeedFactor (optional, default: 1)

Fanv2

topic

  • statusActive
  • setActive
  • statusCurrentFanState
    0 = INACTIVE, 1 = IDLE, 2 = PURIFYING_AIR
  • statusTargetFanState
    0 = MANUAL, 1 = AUTO
  • setTargetFanState
    0 = MANUAL, 1 = AUTO
  • statusLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • setLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • statusSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • setLockSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • statusRotationSpeed (optional)
    Percentage 0-100
  • setRotationSpeed (optional)
    Percentage 0-100
  • statusRotationDirection (optional)
    0 = CLOCKWISE, 1 = COUNTER_CLOCKWISE
  • setRotationDirection (optional)
    0 = CLOCKWISE, 1 = COUNTER_CLOCKWISE

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • rotationSpeedFactor (optional, default: 1)

Faucet

topic

  • setActive
  • statusActive (optional)
  • statusFault (optional)

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • faultTrue (optional, default: true)
  • invertFault (optional, default: false)

FilterMaintenance

topic

  • statusFilterChangeIndication
  • statusFilterLifeLevel (optional)
    Percentage 0-100
  • setResetFilterIndication (optional)

payload

GarageDoorOpener

topic

  • setDoor
  • statusDoor (optional)
    0 = OPEN, 1 = CLOSED; 2 = OPENING, 3 = CLOSING, 4 = STOPPED
  • statusObstruction (optional)
  • setLock (optional)
  • statusLock (optional)

payload

  • doorClosed (optional)
  • doorOpening (optional)
  • doorClosing (optional)
  • doorStopped (optional)
  • onObstructionDetected (optional)
  • lockUnsecured (optional)
  • lockSecured (optional)

HeaterCooler

topic

  • statusActive
  • setActive
  • statusCurrentTemperature
  • statusCurrentHeaterCoolerState
    0 = INACTIVE, 1 = IDLE, 2 = HEATING, 3 = COOLING
  • statusTargetHeaterCoolerState
    0 = AUTO, 1 = HEAT, 2 = COOL
  • setTargetHeaterCoolerState
    0 = AUTO, 1 = HEAT, 2 = COOL
  • statusLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • setLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • statusSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • setLockSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • statusRotationSpeed (optional)
    Percentage 0-100
  • setRotationSpeed (optional)
    Percentage 0-100
  • statusCoolingThresholdTemperature (optional)
  • setCoolingThresholdTemperature (optional)
  • statusHeatingThresholdTemperature (optional)
  • setHeatingThresholdTemperature (optional)

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • rotationSpeedFactor (optional, default: 1)

config

  • TemperatureDisplayUnits
    0 = CELSIUS, 1 = FAHRENHEIT

HumidifierDehumidifier

topic

  • statusActive
  • setActive
  • statusCurrentTemperature
  • statusWaterLevel
    Percentage 0-100
  • statusCurrentHumidifierDehumidifierState
    0 = INACTIVE, 1 = IDLE, 2 = HUMIDIFYING, 3 = DEHUMIDIFYING
  • statusTargetHumidifierDehumidifierState
    0 = HUMIDIFIER_OR_DEHUMIDIFIER, 1 = HUMIDIFIER, 2 = DEHUMIDIFIER
  • setTargetHumidifierDehumidifierState
    0 = HUMIDIFIER_OR_DEHUMIDIFIER, 1 = HUMIDIFIER, 2 = DEHUMIDIFIER
  • statusLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • setLockPhysicalControls (optional)
    0 = CONTROL_LOCK_DISABLED, 1 = CONTROL_LOCK_ENABLED
  • statusSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • setLockSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • statusRotationSpeed (optional)
    Percentage 0-100
  • setRotationSpeed (optional)
    Percentage 0-100
  • statusRelativeHumidityDehumidifierThreshold (optional)
  • setRelativeHumidityDehumidifierThreshold (optional)
  • statusRelativeHumidityHumidifierThreshold (optional)
  • setRelativeHumidityHumidifierThreshold (optional)

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • rotationSpeedFactor (optional, default: 1)
  • waterLevelFactor (optional, default: 1)

HumiditySensor

topic

  • statusHumidity
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

IrrigationSystem

topic

  • setActive
  • statusActive
  • statusFault (optional)
  • statusInUse
  • statusRemainingDuration
  • statusProgramMode

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • faultTrue (optional, default: true)
  • invertFault (optional, default: false)
  • inUseTrue (optional, default: true)

LeakSensor

topic

  • statusLeakDetected
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onLeakDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

Lightbulb

topic

  • setOn
  • statusOn (optional)
  • setBrightness (optional)
  • statusBrightness (optional)
  • setHue (optional)
  • statusHue (optional)
  • setSaturation (optional)
  • statusSaturation (optional)
  • setColorTemperature (optional)
  • statusColorTemperature (optional)
  • statusRGB (optional)
  • setRGB (optional)

payload

  • onTrue
  • onFalse
  • brightnessFactor (optional, default: 1)
  • hueFactor (optional, default: 1)
  • saturationFactor (optional, default: 1)

LightSensor

topic

  • statusAmbientLightLevel
    0.0001 - 100000
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • ambientLightLevelFactor (optional, default: 1)
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

LockManagement

topic

  • setLockControlPoint
  • statusVersion
  • statusVersion (optional)
  • statusLogs (optional)
  • setAudioFeedback (optional)
  • statusAudioFeedback (optional)
  • setLockManagementAutoSecurityTimeout (optional)
    Seconds
  • statusLockManagementAutoSecurityTimeout (optional)
    Seconds
  • setAdministratorOnlyAccess (optional)
  • statusAdministratorOnlyAccess (optional)
  • statusLockLastKnownAction (optional)
    0 = SECURED_PHYSICALLY_INTERIOR, 1 = UNSECURED_PHYSICALLY_INTERIOR, 2 = SECURED_PHYSICALLY_EXTERIOR, 3 = UNSECURED_PHYSICALLY_EXTERIOR, 4 = SECURED_BY_KEYPAD, 5 = UNSECURED_BY_KEYPAD, 6 = SECURED_REMOTELY, 7 = UNSECURED_REMOTELY, 8 = SECURED_BY_AUTO_SECURE_TIMEOUT
  • statusCurrentDoorState (optional)
    0 = OPEN, 1 = CLOSED; 2 = OPENING, 3 = CLOSING, 4 = STOPPED
  • statusMotionDetected (optional)

payload

  • doorClosed (optional)
  • doorOpening (optional)
  • doorClosing (optional)
  • doorStopped (optional)

LockMechanism

topic

  • setLock
  • statusLock (optional)

payload

  • lockSecured
  • lockUnsecured
  • lockJammed (optional)
  • lockUnknown (optional)

Microphone

topic

  • setMute
  • statusMute (optional)
  • setVolume (optional)
  • statusVolume (optional)

payload

  • muteTrue
  • muteFalse
  • volumeFactor (optional, default: 1)

MotionSensor

topic

  • statusMotionDetected
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onMotionDetected
  • onLowBattery (optional)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

OccupancySensor

topic

  • statusOccupancyDetected
  • statusLowBattery (optional)

payload

  • onOccupancyDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)

Outlet

topic

  • setOn
  • statusOn (optional)
  • statusOutletInUse

payload

  • onFalse
  • onTrue
  • onOutletInUse

SecuritySystem

topic

  • setSecuritySystemTargetState
    0 = STAY_ARM, 1 = AWAY_ARM, 2 = NIGHT_ARM, 3 = DISARM
  • statusSecuritySystemCurrentState (optional)
    0 = STAY_ARM, 1 = AWAY_ARM, 2 = NIGHT_ARM, 3 = DISARMED, 4 = ALARM_TRIGGERED
  • statusSecuritySystemAlarmType (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

Slat

topic

  • statusCurrentSlatState
    0 = FIXED, 1 = JAMMED, 2 = SWINGING
  • statusCurrentTiltAngle (optional)
  • statusTargetTiltAngle (optional)
  • setTargetTiltAngle (optional)
  • statusSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED
  • setSwingMode (optional)
    0 = SWING_DISABLED, 1 = SWING_ENABLED

payload

config

  • SlatType
    0 = HORIZONTAL, 1 = VERTICAL

SmokeSensor

topic

  • statusSmokeDetected
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • onSmokeDetected
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • onFault (optional)
  • invertFault (optional, default: false)

Speaker

topic

  • setMute
  • statusMute (optional)
  • setVolume (optional)
  • statusVolume (optional)

payload

  • muteTrue
  • muteFalse
  • volumeFactor (default: 1)

StatelessProgrammableSwitch

topic

  • statusEvent
    0 = SINGLE_PRESS, 1 = DOUBLE_PRESS, 2 = LONG_PRESS

payload

Switch

topic

  • setOn
  • statusOn (optional)

payload

  • onFalse
  • onTrue

TemperatureSensor

topic

  • statusTemperature
  • statusLowBattery (optional)
  • statusTampered (optional)
  • statusActive (optional)
  • statusFault (optional)

payload

  • fahrenheit (default: false)
    Set to true if your sensor publishes values in degree fahrenheit
  • onLowBattery (optional)
  • invertLowBattery (optional, default: false)
  • onTampered (optional)
  • invertTampered (optional, default: false)
  • onActive (optional)
  • invertActive (optional, default: false)
  • onFault (optional)
  • invertFault (optional, default: false)

Thermostat

topic

  • setTargetTemperature
  • statusTargetTemperature (optional)
  • statusCurrentTemperature
  • setTargetHeatingCoolingState (optional)
    0 = off, 1 = heat, 2 = cool
  • statusTargetHeatingCoolingState (optional)
    0 = off, 1 = heat, 2 = cool
  • statusCurrentHeatingCoolingState (optional)
    0 = off, 1 = heat, 2 = cool
  • setTargetRelativeHumidity (optional)
  • statusTargetRelativeHumidity (optional)
  • statusCurrentRelativeHumidity (optional)
  • setCoolingThresholdTemperature (optional)
  • statusCoolingThresholdTemperature (optional)
  • setHeatingThresholdTemperature (optional)
  • statusHeatingThresholdTemperature (optional)

payload

config

  • TemperatureDisplayUnits
    0 = CELSIUS, 1 = FAHRENHEIT

Valve

topic

  • setActive
  • statusActive
  • statusFault (optional)
  • statusInUse
  • statusRemainingDuration (optional)
  • setDuration (optional)

payload

  • activeTrue (optional, default: true)
  • invertActive (optional, default: false)
  • faultTrue (optional, default: true)
  • invertFault (optional, default: false)
  • inUseTrue (optional, default: true)

config

  • ValveType (optional, default: 0)
    0 = GENERIC_VALVE, 1 = IRRIGATION, 2 = SHOWER_HEAD, 3 = WATER_FAUCET

Window

topic

  • setTargetPosition
  • statusTargetPosition (optional)
  • statusCurrentPosition (optional)
  • statusPositionState (optional)
  • statusObstruction (optional)

payload

  • targetPositionFactor (optional, default: 1)
  • currentPositionFactor (optional, default: 1)
  • positionStatusDecreasing (optional)
  • positionStatusIncreasing (optional)
  • onObstructionDetected (optional)

WindowCovering

topic

  • setTargetPosition
  • statusTargetPosition (optional)
  • statusCurrentPosition (optional)
  • statusPositionState (optional)
  • statusTargetHorizontalTiltAngle (optional)
  • setTargetHorizontalTiltAngle (optional)
  • statusTargetVerticalTiltAngle (optional)
  • setTargetVerticalTiltAngle (optional)
  • statusCurrentHorizontalTiltAngle (optional)
  • statusCurrentVerticalTiltAngle (optional)

payload

  • targetPositionFactor (optional, default: 1)
  • currentPositionFactor (optional, default: 1)
  • positionStatusDecreasing (optional)
  • positionStatusIncreasing (optional)

License

MIT Β© Sebastian Raff and homekit2mqtt contributors

More Repositories

1

awesome-mqtt

A curated list of MQTT related stuff. ✨
2,017
star
2

homematic-manager

Homematic Device Configuration and Administration
JavaScript
188
star
3

mqtt-admin

MQTT Web Frontend: Publish, Subscribe and see Topic Status in a comfortable UI
JavaScript
124
star
4

artnet

Send ArtDMX to an Art-Net node (DMX512, Stage Lighting) πŸ’‘πŸŽ¬
JavaScript
117
star
5

lgtv2mqtt

Interface between LG WebOS Smart TVs and MQTT πŸ“Ί
JavaScript
103
star
6

node-red-contrib-zigbee

Node-RED Nodes for ZigBee Devices 🐝
JavaScript
86
star
7

unifi2mqtt

Connect Ubiquiti UniFi controller to MQTT πŸ“‘
JavaScript
72
star
8

ccu.io

[DEPRECATED] Extend your Homematic CCU. Script-Engine, Adapters, Logging, Webserver. Socket.IO based, implements Homematic xmlrpc_bin protocol.
JavaScript
65
star
9

mqtt-dmx-controller

A simple ArtNet / DMX Controller with MQTT Interface πŸ’‘πŸŽ¬
JavaScript
63
star
10

arcticfox-config

Configuration Tool for Vape Battery Mods with Arcticfox Firmware. ☁️ πŸ”§ Works on MacOS and Linux.
HTML
63
star
11

node-movehub

Node.js interface for the Lego Boost Move Hub πŸ€– 🐱 🎸 🚚
JavaScript
61
star
12

node-red-contrib-lgtv

Node-RED Nodes to control LG webOS Smart TVs πŸ“Ί
JavaScript
58
star
13

mqtt-scripts

Node.js based script runner for use in MQTT based Smart Home environments
JavaScript
56
star
14

airtunes2mqtt

Multi-Room Audio based on Airplay/Airtunes with MQTT support πŸ”ˆ
JavaScript
50
star
15

hanmatek-hm310p

Electron based application for the Hanmatek HM310P DC Power Supply, offers Charts and CSV Export.
JavaScript
49
star
16

awesome-zigbee

Curated List of ZigBee related stuff
49
star
17

DashUI

[deprecated] Template-based HTML5 framework for smarthome user interfaces
JavaScript
39
star
18

influx4mqtt

Insert incoming MQTT values into InfluxDB. Follows mqtt-smarthome architecture.
JavaScript
36
star
19

hmcon

Homematic Interface and Configuration
Shell
30
star
20

hue2mqtt.js

Gateway between a Philips Hue bridge and MQTT πŸ’‘
JavaScript
30
star
21

dna-monitor

A simple device monitoring tool for e-cigarettes with Evolv DNA chipset ☁️ πŸ“ˆ Works with macOS and Linux
HTML
29
star
22

nice-portal

dead simple - but nice - portal webpage 🏰
JavaScript
27
star
23

cul

nodejs module to interact with busware cul / culfw
JavaScript
26
star
24

mqttDB

JSON Store with MQTT Interface πŸ“šπŸ“‚πŸ“‘
JavaScript
25
star
25

rpi2mqtt

Connect RaspberryPi GPIOs and 1-Wire temperature sensors to MQTT πŸ°πŸ”˜πŸ“‘
JavaScript
22
star
26

mqtt-dmx-sequencer

Control DMX devices via Art-Net by MQTT. Includes a simple sequencer. πŸ’‘πŸŽ¬
JavaScript
22
star
27

lirc2mqtt

An Interface that connects LIRC (Infrared Transceiver) to MQTT. πŸ“Ί πŸ“»
JavaScript
22
star
28

arcticfox-monitor

A simple device monitoring tool for vape battery mods with Arcticfox firmware. ☁️ πŸ“ˆ Works on macOS and Linux.
HTML
22
star
29

node-red-contrib-polymer

A Polymer based Dashboard UI for Node-RED
HTML
21
star
30

hm2mqtt.js

Node.js based Interface between Homematic and MQTT
JavaScript
20
star
31

node-red-contrib-wled

Node-RED nodes for WLED
JavaScript
19
star
32

dna-commands

A list of serial commands for Evolv DNA devices ☁️
18
star
33

dashbutton2mqtt

Publish dash button presses to a MQTT broker πŸ”˜πŸ“‘
JavaScript
16
star
34

binrpc

HomeMatic xmlrpc_bin:// protocol server and client
JavaScript
15
star
35

speedtest2mqtt

Run speedtest-cli and publish results via MQTT
Shell
14
star
36

mqtt-wildcard

Match a MQTT Topic against Wildcards
JavaScript
14
star
37

waldorf

Simple Mattermost Bot 🀑🀠
JavaScript
14
star
38

lirc-client

Node.js module to connect to a LIRC daemon.
JavaScript
11
star
39

yahui

[deprecated] yet another homematic user interface, based on jQuery Mobile, runs on CCU.IO
JavaScript
11
star
40

nodemcu-gpiomqtt

lua scripts to connect esp8266 gpios to mqtt
Lua
10
star
41

arcticfox

Node module that abstracts the HID communication with the ArcticFox Firmware
JavaScript
10
star
42

persist-path

Get OS-specific path to store persistent data πŸ“
JavaScript
10
star
43

mqttpc

Advanced process control via MQTT πŸ“‘
JavaScript
10
star
44

homematic-hue

DEPRECATED: Control Philips Hue Lights with the HomeMatic CCU
Tcl
10
star
45

pm2-elasticsearch-logger

Send logs of processes controlled by PM2 to Elasticsearch πŸ“’πŸ”
JavaScript
10
star
46

mqtt-forget

Command line tool to remove retained MQTT topics by wildcard
JavaScript
10
star
47

cul2mqtt

Interface between Busware CUL and MQTT
JavaScript
9
star
48

camo-purge

Purge Github Image Cache for Readme Badges :octocat:🚿
JavaScript
8
star
49

check_pm2

Nagios/Icinga Plugin to check PM2 Processes
JavaScript
8
star
50

node-red-contrib-lab

Node-RED nodes to interact with laboratory equipment πŸ‘¨β€πŸ”¬ (Multimeter UNI-T UT803, Power Supply Hanmatek HM310P, Electronic Load XY-FZ35)
JavaScript
8
star
51

check_nextcloud

Nagios/Icinga Nextcloud Security Check ☁️ πŸ” β˜‘οΈ
JavaScript
7
star
52

flowerpower2mqtt

Publish values from Parrot Flower Power to MQTT
JavaScript
7
star
53

homematic-rega

Node.js Homematic CCU ReGaHSS Remote Script Interface
JavaScript
7
star
54

amixer-web

alsa mixer web frontend
JavaScript
7
star
55

CCU-IO-Highcharts

[deprecated] Visualisierung der CCU.IO Logs mittels Highcharts/Highstock
JavaScript
7
star
56

snowboy2mqtt

Publish MQTT Messages on Snowboy Hotword Detection 🎀
JavaScript
6
star
57

mqtt-wrapper

Polymer Element that wraps other Elements and links them to MQTT topics
JavaScript
6
star
58

aqara2mqtt

Attach Aqara Smart Hubs to MQTT
JavaScript
6
star
59

hm-discover

Discover Homematic Devices
JavaScript
6
star
60

mqtt-connection

Polymer Element that connects to a MQTT broker
JavaScript
6
star
61

obj-ease

handle javascript objects with ease πŸ„
JavaScript
6
star
62

check_homematic

Nagios/Icinga Plugin for checking Homematic CCU
JavaScript
5
star
63

streamdeck-plugin-mqtt

Publish MQTT messages and control titles, images and states via MQTT subscriptions
JavaScript
5
star
64

xyz2mqtt-skeleton

a skeleton for creation of mqtt interface daemons following mqtt-smarthome architecture
JavaScript
4
star
65

mosquitto-acl-parser

Parse and Stringify Mosquitto ACLs
JavaScript
4
star
66

check_os_release

Nagios/Icinga Plugin for checking OS Release Schedule
Shell
4
star
67

speedtest

4
star
68

semantic-compare

Compare version strings according to Semantic Versioning 2.0.0
JavaScript
4
star
69

hm-simulator

Simulates (partly) a Homematic CCU
JavaScript
3
star
70

bcontrol2mqtt

Publish Measurements from B-Control Energy Manager Smart Meters on MQTT πŸ”Œ πŸ“ˆ
JavaScript
3
star
71

node-red-contrib-mqtt-json

Node-RED MQTT input node that parses JSON payloads
HTML
3
star
72

node-red-contrib-lescan

Node-RED node that uses hcitool lescan to find Bluetooth devices in range πŸ”ŽπŸ“‘
JavaScript
3
star
73

streamdeck-plugin-tuneblade

Control Tuneblade AirPlay receivers with Elgato Stream Deck
JavaScript
3
star
74

siriproxy-homematic

[deprecated] A Plugin for Siriproxy: Control Homematic Devices via Siri
Ruby
3
star
75

homematic-rf2wired

Homematic-Wired Dimmer mit Homematic-RF Fernbedienung steuern.
JavaScript
3
star
76

fsuxx

Trivially round a number and return fixed digit string 🐳
JavaScript
3
star
77

check_speedport

Nagios/Icinga Plugin to Check DSL Status of Speedport Routers
JavaScript
3
star
78

arcticfox-encryption

Node module to Encode and Decode ArcticFox Config Files (.afc)
JavaScript
3
star
79

mqtt2elasticsearch

Send MQTT messages to Elasticsearch
JavaScript
3
star
80

yalm

simple javascript logging module
JavaScript
3
star
81

electron-ipc-rpc

Simple and tiny RPC wrapper around electron ipc
JavaScript
3
star
82

ioBroker.highcharts

Draw charts with Highcharts/Highstock (free for non-commercial use only!)
JavaScript
2
star
83

ccu-addon-redis

Redis packaged as Addon for Homematic CCU3 and RaspberryMatic
Shell
2
star
84

mqttws

Fork of the Eclipse Paho JavaScript client
JavaScript
2
star
85

dna75c

My Configs and Themes for DNA75c Vape Mods ☁️ πŸ”‹ πŸ”§
2
star
86

passwd-file

Node.js Password File CLI Tool and Lib πŸ”
JavaScript
2
star
87

mattermost-update

Simple script for comfortable update of Mattermost
Shell
2
star
88

jqhomematic

[deprecated] Projekt auf Eis gelegt, geht teilweise in ccu.io auf.
JavaScript
1
star
89

website-ccuio

CSS
1
star
90

ioBroker.cul

JavaScript
1
star
91

r-test

1
star
92

hobbyquaker.github.io

HTML
1
star
93

persist-json

Persist an object as plain JSON file
JavaScript
1
star
94

package

Node Package Skeleton
1
star
95

wifi-usb-relay

Simple Wi-Fi relay with USB-C in and USB-A out
1
star
96

Patcher

Patch Frontend Addon for the Homematic CCU3
JavaScript
1
star
97

SlimUI

[deprecated] a very lightweight framework for CCU.IO WebUIs. Made for old browsers and slow clients
JavaScript
1
star
98

xmlbuilder-js

fork of https://github.com/oozcitak/xmlbuilder-js @0.4.2
1
star
99

piplate2mqtt

Connect Adafruit PiPlate (i2c module with 16x2 text display and 5 buttons) to MQTT.
JavaScript
1
star
100

mqtt-visu

A collection of Polymer Elements to create MQTT visualization and control
1
star