Giter Site home page Giter Site logo

homebridge-mi-outlet's Introduction

homebridge-mi-outlet

npm version

XiaoMi outlet plugins for HomeBridge.

Thanks for nfarina(the author of homebridge), OpenMiHome, aholstenson(the author of miio), all other developer and testers.

Note: I have only a part of these devices, so some devices don't have tested. If you find bugs, please submit them to issues or QQ Group: 107927710.

Supported Devices

  1. MiPlugBase(米家智能插座基础版)
  2. MiPlugBaseWithUSB(小米智能插座_USB版)
  3. MiIntelligencePinboard(米家智能插线板)
  4. MiQingPinboard(青米智能插线板_五孔位版)
  5. MiQingPinboardWithUSB(青米智能插线板_USB版)
  6. MiPlugBaseEnhanced(米家智能插座增强版)

Installation

  1. Install HomeBridge, please follow it's README.
    If you are using Raspberry Pi, please read Running-HomeBridge-on-a-Raspberry-Pi.
  2. Make sure you can see HomeBridge in your iOS devices, if not, please go back to step 1.
  3. Install packages.
npm install -g homebridge-mi-outlet

Configuration

"platforms": [{
    "platform": "MiOutletPlatform",
    "deviceCfgs": [{
        "type": "MiPlugBase",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "living room outlet",
        "outletDisable": false,
        "temperatureName": "living room outlet temperature",
        "temperatureDisable": false,
        "switchLEDName": "living room led light switch",
        "switchLEDDisable": true
    }, {
        "type": "MiPlugBaseWithUSB",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "study room outlet",
        "outletDisable": false,
        "temperatureName": "study room outlet temperature",
        "temperatureDisable": false,
        "switchUSBName": "study room outlet usb switch",
        "switchUSBDisable": false
    }, {
        "type": "MiIntelligencePinboard",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "master room outlet",
        "outletDisable": false,
        "temperatureName": "master room outlet temperature",
        "temperatureDisable": false,
        "switchLEDName": "master room led light switch",
        "switchLEDDisable": true
    }, {
        "type": "MiQingPinboard",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "dining room outlet",
        "outletDisable": false,
        "temperatureName": "dining room outlet temperature",
        "temperatureDisable": false
    }, {
        "type": "MiQingPinboardWithUSB",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "kitchen room outlet",
        "outletDisable": false,
        "temperatureName": "kitchen room outlet temperature",
        "temperatureDisable": false
    }, {
        "type": "MiPlugBaseEnhanced",
        "ip": "192.168.88.xx",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "outletName": "living room outlet2",
        "outletDisable": false,
        "temperatureName": "living room outlet2 temperature",
        "temperatureDisable": false,
        "switchUSBName": "living room outlet2 usb switch",
        "switchUSBDisable": false,
        "switchLEDName": "living room outlet2 led light switch",
        "switchLEDDisable": true
    }]
}]

Get token

Get token by miio2.db (Recommend)

setup MiJia(MiHome) app in your android device or android virtual machine.
open MiJia(MiHome) app and login your account.
refresh device list and make sure device display in the device list.
get miio2.db(path: /data/data/com.xiaomi.smarthome/databases/miio2.db) file from your android device or android virtual machine.
open website [Get MiIo Tokens By DataBase File], upload miio2.db file and submit.

Get token by network

Open command prompt or terminal. Run following command:

miio --discover

Wait until you get output similar to this:

Device ID: xxxxxxxx   
Model info: Unknown   
Address: 192.168.88.xx   
Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx via auto-token   
Support: Unknown   

"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" is token.
If token is "???", then reset device and connect device created Wi-Fi hotspot.
Run following command:

miio --discover --sync

Wait until you get output.
For more information about token, please refer to OpenMiHome and miio.

Version Logs

0.3.0 (2018-09-10)

  1. add support for Mi PlugBase Enhanced: outlet, temperature sensor, LED switch, USB switch.

0.2.8 (2018-02-10)

  1. update 'package.json'.

0.2.7 (2017-11-18)

  1. modify class name, reduce the probability of conflicts due to the same class name and other plugins.

0.2.6 (2017-09-11)

  1. optimized code.

0.2.5 (2017-09-05)

  1. optimized code.

0.2.4 (2017-08-31)

  1. add outlet inuse display.

0.2.3 (2017-08-30)

  1. fixed bug that 'log of undefined' error.
  2. config item 'accessories' renamed 'deviceCfgs'.

0.2.2 (2017-08-29)

  1. fixed bug that many of the same type of device conflict with each other.

0.2.1 (2017-08-27)

  1. optimized code.

0.2.0 (2017-08-26)

  1. add support for Intelligence Pinboard: outlet, temperature sensor, LED switch.
  2. add support for Qing Pinboard: outlet, temperature sensor.
  3. add support for Qing Pinboard With USB: outlet, temperature sensor.
  4. fixed bug that homebridge not works when device is not responding.
  5. optimized code.
  6. fixed bug that run homebridge error there is no MiOutletPlatform in config.json file.

0.1.0 (2017-08-25)

  1. add support for PlugBaseWithUSB: outlet, temperature sensor, USB switch.
  2. add PlugBase LED switch.

0.0.1 (2017-08-24)

  1. support for PlugBase: outlet, temperature sensor.

homebridge-mi-outlet's People

Contributors

yinhangcode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-mi-outlet's Issues

MiPlugBaseEnhanced always returns timeout.

Hardware: MiPlugBaseEnhanced
Hardware type: ZNCZ03CM
Hardware firmare version: 1.3.0_93
homebridge version: 0.4.45
homebridge-mi-outlet version: 0.3.0

Here is the log:

