Giter Club home page Giter Club logo

homebridge-eveatmo's Introduction

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 it is not recommended to use username/password auth anymore although it is technically still supported in the latest release (1.1.0).

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. Since some users have still unidentified problems with the new authentication-mechanism you can keep using the username/password auth, but it can be shut down by netatmo at any time.

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",
                "grant_type": "refresh_token"
                
                ... or if you use password-grant ...
                
                "client_id": "XXXXX Create at https://dev.netatmo.com/",
                "client_secret": "XXXXX Create at https://dev.netatmo.com/",
                "username": "your netatmo account's mail-address",
                "password": "your netatmo account's password",
                "grant_type": "password"
            }
        }
    ],
  • 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_aq_sensor: (optional) Adds an extra AirQuality sensor which is available via Apple's stock Home.app, reporting CO2 level. Default value is true
  • 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) Outputs log messages with loglevel set to info. 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"
            ],

            ...
            
        }
    ],

Netatmo API authentication

There are two methods to authenticate against the Netatmo API, but first 4 steps are always the same:

  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.

"refresh_token" grant

This one is recommended by Netatmo because it is more secure since you do not have to store your username and password in homebridge's config file. The downside is, that it is a little bit less stable, especially when homebridge is not running constantly. This is because the plugin always gets a short-lived token to fetch data for some time. When the token expires, the plugin has to fetch a new one from the API.

  1. 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
  2. Add the client_id, the client_secret and the refresh_token to the config's auth-section
  3. 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

"password" grant

This one is my preferred method, because in a single-user scenario and a most likely "at home and self-hosted"-setup it is totally fine for me. Netatmo deprecated this method but it is usable in cases where the user (here: homebridge) and the account (where the weatherstation is linked to) are the same. Since this is the normal use-case for this homebridge-plugin I use this as long it is possible.

  1. Add the client_id, the client_secret, the username (your account email) and the password (your account password) to the config's auth-section

Retrieve client_id, client_secret and refresh_token

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)
  • @Tellicious (#76)

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:beers:
  • s.k**********[email protected] 🍻
  • C. Schneider 🍻
  • S. Eisenkrämer 🍻
  • C. Kowalczyk 🍻
  • C. Lorenz 💰

homebridge-eveatmo's People

Contributors

foliveira avatar jason-klein avatar ryanhs7vm avatar skrollme avatar smhex avatar tellicious 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

Watchers

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

homebridge-eveatmo's Issues

Change order of values not possible

I noticed that I can’t change the order of some values in Eve App.
In the enclosed example I noticed this with the values of the outdoor sensor only. I want to set value temperature on top but it doesn’t work.

d522a427-5e79-4fd7-b4da-5222ff6f0fea

My Netatmo Username is a Email Adress and config.json wrong?

hi,
i wanted to install this nice plugin to use my Netatmo Weather Station with Apple HomeKit.
I have installed the Plugin, but when i create the config.json file with alle the necessary data in it, the home bridge tells me that there is an error with my file and i should check it on https://jsonlint.com
With your sample config i get the following error: Error: Parse error on line 1:
"platforms": [{ "platform": "e
-----------^
Expecting 'EOF', '}', ',', ']', got ':'

And with the modified config.json from the home bridge sample data i get an error with my username.
Because i don't have a username i have to use my email address and so its telling me the @ is wrong.
Is there anything i can do ?
i have found out that Netatmo has some problems right now with the API, but i think my problem is something else because with a config.json my Homebridge doesn't even load :(

Thanks for the help

Carsten

Disable outdoor Module

Hi,
I have a defective Outdoor Module but the Indoor one is running fine. Is there a setting that disables the two outdoor Values in Homebridge, so that only indoor values are visible in The Home App?

If not, could you add one, please :-)

Timo

TypeError: Cannot read property 'time' of undefined

Homebridge crashed after update to 0.3.3

/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/fakegato-history/fakegato-history.js:688
numToHex(swap32(this.history[this.memoryAddress].time - this.refTime - EPOCH_OFFSET), 8),
^
TypeError: Cannot read property 'time' of undefined
at FakeGatoHistory.getCurrentS2R2 (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/fakegato-history/fakegato-history.js:688:56)
at S2R2Characteristic.emit (events.js:160:13)
at S2R2Characteristic.Characteristic.getValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Characteristic.js:162:10)
at Bridge.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:756:20)
at Array.forEach (<anonymous>)
at Bridge.Accessory._handleGetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:720:8)
at HAPServer.emit (events.js:160:13)
at HAPServer._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:926:10)
at HAPServer.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:209:39)
at IncomingMessage.emit (events.js:160:13)
at endReadableNT (_stream_readable.js:1101:12)
at process._tickCallback (internal/process/next_tick.js:152:19)
homebridge.service: main process exited, code=exited, status=1/FAILURE
Unit homebridge.service entered failed state.
homebridge.service holdoff time over, scheduling restart.
Stopping Node.js HomeKit Server...

