{"id":13534670,"url":"https://github.com/werthdavid/homebridge-weather","last_synced_at":"2025-05-05T18:44:47.661Z","repository":{"id":14466747,"uuid":"76587115","full_name":"werthdavid/homebridge-weather","owner":"werthdavid","description":"OpenWeatherMap Plugin for Homebridge","archived":false,"fork":false,"pushed_at":"2024-02-12T12:03:08.000Z","size":138,"stargazers_count":104,"open_issues_count":2,"forks_count":7,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-05T14:18:51.674Z","etag":null,"topics":["homebridge","homebridge-plugin","openweathermap","plugin","temperature","weather"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/werthdavid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"werthdavid","custom":["https://paypal.me/dwerth89"]}},"created_at":"2016-12-15T18:57:44.000Z","updated_at":"2024-11-21T04:24:00.000Z","dependencies_parsed_at":"2024-05-15T12:16:37.831Z","dependency_job_id":"dfb53c60-4987-4278-bbc1-95f61aeb324b","html_url":"https://github.com/werthdavid/homebridge-weather","commit_stats":{"total_commits":59,"total_committers":5,"mean_commits":11.8,"dds":"0.38983050847457623","last_synced_commit":"c0531a20c851f48c68975c2529d043a76ae839b3"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werthdavid%2Fhomebridge-weather","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werthdavid%2Fhomebridge-weather/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werthdavid%2Fhomebridge-weather/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werthdavid%2Fhomebridge-weather/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/werthdavid","download_url":"https://codeload.github.com/werthdavid/homebridge-weather/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252555598,"owners_count":21767195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["homebridge","homebridge-plugin","openweathermap","plugin","temperature","weather"],"created_at":"2024-08-01T08:00:34.913Z","updated_at":"2025-05-05T18:44:47.627Z","avatar_url":"https://github.com/werthdavid.png","language":"JavaScript","funding_links":["https://github.com/sponsors/werthdavid","https://paypal.me/dwerth89","https://www.buymeacoffee.com/werthdavid"],"categories":["JavaScript","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# homebridge-weather\n\n**Homebridge plugin for displaying the weather, humidity and min- or max-temperature from openweathermap.org**\n\n[![NPM version](https://badge.fury.io/js/homebridge-weather.svg)](https://npmjs.org/package/homebridge-weather) [![Dependency Status](https://david-dm.org/werthdavid/homebridge-weather.svg)](https://david-dm.org/werthdavid/homebridge-weather) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) [![Downloads](https://img.shields.io/npm/dm/homebridge-weather.svg)](https://npmjs.org/package/homebridge-weather)\n\nIf you find my work useful you can buy me a coffee, I am very thankful for your support. \n\n\u003ca href=\"https://www.buymeacoffee.com/werthdavid\" target=\"_blank\"\u003e\u003cimg width=\"140\" src=\"https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\"\u003e\u003c/a\u003e\n\n# Installation\n\n1. Install Homebridge using: `(sudo) npm install -g --unsafe-perm homebridge`\n2. Install this plugin using: `(sudo) npm install -g homebridge-weather`\n3. Get an API-Key from \u003ca href=\"http://openweathermap.org\"\u003eopenweathermap.org\u003c/a\u003e\n4. \u003ca href=\"https://openweathermap.org/city\"\u003eFind\u003c/a\u003e your city (make sure the query only returns a single result!). Alternatively you can use a different query parameter (see 'Fields')\n5. Update your Homebridge `config.json` using the sample below (append in the block 'accessories' not 'platforms').\n\n# Configuration\n\n## Weather\n\nExample for configuration by City\n\n```json\n\"accessories\": [\n    {\n      \"accessory\": \"Weather\",\n      \"apikey\": \"YOUR_KEY_HERE\",\n      \"location\": \"Stuttgart,de\",\n      \"name\": \"OpenWeatherMap Temperature\"\n    }\n]\n```\n\n#### By ID\n\nreplace `location` with\n\n```json\n\"locationById\": \"2172797\",\n```\n\n#### By Coordinates\n\nreplace `location` with\n\n```json\n\"locationByCoordinates\": \"lat=48.70798341\u0026lon=9.17019367\",\n```\n\n### Celsius/Fahrenheit (you probably don't have to change anything here)\n\n**iOS should take care of the correct unit, HomeApp converts the values internally.**\n\n\nIf you want a different unit than your OS' settings, you can change the unit explicitly by adding\n `unit` with one of the following values:\n\n```json\n\"unit\": \"metric\",\n```\nfor Celsius (default)\n\nor\n\n```json\n\"unit\": \"imperial\",\n```\nfor Fahrenheit\n\n## Forecast\n\nTo show daily min/max values, you have to add two additional accessories:\n\n```json\n\"accessories\": [\n  {\n     \"accessory\":\"Weather\",\n     \"apikey\":\"YOUR_KEY_HERE\",\n     \"locationByCoordinates\":\"lat=48.70798341\u0026lon=9.17019367\",\n     \"name\":\"Today Min\",\n     \"type\":\"min\"\n  },\n  {\n     \"accessory\":\"Weather\",\n     \"apikey\":\"YOUR_KEY_HERE\",\n     \"locationByCoordinates\":\"lat=48.70798341\u0026lon=9.17019367\",\n     \"name\":\"Today Max\",\n     \"type\":\"max\"\n  }\n]\n```\n\n## Cloudiness\n\nTo show cloudiness in percent configure as follows:\n\n```json\n\"accessories\": [\n  {\n     \"accessory\":\"Weather\",\n     \"apikey\":\"YOUR_KEY_HERE\",\n     \"locationByCoordinates\":\"lat=48.70798341\u0026lon=9.17019367\",\n     \"name\":\"Cloudiness\",\n     \"type\":\"clouds\"\n  }\n]\n```\n\n## Wind-speed\n\nTo show wind-speed in `meter/sec` configure as follows:\n\n```json\n\"accessories\": [\n  {\n     \"accessory\":\"Weather\",\n     \"apikey\":\"YOUR_KEY_HERE\",\n     \"locationByCoordinates\":\"lat=48.70798341\u0026lon=9.17019367\",\n     \"name\":\"Wind\",\n     \"type\":\"windspeed\"\n  }\n]\n```\n\nTo display in `miles/hour` additionally configure \n\n```json\n   \"unit\": \"imperial\"\n```\n\n## Sunrise/noon/sunset\n\nThis type publishes a value between 0 and 100 that indicates how far through the day we are where 0% is the sunrise (and everything before) and 100% is sunset (and everything after). 50% is noon accordingly.\n\nFor using this value as trigger, you have to define a \"pollingInterval\" as well, otherwise the value only gets updated while having HomeApp in foreground.\n\n```json\n\"accessories\": [\n  {\n     \"accessory\":\"Weather\",\n     \"apikey\":\"YOUR_KEY_HERE\",\n     \"locationByCoordinates\":\"lat=48.70798341\u0026lon=9.17019367\",\n     \"name\":\"Sun\",\n     \"type\":\"sun\",\n     \"pollingInterval\": 10\n  }\n]\n```\n\n## Hint\n\n**You can add multiple accessories if you want to display additional information like min/max or the temperature of different locations. Just make sure that the field `name` is unique**\n\n\n## Polling\n\nBy default, no polling-interval is specified. That means, the temperature is only updated when the Home-App is opened. \nThere might be scenarios though, where you would want to periodically update the temperature e.g. as source for trigger-rules.\n\nOpenWeatherMap has a generous amount of [free calls](http://openweathermap.org/price#weather) per API-key: you can poll the temperature up to 60 times a minute.\nBeware that **just because you can doesn't mean you should**\n\nI'd also suggest that you add a polling-interval only for the `type` *current*, since *min* and *max* are forecasts and probably won't change throughout the day.\n\n## Temperature profile with [Elgato Eve App](https://itunes.apple.com/de/app/elgato-eve/id917695792?mt=8) ([FakeGato](https://github.com/simont77/fakegato-history) support)\n\nWith the `enableHistory` flag, the FakeGato-service is used to log temperature and humidity. This doesn't work with the default Home-App, you have to use the Elgato Eve App.\n\n![eve-example](https://user-images.githubusercontent.com/4696067/35668836-601c4a10-0733-11e8-982e-fa2a406a46e7.jpg)\n\nSince FakeGato requires to log an entry at least every 10 minutes, this feature only becomes active if you set `enableHistory` to true AND define an `pollingInterval`!\n\nI suggest the following settings:\n\n```json\n\"accessories\": [\n    {\n       \"accessory\": \"Weather\",\n       \"apikey\": \"YOUR_KEY_HERE\",\n       \"location\": \"Stuttgart,de\",\n       \"name\": \"OpenWeatherMap Temperature\",\n       \"pollingInterval\": 10,\n       \"enableHistory\": true\n     }\n]\n```\n\n## Config file\n\n\nTake a look at the \u003ca href=\"config.example.json\"\u003eexample config.json\u003c/a\u003e\n\n\nFields:\n\n* `accessory` must be \"Weather\" (required).\n* `apikey` API-Key for accessing OpenWeatherMap API (required).\n* `location` city-name query string (resembles to \u003ca href=\"https://openweathermap.org/current#name\"\u003eq-parameter\u003c/a\u003e) (required).\n* OR `locationById` cityid query string (resembles to \u003ca href=\"https://openweathermap.org/current#cityid\"\u003ecityid-parameter\u003c/a\u003e) (required).\n* OR `locationByCoordinates` geo query string (resembles to \u003ca href=\"https://openweathermap.org/current#geo\"\u003egeo-parameter\u003c/a\u003e) (required).\n* OR `locationByZip` zip query string (resembles to \u003ca href=\"https://openweathermap.org/current#zip\"\u003ezip-parameter\u003c/a\u003e) (required).\n* `name` is the name of the published accessory (required).\n* `showHumidity` weather or not show the humidity (optional, only works for current weather not forecast, defaults to true).\n* `nameHumidity` humidity can have a different name (optional, only works if `showHumidity` is true, defaults to the same as `name`).\n* `showTemperature` weather or not show the temperature (optional, setting to false only makes sense if `showHumidity` os set to true, defaults to true).\n* `type` the type of the displayed value, either `min`, `max`, `current`, `clouds`, `sun` or `windspeed` (optional, defaults to `current`)\n* `pollingInterval` the time (in minutes) for periodically updating the temperature (optional, defaults to 0 which means polling only happens when opening the Home-App)\n* `enableHistory` flag for enabling the FakeGato-service (see above) for temperature and humidity logging (optional, defaults to false, only works when polling is enabled)\n* `unit` change the temperature unit to Celsius or Fahrenheit explicitly (optional, defaults to `metric` (Celsius), for Fahrenheit use `imperial`. Beware that iOS usually does the job correctly)\n\n## Known Issues\n\n* Default Home-App can't trigger scenes: try [Hesperus App](https://itunes.apple.com/de/app/hesperus/id969348892?mt=8) instead\n\n## Advanced usage\n\nIf you need more features like a more detailed forecast, take a look at **homebridge-weather-plus** ([here](https://github.com/naofireblade/homebridge-weather-plus)), it now supports OpenWeatherMap as well.\n\n![Current Conditions in Elgato Eve app](https://i.imgur.com/ql9t8w0l.png)\n![History graph in Elgato Eve app](https://i.imgur.com/8opO7hel.png)\n\u003e(c) Screenshots are taken from the Elgato Eve app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwerthdavid%2Fhomebridge-weather","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwerthdavid%2Fhomebridge-weather","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwerthdavid%2Fhomebridge-weather/lists"}