npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-weatherflow-tempest

v4.2.4-beta.2.0

Published

Exposes WeatherFlow Tempest Station data as Temperature Sensors, Light Sensors, Humidity Sensors and Fan Sensors (for Wind Speed).

Downloads

400

Readme

Homebridge WeatherFlow Tempest Plugin

verified-by-homebridge npm-version npm-downloads donate

New in v4.0.0 Local API Support!

Homebridge Plugin providing basic WeatherFlow Tempest support. Exposing 7 Acessories.

  • Temperature Sensor
  • Humidity Sensor
  • Light Sensor
  • Motion Sensor (triggered by user configured value)
  • Occupancy Sensor (triggered by user configured value)
  • Fan (expressed as Rotation Speed - Wind Speed 0-100mph)
  • Battery Sensor (added to air_temperature Temperature sensor)

NOTE:

It is recommended when upgrading to v3.0 of the plugin from a prior version that you save your configuration information including token and station_id, uninstall the prior version of the plugin, restart Homebridge to clear the accessory cache, install v3.0 of the plugin, enter your Settings, and finally restart Homebridge to initialize the plugin.


Setup and Parameters

Local API is now supported which requires no authentication. If you choose to use the non-local HTTP API you will need to create an account at https://tempestwx.com/ and then generate a Personal Use Token https://tempestwx.com/settings/tokens.

  • name: (Required) Must always be set to WeatherFlow Tempest Platform.
  • local_api: (Required) Use the Local API versus HTTP API.
  • token: (Required for HTTP API) Oauth2 Personal Use Token, create via your tempestwx account.
  • station_id: (Required for HTTP API) The station ID you are pulling weather data from.
  • interval: (Required for HTTP API) How often to poll the Tempest REST API. Default 10 seconds. Minimum every second.
  • local_api_shared: (Optional) enable multicast. Will reuse the address, even if another process has already bound a socket on it, but only one socket can receive the data. Default: False.
  • sensors: (Required) An array of sensors to create. This is dynamic incase you want to target different temperature or wind speed attributes.
  • sensors[].name: (Required) Display name of Sensor in Apple Home.
  • sensors[].sensor_type: (Required) The type of Home Sensor to create. There are 6 options ["Temperature Sensor", "Light Sensor", "Humidity Sensor", "Fan", "Motion Sensor", "Occupancy Sensor"].
  • sensors[].{1}_properties.value_key: (Required) Which REST API response body key to target for its value. You can find the available value_keys in the table below.
  • sensors[].motion_properties.trigger_value: (Required with Motion Sensor) At what point (value) to trigger motion detected on/off. Minimum 1.
  • sensors[].occupancy_properties.trigger_value: (Required with Occupancy Sensor) At what point (value) to trigger occupancy detected on/off. Minimum 0.
  • sensors[].contact_properties.trigger_distance: (Required with Contact Sensor) The minimum distance (in kilometers) at which the strike was detected to activate the contact sensor.

{1} Replace with Sensor: temperature, humidity, light, fan

sensor_type {2} | value_key | metric units | std units | additional_properties | Typ metric trigger | Typ std trigger | Notes :-- | :--- | :--: | :--: | :--- | :--: | :--: | :--- Temperature Sensor | air_temperature | C | F | NA | NA | NA | set by UI preferences | feels_like | C | F | NA | NA | NA | set by UI preferences | wind_chill | C | F | NA | NA | NA | set by UI preferences | dew_point | C | F | NA | NA | NA | set by UI preferences Humidity Sensor | relative_humidity | % | % | NA | NA | NA | Light Sensor | brightness | lux | lux | NA | NA | NA | Fan | wind_avg | m/s | mi/hr | NA | NA | NA | wind_avg speed reported as Fan % Motion Sensor | wind_gust | m/s | mi/hr | motion_trigger_value | 5 | 10 | Occupancy Sensor {3}{4} | barometric_pressure | mb | inHg | occupancy_trigger_value | 1000 | 30 | | precip | mm/min | in/hr | occupancy_trigger_value | 0.1 | 0.25 | | precip_accum_local_day | mm | in | occupancy_trigger_value | 25 | 1 | Not available with Local API | solar_radiation | W/m^2 | W/m^2 | occupancy_trigger_value | 1000| 1000 | | uv | Index | Index | occupancy_trigger_value | 3 | 3 | | wind_direction | degrees | degrees | occupancy_trigger_value | 360 | 360 |

{2} Reference: https://weatherflow.github.io/Tempest/api/swagger/#!/observations/getStationObservation

{3} Reference Wiki for details on how to view Occupancy Sensor values with iOS 16.x and MacOS Ventura 13.x.