Sep 17 00:21:41 ePRP3 homebridge[12096]: [2018-9-17 00:21:41] [MiOutletPlatform] [MiOutletPlatform][ERROR]MiPlugBaseEnhanced - Outlet - getPower Error: Error: Call to device timed out
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Got Characteristic "On" value: undefined
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Error getting value for Characteristic "On": Call to device timed out
Sep 17 00:21:41 ePRP3 homebridge[12096]: [2018-9-17 00:21:41] [MiOutletPlatform] [MiOutletPlatform][ERROR]MiPlugBase - MiPlugBaseEnhanced - getTemperature Error: Error: Call to device timed out
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Got Characteristic "Current Temperature" value: undefined
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Error getting value for Characteristic "Current Temperature": Call to device timed out
Sep 17 00:21:41 ePRP3 homebridge[12096]: [2018-9-17 00:21:41] [MiOutletPlatform] [MiOutletPlatform][ERROR]MiPlugBaseEnhanced - SwitchUSB - getUSBPower Error: Error: Call to device timed out
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Got Characteristic "On" value: undefined
Sep 17 00:21:41 ePRP3 homebridge[12096]: Sun, 16 Sep 2018 16:21:41 GMT Accessory [Homebridge] Error getting value for Characteristic "On": Call to device timed out  

Btw, I have an old MiPlugBaseWithUSB which runs perfect.

Events not received if Home app is not open in iPhone

Hi.

I use your plugin with a base plug. If I switch on/off manually from the plug or from Mi Home app, the event of "plug on" or "plug off" is not sent until I open the Home app in my iPhone.

So, if I associate automation based on the status change of the plug, I'll not be notified if the app is not running.

Am I doing something wrong?

Thanks a lot.

Power consumption reading.

Thank you for the plugin!

I saw, that besides the switch itself you have added the LEDs control and temperature reading. Could you also add a power consumption reading?

Thank you!

大神,求助!!

家里小米挺多一直用大神的homebridge插件,看到大神新出插线板插件和网关FM插件,就想试试。安装设置了插线板插件,咦,没有东西出来,算了再安装FM插件试试,安装好改好config重启homebridge,所有插件全部不翼而飞,ios家庭app里显示只剩下孤零零的一个网关了!!这。。怎么回事啊?

Unable to see plug in Home

Hi

I'm unable to see the plug in the home app despite having homebridge run without errors. I used the IP address and token from running miio discover.

Is the plug supposed to automatically show up in the Home app? I even tried to add it as an accessory and couldn't see it.

Any help would be greatly appreciated!

[2018-8-12 11:54:03] [MiOutletPlatform] Initializing MiOutletPlatform platform...
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO]**************************************************************
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO] MiOutletPlatform v0.2.8 By YinHang
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO] GitHub: https://github.com/YinHangCode/homebridge-mi-outlet
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO] QQ Group: 107927710
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO]**************************************************************
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO]start success...
[2018-8-12 11:54:03] [MiOutletPlatform] [MiOutletPlatform][INFO]device size: 1, accessories size: 3
[2018-8-12 11:54:03] [MiOutletPlatform] Initializing platform accessory 'living room outlet'...
[2018-8-12 11:54:03] [MiOutletPlatform] Initializing platform accessory 'living room outlet temperature'...
[2018-8-12 11:54:03] [MiOutletPlatform] Initializing platform accessory 'living room led light switch'...

can't remotely connect to the device

I can connect to all my switches when I'm on same wi-fi network but it doesn't work outside my network/remotely.
This was working before. Is it to do with one of the recent updates Apple rolled out to address HomeKit vulnerability or incompatibility with updated HomeBridge?

MiPlugBaseEnhanced status

MiPlugBaseEnhanced USB status work fine, outlet status allways OFF tap on it it goes to on and after restart of HOME app it again OFF.

can't Get token by miio2.db

in my android phone , i can't find the path: /data/data/com.xiaomi.smarthome/databases/miio2.db.
in the com.xiaomi.smarthome file , there doesn't exit database file.
how should i do now.
thanks.

chuangmi.plug.hmi206 support

Hi,

I have a european Mi WiFi Plug, all requests to it are being timed out even though it works fine with Mi Home app.
Is it unsupported by the plugin or am i doing something wrong?
I am positive that i acquired a correct token and specified a correct IP address.

Thanks!

[MiOutletPlatform][ERROR]MiPlugBase - Outlet - getPower Error: Error: Call to device timed out
[MiOutletPlatform][ERROR]MiPlugBase - Outlet - getOutletInUse Error: Error: Call to device timed out
[MiOutletPlatform][ERROR]MiPlugBase - Outlet - getPower Error: Error: Call to device timed out
[MiOutletPlatform][ERROR]MiPlugBase - Outlet - getOutletInUse Error: Error: Call to device timed out

My config:

{
            "platform": "MiOutletPlatform",
            "deviceCfgs": [
                {
                    "type": "MiPlugBase",
                    "ip": "192.168.100.xx",
                    "token": "xxxx",
                    "outletName": "european plug",
                    "outletDisable": false,
                    "temperatureName": "office room outlet temperature",
                    "temperatureDisable": true,
                    "switchLEDName": "office room led light switch",
                    "switchLEDDisable": true
                }
            ]
        },

Plugin no longer working

Which version of miio, hap-nodejs and homebridge did you test this? It was working fine and recently had issues only working when inside the network, and it wont work outside my home. I recently update this and everything stopped working.

Here's what I updated from to
Package Current Wanted Latest Location
hap-nodejs 0.4.36 0.4.39 0.4.39
homebridge 0.4.33 0.4.36 0.4.36
homebridge-mi-outlet 0.2.6 0.2.6 0.2.7
miio 0.13.0 0.13.0 0.14.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.