mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-09-04 00:50:41 +02:00
163 lines
5.2 KiB
ReStructuredText
163 lines
5.2 KiB
ReStructuredText
BedJet
|
|
======
|
|
|
|
.. seo::
|
|
:description: Instructions for setting up a BedJet climate device.
|
|
:image: bedjet.png
|
|
|
|
The ``bedjet`` component allows you to communicate with a BedJet V3 Climate Comfort
|
|
Sleep System.
|
|
|
|
This component supports the following functionality:
|
|
|
|
- Set the operating mode: off, heat, cool, turbo (boost)
|
|
- Set the desired target temperature
|
|
- Set the desired fan speed
|
|
- Start one of the saved memory presets, including "Biorhythm" programs
|
|
- Show the current status of the BedJet
|
|
|
|
This component uses the BLE peripheral on an ESP32, so you also need to enable
|
|
this component. Please see the :doc:`/components/ble_client` docs for how to discover the MAC
|
|
address of your BedJet device, or you can find the list of paired MAC addresses in
|
|
the "DEVICE LIST" section of the BedJet mobile application.
|
|
|
|
Component/Hub
|
|
-------------
|
|
|
|
This component is a global hub that maintains the connection to the BedJet device
|
|
and delegates status updates to individual platform components.
|
|
|
|
.. code-block:: yaml
|
|
|
|
esp32_ble_tracker:
|
|
|
|
ble_client:
|
|
- mac_address: C4:4F:33:00:00:01
|
|
id: bedjet_ble_id1
|
|
|
|
bedjet:
|
|
- id: bedjet_1
|
|
ble_client_id: bedjet_ble_id1
|
|
|
|
Configuration variables:
|
|
************************
|
|
|
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
|
- **ble_client_id** (**Required**, :ref:`config-id`): The ID of the BLE Client.
|
|
- **time_id** (*Optional*, :ref:`config-id`): The ID of a :ref:`Time Component <time>` which
|
|
can be used to set the time on the BedJet device.
|
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to dispatch status
|
|
changes to child components. Defaults to ``5s``. Each child component can decide whether to
|
|
publish its own updated state on this interval, or use another (longer) update interval to
|
|
throttle its own updates.
|
|
|
|
lambda calls
|
|
************
|
|
|
|
From :ref:`lambdas <config-lambda>`, you can call methods to do some advanced stuff.
|
|
|
|
- ``.upgrade_firmware``: Check for and install updated BedJet firmware.
|
|
|
|
.. code-block:: yaml
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Check Bedjet(1) Firmware"
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
id(bedjet_1).upgrade_firmware();
|
|
|
|
``bedjet`` Climate Platform
|
|
---------------------------
|
|
|
|
The `climate` platform exposes the BedJet's climate-related functionality, including
|
|
setting the mode and target temperature.
|
|
|
|
.. code-block:: yaml
|
|
|
|
climate:
|
|
- platform: bedjet
|
|
id: my_bedjet_climate_entity
|
|
name: "My BedJet"
|
|
bedjet_id: bedjet_1
|
|
|
|
Configuration variables:
|
|
************************
|
|
|
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
|
- **name** (**Required**, string): The name of the climate device.
|
|
- **bedjet_id** (**Required**, :ref:`config-id`): The ID of the Bedjet component.
|
|
- **heat_mode** (*Optional*, string): The primary heating mode to use for ``HVACMode.HEAT``:
|
|
- ``"heat"`` (Default) - Setting ``hvac_mode=heat`` uses the BedJet "HEAT" mode.
|
|
- ``"extended"`` - Setting ``hvac_mode=heat`` uses BedJet "EXT HEAT" mode.
|
|
- Whichever is not selected will be made available as a custom preset.
|
|
- All other options from :ref:`Climate <config-climate>`.
|
|
|
|
- ``.send_local_time``: If `time_id` is set, attempt to sync the clock now.
|
|
|
|
.. code-block:: yaml
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Sync Clock"
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
id(my_bedjet_fan).send_local_time();
|
|
|
|
- ``.set_clock``: Set the BedJet clock to a specified time; works with or without a `time_id`.
|
|
|
|
.. code-block:: yaml
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Set Clock to 10:10pm"
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
id(my_bedjet_fan).set_clock(22, 10);
|
|
|
|
Known issues:
|
|
-------------
|
|
|
|
.. warning::
|
|
|
|
BedJet V2 and other devices are not currently supported. Only BedJet V3 is supported.
|
|
|
|
.. note::
|
|
|
|
Only one client can be connected to the BedJet BLE service at a time, so you cannot
|
|
use the BedJet mobile app to monitor or control the BedJet device while this component
|
|
is connected. To use the mobile app, you should disconnect the ESP client first.
|
|
|
|
To set up a (dis-)connect switch, see :doc:`/components/switch/ble_client`.
|
|
|
|
.. note::
|
|
|
|
When more than one device is configured and connected, the ESP device may become
|
|
overwhelmed and lead to timeouts while trying to install an updated version of the
|
|
configuration. If this occurs, see the previous note about adding disconnect switches,
|
|
and toggle those off while performing the installation. This will free up resources
|
|
on the ESP and allow the installation to complete.
|
|
|
|
Additionally, you may use an :ref:`ota.on_begin <ota-on_begin>` :ref:`Automation<automation>`
|
|
to do this automatically:
|
|
|
|
.. code-block:: yaml
|
|
|
|
ota:
|
|
on_begin:
|
|
then:
|
|
- logger.log: "Disconnecting clients for OTA update..."
|
|
- switch.turn_off: bedjet_1_monitor
|
|
- switch.turn_off: bedjet_2_monitor
|
|
|
|
See Also
|
|
--------
|
|
|
|
- :doc:`/components/ble_client`
|
|
- :doc:`/components/climate/index`
|
|
- :apiref:`bedjet/bedjet.h`
|
|
- :ghedit:`Edit`
|