Home Assistant integration for New York City trash collection, school, and alternate side parking schedules.
This component sets up the sensors in the table below for each of the three tracked services (School, Trash, and Parking).
✨ Entity names for sensors showing day-of-week status update automatically. ✨
That is, on a Tuesday, the binary_sensor.nyc311_school_exception_in_2_days
sensor will be named School Exception on Thursday
. On a Wednesday, that same sensor will be named School Exception on Friday
. This lets you easily create a card showing statuses for the week ahead without having to parse in names for days of the week.
This example is for schools as rendered on a Tuesday.
Entity Name | Entity ID | Sensor Type | Sensor Class | Description |
---|---|---|---|---|
Next School Exception* | sensor.next_school_exception | sensor |
date |
Next date on which school is closed. Excludes weekends. |
School Exception Yesterday* | binary_sensor.nyc311_school_exception_yesterday | binary_sensor |
None |
School status yesterday, just in case you missed it. |
School Exception Today* | binary_sensor.nyc311_school_exception_today | binary_sensor |
None |
School status today. |
School Exception Tomorrow* | binary_sensor.nyc311_school_exception_tomorrow | binary_sensor |
None |
School status tomorrow. |
School Exception on Thursday | binary_sensor.nyc311_school_exception_in_2_days | binary_sensor |
None |
School status 2 days from now. |
School Exception on Friday | binary_sensor.nyc311_school_exception_in_3_days | binary_sensor |
None |
School status 3 days from now. |
School Exception on Saturday | binary_sensor.nyc311_school_exception_in_4_days | binary_sensor |
None |
School status 4 days from now. |
School Exception on Sunday | binary_sensor.nyc311_school_exception_in_5_days | binary_sensor |
None |
School status 5 days from now. |
School Exception on Monday | binary_sensor.nyc311_school_exception_in_6_days | binary_sensor |
None |
School status 6 days from now. |
* Entity name does not change dynamically.
In this example, on the following day, "School Exception on Thursday" would be renamed "School Exception on Friday", etc. Entity IDs never change and are always named exactly as shown below.
The binary_sensor
s are generic on/off binary sensors that show whether there is a service exception on a given day. This means that when the sensor is on
or True
, school is closed, garbage is not being collected, or alternate side parking rules are suspended. When the sensor is off
or False
, services are operating normally. Note that things like school closures on weekends are considered "normal" and will not be flagged as exceptions.
Service icons have a slash through them when sensors are on
. This may be counter-intuitive, but the goal is to show that there is no service on that day.
Each sensor has state attributes that give you more detail to play with using Jinja or template sensors.
Attribute Name | Example Value | Notes |
---|---|---|
Reason | New Year's Day | Blank when service is normal. |
Description | Alternate side parking and meters are suspended for New Year's Day. | |
Status | Suspended | Shows standardized service statuses. The API returns a mess of statuses. These statuses fit the standard as defined in the nyc311calendar Python module. |
Closure Type | Exception | Shows "Exception" for special closures (holdays, etc.) and "Routine" for normal closures such as meter suspensions on Sundays. Field will be empty when service is running normally. |
Service name | Parking | |
Date | 2022-06-02 |
Attribute Name | Example Value | Notes |
---|---|---|
Reason | Rosh Hashanah | Field will be empty when service is operating normally. |
Description | Public schools are closed for Winter Recess through December 31. | Shows full status. |
Status | Suspended | Shows standardized service statuses. The API returns a mess of statuses. These statuses fit the standard as defined in the nyc311calendar Python module. |
This integration creates Home Assistant calendar entities for all three services.
You'll need an NYC API Portal developer account to use this library. It's free.
- Sign up at https://api-portal.nyc.gov/signup/.
- Log in, then subscribe to the "NYC 311 Public Developers" product at https://api-portal.nyc.gov/products?api=nyc-311-public-api. This subscription unlocks the calendar product.
- Get your API key at https://api-portal.nyc.gov/developer. Either key (primary/secondary) will work.
Component configuration is done via Home Assistant's integration's UI. Enter your API key there during component setup.