Trash bin ========= A bin is a usually stationary container whose purpose is to collect waste. The single bin can be used to collect all types of waste or in combination with other bins to separate and sort different types of waste (e.g. paper, organic, plastic and residual waste). In terms of the FDS, a bin is a uniquely identifiable device that provides various raw data via an integrated sensor. These raw data consists of dynamic data such as filling level, number of uses, timestamp, and data about its technical state (e.g. battery level, health) as well as generic data like ID, manufacturer or serial number. Therefore, the sensor communicates to a server, which collects, aggregates, analyzes and interprets the raw data to send detailed reports. Definitions ----------- - Bin A container that holds garbage and disposed items - Garbage Can Same definition as bin - Bin Category Additional information about the waste bin *Built-in trash can, Trash can with lid, ...* - Bin Dimension The geometric specifications of the bin *L,W,H:26x33.9x54.5cm* - Opening The action to open the lid of a bin in order to access the inside of the bin when a bin has a lid *Pressing the pedal* - Trash Input The action of adding trash in a bin when there is no lid - Bin volume Maximum content in liters *25l, 100l* - Channel Identifies the location of individual bin chambers in a recycle station. Can be one of: "left, right, total, middle_left, middle_right" *Please don’t forget to empty the middle left channel in the recycle station in the hallway* - Content category Information about the waste in the trash can *residual waste, paper waste, plastic waste, ...* - Last Contact Timestamp of the last received message *Timestamp: 20.02.2020, 07:19* - Volume Percent The percentage of the volume filled of a bin *78%, 100%, 0%* - Filling Level The filled volume of a bin *100%, 50%, 0%, ...* - Trash Input Count The number of times trash has been put in a bin since the installation of the bin *1327 times* - Overfill Bin Alarm Trash can is overfilled *True or false* - Device Threshold A threshold that will trigger a communication event *75%, 100%* - Last Emptying Timestamp of the last emptying of the bin *24.01.2020 15.27* - Last Empty Count The number of times trash was put in a bin since the last time it was emptied *67 times* - Last Service The date of the last service *Timestamp: 08.01.2020, 17:05* - Temperature The temperature in degrees Celsius inside the bin *22.5 °C* - Relative humidity The humidity level in percentage inside the bin *78%, 100%, 65%* - Expected Time of Next Service The next estimated time when the bin must be emptied *Timestamp: 08.01.2020, 17:00* - Expected filling level The prediction of how filled a bin will be at a given time in the Expected Time of Next Service *Volume: 80%* FDS compliance requirements --------------------------- Object model ^^^^^^^^^^^^ Specification object for the bin device type """""""""""""""""""""""""""""""""""""""""""" - the device information provider must provide a specification object that contains a device_type_specific object defined in the following diagram .. figure:: ../../_static/bin_specification_object_model.png :width: 100% - When provided, the channel element must be one of - "left" - "middle_left" - "middle_right" - "right" - "total" - When provided, the content_category element can be one of - "residual waste" - "paper waste" - "plastic waste" - "bio waste" Status object for the bin device type """""""""""""""""""""""""""""""""""""""""""" - the device information provider must provide a status object that contains a device_type_specific object defined in the following diagram .. figure:: ../../_static/bin_status_object_model.png :width: 100% - When provided, the channel element, in the filling_level object, must be one of - "left" - "middle_left" - "middle_right" - "right" - "total" Statistic object for the bin device type """""""""""""""""""""""""""""""""""""""""""""""""""""" .. note:: The Statistic object is not being defined for bins in FDS Version 2 Diagnostic object for the bin device type """""""""""""""""""""""""""""""""""""""""""" - the device information provider must provide a status object that contains a device_type_specific object defined in the following diagram .. figure:: ../../_static/bin_diagnostic_object_model.png :width: 100% Web API (Pull Model) ^^^^^^^^^^^^^^^^^^^^ - The device information provider must expose the **specifications** endpoint to get the list of available devices and their specifications .. code-block:: GET https://{Device Information Provider URL}/fds/v2/specifications - The device information provider must expose the **statuses** endpoint to get the latest status for one or multiple devices .. code-block:: GET https://{Device Information Provider URL}/fds/v2/statuses .. note:: the **statistics** endpoint to expose the statistic information is not being defined for thrash bins in FDS Version 2 A call to: .. code-block:: GET https://{Device Information Provider URL}/fds/v2/statistics must return an error object .. code-block:: json { "status": 204, "message": "not_implemented" } - The device information provider must expose the **diagnostics** endpoint to get the diagnostics object for one or multiple devices .. code-block:: GET https://{Device Information Provider URL}/fds/v2/diagnostics - The device information provider must expose the **POST** request on the **tag** endpoint to let a client application create a new tag .. code-block:: POST https://{Entity Information Provider URL}/fds/v2/tag - The device information provider must expose the **GET** request on the **tag** endpoint to provide the content of a tag .. code-block:: GET https://{Entity Information Provider URL}/fds/v2/tag - The device information provider must expose the **DELETE** request on the **tag** endpoint .. code-block:: DELETE https://{Entity Information Provider URL}/fds/v2/tag/ - The device information provider must expose the **PUT** request on the **tag//entities** endpoint .. code-block:: PUT https://{Entity Information Provider URL}/fds/v2/tag//entities - The device information provider must expose the **DELETE** request on the **tag//entities** endpoint .. code-block:: DELETE https://{Entity Information Provider URL}/fds/v2/tag//entities Publish/Subscribe (Push model) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Events """""" - The device information provider must publish the following alerts and notifications +--------------------------------+---------------------------------------+------------------+--------------------------------+ | Message code | Description | Message category | Message code specific object | +================================+=======================================+==================+================================+ | offline | The device is not communicating | notification | **last_contact** property | +--------------------------------+---------------------------------------+------------------+--------------------------------+ | bin_overflow | The bin filling level is more than | Alert | None | | | 100% | | | +--------------------------------+---------------------------------------+------------------+--------------------------------+ | mold_detected | The device detected mold | Alert | None | +--------------------------------+---------------------------------------+------------------+--------------------------------+ Publish status information """""""""""""""""""""""""" The following data must be published by the manufacturer fds/v2///bin//status/filling_level payload: *filling_level* Publish diagnostics information """"""""""""""""""""""""""""""" The following data must be published by the manufacturer fds/v2///bin//diagnostics/last_service payload: *last_service* fds/v2///bin//diagnostics/expected_next_service payload: *expected_next_service*