Ignore or record last valid data when outdoor module disconnected

Hi,

First of all, I would like to thank you for creating and maintaining this plugin.

I would like to report a bug.

Whenever outdoor module connection as lost the data will get recorded as 0 on temperature and humidity.
Is it possible to have the plugin ignore the invalid data? or it can just record the latest valid data until it can receive new data.

Here are some screenshot of the issue:

I have the latest plugin v0.4.8 running on Homebirdge 0.4.50.

Thank you!

Rain gauge values dont change correct

Hi. The rain gauge Values Shown in the eve App dont set back to Zero. If i pour some water into the rain gauge it Updates the values in Time. If i restart homebridge it Updates the values correct, also to Zero (without rain or pouring some water into it for testing).
First i tried without ttl, then with ttl 540.
Doesnt make a difference.
This also happened with the Original Netatmo Plugin so i changed to your updated Version eveatmo baut without succes.
What can this be?

getStationsDataError error: Access token expired

Hi there,
I installed your plugin yesterday for the first time - It was working very well but it's been a few minutes (problem may be older) that I noticed everything was labelled "no responding" in the app Home.

I found the following error in the logs :
[evatmo platform] WARN - Netatmo: Error: getStationsDataError error: Access token expired

Any chance you let me know what went wrong?

History gaps

Since I install the Homebridge new and Update Node and npm I had no problem with gaps and the plugin worked fine. But since few days I have the gaps again.

If the gaps in the log are missing then the entry: loading new data from API.
When i restart the HB the it works again for a few hours.
Apr 7 07:23:51 Homebridge homebridge[32340]: [2018-4-7 07:23:51] [eveatmo] Loading new data from API for: weatherstation
Apr 7 07:36:46 Homebridge homebridge[32340]: [2018-4-7 07:36:46] [eveatmo] Loading new data from API for: weatherstation
Apr 7 07:46:50 Homebridge homebridge[32340]: [2018-4-7 07:46:50] [eveatmo] Loading new data from API for: weatherstation
Apr 7 07:46:50 Homebridge homebridge[32340]: [2018-4-7 07:46:50] [eveatmo] Loading new data from API for: weatherstation
Apr 7 07:46:50 Homebridge homebridge[32340]: [2018-4-7 07:46:50] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:05:37 Homebridge homebridge[32340]: [2018-4-7 08:05:37] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:05:59 Homebridge systemd[1]: homebridge-eveatmo.service: Main process exited, code=exited, status=143/n/a
Apr 7 08:05:59 Homebridge systemd[1]: homebridge-eveatmo.service: Unit entered failed state.
Apr 7 08:05:59 Homebridge systemd[1]: homebridge-eveatmo.service: Failed with result 'exit-code'.
Apr 7 08:06:04 Homebridge homebridge[15171]: [2018-4-7 08:06:04] Loaded plugin: homebridge-eveatmo
Apr 7 08:06:04 Homebridge homebridge[15171]: [2018-4-7 08:06:04] Registering platform 'homebridge-eveatmo.eveatmo'
Apr 7 08:06:12 Homebridge homebridge[15171]: [2018-4-7 08:06:12] [eveatmo] Initializing eveatmo platform...
Apr 7 08:06:13 Homebridge homebridge[15171]: [2018-4-7 08:06:13] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:06:14 Homebridge homebridge[15171]: [2018-4-7 08:06:14] [eveatmo] Initializing platform accessory 'Home Wohnzimmer'...
Apr 7 08:06:14 Homebridge homebridge[15171]: [2018-4-7 08:06:14] [eveatmo] Initializing platform accessory 'Home Garten'...
Apr 7 08:06:14 Homebridge homebridge[15171]: [2018-4-7 08:06:14] [eveatmo] Initializing platform accessory 'Home Badezimmer'...
Apr 7 08:15:13 Homebridge homebridge[15171]: [2018-4-7 08:15:13] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:24:13 Homebridge homebridge[15171]: [2018-4-7 08:24:13] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:33:13 Homebridge homebridge[15171]: [2018-4-7 08:33:13] [eveatmo] Loading new data from API for: weatherstation
Apr 7 08:42:13 Homebridge homebridge[15171]: [2018-4-7 08:42:13] [eveatmo] Loading new data from API for: weatherstation
img_0177
img_0178