{4} NOTE: There is a current limitation with v3.0.0 and v4.0.0 of the plug-in in that HomeKit accessory names are set when the accessory is initially added and cannot be dynamically updated. The accessories are correctly displayed and updated in the Homebridge "Accessories" tab of the webpage interface. Occupancy sensors trigger_value status is correctly displayed in both HomeKit and Homebridge.

Local API Config Example

{
  "name": "WeatherFlow Tempest Platform",
  "local_api": true,
  "station_id": 10000,
  "units": "Standard",
  "local_api_shared": false,
  "sensors": [
      {
          "name": "Temperature",
          "sensor_type": "Temperature Sensor",
          "temperature_properties": {
              "value_key": "air_temperature"
          }
      },
      {
          "name": "Relative Humidity",
          "sensor_type": "Humidity Sensor",
          "humidity_properties": {
              "value_key": "relative_humidity"
          }
      },
      {
          "name": "Light Level",
          "sensor_type": "Light Sensor",
          "light_properties": {
              "value_key": "brightness"
          }
      },
      {
          "name": "Wind Speed",
          "sensor_type": "Fan",
          "fan_properties": {
              "value_key": "wind_avg"
          }
      },
      {
          "name": "Wind Gust",
          "sensor_type": "Motion Sensor",
          "motion_properties": {
              "value_key": "wind_gust",
              "trigger_value": 10
          }
      },
      {
          "name": "Barometer",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "barometric_pressure",
              "trigger_value": 30
          }
      },
      {
          "name": "Solar Radiation",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "solar_radiation",
              "trigger_value": 1000
          }
      },
      {
          "name": "UV",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "uv",
              "trigger_value": 3
          }
      },
      {
          "name": "Precipitation Rate",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "precip",
              "trigger_value": 0.25
          }
      },
      {
          "name": "Precipitation Today",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "precip_accum_local_day",
              "trigger_value": 1
          }
      },
      {
          "name": "Wind Direction",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "wind_direction",
              "trigger_value": 360
          }
      },
      {
          "name": "Lightening Detector",
          "sensor_type": "Contact Sensor",
          "contact_properties": {
              "trigger_distance": 10
          }
      }
  ],
  "platform": "WeatherFlowTempest"
}

HTTP API Config Example

{
  "name": "WeatherFlow Tempest Platform",
  "local_api": false,
  "token": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "station_id": 10000,
  "interval": 10,
  "units": "Standard",
  "local_api_shared": false,
  "sensors": [
      {
          "name": "Temperature",
          "sensor_type": "Temperature Sensor",
          "temperature_properties": {
              "value_key": "air_temperature"
          }
      },
      {
          "name": "Feels Like",
          "sensor_type": "Temperature Sensor",
          "temperature_properties": {
              "value_key": "feels_like"
          }
      },
      {
          "name": "Dew Point",
          "sensor_type": "Temperature Sensor",
          "temperature_properties": {
              "value_key": "dew_point"
          }
      },
      {
          "name": "Relative Humidity",
          "sensor_type": "Humidity Sensor",
          "humidity_properties": {
              "value_key": "relative_humidity"
          }
      },
      {
          "name": "Light Level",
          "sensor_type": "Light Sensor",
          "light_properties": {
              "value_key": "brightness"
          }
      },
      {
          "name": "Wind Speed",
          "sensor_type": "Fan",
          "fan_properties": {
              "value_key": "wind_avg"
          }
      },
      {
          "name": "Wind Gust",
          "sensor_type": "Motion Sensor",
          "motion_properties": {
              "value_key": "wind_gust",
              "trigger_value": 10
          }
      },
      {
          "name": "Barometer",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "barometric_pressure",
              "trigger_value": 30
          }
      },
      {
          "name": "Solar Radiation",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "solar_radiation",
              "trigger_value": 1000
          }
      },
      {
          "name": "UV",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "uv",
              "trigger_value": 3
          }
      },
      {
          "name": "Precipitation Rate",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "precip",
              "trigger_value": 0.25
          }
      },
      {
          "name": "Precipitation Today",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "precip_accum_local_day",
              "trigger_value": 1
          }
      },
      {
          "name": "Wind Direction",
          "sensor_type": "Occupancy Sensor",
          "occupancy_properties": {
              "value_key": "wind_direction",
              "trigger_value": 360
          }
      },
      {
          "name": "Lightening Detector",
          "sensor_type": "Contact Sensor",
          "contact_properties": {
              "trigger_distance": 10
          }
      }
  ],
  "platform": "WeatherFlowTempest"
}