homebridge-meraki-control

Homebridge plugin (https://github.com/homebridge/homebridge) to control Meraki devices.

Usage no npm install needed!

<script type="module">
  import homebridgeMerakiControl from 'https://cdn.skypack.dev/homebridge-meraki-control';
</script>

README

Homebridge Meraki Control

verified-by-homebridge 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 Web User Interface Recommended
Meraki Control npm install -g homebridge-meraki-control Plug-In Required
## Note
  • Versin 0.6.0 and above need to be used with Homebridge min. v1.3.x.

Know Issues

  • If use with Hoobs possible config incompatibilty.

Troubleshooting

  • If for some reason the device is not displayed in HomeKit app try this procedure:
    • Go to ./homebridge/persist.
    • Remove AccessoryInfo.xxx file which contain Your device data: {"displayName":"Meraki"}.
    • Next remove IdentifierCashe.xxx file with same name as AccessoryInfo.xxx.
    • Restart Homebridge and try add it to the Home app again.

Features and How To Use Them

  • Switch ON/OFF SSIDs networks in Your organisation (MR devices).
  • Hide Unconfigured SSIDs networks, available in plugin settings.
  • Hide SSIDs networks filtered by network Name, available in plugin settings.
  • Expose Clients filtered by Mac Address and apply policy Normal, Whitelisted, Group Policy / Blocked.
  • Switch ON/OFF Ports on switch, available in plugin settings, right now only one switch is supported.
  • Siri can be used to switch ON/OFF SSID, Policy, Port.
  • Home automations and shortcuts can be used for all functions.
  • More comming soon...

Configuration

Install and use Homebridge Config UI X plugin to configure this plugin (Highly Recommended). The sample configuration can be edited and used manually as an alternative. See the sample-config.json file in this repository for an 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.

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.
disableLogInfo If enabled, disable log info, all values and state will not be displayed in Homebridge log.
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 set the mode ON/OFF for this Client.
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 set mode ON/OFF for this SSID.
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.mode Here set mode ON/OFF for this Port.
        {
            "platform": "Meraki",
            "devices": [
                {
                    "name": "Network Name",
                    "host": "https://123.meraki.com",
                    "apiKey": "01032453453421923",
                    "organizationId": "123456789",
                    "networkId": "L_0123456789",
                    "refreshInterval": 10,
                    "disableLogInfo": false,
                    "dashboardClientsPolicy": [{
                         "name": "Own Name",
                         "mac": "Mac Address",
                         "type": "Policy type",
                         "mode": false
                    }],
                    "accessPointsControl": false,
                    "hideUnconfiguredSsids": false,
                    "hideSsids": [{
                         "name": "SSID Name",
                         "mode": false
                     }],
                     "switchesControl": false,
                     "switches": [{
                         "name": "Switch Name",
                         "serialNumber": "O1H1-GL5D-AXXX",
                         "mode": false
                     }]
                }
            ]
        }

Adding to HomeKit

Each accessory needs to be manually paired.

  1. Open the Home app on your device.
  2. Tap the Home tab, then tap .
  3. Tap Add Accessory, and select I Don't Have a Code or Cannot Scan.
  4. Select Your accessory.
  5. Enter the Homebridge PIN, this can be found under the QR code in Homebridge UI or your Homebridge logs, alternatively you can select Use Camera and scan the QR code again.

Limitations

  • That maximum Services for 1 accessory is 100. If Services > 100, accessory stop responding.
  • The Services in this accessory are:
    • Information.
    • SSIDs.
    • Clients.
    • Switch Ports.

What's New

Development

  • Pull request and help in development highly appreciated.