All Projects → skrollme → homebridge-eveatmo

skrollme / homebridge-eveatmo

Licence: Apache-2.0 license
Homebridge plugin which adds a Netatmo weatherstation as HomeKit device and tries to act like Elgato Eve Room/Weather

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to homebridge-eveatmo

homebridge-vsx
📻 A VSX and SC Plugin for homebridge
Stars: ✭ 12 (-80.95%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-adb
Homebridge script to control remote ADB enabled Android device
Stars: ✭ 56 (-11.11%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Dafang
Homebridge Plugin for Xiaomi Dafang / Wyze Cam IP Camera => Hey Siri, Start Video Recording
Stars: ✭ 176 (+179.37%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Dacp
Remotely control Apple TV and iTunes via HomeKit.
Stars: ✭ 128 (+103.17%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-nature-remo-cloud-aircon
Homebridge Plug-in for Air Conditioner Managed by Nature Remo
Stars: ✭ 28 (-55.56%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Platform Wemo
Homebridge plugin to control Wemo devices.
Stars: ✭ 173 (+174.6%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-vieramatic
Homebridge plugin for Panasonic™ Viera™ TVs (includes support for 2018 and later models)
Stars: ✭ 39 (-38.1%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Edomoticz
Domoticz Homebridge-Plugin
Stars: ✭ 104 (+65.08%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-panasonic
A Homebridge plugin for Panasonic Viera TV's. Written to support the new Homekit TV accessory.
Stars: ✭ 18 (-71.43%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Ewelink
Homebridge plugin to control eWeLink devices with original firmware.
Stars: ✭ 208 (+230.16%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-z2m
Expose your Zigbee devices to HomeKit with ease, by integrating 🐝 Zigbee2MQTT with 🏠 Homebridge.
Stars: ✭ 197 (+212.7%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-unifi-occupancy-sensor
An occupancy sensor for Homebridge and UniFi
Stars: ✭ 71 (+12.7%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Http Switch
Powerful http switch for Homebridge: https://github.com/homebridge/homebridge
Stars: ✭ 111 (+76.19%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-callmonitor
Signals incoming and outgoing calls using the call monitor facility in Fritz!Box devices via HomeKit
Stars: ✭ 25 (-60.32%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Nest Cam
View your Nest cams in HomeKit using Homebridge.
Stars: ✭ 103 (+63.49%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Mi Hygrothermograph
Homebridge plugin for the Xiaomi Mi Bluetooth Temperature and Humidity Sensor
Stars: ✭ 179 (+184.13%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Hubitat Tonesto7
Hubitat Homebridge Plugin
Stars: ✭ 45 (-28.57%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Plex Sensors
Homebridge Sensors for Plex - a plugin for Homebridge to adds sensors triggered by Plex playbacks.
Stars: ✭ 95 (+50.79%)
Mutual labels:  homebridge, homebridge-plugin, homekit
Homebridge Gsh
Allow Google Assistant to control your Homebridge accessories.
Stars: ✭ 190 (+201.59%)
Mutual labels:  homebridge, homebridge-plugin, homekit
homebridge-keylights
Yet another Homebridge plugin for Elgato Key Light and Key Light Air. https://homebridge.io
Stars: ✭ 40 (-36.51%)
Mutual labels:  homebridge, homebridge-plugin, homekit

npm npm GitHub last commit

homebridge-eveatmo

This is a homebridge plugin which lets you integrate your non-HomeKit Netatmo Weatherstation and Indoor Air Quality monitor into HomeKit.

Whilst the original homebridge-netatmo-plugin goes a mostly HomeKit-standard approach (predefined services, characteristics, ...), this plugin tries to mimic the Elgato Eve devices as close as possible.

🚨 Warning

Since Netatmo announced a change to their authentification-policies it was also necessary to update this plugin's authentication-mechanism. From 1.0.0 on it does not accept authentication via user-credentials anymore so you have to adapt your existing setup!

You need to generate an OAuth refresh_token on your app's page at dev.netatmo.com instead. For more details see the instructions below or take a look at this issue: #62

Configuration

Because this plugin's base was taken from homebridge-netatmo (see above) you can adapt its config. Just use the plattform-code "eveatmo" and remove "ttl" and/or the other "refresh_" properties for the beginning.

You can also configure this plugin via ConfigUI-X's settings feature.

"platforms": [
        {
            "platform": "eveatmo",
            "name": "eveatmo platform",
            "extra_co2_sensor": false,
            "co2_alert_threshold": 1000,
            "weatherstation": true,
            "airquality": false,
            "ttl": 540,
            "log_info_msg", true,
            "auth": {
    	        "client_id": "XXXXX Create at https://dev.netatmo.com/",
                "client_secret": "XXXXX Create at https://dev.netatmo.com/",
                "refresh_token": "a valid refresh token for the given client_id",
            }
        }
    ],

  • weatherstation Enables support for Netatmo's WeatherStation. Default value is true
  • airquality Enables support for Netatmo's Indoor Air Quality monitor. Default value is false
  • extra_co2_sensor: (optional) Adds an extra CO2 sensor which is available via Apple's stock Home.app, too. Default value is false
  • co2_alert_threshold (optional): Sets the co2-level [ppm] at which the sensors switch to alert-state
  • ttl: (optional) Seconds between two Netatmo API polls. Lower is not neccessarily better! The weatherstation itself collects one value per 5minutes, so going below 300s makes no sense. Default value is 540 (=9min)
  • auth: Credentials for the Netatmo API (see below)
  • log_info_msg: (optional) controls the logging of "fetching data" messages. Default value is true
  • module_suffix: (optional) If this is set, the Netatmo's devicename will not be prepended to the modulename. Instead this config-value will be appended - with a space - to the module name

Control Accessories by device ID

Controlling devices can be done on a finer level by id. The id of a netatmo device or module basically is it's mac address.

In order to include or exclude a specific device, the corresponding id can be included in a whitelist resp. blacklist.

If the whitelist contains at least one entry, all other ids will be excluded.

    "platforms": [
        {
            "platform": "eveatmo",
            
            ...
            
            "whitelist": [
              "aa:bb:cc:11:22:33"
            ],
            "blacklist": [
              "01:02:03:04:05:06",
              "01:23:45:67:89:ab"
            ],

            ...
            
        }
    ],

Retrieve client_id, client_secret and refresh_token

  1. Register at http://dev.netatmo.com as a developer
  2. After successful registration create your own app by using the menu entry "CREATE AN APP"
  3. On the following page, enter a name for your app. Any name can be chosen. All other fields of the form (like callback_url, etc.) can be left blank.
  4. After successfully submitting the form the overview page of your app should show client_id and client_secret.
  5. Do an initial auth with the newly created app via the "Token generator" on your app's page https://dev.netatmo.com/apps/ to get a refresh_token
  6. Add the client_id, the client_secret and the refresh_token to the config's auth-section
  7. The plugin will use the refresh_token from the config to retrieve and refresh auth_tokens. It will also store newly retrieved tokens in a file (netatmo-token.js) in your homebridge config directory. If you delete the netatmo-token.js file, you may have to regenerate a new refresh_token like in step 5) if your initial refresh_token (from the config.json) already has expired

Siri Voice Commands

Here are sample English voice commands:

  • How cool is it in the ROOM NAME?
  • How warm is it in the ROOM NAME?
  • How humid is it in the ROOM NAME?
  • What's the temperature in my ROOM NAME?
  • What's the humidity in my ROOM NAME?
  • What's the air quality in my ROOM NAME?
  • What's the CO2 level in my ROOM NAME?
  • What's the carbon dioxide level in my ROOM NAME?

Siri understands variations of each command:

  • What's the temperature ROOM NAME?
  • What's the temperature in ROOM NAME?
  • What's the temperature in my ROOM NAME?
  • What's the temperature in the ROOM NAME?
  • What's the temperature down in my ROOM NAME?
  • What's the temperature down in the ROOM NAME?

Siri voice commands may vary by language. Since this plugin tries to mimic the Elgato Eve devices, you can search the Eve blog for articles listing voice commands in your language.

Blog posts with English commands:

Blog posts with German commands:

History

see HISTORY.md

Thanks and disclaimer

This plugin's basic structure and most of its basic code is a fork (ok, lets say "copy") of homebridge-netatmo. So big thanks to @planetk and all the other contributors of this project.

Also big thanks to @gomfunkel and @simont77 for this gist and its fork, @KhaosT for this gist, @mplewis for this gist and @0ff for this (almost) working Eve Weather imitating homebridge-plugin and once again special thanks to @simont77 for his endurance in digging deeper in Eve's custom characteristics and its protocols.

Thanks go also to the following direct contributors:

  • @jason-klein (#28)
  • @lisanet (#36)
  • @foliveira (#52)
  • @RyanHS7VM (#54)
  • @smhex (#65)

Since Netatmo announced some changes on what kind of authentication their API will support and I did not found a good solution to override the code of the netatmo-dependency to continue working, this module contains an altered full-copy of the module. All credits for the original code go to the respective authors.

What else

Like this and want to express your feelings? Please buy me a beer 🍻 ...

Donate

Cheers go to:

  • @DJay79 2x🍻
  • s.k**********[email protected] 🍻
  • C. Schneider 🍻
  • S. Eisenkrämer 🍻
  • C. Kowalczyk 🍻
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].