Netatmo Thermostat working with homebridge-eveatmo

Would be great if Netatmo Thermostat will work with your great homebridge-eveatmo plugin in the future. This is now the only reason why I still use homebridge-netatmo.
Thanks again for your work and sharing. 👍🏻

getting errors when eve app is requesting data

at process._tickCallback (internal/process/next_tick.js:180:9)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at endReadableNT (_stream_readable.js:1055:12)
at IncomingMessage.emit (events.js:208:7)
at emitNone (events.js:106:13)
at HAPServer. (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:209:39)
at HAPServer._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:926:10)
at HAPServer.emit (events.js:224:7)
at emitMany (events.js:147:13)
at Bridge.Accessory._handleGetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:720:8)
at Array.forEach ()
at Bridge. (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:756:20)
at S2R2Characteristic.Characteristic.getValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Characteristic.js:162:10)
at S2R2Characteristic.emit (events.js:217:7)
at emitThree (events.js:136:13)
at FakeGatoHistory.getCurrentS2R2 (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/fakegato-history/fakegato-history.js:700:56)
TypeError: Cannot read property 'time' of null
^
numToHex(swap32(this.history[this.memoryAddress].time - this.refTime - EPOCH_OFFSET), 8),

Accessory out of compliance on iOS 14.1+

I am getting an accessory out of compliance on iOS 14.1+ when I have this plugin installed. I was able to track it down to this plugin on my Homebridge setup after wiping my installation clean and slowing adding new plugins until one broke the experience. If there is any debugging I can do to help with this bug please let me know.

homebridge error if device not reachable

If the Netatmo station isn't available, no errors in log or in homebridge are shown.

A few days ago, the cable for the Netatmo station has been loosened. Because of that, all devices in homebridge haven't been accessible anymore. After hours of troubleshooting, I discovered the problem; the cable of the station.

Therefor it would be nice, to become informed in log about an error like that.

Invalid hex string | homebridge stopped working EveatmoWeatherPressureService ??

Hope you can help. Is again the Netatmo API/Server the problem?
Homebridge stopped working out of the blue with the error shown below.

Any chance to see this in the near future? At the moment everything at home stopped just because of the plugin. Don't get me wrong, I love this plugin and desperately see development going on.

Thanks a lot for the help and reply.

Okt 01 08:55:33 raspberrypi homebridge[2945]: TypeError: Invalid hex string
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Buffer.write (buffer.js:805:21)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at fromString (buffer.js:212:18)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Function.Buffer.from (buffer.js:104:12)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at new Buffer (buffer.js:85:17)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherPressureService.hexToBase64 (/usr/local/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:97:11)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherPressureService.updateCharacteristics (/usr/local/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:117:23)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at /usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:166:51
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Array.forEach (native)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherAccessory.applyWeatherData (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:164:24)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherAccessory.notifyUpdate (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:100:9)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherAccessory.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:83:11)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:75:6)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at NodeCache.module.exports.NodeCache.get (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/node-cache/lib/node_cache.js:90:11)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at NodeCache.get (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/node-cache/lib/node_cache.js:12:59)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.refreshDeviceData (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:66:14)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at EveatmoWeatherAccessory.refreshData (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:81:16)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at new EveatmoWeatherAccessory (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:46:9)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.buildAccessory (/usr/local/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:59:12)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:108:26)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Array.forEach (native)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.buildAccessories (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:95:32)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:57:10)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:71:7)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:49:5)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at netatmo.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/netatmo/netatmo.js:227:14)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Request.self.callback (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:186:22)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at emitTwo (events.js:106:13)
Okt 01 08:55:33 raspberrypi homebridge[2945]: at Request.emit (events.js:194:7)

Homebridge crash

I really enjoy using eveatmo and like how it's displayed in Home. One issue which I experience which can improve overall experience is here: Homebridge crashes completely when eveatmo platform have exception.

As for now, 3:53:01 PM GMT+3 problem still exist, my polling interval is 540s

