This is a weather plugin for homebridge that features current observations, daily forecasts and history graphs for multiple locations and services. You can download it via npm.
Screenshots 2 and 3 are taken from the Elgato Eve app.
If you like this plugin and find it useful, I would be forever grateful for your support:
Feel free to leave any feedback here.
This plugin supports multiple weather services. Each has it's own advantages. The following table shows a comparison to help you choosing one.
Dark Sky 1 | OpenWeatherMap (recommended) | Weather Underground 2 | |
---|---|---|---|
Current observation values | 19 | 15 | 12 |
Forecast values | 22 | 18 | 0 |
Forecast days | today + 7 | today + 7 | 0 |
Location | geo-coordinates | city name, city id, geo-coordinates | station id |
Personal weather stations |
|
|
|
Free |
|
|
|
Register | closed | here | here |
You can add more services easily by forking the project and submitting a pull request for a new api file.
1 It is no longer possible to register as a new user for Dark Sky. Existing users can use the service until 31.12.2021.
2 You can use the weather underground service only if you can provide weather data from your own station in exchange.
npm install -g homebridge
npm install -g homebridge-weather-plus
Note: The installation might take 5 minutes.homebridge-config-ui-x
or update your configuration file manually. See the explanations and samples below.The following observation and forecast values can be displayed and used in HomeKit rules.
I recommend using the Eve app to see all the values. However, if you don't want to use a 3rd party app, use the compatibility mode home
for displaying most values in the Apple home app.
3 Simple: clear (0), overcast (1), rain (2), snow (3)
4 Detailed: clear (0), few clouds (1), broken clouds (2), overcast (3), fog (4), drizzle (5), rain (6), hail (7), snow (8), severe weather (9)
Below are example configurations for all weather apis.
key
The API key that you get by registering for the Dark Sky service.
locationGeo
List with the latitude and longitude for your location (don't forget the square brackets). You can get your coordinates: here.
"platforms": [
{
"platform": "WeatherPlus",
"service": "darksky",
"key": "YOUR_API_KEY",
"locationGeo": [52.5200066, 13.404954]
}
]
key
The API key that you get by registering for the OpenWeather service.
locationId5
Numerical city id, can be found here.
locationCity5
City name and optional country code, can be found here.
locationGeo5
List with the latitude and longitude for your location (don't forget the square brackets). You can get your coordinates: here.
5 You need only one of these location options.
"platforms": [
{
"platform": "WeatherPlus",
"service": "openweathermap",
"key": "YOUR_API_KEY",
"locationId": 2950159,
"locationCity": "Berlin, DE",
"locationGeo": [52.5200066, 13.404954]
}
]
Since March 2019 you need to register your own weather station with Weather Underground to get weather data in exchange. After you registered your weather device (here), you can use the API.
key
The API key that you get by registering for the Weather Underground service.
stationId
Your personal StationID.
"platforms": [
{
"platform": "WeatherPlus",
"service": "weatherunderground",
"key": "YOUR_API_KEY",
"stationId": "YOUR_STATION_ID"
}
]
Below are explanations for a lot of advanced parameters to adjust the plugin to your needs. All parameters are optional.
compatibility
Compatibility for the Apple Home app, the Eve app or both. This is required due to limitations in the Apple Home app recognized weather conditions. The default is "eve"
."eve"
(recommended) Use this for the Eve app or another 3rd party HomeKit App. All conditions will be displayed. The Apple Home app will show only temperature and humidity."eve2"
Same as above but the values for temperature, humidity and pressure will be grouped into a single row. The Apple Home app will show nothing."home"
Use this if you don't want to install a 3rd party HomeKit App but want to see as many values as possible in the Apple Home app6. 3rd party apps will show some useless sensors that are required for Home app support."both"
Combines eve and home. You will need to hide some useless sensors in the Eve app that are required for Home app support. But after that you will get a solution that looks nice in the Home app and in 3rd party apps at the same time.
6 The following values will be represented as occupancy sensors that trigger on specific limits: CloudCover > 20%, UVIndex > 2, WindSpeed > 4 m/s, Rain, Snow
conditionCategory
Detail level of the condition category. Not available for WeatherUnderground. Default is "simple"
."simple"
4 different categories"detailed"
10 different categories
extraHumidity (compatibility "eve"
or "both"
)
Separate humidity from the weather accessory to an own accessory if set to true
. Default is false
.
forecast
List of forecast days with 0 for today, 1 for tomorrow, 2 for in 2 days etc. Default are none []
. Maximum depends on the choosen weather service.
hidden
List of observation and forecast values that should not be displayed. Possible options are ["AirPressure", "CloudCover", "Condition", "ConditionCategory", "DewPoint", "ForecastDay", "Humidity", "ObservationStation", "ObservationTime", "Ozone", "Rain1h", "RainBool", "RainChance", "RainDay", "SnowBool", "SolarRadiation", "TemperatureMin", "UVIndex", "Visibility", "WindDirection", "WindSpeed", "WindSpeedMax"]
. Don't forget the square brackets.
interval
Update interval in minutes. The default is 4
minutes because the rate for free API keys is limited.
language
Translation for the current day and the weather report. Available languages can be found here. The default is en
.
nameNow
Name for the current condition accessory. The default is "Now"
. You could set this to your city name or weather service type.
nameForecast
Name for the forecast accessories. Adds a prefix to the forecast days. You could set this to your city name or weather service type as well.
nowOption to hide the Now accessory if you only need forecasts. Default is true
which shows the Now accessory. Set to false
to hide it.
units
Conversions used for reporting values. The default is "metric"
. The options are:"si"
or "metric"
"sitorr"
to report air pressure in mmhg"us"
or "imperial"
"ca"
to report wind speeds in km/h"uk"
to report visibility in miles and wind speeds in miles/h
thresholdAirPressure (compatibility "home"
or "both"
)
At what threshold should the air pressure sensor trigger? Provide a number without unit. The range depends on your unit setting (sitorr -> mmhg, otherwise -> hPa).
thresholdCloudCover (compatibility "home"
or "both"
)
At what threshold should the cloud cover sensor trigger? Provide a number between 0 (clear) and 100 (overcast).
thresholdUvIndex (compatibility "home"
or "both"
)
At what threshold should the UV-Index sensor trigger? Provide a number >= 0. See https://en.wikipedia.org/wiki/Ultraviolet_index
thresholdWindSpeed (compatibility "home"
or "both"
)
At what threshold should the wind speed sensor trigger? Provide a number without unit. The range depends on your unit setting (si/metric/sitorr -> m/s, ca -> km/h, uk/us/imperial -> miles/h).
fakegatoParameters
Customization of the history storage system. By default, the history is persisted on the filesystem. You can set your own option using this parameter. In order to change the location of the persisted file or to use GoogleDrive.Do not modify the parameter for the fakegato internal timer.
"platforms": [
{
"platform": "WeatherPlus",
"service": "darksky",
"key": "XXXXXXXXXXXXXXX",
"locationGeo": [52.5200066,13.404954],
"compatibility": "both",
"conditionCategory": "detailed",
"forecast": [0,1,2,3,4,5,6],
"hidden": ["CloudCover", "DewPoint"],
"interval": 5,
"language": "en",
"nameNow": "Berlin",
"nameForecast": "Berlin Forecast",
"now": true,
"units": "metric"
}
]
You can set up multiple stations for different locations and weather services by putting your configuration in a stations array.The following parameters are global and must be placed outside of the array: platform
, interval
, units
.
Each stations must have a unique displayName. If you don't set one, the plugin will take care of that.
"platforms": [
{
"platform": "WeatherPlus",
"interval": 5,
"units": "si",
"stations": [
{
"displayName": "Berlin",
"displayNameForecast": "Berlin forefacst",
"service": "darksky",
"key": "YOUR_API_KEY",
"forecast": [0,1,2,3,4,5,6],
"locationGeo": [52.5200066,13.404954]
},
{
"displayName": "Los Angeles",
"displayNameForecast": "Los Angeles forecast",
"service": "darksky",
"key": "YOUR_API_KEY",
"forecast": [1],
"locationGeo": [34.0536909,-118.2427666]
}
]
}
]
Hint: To trigger rules based on time and weather condition you will need a plugin like homebridge-delay-switch. Create a dummy switch that resets after some seconds. Set this switch to on with a timed rule. Then create a condition rule that triggers when the switch goes on depending on weather conditions of your choice.
Many thanks to the awesome contributors who support the project with pull requests (chronological order):
This plugin is a fork of homebridge-weather-station which is no longer being developed. That one was a fork of homebridge-wunderground.
homebridge-weather Homebridge plugin for displaying the weather, humidity and min- or max-temperature from openweathermap.org If you find my work useful you can buy me a coffee, I am very thankful for
前置说明 /doc 文件夹中包含项目截图和以下将要描述的文档(PDF文档 )。 weather-web 项目: 天气Web服务。 weather-weixin 项目:查询天气微信小程序(微信扫描下图可以查看)。 项目中一些关键Key已经去除,开发者可以自行添加,如有问题可以留言或者邮件联系。 欢迎 fork 和 star ~ 天气服务说明文档 1背景 1.1意义 设计该服务,主要有以下几个原因
Weather Icons 是一个具有 222 个天气主题图标的图标和 CSS 库,可以直接放入 Bootstrap ,或在任何需要高质量天气、海洋和气象图标的项目中使用。 基本用法 将 5 个字体文件和 主weather-icons.min.css 文件放在项目中,假设字体位于 css 目录的 ../ 上。 通过使用 i 元素并添加基类 wi,然后添加所需的图标类(如day sunny)来显示图
GeoIP Weather 是一个PHP的脚本,用来根据访问者的IP地址获取到所在城市的天气预报数据,数据来自于 weather.com 网站。如下图所示: 在线演示:http://geoipweather.com/
针对中国地区的天气预报服务,包括: 查询天气预报的Web站点:http://weather-china.appspot.com/ 基于JSON的REST API接口,请参考API说明 Chrome浏览器插件:http://goo.gl/ONkZ
Weather Around (YQL Demo) 应用是用来展示如何使用 iOS 的 YQL ,解析和显示 JSON 格式的数据。同时,它还包括一些简单的 GPS 位置示例。用户可以输入多个城市的名字,通过 SQL(比如 YQL API 的查询信息)来获取天气预报信息。