All notable changes to this project will be documented in this file. This project uses Semantic Versioning.
- Add option for node "^22.10.0" in
package.json
andpackage-lock.json
.
- Update README.md to correctly display "Tempest" logo.
- Update README.md to include
station_id
in "Local API Config Example". - Added optional multicast enablement with dgram socket reuseAddr. Will reuse the address, even if another process has already bound a socket on it, but only one socket can receive the data.
- Added new optional configuration
local_api_shared
to support turning on the above.
- Confirm plug-in operation with Homebridge 2.0.0. Updated package.json per homebridge instructions.
- Update
config.schema.json
to requirestation_id
for bothhttp_api
andlocal_api
. Update associated code inplatform.ts
. - Update
@types/node
to "^22.0.0" - Update
@typescript-eslint/eslint-plugin
to "^8.0.0" - Update
@typescript-eslint/parser
to "^8.0.0" - Update
eslint
to "^9.0.0". - Update
rimraf
to "^6.0.1" - Update
axios
to "1.7.7
- When using HTTP API, check that
token
andstation_id
are present and have valid characteristics. - When Local API is used,
token
andstation_id
are not required and are not validated. - User is able to switch between HTTP API to Local API and back to HTTP API without the need to re-enter
token
andstation_id
as these are retained in the config.sys file.
- Check that
station_id
length is more than one character when initializing plugin in Local API mode. - Update axios to v1.6.2 to address moderate severity vulnerability.
- Added Local UDP API support! Now you can choose to listen to your Weather Stations observations directly over your local network. No Station ID or API Token needed.
- To use the local API add
local_api
:true
orfalse
to your top level configuration. - Observations are broadcasted every 60 seconds.
- Leverages the
obs_st
message. See documentation for more information. precip_accum_local_day
not available with local API
- To use the local API add
- Update node-version: [18.x, 20.x], remove 16.x which is no longer supported by homebridge.
- Reformated
getStationObservation()
andgetStationCurrentObservation()
intempestApi.ts
. - Addresses
observation_data is undefined, skipping update
error inplatform.ts
polling loop.
- Update node-version: [16.x, 18.x, 20.x], remove 14.x which is no longer supported by homebridge.
- Update
devDependencies
anddependencies
to latest versions. Update/lockaxios
to version1.5.1
. - Updates to
tempestApi.ts
:- Add
import https from 'https';
- Add
axios.defaults.httpsAgent = new https.Agent({ keepAlive: true });
- Add
axios.defaults.timeout = 10000;
- Add explicit
Promise
returns togetStationObservation
- Change
validateStatus
from<500
to>= 200 && status < 300
foraxios.get
calls - Delete
isResponseGood
function as additionalobs
parsing is not required. - Refactor
getStationCurrentObservation
so that retry loop is executed.
- Add
- Updates to
package.ts
:- Revise
setInterval
loop to make use ofasync/await
.
- Revise
- Update
config.schema.json
to include sensorname
field. - Add cautionary note to
README.md
when upgrading from a previous version of the plugin.
-
New version providing additional functionality using
occupancy sensors
to display the Tempest sensor values.
NOTE: There is a current limitation as 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. This version is not backwards compatible. -
Update supported
node-versions
to[14.x, 16.x, 18.x]
in per homebridge guidelines. -
Add functionality to unregister deleted or renamed sensors. Renamed sensors will be added as new sensor and prior version deleted.
-
Add
barometric_pressure
,precip
,precip_accum_local_day
,solar radiation
anduv
asoccupancy sensors
which display the numerical value of the characteristic as part of the occupancy sensor name. Trip levels can be set for each occupancy sensor. -
Add battery level to
air_temperature
Temperature sensor. -
Change PlatformAccessory SerialNumber from
000
tostation_id
. -
Correct occupancy sensor units. REST API reports in metric, plug-in displays in standard units.
-
Correct
fan
speed units and calculation to round thewind_avg
value rather than truncate to improve reporting of wind speed. -
Revise
platform.ts
andtempestApi.ts
to determinetempest_device_id
once on plugin startup. -
Update
platformAccessory.ts
to usesensor_properties.value_key
for each sensor type. -
Update
config.schema.json
with new functionality to provide drop-down for availablevalue_key
options that are associated with thesensor_type
. Add option to display metric or standard units for barometric, wind, and precipitation sensors. Note that C/F preference is set by Homebridge UI or HomeKit settings. -
Ensure that any
config.schema.json
changes are picked up during plugin startup andaccessory.context
is updated. -
Update
README.md
with new functionality, clarifyingsensor_type
and associatedvalue_key
options, provide typical trip values, and to provide additional details andoccupancy_sensor
limitations. -
Add screenshots folder and content for Wiki.
Updates to address runtime errors:
platform.ts
:- Add check in sampling loop for undefined
observation_data
. - Add explicit
promise
return types. - Add
wind_chill
anddew_point
toobservation_data
as additional temperaturecharacteristics
.
- Add check in sampling loop for undefined
platformAccessory.ts
:- Add maximum check of
100000
ingetCurrentLux
function.
- Add maximum check of
tempestApi.ts
:- Add server status checking to
getStationObservation
function. - Change
public async getStationCurrentObservation(retry_count = 0)
topublic async getStationCurrentObservation(retry_count: number)
and update function calls inplatform.ts
to start the loop at0
. - Make explicit
retry_count
incrementing. - Add
wind_chill
anddew_point
toobservation_data
as additional temperaturecharacteristics
.
- Add server status checking to
Additional updates:
package.json
:- Update
axios
to latest version. - Add additional
keywords
.
- Update
- Add
CHANGELOG.md
file.