[1/3/2019, 2:52:59 PM] [eveatmo platform] Loading new data from API for: weatherstation
buffer.js:750
return this.hexWrite(string, offset, length);
^

TypeError: Invalid hex string
at TypeError (native)
at Buffer.write (buffer.js:750:21)
at fromString (buffer.js:203:26)
at Function.Buffer.from (buffer.js:99:12)
at new Buffer (buffer.js:80:17)
at EveatmoWeatherPressureService.hexToBase64 (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:97:11)
at EveatmoWeatherPressureService.updateCharacteristics (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:117:23)
at /volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:150:51
at Array.forEach (native)
at EveatmoWeatherAccessory.applyWeatherData (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:148:24)
at EveatmoWeatherAccessory.notifyUpdate (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:99:9)
at WeatherstationDeviceType. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:47:18)
at Array.forEach (native)
at WeatherstationDeviceType. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:46:24)
at netatmo. (/volume1/home/stas/.npm-global/lib/node_modules/netatmo/netatmo.js:227:14)
at Request.self.callback (/volume1/home/stas/.npm-global/lib/node_modules/request/request.js:185:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (/volume1/home/stas/.npm-global/lib/node_modules/request/request.js:1161:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage. (/volume1/home/stas/.npm-global/lib/node_modules/request/request.js:1083:12)

Exclude items from being passed over to HomeKit

Hi,

now that the (v3) Weather Station is officially HomeKit compatible, is it possible to add an option to hide certain components from HomeKit? I'd like to continue using homebridge-eveatmo to get the (officially unsupported) readings from rain and wind gauge into Eve, including history. But I don't really need the duplication of the Main, indoor and outdoor modules. So, if there were a way to only expose the rain and wind gauge, that would be fantastic!

[enhancement] Netatmo welcome camera

Black Friday and of course the Netatmo welcome was also on sale. 🙄 So I bought it. dah.. For no particular reason.😉
Any chance to see a (the) camera supported in eveatmo in the very near future? 🤞🏻
Thx

Help needed: Eve Motion and Eve Room

Hi!

I'm working on implementing custom Eve characteristics for ESP8266 based HomeKit firmware that works without any bridge via Wi-Fi.

Currently I've successfully added Eve Degree (shows up as "real" Degree in Eve app), but i can't find the correct order for Eve Room! But i've found some things in Accessory Simulator, e.g: VOC density doesn't shows up on Eve app (Room's sensor can measure it...also CO2)
But VOC characteristic will be kept because I've the same sensor that Elgato have in Room😄

Other thing that cant figure out is Eve Motion have ( had???) custom "LED on Motion" characteristic for toggeling the LED when motion detected.... anybody found the proper characteristic for that?
It would be a nice feature to turn on/off the led when motion detected via Eve's characteristic 😄

Eve Motion characteristic:
IMG_7749

Low battery warning

Having replaced the batteries in one of the modules Eve is still showing the low battery warning.
Is there a way to clear this?

Other than that eveatmo is working great.
Thanks.

Error

i got this error. any idea ?

Sep 11 21:41:30 homebridge2 homebridge[7432]: buffer.js:769 Sep 11 21:41:30 homebridge2 homebridge[7432]: return this.hexWrite(string, offset, length); Sep 11 21:41:30 homebridge2 homebridge[7432]: ^ Sep 11 21:41:30 homebridge2 homebridge[7432]: TypeError: Invalid hex string Sep 11 21:41:30 homebridge2 homebridge[7432]: at Buffer.write (buffer.js:769:21) Sep 11 21:41:30 homebridge2 homebridge[7432]: at fromString (buffer.js:213:18) Sep 11 21:41:30 homebridge2 homebridge[7432]: at Function.Buffer.from (buffer.js:105:12) Sep 11 21:41:30 homebridge2 homebridge[7432]: at new Buffer (buffer.js:86:17) Sep 11 21:41:30 homebridge2 homebridge[7432]: at EveatmoWeatherPressureService.hexToBase64 (/usr/local/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:95:11) Sep 11 21:41:30 homebridge2 homebridge[7432]: at EveatmoWeatherPressureService.updateCharacteristics (/usr/local/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:115:23) Sep 11 21:41:30 homebridge2 homebridge[7432]: at /usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:166:51 Sep 11 21:41:30 homebridge2 homebridge[7432]: at Array.forEach (native) Sep 11 21:41:30 homebridge2 homebridge[7432]: at EveatmoWeatherAccessory.applyWeatherData (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:164:24) Sep 11 21:41:30 homebridge2 homebridge[7432]: at EveatmoWeatherAccessory.notifyUpdate (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:100:9)

Unable to remove exposed "unsupported devices" (Rain, Wind) from Favorites

Describe the bug
Unable to remove exposed "unsupported devices" (Rain, Wind sensors) from Favorites.
Issue exists since iOS14

Version you use

  • homebridge version 1.1.6
  • node version 14.15
  • plugin version 0.5.0

To Reproduce

Check favorites in Apple Home App
Klick on an unsupported device
The switch to remove it from Favorites is missing

Thanks!

Home Assistant?

Hi,

I'm very new to programming, and I wanted to figure out if there is a way to adapt this to Home Assistant. Do you have any suggestions?

Thanks!

Seemingly silent fails brings down homebridge

With the recent update this plug in causes my entire set of home bridge devices to fail in HomeKit. I have turned on debug and tried to find ways for this to work, but so far I cannot figure out any information to share.

I know it is this plugin because I removed all my platforms in the config and put them back in 1:1 and this one is the one which causes the issue.

Any ideas on how to help debug?

Battery Indicator

Hi,
would it be possible to implement separate switches for the battery indicator in the home app? In Homebridge, these switches are already displayed at the devices

best regards
DJ

E9592EC0-2997-4FDC-A202-791410C64918

Using windsensor data for opening raffstore

Hello,
I am a absolute beginner and just bought a raspi, so sorry for any dumb questions.

I'd like to have all my smarthome functionalities in Apple HomeKit. Unfortunatelly a lot of components do not support HomeKit. One of these is the weatherstation from Netatmo.
That's how I landed here.

In case of exceeding certain wind speeds the raffstores have to open in order to protect them from any damage.

Is this already possible to set via homebridge and your eveatmo plugin ?
Do I have to use any other hardware from netatmo than the weatherstation itself?
Do I need any other software on my iPhone than HomeKit?

Thank you a lot.

Eve history

Hi,
I made some progress with Eve history (see my gist) looking at the communication of a real Eve Room, but now I would need to monitor also other accessories. Do you have any possibilities?
Simone

issue with philips tv

hello, regarding your Philips TV Homebridge plugin (it does not have the "issues" section so I had to open here), I have a 2014 model and I get this when I want to turn it on:
kepernyofoto 2018-05-29 - 15 52 53

what would be the issue?

thank you

Homekit crash

Hi!

I have homebridge-eveatmo plugin and homebridge 1.1.2 and it was running ok until i upgraded to 1.1.6. In hombrebridge it's ok, i see temperature, humidity, etc... but it makes a crash in homekit-homebridge connection because all other elements show as disconnected when i have homebridge-eveatmo "online", if i delete this plugin, all elements show online again. I've tried multiple configurations, reinstall homebridge, reinstall plugins and always, when i install homebridge-eveatmo plugin, it crash

Eveatmo breaks homebridge if Netatmo Weather does not connect

Hi,

I'm runninng into a problem with the Eveatmo plugin. Presently my Netatmo weather station for some reason was failing to correctly find the Wifi signal and connect to it. However I seem to have fixed that now.

Problem I'm having with the Eveatmo plugin, is that if the Netatmo weather station is offline, it will prevent homebridge from running, the log reports that the plugin failed to talk to nentatmo, and keeps doing this indefinitely.

Is there a way the plugin could timeout after a number of tries, and report the tiles as no response, allowing homebridge to run?

Thanks

CO2 Sensor data

Hello and thanks a lot for your job ! It is very usefull...

May I suggest an update regarding the CO2 Sensor. Via Apple Home App, to get the CO2 value, you have to keep pressing on the CO2 Sensor square button, then press setting and then you have the level in ppm. Could this status be directly display in the CO2 Sensor square button, in the same way as Humidity and Air Quality?

Thank you in advance.

The outdoor module is not displayed with a white list

Hi there,

I use two Netatmo stations. a version 2 and a version 3.

Now I have everything set up in Homkit and it works too.

Version 2 via evetamo and version 3 via Homkit native.

Version 2 was set as a whitlist so that version 3 runs normally via Homekit.

Unfortunately, version two of the outdoor module via evetatmo is not displayed in Homekit.

Is there a solution to this?

Netatmo Rain Gauge

Hi,

Thank you for this plugin, as for some reason, despite the weather station v3 being supported by homekit, the rain gauge still shows up as not supported, and thanks to your plugin it is at least able to be controlled by eve.

My main idea for getting the weather station was to close my windows automatically when it is raining. Unfortunately, I can't get them to close with this plugin either. Would it be possible to add an On/Off switch or occupation sensor that points out if it is currently raining or not.

Thanks

Missing history data fir indoor/outdoor moduled

Hi,

I checked the plugin.
I have only history data for the main station.
For the outdoor and a second indoor module there is no history data.

Is this missing in general or an error at my end?

Thanks

HomeKit connection failed completely because of empty battery of outdoor module

Hi,

first of all, thanks for the good work and the plugin, did run like a charm till yesterday :). If this problem is already known, than sorry didn't find it.

I had yesterday the following Problem:
I restarted my homebridge system. After the restart my HomeKit Hub marked every Accessory with "No Response". Homebridge is running on a raspberry pi. On that raspberry there are some other systems too like openhab, grafana and a postgresql server. I did some changes on openhab and as this is connected to homebridge -- my journey did begin.

What did i do:

  1. Reverting everything i did in openhab (had nothing to do with homebridge, it was just for the openhab cloud)
  2. Looking into some logs and fixing an ipv6 failure (at least this is gone forever now, as i do not have ipv6 in my home network, the fix was pretty easy -- shutting it down)
  3. Rebooted my iPad (this is the HomeKit Hub) multiple times
  4. Installing a different Version of Homebridge - Before 1.2.2 now 1.1.6
  5. Lastly, I thought "what the heck" - disconnect the bridge from my ipad and reconnect it to start over. <-- I was not able to reconnect my homebridge to my iPad with the Failure "It is not compatible"
  6. A short google told me, that one of my accessory does give "wrong" or "unusable" data to homekit and homekit then ignores the complete bridge :( n1 one apple, just ignore the one accessory and not all of it!
  7. After that i remembered that the battery of the outdoor module did die a few days ago
  8. Deleted the Plugin configuration for eveatmo in homebridge
  9. Connection between homekit and homebrigde worked again
  10. Readded the configuration of eveatmo into homebridge
  11. Connection died again
  12. Went outside and replaced the empty batteries
  13. Did take around 10 to 20 minutes -- Connection between Homekit and Homebridge worked again. Ttl is 540, so i think there are the 10 to 20 minutes coming from.

Homebridge did work fine until the restart. I think the initial value after a restart could something be like "null" which Homekit cannot handle. Btw. A module with batteries which is not reachable should get battery value of 0 and Status low 1 (but that"s my opinion :) -- at least someone would know that there is something wrong -- but i do not know what homekit allows and netatmo provides in this case :) ) I hope the next one having this problem this issue can help.

Versions:

  • Homebridge 1.1.6 (also tried with 1.2.2)
  • Homebridge Eveatmo 0.5.0
  • Raspberry Pi Running Raspbian Version 9 (Stretch)
  • iPadOS 14.0.1 (iPad Hub)
  • iOS 14.0.1 (iPhone)

Thanks a lot for the good work. If information is missing or you need some more, just let me know. If i can still reach it, i am going to provide it to you.

Greetings,
Toni

homebridge crashes on 0.4.2

I'm testing 0.4.2 for a week and experience crashes about every 48 hours.
Last crash: [1/8/2019, 11:25:47 AM]
Previous: [1/6/2019, 1:59:46 AM]
Before: [1/5/2019, 12:22:05 AM]

Problems are the same, here is last dump

[1/8/2019, 11:25:47 AM] [eveatmo platform] Loading new data from API for: weatherstation
buffer.js:750
return this.hexWrite(string, offset, length);
^

TypeError: Invalid hex string
at TypeError (native)
at Buffer.write (buffer.js:750:21)
at fromString (buffer.js:203:26)
at Function.Buffer.from (buffer.js:99:12)
at new Buffer (buffer.js:80:17)
at EveatmoWeatherPressureService.hexToBase64 (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:97:11)
at EveatmoWeatherPressureService.updateCharacteristics (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/service/eveatmo-weather-pressure.js:117:23)
at /volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:150:51
at Array.forEach (native)
at EveatmoWeatherAccessory.applyWeatherData (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:148:24)
at EveatmoWeatherAccessory.notifyUpdate (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:99:9)
at WeatherstationDeviceType. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:47:18)
at Array.forEach (native)
at WeatherstationDeviceType. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:46:24)
at netatmo. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/node_modules/netatmo/netatmo.js:227:14)
at Request.self.callback (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:185:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:1161:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage. (/volume1/home/stas/.npm-global/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:1083:12)

Firmware-Update showing up

First of all thanks for this great plugin. Love it and works good with my first try.
Using Netatmo Rain Sensor and a few indoor and outdoor Sensors.
What I was wondering is that the Eve App is showing a Firmware-Update for Version 1.3.1 (466) for the 8 Devices added by homebridge-eveatmo.
Any chance to get rid of this?

Thanks again und viele Grüße. ;)

TypeError: Cannot read property 'Pressure' of undefined

Hey there.
Since two days I get this error and of course Homebridge stops.
Probably something on the Netatmo server?
But it would be great if the plugin doesn't stop homebridge completely then just ignoring the error.
After some time (hours) the plugin runs again when data is coming for Netatmo again I guess.

It would be so helpful if there is a feature that eveatmo plugin could handle this Server errors better.

Thanks in advance the consideration and the work investing.

Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]: /usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:25
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:                                 if(device.dashboard_data.Pressure) {
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:                              ^
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]: TypeError: Cannot read property 'Pressure' of undefined
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at new EveatmoWeatherAccessory (/usr/local/lib/node_modules/homebridge-eveatmo/accessory/eveatmo-weather-accessory.js:25:30)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.buildAccessory (/usr/local/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:61:12)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:85:26)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Array.forEach (<anonymous>)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.buildAccessories (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:72:32)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:39:10)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/lib/netatmo-device.js:53:7)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at WeatherstationDeviceType.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/device/weatherstation-device.js:51:5)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at netatmo.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/netatmo/netatmo.js:227:14)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Request.self.callback (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:185:22)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Request.emit (events.js:182:13)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:1157:10)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Request.emit (events.js:182:13)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge-eveatmo/node_modules/request/request.js:1079:12)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at Object.onceWrapper (events.js:273:13)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at IncomingMessage.emit (events.js:187:15)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at endReadableNT (_stream_readable.js:1094:12)
Nov 21 16:27:01 raspberrypi-3BPlus homebridge[25929]:     at process.internalTickCallback (internal/process/next_tick.js:72:19)
Nov 21 16:27:04 raspberrypi-3BPlus systemd[1]: homebridge.service: Main process exited, code=exited, status=1/FAILURE
Nov 21 16:27:04 raspberrypi-3BPlus systemd[1]: homebridge.service: Unit entered failed state.
Nov 21 16:27:04 raspberrypi-3BPlus systemd[1]: homebridge.service: Failed with result 'exit-code'.

