Dispenser ========= This section provides the API specifications for dispensers. It applies to - Toilet paper dispensers - Paper towel dispensers - Cotton towel dispensers - Soap dispensers - Lotion dispensers - Disinfectant dispensers Definitions ----------- :doc:`Common definitions <../../common/common_definitions>` :doc:`Common definitions <../../common/object_model_definitions>` .. include:: ../../common/dispenser_definitions.rst Use cases --------- .. note:: Join FDS to get access to examples and use cases. FDS compliance requirements --------------------------- Object Model '''''''''''' Specification object for the dispenser device type """""""""""""""""""""""""""""""""""""""""""""""""" - The device type in the generic device specification object must be - "dispenser" - The device information provider must provide a **specification** object that contains a **device_type_specific** object defined in the following diagram .. figure:: ../../_static/dispenser_specification_object_model.png :width: 100% - The category must be one of: - "toilet_paper" - "paper_towel" - "cotton_towel" - "soap" - "lotion" - "disinfectant" - "room_fragrance" The detailed API specifications for each object can be found in the `reference <../reference>`__ chapter. Status object for the dispenser 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/dispenser_status_object_model.png :width: 100% The detailed API specifications for each object can be found in the `reference <../reference>`__ chapter. Diagnostic object for the dispenser device type """""""""""""""""""""""""""""""""""""""""""""""" - the device information provider must provide a **diagnostic** object that contains a **device_type_specific** object defined in the following diagram .. figure:: ../../_static/dispenser_diagnostic_object_model.png :width: 100% The detailed API specifications for each object can be found in the `reference <../reference>`__ chapter. Statistic object for the dispenser device type """""""""""""""""""""""""""""""""""""""""""""""""""""" .. note:: The Statistic object is not being defined for dispensers in FDS Version 2 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 - The device information provider must expose the **diagnostics** endpoint to get the diagnostic for one or multiple devices .. code-block:: GET https://{Device Information Provider URL}/fds/v2/diagnostics .. note:: The **statistics** endpoint to expose the statistics information is not being defined for dispensers 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 **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 | +================================+=======================================+==================+========================================+ | out_of_order | The device is out of order | alert | **out_of_order_details** property | | | and needs service intervention | | - array of information provider codes | +--------------------------------+---------------------------------------+------------------+----------------------------------------+ | offline | The device is not communicating | notification | **last_contact** property | +--------------------------------+---------------------------------------+------------------+----------------------------------------+ Publish status information """""""""""""""""""""""""" The following data must be published by the information provider .. code-block:: fds/v2///bin//status/filling_level - The payload must be: - The **filling_level** object Publish predictive and prognostic information """"""""""""""""""""""""""""""""""""""""""""" The following data must be published by the information provider .. code-block:: fds/v2///bin//diagnostics/expected_next_service - The payload must be: - The **expected_next_service** property