/homebridge-meraki-control

Homebridge plugin for Meraki devices using RESTFull API, publish as independent external platform accessory.

Primary LanguageJavaScriptMIT LicenseMIT

Homebridge Meraki Control

verified-by-homebridge npm npm npm GitHub pull requests GitHub issues

Homebridge plugin for Meraki Dashboard and Devices control using RESTFull API.

Package Requirements

Package Installation Role Required
Homebridge Homebridge Wiki HomeKit Bridge Required
Config UI X Config UI X Wiki Homebridge Web User Interface Recommended
Meraki Control Plug-In Wiki Homebridge Plug-In Required

About The Plugin

  • Dashboard:
    • Expose Clients filtered by Mac Address.
    • Apply policy Normal, Whitelisted, Group Policy / Blocked for clients.
  • Access Points:
    • Switch ON/OFF SSIDs in the organisation.
    • Hide Unconfigured SSIDs networks, if the name contain word Unconfigured.
    • Hide SSIDs filtered by network Name.
    • Expose Contact Sensors in HomeKit app for exposed SSIDs.
  • Switches:
    • Switch ON/OFF ports.
    • Hide Uplink ports, if the port name contain word Uplink.
    • Hide Ports filtered by port Name.
    • Expose Contact Sensors in HomeKit app for exposed Ports.
  • Siri can be used to switch ON/OFF SSIDs, Policy, Ports.
  • Home automations and shortcuts can be used for all functions.
  • More comming soon...

Configuration

  • Run this plugin as a Child Bridge (Highly Recommended), this prevent crash Homebridge if plugin crashes.
  • Install and use Homebridge Config UI X to configure this plugin (Highly Recommended).
  • The sample configuration can be edited and used manually as an alternative.
  • See the sample-config.json file example or copy the example below into your config.json file, making the apporpriate changes before saving it.
  • Be sure to always make a backup copy of your config.json file before making any changes to it.saving it.

Key Description
name Here set the accessory Name to be displayed in Homebridge/HomeKit.
host Here set the API Path like https://n123.meraki.com, do not use https://api.meraki.com.
apiKey Here set the X-Cisco-Meraki-API-Key.
organizationId Here set the Organization Id.
networkId Here set the Network Id.
refreshInterval Here set the data refresh time in seconds.
enableDebugMode This enable deep log in homebridge console.
disableLogInfo This disable display log values and states on every it change.
disableLogDeviceInfo This disable display log device info on plugin start.
dashboardClientsPolicy.name Here set the Name to be displayed in the the Homebridge/HomeKit for this Client.
dashboardClientsPolicy.mac Here set the Client Mac Address which You want expose to the Homebridge/HomeKit.
dashboardClientsPolicy.type Here choice the policy Type to be appiled for this Client.
dashboardClientsPolicy.mode Here Activate/Deactivate this Client control.
accessPointsControl This option Enable/Disable control of Access Points.
hideUnconfiguredSsids If enabled, all Unconfigured SSIDs will be hidden and not exposed to the Homebridge/HomeKit.
hideSsids.name Here set SSID Name which You want hide and not expose to the Homebridge/HomeKit.
hideSsids.mode Here Activate/Deactivate this SSID control.
enableSonsorSsids This option expose Contact Sensor in HomeKit app for all exposed SSIDs.
switchesControl This option Enable/Disable control of Switches.
switches.name Here set the Name for this Switch.
switches.serialNumber Here set the Serial Number for this Switch.
switches.hideUplinkPorts If enabled, all Uplink ports will be hidden and not exposed to the Homebridge/HomeKit.
switches.enableSonsorPorts This option expose Contact Sensor in HomeKit app for all exposed ports.
switches.mode Here Activate/Deactivate this Swich control.
switches.hidePorts Array of hidden Ports.
switches.hidePorts.name Here set Port Name which You want hide and not expose to the Homebridge/HomeKit.
switches.hidePorts.mode Here Activate/Deactivate this Port control.
        {
            "platform": "Meraki",
            "devices": [
                {
                    "name": "Network Name",
                    "host": "https://123.meraki.com",
                    "apiKey": "01032453453421923",
                    "organizationId": "123456789",
                    "networkId": "L_0123456789",
                    "refreshInterval": 10,
                    "disableLogInfo": false,
                    "disableLogDeviceInfo": false,
                    "enableDebugMode": false,
                    "dashboardClientsPolicy": [{
                         "name": "Own Name",
                         "mac": "Mac Address",
                         "type": "Policy type",
                         "mode": false
                    }],
                    "accessPointsControl": false,
                    "hideUnconfiguredSsids": false,
                    "enableSonsorSsids": false,
                    "hideSsids": [{
                         "name": "SSID Name",
                         "mode": false
                     }],
                     "switchesControl": false,
                     "switches": [{
                         "name": "Switch Name",
                         "serialNumber": "O1H1-GL5D-AXXX",
                         "hideUplinkPorts": false,
                         "mode": false,
                         "enableSonsorPorts": false,
                         "hidePorts": [{
                              "name": "Port Name",
                              "mode": true
                         }]
                     }]
                }
            ]
        }