Hidden the logging-service

Hello, could you please flag the logging-service as „hidden“ in the service definition?

App developers rely on this property to define what services and characteristics will be shown in their apps and which will be hidden. In my opinion, the logging service („E863F007-079E-48FF-8F27-9C2605A29F52“) should not be exposed to the user. Please also flag the non-user facing characteristics like „E863F11E-079E-48FF-8F27-9C2605A29F52“ as hidden.

a6f99b34-839c-447d-af87-1d452fe2f31e

Thank You!

Warnings since homebridge 1.0.2

Hi,

Since update, I got thoses warnings, about CarbonDioxideService I think :

HAP Warning: Characteristic 00000093-0000-1000-8000-0026BB765291 not in required or optional characteristics for service 0000008D-0000-1000-8000-0026BB765291. Adding anyway.

My config :
{
"platform": "eveatmo",
"name": "NicoNetatmo",
"extra_co2_sensor": false,
"ttl": 900,
"auth": {
"client_id": "AAAA",
"client_secret": "BBBB",
"username": "[email protected]",
"password": "AZERTY"
},
"deviceTypes": [
"weatherstation"
],
"whitelist": [
"02:0ggg0::44",
"70:ggg42:d6",
"03:hghgg3:0",
"03:0:cggg9:10"
]
},

No co2, wind, rain

First of all, THANKS! My connection to netatmo works and it starts its initializing start of with all weather modules

Screenshot 2020-09-22 at 11 57 10

However, only battery, temp and humidity shows up in my HOOBS. No co2, wind, rain. I understand that it should from the description hence this issue report.

MFG Tord

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.