esphome 2025.9.3__py3-none-any.whl → 2025.10.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +94 -31
- esphome/address_cache.py +142 -0
- esphome/automation.py +130 -32
- esphome/build_gen/platformio.py +1 -3
- esphome/codegen.py +1 -0
- esphome/components/animation/animation.cpp +2 -2
- esphome/components/api/__init__.py +166 -3
- esphome/components/api/api_connection.cpp +84 -41
- esphome/components/api/api_connection.h +22 -16
- esphome/components/api/api_frame_helper.cpp +33 -19
- esphome/components/api/api_frame_helper.h +19 -4
- esphome/components/api/api_frame_helper_noise.cpp +41 -53
- esphome/components/api/api_frame_helper_noise.h +1 -1
- esphome/components/api/api_frame_helper_plaintext.cpp +22 -31
- esphome/components/api/api_frame_helper_plaintext.h +1 -1
- esphome/components/api/api_pb2.cpp +189 -15
- esphome/components/api/api_pb2.h +132 -20
- esphome/components/api/api_pb2_dump.cpp +97 -9
- esphome/components/api/api_pb2_service.cpp +118 -160
- esphome/components/api/api_pb2_service.h +31 -3
- esphome/components/api/api_server.cpp +68 -10
- esphome/components/api/api_server.h +32 -4
- esphome/components/api/custom_api_device.h +8 -8
- esphome/components/api/homeassistant_service.h +123 -6
- esphome/components/api/proto.h +6 -2
- esphome/components/api/user_services.h +2 -2
- esphome/components/as7341/sensor.py +1 -1
- esphome/components/audio/__init__.py +1 -1
- esphome/components/audio/audio.cpp +1 -1
- esphome/components/audio/audio_decoder.cpp +9 -9
- esphome/components/bl0906/bl0906.cpp +2 -2
- esphome/components/bl0942/bl0942.cpp +2 -2
- esphome/components/ble_client/__init__.py +1 -1
- esphome/components/bluetooth_proxy/__init__.py +4 -30
- esphome/components/bluetooth_proxy/bluetooth_connection.cpp +11 -4
- esphome/components/bluetooth_proxy/bluetooth_connection.h +2 -2
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +2 -2
- esphome/components/camera_encoder/__init__.py +2 -4
- esphome/components/camera_encoder/esp32_camera_jpeg_encoder.cpp +4 -2
- esphome/components/camera_encoder/esp32_camera_jpeg_encoder.h +3 -1
- esphome/components/canbus/canbus.cpp +7 -5
- esphome/components/canbus/canbus.h +7 -7
- esphome/components/captive_portal/__init__.py +18 -1
- esphome/components/captive_portal/captive_portal.cpp +40 -46
- esphome/components/captive_portal/captive_portal.h +20 -22
- esphome/components/captive_portal/dns_server_esp32_idf.cpp +205 -0
- esphome/components/captive_portal/dns_server_esp32_idf.h +27 -0
- esphome/components/ccs811/ccs811.cpp +1 -1
- esphome/components/climate/climate.cpp +10 -7
- esphome/components/cm1106/cm1106.cpp +1 -1
- esphome/components/copy/lock/copy_lock.cpp +1 -1
- esphome/components/cover/cover.cpp +1 -0
- esphome/components/daikin_arc/daikin_arc.cpp +19 -12
- esphome/components/dashboard_import/dashboard_import.cpp +1 -1
- esphome/components/dashboard_import/dashboard_import.h +1 -1
- esphome/components/deep_sleep/__init__.py +9 -2
- esphome/components/deep_sleep/deep_sleep_component.h +11 -9
- esphome/components/deep_sleep/deep_sleep_esp32.cpp +51 -27
- esphome/components/ektf2232/touchscreen/__init__.py +8 -5
- esphome/components/ektf2232/touchscreen/ektf2232.cpp +4 -4
- esphome/components/ektf2232/touchscreen/ektf2232.h +2 -2
- esphome/components/epaper_spi/__init__.py +1 -0
- esphome/components/epaper_spi/display.py +80 -0
- esphome/components/epaper_spi/epaper_spi.cpp +227 -0
- esphome/components/epaper_spi/epaper_spi.h +93 -0
- esphome/components/epaper_spi/epaper_spi_model_7p3in_spectra_e6.cpp +42 -0
- esphome/components/epaper_spi/epaper_spi_model_7p3in_spectra_e6.h +45 -0
- esphome/components/epaper_spi/epaper_spi_spectra_e6.cpp +135 -0
- esphome/components/epaper_spi/epaper_spi_spectra_e6.h +23 -0
- esphome/components/es7210/es7210.cpp +3 -3
- esphome/components/esp32/__init__.py +256 -340
- esphome/components/esp32/boards.py +81 -0
- esphome/components/esp32/preferences.cpp +23 -17
- esphome/components/esp32_ble/__init__.py +167 -44
- esphome/components/esp32_ble/ble.cpp +47 -3
- esphome/components/esp32_ble/ble.h +18 -0
- esphome/components/esp32_ble/ble_advertising.cpp +7 -3
- esphome/components/esp32_ble/ble_advertising.h +4 -0
- esphome/components/esp32_ble/ble_uuid.cpp +16 -42
- esphome/components/esp32_ble_beacon/__init__.py +3 -4
- esphome/components/esp32_ble_beacon/esp32_ble_beacon.cpp +0 -4
- esphome/components/esp32_ble_client/ble_client_base.cpp +14 -12
- esphome/components/esp32_ble_server/__init__.py +28 -14
- esphome/components/esp32_ble_server/ble_characteristic.cpp +67 -57
- esphome/components/esp32_ble_server/ble_characteristic.h +27 -16
- esphome/components/esp32_ble_server/ble_descriptor.cpp +4 -3
- esphome/components/esp32_ble_server/ble_descriptor.h +13 -9
- esphome/components/esp32_ble_server/ble_server.cpp +59 -24
- esphome/components/esp32_ble_server/ble_server.h +38 -20
- esphome/components/esp32_ble_server/ble_server_automations.cpp +49 -33
- esphome/components/esp32_ble_server/ble_server_automations.h +39 -24
- esphome/components/esp32_ble_tracker/__init__.py +25 -80
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +2 -8
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +0 -3
- esphome/components/esp32_camera/__init__.py +1 -3
- esphome/components/esp32_can/esp32_can.cpp +22 -4
- esphome/components/esp32_can/esp32_can.h +3 -0
- esphome/components/esp32_hosted/__init__.py +2 -1
- esphome/components/esp32_improv/esp32_improv_component.cpp +135 -65
- esphome/components/esp32_improv/esp32_improv_component.h +7 -1
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +1 -1
- esphome/components/esp8266/__init__.py +3 -3
- esphome/components/esphome/ota/__init__.py +21 -2
- esphome/components/esphome/ota/ota_esphome.cpp +456 -146
- esphome/components/esphome/ota/ota_esphome.h +49 -2
- esphome/components/ethernet/__init__.py +39 -22
- esphome/components/ethernet/ethernet_component.cpp +28 -5
- esphome/components/ethernet/ethernet_component.h +5 -1
- esphome/components/external_components/__init__.py +8 -6
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +1 -1
- esphome/components/fingerprint_grow/fingerprint_grow.h +2 -1
- esphome/components/font/__init__.py +5 -5
- esphome/components/graph/graph.cpp +1 -1
- esphome/components/graphical_display_menu/graphical_display_menu.cpp +3 -2
- esphome/components/haier/hon_climate.cpp +2 -2
- esphome/components/haier/hon_climate.h +1 -1
- esphome/components/hdc1080/hdc1080.cpp +42 -34
- esphome/components/hdc1080/hdc1080.h +1 -3
- esphome/components/homeassistant/number/homeassistant_number.cpp +2 -2
- esphome/components/homeassistant/switch/homeassistant_switch.cpp +2 -2
- esphome/components/http_request/__init__.py +3 -3
- esphome/components/htu21d/htu21d.cpp +13 -18
- esphome/components/htu21d/htu21d.h +1 -1
- esphome/components/i2s_audio/__init__.py +1 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
- esphome/components/ili9xxx/ili9xxx_display.cpp +2 -2
- esphome/components/improv_serial/improv_serial_component.cpp +12 -15
- esphome/components/improv_serial/improv_serial_component.h +6 -8
- esphome/components/json/json_util.cpp +42 -44
- esphome/components/json/json_util.h +57 -0
- esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +2 -2
- esphome/components/key_collector/key_collector.h +4 -4
- esphome/components/libretiny/__init__.py +6 -6
- esphome/components/libretiny/preferences.cpp +23 -16
- esphome/components/light/light_call.cpp +98 -120
- esphome/components/light/light_call.h +17 -7
- esphome/components/lm75b/__init__.py +0 -0
- esphome/components/lm75b/lm75b.cpp +39 -0
- esphome/components/lm75b/lm75b.h +19 -0
- esphome/components/lm75b/sensor.py +34 -0
- esphome/components/lock/lock.h +12 -6
- esphome/components/logger/__init__.py +15 -27
- esphome/components/logger/logger.cpp +10 -20
- esphome/components/logger/logger.h +105 -62
- esphome/components/logger/logger_esp32.cpp +0 -48
- esphome/components/logger/logger_zephyr.cpp +2 -3
- esphome/components/logger/select/logger_level_select.cpp +6 -7
- esphome/components/logger/select/logger_level_select.h +7 -0
- esphome/components/ltr501/ltr501.cpp +7 -6
- esphome/components/ltr_als_ps/ltr_als_ps.cpp +7 -6
- esphome/components/matrix_keypad/matrix_keypad.h +4 -4
- esphome/components/max7219digit/max7219digit.cpp +1 -1
- esphome/components/mcp23xxx_base/mcp23xxx_base.h +3 -3
- esphome/components/mcp2515/mcp2515.cpp +31 -3
- esphome/components/mcp2515/mcp2515_defs.h +3 -1
- esphome/components/md5/md5.cpp +0 -26
- esphome/components/md5/md5.h +10 -20
- esphome/components/mdns/__init__.py +93 -19
- esphome/components/mdns/mdns_component.cpp +57 -94
- esphome/components/mdns/mdns_component.h +35 -11
- esphome/components/mdns/mdns_esp32.cpp +7 -13
- esphome/components/mdns/mdns_esp8266.cpp +7 -7
- esphome/components/mdns/mdns_libretiny.cpp +3 -4
- esphome/components/mdns/mdns_rp2040.cpp +3 -4
- esphome/components/mipi/__init__.py +1 -5
- esphome/components/mipi_spi/display.py +24 -8
- esphome/components/mipi_spi/mipi_spi.h +3 -3
- esphome/components/mixer/speaker/mixer_speaker.cpp +3 -3
- esphome/components/mmc5603/mmc5603.cpp +3 -3
- esphome/components/modbus/modbus.cpp +27 -13
- esphome/components/modbus/modbus.h +5 -3
- esphome/components/modbus/modbus_definitions.h +86 -0
- esphome/components/modbus_controller/__init__.py +29 -1
- esphome/components/modbus_controller/const.py +4 -0
- esphome/components/modbus_controller/modbus_controller.cpp +38 -13
- esphome/components/modbus_controller/modbus_controller.h +18 -29
- esphome/components/mpr121/mpr121.cpp +41 -42
- esphome/components/mpr121/mpr121.h +0 -1
- esphome/components/nau7802/nau7802.cpp +2 -2
- esphome/components/network/__init__.py +7 -3
- esphome/components/nextion/display.py +4 -4
- esphome/components/nextion/nextion.cpp +8 -8
- esphome/components/number/__init__.py +2 -0
- esphome/components/number/number_call.cpp +23 -12
- esphome/components/number/number_call.h +5 -0
- esphome/components/online_image/bmp_image.cpp +2 -1
- esphome/components/online_image/jpeg_image.cpp +4 -2
- esphome/components/opentherm/opentherm.cpp +5 -5
- esphome/components/opentherm/opentherm.h +3 -3
- esphome/components/openthread/openthread.cpp +11 -10
- esphome/components/openthread/openthread.h +0 -1
- esphome/components/ota/ota_backend.h +1 -0
- esphome/components/packages/__init__.py +10 -8
- esphome/components/packet_transport/packet_transport.cpp +2 -0
- esphome/components/pid/pid_controller.cpp +1 -1
- esphome/components/prometheus/prometheus_handler.cpp +239 -239
- esphome/components/psram/__init__.py +30 -28
- esphome/components/qmc5883l/qmc5883l.cpp +15 -0
- esphome/components/qmc5883l/qmc5883l.h +3 -0
- esphome/components/qmc5883l/sensor.py +31 -12
- esphome/components/remote_base/gobox_protocol.cpp +3 -3
- esphome/components/remote_receiver/__init__.py +14 -2
- esphome/components/remote_receiver/{remote_receiver_esp8266.cpp → remote_receiver.cpp} +2 -2
- esphome/components/remote_receiver/remote_receiver.h +4 -0
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +18 -1
- esphome/components/remote_transmitter/__init__.py +2 -2
- esphome/components/remote_transmitter/remote_transmitter.cpp +103 -0
- esphome/components/rp2040/__init__.py +11 -11
- esphome/components/rtttl/rtttl.cpp +2 -2
- esphome/components/scd30/sensor.py +1 -1
- esphome/components/script/__init__.py +1 -1
- esphome/components/script/script.h +7 -7
- esphome/components/select/select.cpp +5 -4
- esphome/components/select/select_call.cpp +1 -1
- esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
- esphome/components/sensor/__init__.py +2 -0
- esphome/components/sha256/__init__.py +22 -0
- esphome/components/sha256/sha256.cpp +116 -0
- esphome/components/sha256/sha256.h +60 -0
- esphome/components/socket/lwip_raw_tcp_impl.cpp +34 -6
- esphome/components/sonoff_d1/sonoff_d1.cpp +1 -1
- esphome/components/spi/__init__.py +0 -3
- esphome/components/split_buffer/__init__.py +5 -0
- esphome/components/split_buffer/split_buffer.cpp +133 -0
- esphome/components/split_buffer/split_buffer.h +40 -0
- esphome/components/sps30/sps30.cpp +14 -10
- esphome/components/sps30/sps30.h +2 -0
- esphome/components/st7567_i2c/st7567_i2c.cpp +3 -1
- esphome/components/st7789v/st7789v.cpp +3 -2
- esphome/components/statsd/statsd.cpp +1 -1
- esphome/components/substitutions/__init__.py +3 -1
- esphome/components/substitutions/jinja.py +13 -3
- esphome/components/sx126x/__init__.py +16 -0
- esphome/components/sx126x/sx126x.cpp +15 -1
- esphome/components/sx126x/sx126x.h +9 -1
- esphome/components/sx126x/sx126x_reg.h +2 -0
- esphome/components/text_sensor/text_sensor.cpp +16 -0
- esphome/components/text_sensor/text_sensor.h +3 -10
- esphome/components/tormatic/tormatic_cover.cpp +1 -1
- esphome/components/tuya/select/tuya_select.cpp +1 -1
- esphome/components/tuya/tuya.cpp +29 -4
- esphome/components/uart/__init__.py +37 -27
- esphome/components/uart/uart.h +6 -0
- esphome/components/uart/uart_component.cpp +8 -0
- esphome/components/uart/uart_component.h +28 -0
- esphome/components/uart/uart_component_esp_idf.cpp +64 -10
- esphome/components/uart/uart_component_esp_idf.h +5 -2
- esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
- esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +1 -1
- esphome/components/uponor_smatrix/uponor_smatrix.cpp +3 -3
- esphome/components/usb_host/__init__.py +12 -2
- esphome/components/usb_host/usb_host.h +89 -14
- esphome/components/usb_host/usb_host_client.cpp +157 -22
- esphome/components/usb_host/usb_host_component.cpp +1 -1
- esphome/components/usb_uart/__init__.py +0 -1
- esphome/components/usb_uart/ch34x.cpp +4 -4
- esphome/components/usb_uart/cp210x.cpp +3 -3
- esphome/components/usb_uart/usb_uart.cpp +88 -32
- esphome/components/usb_uart/usb_uart.h +30 -6
- esphome/components/valve/valve.cpp +1 -0
- esphome/components/veml7700/veml7700.cpp +7 -6
- esphome/components/version/version_text_sensor.cpp +2 -1
- esphome/components/voice_assistant/voice_assistant.cpp +3 -2
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +4 -4
- esphome/components/web_server/list_entities.cpp +3 -4
- esphome/components/web_server/list_entities.h +8 -10
- esphome/components/web_server/ota/__init__.py +1 -1
- esphome/components/web_server/ota/ota_web_server.cpp +9 -3
- esphome/components/web_server/web_server.cpp +509 -404
- esphome/components/web_server/web_server.h +5 -6
- esphome/components/web_server/web_server_v1.cpp +21 -19
- esphome/components/web_server_base/__init__.py +5 -2
- esphome/components/web_server_base/web_server_base.h +27 -7
- esphome/components/web_server_idf/__init__.py +1 -1
- esphome/components/web_server_idf/multipart.cpp +2 -2
- esphome/components/web_server_idf/multipart.h +2 -2
- esphome/components/web_server_idf/utils.cpp +2 -2
- esphome/components/web_server_idf/utils.h +2 -2
- esphome/components/web_server_idf/web_server_idf.cpp +118 -26
- esphome/components/web_server_idf/web_server_idf.h +12 -10
- esphome/components/wifi/__init__.py +13 -11
- esphome/components/wifi/wifi_component.cpp +74 -56
- esphome/components/wifi/wifi_component.h +4 -4
- esphome/components/wifi/wifi_component_esp8266.cpp +1 -1
- esphome/components/wifi/wifi_component_esp_idf.cpp +24 -4
- esphome/components/wireguard/__init__.py +1 -1
- esphome/components/wts01/__init__.py +0 -0
- esphome/components/wts01/sensor.py +41 -0
- esphome/components/wts01/wts01.cpp +91 -0
- esphome/components/wts01/wts01.h +27 -0
- esphome/components/zephyr/__init__.py +5 -5
- esphome/components/zwave_proxy/__init__.py +43 -0
- esphome/components/zwave_proxy/zwave_proxy.cpp +346 -0
- esphome/components/zwave_proxy/zwave_proxy.h +93 -0
- esphome/config.py +79 -24
- esphome/config_validation.py +13 -15
- esphome/const.py +9 -2
- esphome/core/__init__.py +33 -22
- esphome/core/component.cpp +28 -18
- esphome/core/component_iterator.h +2 -1
- esphome/core/config.py +15 -15
- esphome/core/defines.h +21 -0
- esphome/core/entity_helpers.py +9 -6
- esphome/core/hash_base.h +56 -0
- esphome/core/helpers.cpp +19 -3
- esphome/core/helpers.h +26 -0
- esphome/core/scheduler.cpp +5 -21
- esphome/core/scheduler.h +19 -8
- esphome/core/string_ref.h +1 -1
- esphome/core/time.cpp +5 -5
- esphome/cpp_generator.py +4 -29
- esphome/dashboard/const.py +21 -4
- esphome/dashboard/core.py +10 -8
- esphome/dashboard/dns.py +15 -0
- esphome/dashboard/entries.py +15 -21
- esphome/dashboard/models.py +76 -0
- esphome/dashboard/settings.py +7 -7
- esphome/dashboard/status/mdns.py +46 -2
- esphome/dashboard/web_server.py +367 -93
- esphome/espota2.py +112 -32
- esphome/external_files.py +6 -7
- esphome/git.py +8 -0
- esphome/helpers.py +124 -77
- esphome/loader.py +8 -9
- esphome/pins.py +2 -2
- esphome/platformio_api.py +56 -18
- esphome/storage_json.py +26 -21
- esphome/types.py +30 -2
- esphome/util.py +32 -16
- esphome/vscode.py +8 -8
- esphome/wizard.py +10 -10
- esphome/writer.py +50 -15
- esphome/yaml_util.py +37 -31
- esphome/zeroconf.py +12 -3
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/METADATA +12 -12
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/RECORD +340 -320
- esphome/components/event_emitter/__init__.py +0 -5
- esphome/components/event_emitter/event_emitter.cpp +0 -14
- esphome/components/event_emitter/event_emitter.h +0 -63
- esphome/components/remote_receiver/remote_receiver_libretiny.cpp +0 -125
- esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +0 -107
- esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +0 -110
- esphome/components/uart/uart_component_esp32_arduino.cpp +0 -214
- esphome/components/uart/uart_component_esp32_arduino.h +0 -60
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +0 -860
- esphome/core/string_ref.cpp +0 -12
- esphome/dashboard/util/file.py +0 -63
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/WHEEL +0 -0
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/entry_points.txt +0 -0
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.9.3.dist-info → esphome-2025.10.0b2.dist-info}/top_level.txt +0 -0
@@ -110,21 +110,21 @@ std::string PrometheusHandler::relabel_name_(EntityBase *obj) {
|
|
110
110
|
|
111
111
|
void PrometheusHandler::add_area_label_(AsyncResponseStream *stream, std::string &area) {
|
112
112
|
if (!area.empty()) {
|
113
|
-
stream->print(
|
113
|
+
stream->print(ESPHOME_F("\",area=\""));
|
114
114
|
stream->print(area.c_str());
|
115
115
|
}
|
116
116
|
}
|
117
117
|
|
118
118
|
void PrometheusHandler::add_node_label_(AsyncResponseStream *stream, std::string &node) {
|
119
119
|
if (!node.empty()) {
|
120
|
-
stream->print(
|
120
|
+
stream->print(ESPHOME_F("\",node=\""));
|
121
121
|
stream->print(node.c_str());
|
122
122
|
}
|
123
123
|
}
|
124
124
|
|
125
125
|
void PrometheusHandler::add_friendly_name_label_(AsyncResponseStream *stream, std::string &friendly_name) {
|
126
126
|
if (!friendly_name.empty()) {
|
127
|
-
stream->print(
|
127
|
+
stream->print(ESPHOME_F("\",friendly_name=\""));
|
128
128
|
stream->print(friendly_name.c_str());
|
129
129
|
}
|
130
130
|
}
|
@@ -132,8 +132,8 @@ void PrometheusHandler::add_friendly_name_label_(AsyncResponseStream *stream, st
|
|
132
132
|
// Type-specific implementation
|
133
133
|
#ifdef USE_SENSOR
|
134
134
|
void PrometheusHandler::sensor_type_(AsyncResponseStream *stream) {
|
135
|
-
stream->print(
|
136
|
-
stream->print(
|
135
|
+
stream->print(ESPHOME_F("#TYPE esphome_sensor_value gauge\n"));
|
136
|
+
stream->print(ESPHOME_F("#TYPE esphome_sensor_failed gauge\n"));
|
137
137
|
}
|
138
138
|
void PrometheusHandler::sensor_row_(AsyncResponseStream *stream, sensor::Sensor *obj, std::string &area,
|
139
139
|
std::string &node, std::string &friendly_name) {
|
@@ -141,37 +141,37 @@ void PrometheusHandler::sensor_row_(AsyncResponseStream *stream, sensor::Sensor
|
|
141
141
|
return;
|
142
142
|
if (!std::isnan(obj->state)) {
|
143
143
|
// We have a valid value, output this value
|
144
|
-
stream->print(
|
144
|
+
stream->print(ESPHOME_F("esphome_sensor_failed{id=\""));
|
145
145
|
stream->print(relabel_id_(obj).c_str());
|
146
146
|
add_area_label_(stream, area);
|
147
147
|
add_node_label_(stream, node);
|
148
148
|
add_friendly_name_label_(stream, friendly_name);
|
149
|
-
stream->print(
|
149
|
+
stream->print(ESPHOME_F("\",name=\""));
|
150
150
|
stream->print(relabel_name_(obj).c_str());
|
151
|
-
stream->print(
|
151
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
152
152
|
// Data itself
|
153
|
-
stream->print(
|
153
|
+
stream->print(ESPHOME_F("esphome_sensor_value{id=\""));
|
154
154
|
stream->print(relabel_id_(obj).c_str());
|
155
155
|
add_area_label_(stream, area);
|
156
156
|
add_node_label_(stream, node);
|
157
157
|
add_friendly_name_label_(stream, friendly_name);
|
158
|
-
stream->print(
|
158
|
+
stream->print(ESPHOME_F("\",name=\""));
|
159
159
|
stream->print(relabel_name_(obj).c_str());
|
160
|
-
stream->print(
|
160
|
+
stream->print(ESPHOME_F("\",unit=\""));
|
161
161
|
stream->print(obj->get_unit_of_measurement().c_str());
|
162
|
-
stream->print(
|
162
|
+
stream->print(ESPHOME_F("\"} "));
|
163
163
|
stream->print(value_accuracy_to_string(obj->state, obj->get_accuracy_decimals()).c_str());
|
164
|
-
stream->print(
|
164
|
+
stream->print(ESPHOME_F("\n"));
|
165
165
|
} else {
|
166
166
|
// Invalid state
|
167
|
-
stream->print(
|
167
|
+
stream->print(ESPHOME_F("esphome_sensor_failed{id=\""));
|
168
168
|
stream->print(relabel_id_(obj).c_str());
|
169
169
|
add_area_label_(stream, area);
|
170
170
|
add_node_label_(stream, node);
|
171
171
|
add_friendly_name_label_(stream, friendly_name);
|
172
|
-
stream->print(
|
172
|
+
stream->print(ESPHOME_F("\",name=\""));
|
173
173
|
stream->print(relabel_name_(obj).c_str());
|
174
|
-
stream->print(
|
174
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
175
175
|
}
|
176
176
|
}
|
177
177
|
#endif
|
@@ -179,8 +179,8 @@ void PrometheusHandler::sensor_row_(AsyncResponseStream *stream, sensor::Sensor
|
|
179
179
|
// Type-specific implementation
|
180
180
|
#ifdef USE_BINARY_SENSOR
|
181
181
|
void PrometheusHandler::binary_sensor_type_(AsyncResponseStream *stream) {
|
182
|
-
stream->print(
|
183
|
-
stream->print(
|
182
|
+
stream->print(ESPHOME_F("#TYPE esphome_binary_sensor_value gauge\n"));
|
183
|
+
stream->print(ESPHOME_F("#TYPE esphome_binary_sensor_failed gauge\n"));
|
184
184
|
}
|
185
185
|
void PrometheusHandler::binary_sensor_row_(AsyncResponseStream *stream, binary_sensor::BinarySensor *obj,
|
186
186
|
std::string &area, std::string &node, std::string &friendly_name) {
|
@@ -188,204 +188,204 @@ void PrometheusHandler::binary_sensor_row_(AsyncResponseStream *stream, binary_s
|
|
188
188
|
return;
|
189
189
|
if (obj->has_state()) {
|
190
190
|
// We have a valid value, output this value
|
191
|
-
stream->print(
|
191
|
+
stream->print(ESPHOME_F("esphome_binary_sensor_failed{id=\""));
|
192
192
|
stream->print(relabel_id_(obj).c_str());
|
193
193
|
add_area_label_(stream, area);
|
194
194
|
add_node_label_(stream, node);
|
195
195
|
add_friendly_name_label_(stream, friendly_name);
|
196
|
-
stream->print(
|
196
|
+
stream->print(ESPHOME_F("\",name=\""));
|
197
197
|
stream->print(relabel_name_(obj).c_str());
|
198
|
-
stream->print(
|
198
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
199
199
|
// Data itself
|
200
|
-
stream->print(
|
200
|
+
stream->print(ESPHOME_F("esphome_binary_sensor_value{id=\""));
|
201
201
|
stream->print(relabel_id_(obj).c_str());
|
202
202
|
add_area_label_(stream, area);
|
203
203
|
add_node_label_(stream, node);
|
204
204
|
add_friendly_name_label_(stream, friendly_name);
|
205
|
-
stream->print(
|
205
|
+
stream->print(ESPHOME_F("\",name=\""));
|
206
206
|
stream->print(relabel_name_(obj).c_str());
|
207
|
-
stream->print(
|
207
|
+
stream->print(ESPHOME_F("\"} "));
|
208
208
|
stream->print(obj->state);
|
209
|
-
stream->print(
|
209
|
+
stream->print(ESPHOME_F("\n"));
|
210
210
|
} else {
|
211
211
|
// Invalid state
|
212
|
-
stream->print(
|
212
|
+
stream->print(ESPHOME_F("esphome_binary_sensor_failed{id=\""));
|
213
213
|
stream->print(relabel_id_(obj).c_str());
|
214
214
|
add_area_label_(stream, area);
|
215
215
|
add_node_label_(stream, node);
|
216
216
|
add_friendly_name_label_(stream, friendly_name);
|
217
|
-
stream->print(
|
217
|
+
stream->print(ESPHOME_F("\",name=\""));
|
218
218
|
stream->print(relabel_name_(obj).c_str());
|
219
|
-
stream->print(
|
219
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
220
220
|
}
|
221
221
|
}
|
222
222
|
#endif
|
223
223
|
|
224
224
|
#ifdef USE_FAN
|
225
225
|
void PrometheusHandler::fan_type_(AsyncResponseStream *stream) {
|
226
|
-
stream->print(
|
227
|
-
stream->print(
|
228
|
-
stream->print(
|
229
|
-
stream->print(
|
226
|
+
stream->print(ESPHOME_F("#TYPE esphome_fan_value gauge\n"));
|
227
|
+
stream->print(ESPHOME_F("#TYPE esphome_fan_failed gauge\n"));
|
228
|
+
stream->print(ESPHOME_F("#TYPE esphome_fan_speed gauge\n"));
|
229
|
+
stream->print(ESPHOME_F("#TYPE esphome_fan_oscillation gauge\n"));
|
230
230
|
}
|
231
231
|
void PrometheusHandler::fan_row_(AsyncResponseStream *stream, fan::Fan *obj, std::string &area, std::string &node,
|
232
232
|
std::string &friendly_name) {
|
233
233
|
if (obj->is_internal() && !this->include_internal_)
|
234
234
|
return;
|
235
|
-
stream->print(
|
235
|
+
stream->print(ESPHOME_F("esphome_fan_failed{id=\""));
|
236
236
|
stream->print(relabel_id_(obj).c_str());
|
237
237
|
add_area_label_(stream, area);
|
238
238
|
add_node_label_(stream, node);
|
239
239
|
add_friendly_name_label_(stream, friendly_name);
|
240
|
-
stream->print(
|
240
|
+
stream->print(ESPHOME_F("\",name=\""));
|
241
241
|
stream->print(relabel_name_(obj).c_str());
|
242
|
-
stream->print(
|
242
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
243
243
|
// Data itself
|
244
|
-
stream->print(
|
244
|
+
stream->print(ESPHOME_F("esphome_fan_value{id=\""));
|
245
245
|
stream->print(relabel_id_(obj).c_str());
|
246
246
|
add_area_label_(stream, area);
|
247
247
|
add_node_label_(stream, node);
|
248
248
|
add_friendly_name_label_(stream, friendly_name);
|
249
|
-
stream->print(
|
249
|
+
stream->print(ESPHOME_F("\",name=\""));
|
250
250
|
stream->print(relabel_name_(obj).c_str());
|
251
|
-
stream->print(
|
251
|
+
stream->print(ESPHOME_F("\"} "));
|
252
252
|
stream->print(obj->state);
|
253
|
-
stream->print(
|
253
|
+
stream->print(ESPHOME_F("\n"));
|
254
254
|
// Speed if available
|
255
255
|
if (obj->get_traits().supports_speed()) {
|
256
|
-
stream->print(
|
256
|
+
stream->print(ESPHOME_F("esphome_fan_speed{id=\""));
|
257
257
|
stream->print(relabel_id_(obj).c_str());
|
258
258
|
add_area_label_(stream, area);
|
259
259
|
add_node_label_(stream, node);
|
260
260
|
add_friendly_name_label_(stream, friendly_name);
|
261
|
-
stream->print(
|
261
|
+
stream->print(ESPHOME_F("\",name=\""));
|
262
262
|
stream->print(relabel_name_(obj).c_str());
|
263
|
-
stream->print(
|
263
|
+
stream->print(ESPHOME_F("\"} "));
|
264
264
|
stream->print(obj->speed);
|
265
|
-
stream->print(
|
265
|
+
stream->print(ESPHOME_F("\n"));
|
266
266
|
}
|
267
267
|
// Oscillation if available
|
268
268
|
if (obj->get_traits().supports_oscillation()) {
|
269
|
-
stream->print(
|
269
|
+
stream->print(ESPHOME_F("esphome_fan_oscillation{id=\""));
|
270
270
|
stream->print(relabel_id_(obj).c_str());
|
271
271
|
add_area_label_(stream, area);
|
272
272
|
add_node_label_(stream, node);
|
273
273
|
add_friendly_name_label_(stream, friendly_name);
|
274
|
-
stream->print(
|
274
|
+
stream->print(ESPHOME_F("\",name=\""));
|
275
275
|
stream->print(relabel_name_(obj).c_str());
|
276
|
-
stream->print(
|
276
|
+
stream->print(ESPHOME_F("\"} "));
|
277
277
|
stream->print(obj->oscillating);
|
278
|
-
stream->print(
|
278
|
+
stream->print(ESPHOME_F("\n"));
|
279
279
|
}
|
280
280
|
}
|
281
281
|
#endif
|
282
282
|
|
283
283
|
#ifdef USE_LIGHT
|
284
284
|
void PrometheusHandler::light_type_(AsyncResponseStream *stream) {
|
285
|
-
stream->print(
|
286
|
-
stream->print(
|
287
|
-
stream->print(
|
285
|
+
stream->print(ESPHOME_F("#TYPE esphome_light_state gauge\n"));
|
286
|
+
stream->print(ESPHOME_F("#TYPE esphome_light_color gauge\n"));
|
287
|
+
stream->print(ESPHOME_F("#TYPE esphome_light_effect_active gauge\n"));
|
288
288
|
}
|
289
289
|
void PrometheusHandler::light_row_(AsyncResponseStream *stream, light::LightState *obj, std::string &area,
|
290
290
|
std::string &node, std::string &friendly_name) {
|
291
291
|
if (obj->is_internal() && !this->include_internal_)
|
292
292
|
return;
|
293
293
|
// State
|
294
|
-
stream->print(
|
294
|
+
stream->print(ESPHOME_F("esphome_light_state{id=\""));
|
295
295
|
stream->print(relabel_id_(obj).c_str());
|
296
296
|
add_area_label_(stream, area);
|
297
297
|
add_node_label_(stream, node);
|
298
298
|
add_friendly_name_label_(stream, friendly_name);
|
299
|
-
stream->print(
|
299
|
+
stream->print(ESPHOME_F("\",name=\""));
|
300
300
|
stream->print(relabel_name_(obj).c_str());
|
301
|
-
stream->print(
|
301
|
+
stream->print(ESPHOME_F("\"} "));
|
302
302
|
stream->print(obj->remote_values.is_on());
|
303
|
-
stream->print(
|
303
|
+
stream->print(ESPHOME_F("\n"));
|
304
304
|
// Brightness and RGBW
|
305
305
|
light::LightColorValues color = obj->current_values;
|
306
306
|
float brightness, r, g, b, w;
|
307
307
|
color.as_brightness(&brightness);
|
308
308
|
color.as_rgbw(&r, &g, &b, &w);
|
309
|
-
stream->print(
|
309
|
+
stream->print(ESPHOME_F("esphome_light_color{id=\""));
|
310
310
|
stream->print(relabel_id_(obj).c_str());
|
311
311
|
add_area_label_(stream, area);
|
312
312
|
add_node_label_(stream, node);
|
313
313
|
add_friendly_name_label_(stream, friendly_name);
|
314
|
-
stream->print(
|
314
|
+
stream->print(ESPHOME_F("\",name=\""));
|
315
315
|
stream->print(relabel_name_(obj).c_str());
|
316
|
-
stream->print(
|
316
|
+
stream->print(ESPHOME_F("\",channel=\"brightness\"} "));
|
317
317
|
stream->print(brightness);
|
318
|
-
stream->print(
|
319
|
-
stream->print(
|
318
|
+
stream->print(ESPHOME_F("\n"));
|
319
|
+
stream->print(ESPHOME_F("esphome_light_color{id=\""));
|
320
320
|
stream->print(relabel_id_(obj).c_str());
|
321
321
|
add_area_label_(stream, area);
|
322
322
|
add_node_label_(stream, node);
|
323
323
|
add_friendly_name_label_(stream, friendly_name);
|
324
|
-
stream->print(
|
324
|
+
stream->print(ESPHOME_F("\",name=\""));
|
325
325
|
stream->print(relabel_name_(obj).c_str());
|
326
|
-
stream->print(
|
326
|
+
stream->print(ESPHOME_F("\",channel=\"r\"} "));
|
327
327
|
stream->print(r);
|
328
|
-
stream->print(
|
329
|
-
stream->print(
|
328
|
+
stream->print(ESPHOME_F("\n"));
|
329
|
+
stream->print(ESPHOME_F("esphome_light_color{id=\""));
|
330
330
|
stream->print(relabel_id_(obj).c_str());
|
331
331
|
add_area_label_(stream, area);
|
332
332
|
add_node_label_(stream, node);
|
333
333
|
add_friendly_name_label_(stream, friendly_name);
|
334
|
-
stream->print(
|
334
|
+
stream->print(ESPHOME_F("\",name=\""));
|
335
335
|
stream->print(relabel_name_(obj).c_str());
|
336
|
-
stream->print(
|
336
|
+
stream->print(ESPHOME_F("\",channel=\"g\"} "));
|
337
337
|
stream->print(g);
|
338
|
-
stream->print(
|
339
|
-
stream->print(
|
338
|
+
stream->print(ESPHOME_F("\n"));
|
339
|
+
stream->print(ESPHOME_F("esphome_light_color{id=\""));
|
340
340
|
stream->print(relabel_id_(obj).c_str());
|
341
341
|
add_area_label_(stream, area);
|
342
342
|
add_node_label_(stream, node);
|
343
343
|
add_friendly_name_label_(stream, friendly_name);
|
344
|
-
stream->print(
|
344
|
+
stream->print(ESPHOME_F("\",name=\""));
|
345
345
|
stream->print(relabel_name_(obj).c_str());
|
346
|
-
stream->print(
|
346
|
+
stream->print(ESPHOME_F("\",channel=\"b\"} "));
|
347
347
|
stream->print(b);
|
348
|
-
stream->print(
|
349
|
-
stream->print(
|
348
|
+
stream->print(ESPHOME_F("\n"));
|
349
|
+
stream->print(ESPHOME_F("esphome_light_color{id=\""));
|
350
350
|
stream->print(relabel_id_(obj).c_str());
|
351
351
|
add_area_label_(stream, area);
|
352
352
|
add_node_label_(stream, node);
|
353
353
|
add_friendly_name_label_(stream, friendly_name);
|
354
|
-
stream->print(
|
354
|
+
stream->print(ESPHOME_F("\",name=\""));
|
355
355
|
stream->print(relabel_name_(obj).c_str());
|
356
|
-
stream->print(
|
356
|
+
stream->print(ESPHOME_F("\",channel=\"w\"} "));
|
357
357
|
stream->print(w);
|
358
|
-
stream->print(
|
358
|
+
stream->print(ESPHOME_F("\n"));
|
359
359
|
// Effect
|
360
360
|
std::string effect = obj->get_effect_name();
|
361
361
|
if (effect == "None") {
|
362
|
-
stream->print(
|
362
|
+
stream->print(ESPHOME_F("esphome_light_effect_active{id=\""));
|
363
363
|
stream->print(relabel_id_(obj).c_str());
|
364
364
|
add_area_label_(stream, area);
|
365
365
|
add_node_label_(stream, node);
|
366
366
|
add_friendly_name_label_(stream, friendly_name);
|
367
|
-
stream->print(
|
367
|
+
stream->print(ESPHOME_F("\",name=\""));
|
368
368
|
stream->print(relabel_name_(obj).c_str());
|
369
|
-
stream->print(
|
369
|
+
stream->print(ESPHOME_F("\",effect=\"None\"} 0\n"));
|
370
370
|
} else {
|
371
|
-
stream->print(
|
371
|
+
stream->print(ESPHOME_F("esphome_light_effect_active{id=\""));
|
372
372
|
stream->print(relabel_id_(obj).c_str());
|
373
373
|
add_area_label_(stream, area);
|
374
374
|
add_node_label_(stream, node);
|
375
375
|
add_friendly_name_label_(stream, friendly_name);
|
376
|
-
stream->print(
|
376
|
+
stream->print(ESPHOME_F("\",name=\""));
|
377
377
|
stream->print(relabel_name_(obj).c_str());
|
378
|
-
stream->print(
|
378
|
+
stream->print(ESPHOME_F("\",effect=\""));
|
379
379
|
stream->print(effect.c_str());
|
380
|
-
stream->print(
|
380
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
381
381
|
}
|
382
382
|
}
|
383
383
|
#endif
|
384
384
|
|
385
385
|
#ifdef USE_COVER
|
386
386
|
void PrometheusHandler::cover_type_(AsyncResponseStream *stream) {
|
387
|
-
stream->print(
|
388
|
-
stream->print(
|
387
|
+
stream->print(ESPHOME_F("#TYPE esphome_cover_value gauge\n"));
|
388
|
+
stream->print(ESPHOME_F("#TYPE esphome_cover_failed gauge\n"));
|
389
389
|
}
|
390
390
|
void PrometheusHandler::cover_row_(AsyncResponseStream *stream, cover::Cover *obj, std::string &area, std::string &node,
|
391
391
|
std::string &friendly_name) {
|
@@ -393,118 +393,118 @@ void PrometheusHandler::cover_row_(AsyncResponseStream *stream, cover::Cover *ob
|
|
393
393
|
return;
|
394
394
|
if (!std::isnan(obj->position)) {
|
395
395
|
// We have a valid value, output this value
|
396
|
-
stream->print(
|
396
|
+
stream->print(ESPHOME_F("esphome_cover_failed{id=\""));
|
397
397
|
stream->print(relabel_id_(obj).c_str());
|
398
398
|
add_area_label_(stream, area);
|
399
399
|
add_node_label_(stream, node);
|
400
400
|
add_friendly_name_label_(stream, friendly_name);
|
401
|
-
stream->print(
|
401
|
+
stream->print(ESPHOME_F("\",name=\""));
|
402
402
|
stream->print(relabel_name_(obj).c_str());
|
403
|
-
stream->print(
|
403
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
404
404
|
// Data itself
|
405
|
-
stream->print(
|
405
|
+
stream->print(ESPHOME_F("esphome_cover_value{id=\""));
|
406
406
|
stream->print(relabel_id_(obj).c_str());
|
407
407
|
add_area_label_(stream, area);
|
408
408
|
add_node_label_(stream, node);
|
409
409
|
add_friendly_name_label_(stream, friendly_name);
|
410
|
-
stream->print(
|
410
|
+
stream->print(ESPHOME_F("\",name=\""));
|
411
411
|
stream->print(relabel_name_(obj).c_str());
|
412
|
-
stream->print(
|
412
|
+
stream->print(ESPHOME_F("\"} "));
|
413
413
|
stream->print(obj->position);
|
414
|
-
stream->print(
|
414
|
+
stream->print(ESPHOME_F("\n"));
|
415
415
|
if (obj->get_traits().get_supports_tilt()) {
|
416
|
-
stream->print(
|
416
|
+
stream->print(ESPHOME_F("esphome_cover_tilt{id=\""));
|
417
417
|
stream->print(relabel_id_(obj).c_str());
|
418
418
|
add_area_label_(stream, area);
|
419
419
|
add_node_label_(stream, node);
|
420
420
|
add_friendly_name_label_(stream, friendly_name);
|
421
|
-
stream->print(
|
421
|
+
stream->print(ESPHOME_F("\",name=\""));
|
422
422
|
stream->print(relabel_name_(obj).c_str());
|
423
|
-
stream->print(
|
423
|
+
stream->print(ESPHOME_F("\"} "));
|
424
424
|
stream->print(obj->tilt);
|
425
|
-
stream->print(
|
425
|
+
stream->print(ESPHOME_F("\n"));
|
426
426
|
}
|
427
427
|
} else {
|
428
428
|
// Invalid state
|
429
|
-
stream->print(
|
429
|
+
stream->print(ESPHOME_F("esphome_cover_failed{id=\""));
|
430
430
|
stream->print(relabel_id_(obj).c_str());
|
431
431
|
add_area_label_(stream, area);
|
432
432
|
add_node_label_(stream, node);
|
433
433
|
add_friendly_name_label_(stream, friendly_name);
|
434
|
-
stream->print(
|
434
|
+
stream->print(ESPHOME_F("\",name=\""));
|
435
435
|
stream->print(relabel_name_(obj).c_str());
|
436
|
-
stream->print(
|
436
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
437
437
|
}
|
438
438
|
}
|
439
439
|
#endif
|
440
440
|
|
441
441
|
#ifdef USE_SWITCH
|
442
442
|
void PrometheusHandler::switch_type_(AsyncResponseStream *stream) {
|
443
|
-
stream->print(
|
444
|
-
stream->print(
|
443
|
+
stream->print(ESPHOME_F("#TYPE esphome_switch_value gauge\n"));
|
444
|
+
stream->print(ESPHOME_F("#TYPE esphome_switch_failed gauge\n"));
|
445
445
|
}
|
446
446
|
void PrometheusHandler::switch_row_(AsyncResponseStream *stream, switch_::Switch *obj, std::string &area,
|
447
447
|
std::string &node, std::string &friendly_name) {
|
448
448
|
if (obj->is_internal() && !this->include_internal_)
|
449
449
|
return;
|
450
|
-
stream->print(
|
450
|
+
stream->print(ESPHOME_F("esphome_switch_failed{id=\""));
|
451
451
|
stream->print(relabel_id_(obj).c_str());
|
452
452
|
add_area_label_(stream, area);
|
453
453
|
add_node_label_(stream, node);
|
454
454
|
add_friendly_name_label_(stream, friendly_name);
|
455
|
-
stream->print(
|
455
|
+
stream->print(ESPHOME_F("\",name=\""));
|
456
456
|
stream->print(relabel_name_(obj).c_str());
|
457
|
-
stream->print(
|
457
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
458
458
|
// Data itself
|
459
|
-
stream->print(
|
459
|
+
stream->print(ESPHOME_F("esphome_switch_value{id=\""));
|
460
460
|
stream->print(relabel_id_(obj).c_str());
|
461
461
|
add_area_label_(stream, area);
|
462
462
|
add_node_label_(stream, node);
|
463
463
|
add_friendly_name_label_(stream, friendly_name);
|
464
|
-
stream->print(
|
464
|
+
stream->print(ESPHOME_F("\",name=\""));
|
465
465
|
stream->print(relabel_name_(obj).c_str());
|
466
|
-
stream->print(
|
466
|
+
stream->print(ESPHOME_F("\"} "));
|
467
467
|
stream->print(obj->state);
|
468
|
-
stream->print(
|
468
|
+
stream->print(ESPHOME_F("\n"));
|
469
469
|
}
|
470
470
|
#endif
|
471
471
|
|
472
472
|
#ifdef USE_LOCK
|
473
473
|
void PrometheusHandler::lock_type_(AsyncResponseStream *stream) {
|
474
|
-
stream->print(
|
475
|
-
stream->print(
|
474
|
+
stream->print(ESPHOME_F("#TYPE esphome_lock_value gauge\n"));
|
475
|
+
stream->print(ESPHOME_F("#TYPE esphome_lock_failed gauge\n"));
|
476
476
|
}
|
477
477
|
void PrometheusHandler::lock_row_(AsyncResponseStream *stream, lock::Lock *obj, std::string &area, std::string &node,
|
478
478
|
std::string &friendly_name) {
|
479
479
|
if (obj->is_internal() && !this->include_internal_)
|
480
480
|
return;
|
481
|
-
stream->print(
|
481
|
+
stream->print(ESPHOME_F("esphome_lock_failed{id=\""));
|
482
482
|
stream->print(relabel_id_(obj).c_str());
|
483
483
|
add_area_label_(stream, area);
|
484
484
|
add_node_label_(stream, node);
|
485
485
|
add_friendly_name_label_(stream, friendly_name);
|
486
|
-
stream->print(
|
486
|
+
stream->print(ESPHOME_F("\",name=\""));
|
487
487
|
stream->print(relabel_name_(obj).c_str());
|
488
|
-
stream->print(
|
488
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
489
489
|
// Data itself
|
490
|
-
stream->print(
|
490
|
+
stream->print(ESPHOME_F("esphome_lock_value{id=\""));
|
491
491
|
stream->print(relabel_id_(obj).c_str());
|
492
492
|
add_area_label_(stream, area);
|
493
493
|
add_node_label_(stream, node);
|
494
494
|
add_friendly_name_label_(stream, friendly_name);
|
495
|
-
stream->print(
|
495
|
+
stream->print(ESPHOME_F("\",name=\""));
|
496
496
|
stream->print(relabel_name_(obj).c_str());
|
497
|
-
stream->print(
|
497
|
+
stream->print(ESPHOME_F("\"} "));
|
498
498
|
stream->print(obj->state);
|
499
|
-
stream->print(
|
499
|
+
stream->print(ESPHOME_F("\n"));
|
500
500
|
}
|
501
501
|
#endif
|
502
502
|
|
503
503
|
// Type-specific implementation
|
504
504
|
#ifdef USE_TEXT_SENSOR
|
505
505
|
void PrometheusHandler::text_sensor_type_(AsyncResponseStream *stream) {
|
506
|
-
stream->print(
|
507
|
-
stream->print(
|
506
|
+
stream->print(ESPHOME_F("#TYPE esphome_text_sensor_value gauge\n"));
|
507
|
+
stream->print(ESPHOME_F("#TYPE esphome_text_sensor_failed gauge\n"));
|
508
508
|
}
|
509
509
|
void PrometheusHandler::text_sensor_row_(AsyncResponseStream *stream, text_sensor::TextSensor *obj, std::string &area,
|
510
510
|
std::string &node, std::string &friendly_name) {
|
@@ -512,37 +512,37 @@ void PrometheusHandler::text_sensor_row_(AsyncResponseStream *stream, text_senso
|
|
512
512
|
return;
|
513
513
|
if (obj->has_state()) {
|
514
514
|
// We have a valid value, output this value
|
515
|
-
stream->print(
|
515
|
+
stream->print(ESPHOME_F("esphome_text_sensor_failed{id=\""));
|
516
516
|
stream->print(relabel_id_(obj).c_str());
|
517
517
|
add_area_label_(stream, area);
|
518
518
|
add_node_label_(stream, node);
|
519
519
|
add_friendly_name_label_(stream, friendly_name);
|
520
|
-
stream->print(
|
520
|
+
stream->print(ESPHOME_F("\",name=\""));
|
521
521
|
stream->print(relabel_name_(obj).c_str());
|
522
|
-
stream->print(
|
522
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
523
523
|
// Data itself
|
524
|
-
stream->print(
|
524
|
+
stream->print(ESPHOME_F("esphome_text_sensor_value{id=\""));
|
525
525
|
stream->print(relabel_id_(obj).c_str());
|
526
526
|
add_area_label_(stream, area);
|
527
527
|
add_node_label_(stream, node);
|
528
528
|
add_friendly_name_label_(stream, friendly_name);
|
529
|
-
stream->print(
|
529
|
+
stream->print(ESPHOME_F("\",name=\""));
|
530
530
|
stream->print(relabel_name_(obj).c_str());
|
531
|
-
stream->print(
|
531
|
+
stream->print(ESPHOME_F("\",value=\""));
|
532
532
|
stream->print(obj->state.c_str());
|
533
|
-
stream->print(
|
534
|
-
stream->print(
|
535
|
-
stream->print(
|
533
|
+
stream->print(ESPHOME_F("\"} "));
|
534
|
+
stream->print(ESPHOME_F("1.0"));
|
535
|
+
stream->print(ESPHOME_F("\n"));
|
536
536
|
} else {
|
537
537
|
// Invalid state
|
538
|
-
stream->print(
|
538
|
+
stream->print(ESPHOME_F("esphome_text_sensor_failed{id=\""));
|
539
539
|
stream->print(relabel_id_(obj).c_str());
|
540
540
|
add_area_label_(stream, area);
|
541
541
|
add_node_label_(stream, node);
|
542
542
|
add_friendly_name_label_(stream, friendly_name);
|
543
|
-
stream->print(
|
543
|
+
stream->print(ESPHOME_F("\",name=\""));
|
544
544
|
stream->print(relabel_name_(obj).c_str());
|
545
|
-
stream->print(
|
545
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
546
546
|
}
|
547
547
|
}
|
548
548
|
#endif
|
@@ -550,8 +550,8 @@ void PrometheusHandler::text_sensor_row_(AsyncResponseStream *stream, text_senso
|
|
550
550
|
// Type-specific implementation
|
551
551
|
#ifdef USE_NUMBER
|
552
552
|
void PrometheusHandler::number_type_(AsyncResponseStream *stream) {
|
553
|
-
stream->print(
|
554
|
-
stream->print(
|
553
|
+
stream->print(ESPHOME_F("#TYPE esphome_number_value gauge\n"));
|
554
|
+
stream->print(ESPHOME_F("#TYPE esphome_number_failed gauge\n"));
|
555
555
|
}
|
556
556
|
void PrometheusHandler::number_row_(AsyncResponseStream *stream, number::Number *obj, std::string &area,
|
557
557
|
std::string &node, std::string &friendly_name) {
|
@@ -559,43 +559,43 @@ void PrometheusHandler::number_row_(AsyncResponseStream *stream, number::Number
|
|
559
559
|
return;
|
560
560
|
if (!std::isnan(obj->state)) {
|
561
561
|
// We have a valid value, output this value
|
562
|
-
stream->print(
|
562
|
+
stream->print(ESPHOME_F("esphome_number_failed{id=\""));
|
563
563
|
stream->print(relabel_id_(obj).c_str());
|
564
564
|
add_area_label_(stream, area);
|
565
565
|
add_node_label_(stream, node);
|
566
566
|
add_friendly_name_label_(stream, friendly_name);
|
567
|
-
stream->print(
|
567
|
+
stream->print(ESPHOME_F("\",name=\""));
|
568
568
|
stream->print(relabel_name_(obj).c_str());
|
569
|
-
stream->print(
|
569
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
570
570
|
// Data itself
|
571
|
-
stream->print(
|
571
|
+
stream->print(ESPHOME_F("esphome_number_value{id=\""));
|
572
572
|
stream->print(relabel_id_(obj).c_str());
|
573
573
|
add_area_label_(stream, area);
|
574
574
|
add_node_label_(stream, node);
|
575
575
|
add_friendly_name_label_(stream, friendly_name);
|
576
|
-
stream->print(
|
576
|
+
stream->print(ESPHOME_F("\",name=\""));
|
577
577
|
stream->print(relabel_name_(obj).c_str());
|
578
|
-
stream->print(
|
578
|
+
stream->print(ESPHOME_F("\"} "));
|
579
579
|
stream->print(obj->state);
|
580
|
-
stream->print(
|
580
|
+
stream->print(ESPHOME_F("\n"));
|
581
581
|
} else {
|
582
582
|
// Invalid state
|
583
|
-
stream->print(
|
583
|
+
stream->print(ESPHOME_F("esphome_number_failed{id=\""));
|
584
584
|
stream->print(relabel_id_(obj).c_str());
|
585
585
|
add_area_label_(stream, area);
|
586
586
|
add_node_label_(stream, node);
|
587
587
|
add_friendly_name_label_(stream, friendly_name);
|
588
|
-
stream->print(
|
588
|
+
stream->print(ESPHOME_F("\",name=\""));
|
589
589
|
stream->print(relabel_name_(obj).c_str());
|
590
|
-
stream->print(
|
590
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
591
591
|
}
|
592
592
|
}
|
593
593
|
#endif
|
594
594
|
|
595
595
|
#ifdef USE_SELECT
|
596
596
|
void PrometheusHandler::select_type_(AsyncResponseStream *stream) {
|
597
|
-
stream->print(
|
598
|
-
stream->print(
|
597
|
+
stream->print(ESPHOME_F("#TYPE esphome_select_value gauge\n"));
|
598
|
+
stream->print(ESPHOME_F("#TYPE esphome_select_failed gauge\n"));
|
599
599
|
}
|
600
600
|
void PrometheusHandler::select_row_(AsyncResponseStream *stream, select::Select *obj, std::string &area,
|
601
601
|
std::string &node, std::string &friendly_name) {
|
@@ -603,105 +603,105 @@ void PrometheusHandler::select_row_(AsyncResponseStream *stream, select::Select
|
|
603
603
|
return;
|
604
604
|
if (obj->has_state()) {
|
605
605
|
// We have a valid value, output this value
|
606
|
-
stream->print(
|
606
|
+
stream->print(ESPHOME_F("esphome_select_failed{id=\""));
|
607
607
|
stream->print(relabel_id_(obj).c_str());
|
608
608
|
add_area_label_(stream, area);
|
609
609
|
add_node_label_(stream, node);
|
610
610
|
add_friendly_name_label_(stream, friendly_name);
|
611
|
-
stream->print(
|
611
|
+
stream->print(ESPHOME_F("\",name=\""));
|
612
612
|
stream->print(relabel_name_(obj).c_str());
|
613
|
-
stream->print(
|
613
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
614
614
|
// Data itself
|
615
|
-
stream->print(
|
615
|
+
stream->print(ESPHOME_F("esphome_select_value{id=\""));
|
616
616
|
stream->print(relabel_id_(obj).c_str());
|
617
617
|
add_area_label_(stream, area);
|
618
618
|
add_node_label_(stream, node);
|
619
619
|
add_friendly_name_label_(stream, friendly_name);
|
620
|
-
stream->print(
|
620
|
+
stream->print(ESPHOME_F("\",name=\""));
|
621
621
|
stream->print(relabel_name_(obj).c_str());
|
622
|
-
stream->print(
|
622
|
+
stream->print(ESPHOME_F("\",value=\""));
|
623
623
|
stream->print(obj->state.c_str());
|
624
|
-
stream->print(
|
625
|
-
stream->print(
|
626
|
-
stream->print(
|
624
|
+
stream->print(ESPHOME_F("\"} "));
|
625
|
+
stream->print(ESPHOME_F("1.0"));
|
626
|
+
stream->print(ESPHOME_F("\n"));
|
627
627
|
} else {
|
628
628
|
// Invalid state
|
629
|
-
stream->print(
|
629
|
+
stream->print(ESPHOME_F("esphome_select_failed{id=\""));
|
630
630
|
stream->print(relabel_id_(obj).c_str());
|
631
631
|
add_area_label_(stream, area);
|
632
632
|
add_node_label_(stream, node);
|
633
633
|
add_friendly_name_label_(stream, friendly_name);
|
634
|
-
stream->print(
|
634
|
+
stream->print(ESPHOME_F("\",name=\""));
|
635
635
|
stream->print(relabel_name_(obj).c_str());
|
636
|
-
stream->print(
|
636
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
637
637
|
}
|
638
638
|
}
|
639
639
|
#endif
|
640
640
|
|
641
641
|
#ifdef USE_MEDIA_PLAYER
|
642
642
|
void PrometheusHandler::media_player_type_(AsyncResponseStream *stream) {
|
643
|
-
stream->print(
|
644
|
-
stream->print(
|
645
|
-
stream->print(
|
646
|
-
stream->print(
|
643
|
+
stream->print(ESPHOME_F("#TYPE esphome_media_player_state_value gauge\n"));
|
644
|
+
stream->print(ESPHOME_F("#TYPE esphome_media_player_volume gauge\n"));
|
645
|
+
stream->print(ESPHOME_F("#TYPE esphome_media_player_is_muted gauge\n"));
|
646
|
+
stream->print(ESPHOME_F("#TYPE esphome_media_player_failed gauge\n"));
|
647
647
|
}
|
648
648
|
void PrometheusHandler::media_player_row_(AsyncResponseStream *stream, media_player::MediaPlayer *obj,
|
649
649
|
std::string &area, std::string &node, std::string &friendly_name) {
|
650
650
|
if (obj->is_internal() && !this->include_internal_)
|
651
651
|
return;
|
652
|
-
stream->print(
|
652
|
+
stream->print(ESPHOME_F("esphome_media_player_failed{id=\""));
|
653
653
|
stream->print(relabel_id_(obj).c_str());
|
654
654
|
add_area_label_(stream, area);
|
655
655
|
add_node_label_(stream, node);
|
656
656
|
add_friendly_name_label_(stream, friendly_name);
|
657
|
-
stream->print(
|
657
|
+
stream->print(ESPHOME_F("\",name=\""));
|
658
658
|
stream->print(relabel_name_(obj).c_str());
|
659
|
-
stream->print(
|
659
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
660
660
|
// Data itself
|
661
|
-
stream->print(
|
661
|
+
stream->print(ESPHOME_F("esphome_media_player_state_value{id=\""));
|
662
662
|
stream->print(relabel_id_(obj).c_str());
|
663
663
|
add_area_label_(stream, area);
|
664
664
|
add_node_label_(stream, node);
|
665
665
|
add_friendly_name_label_(stream, friendly_name);
|
666
|
-
stream->print(
|
666
|
+
stream->print(ESPHOME_F("\",name=\""));
|
667
667
|
stream->print(relabel_name_(obj).c_str());
|
668
|
-
stream->print(
|
668
|
+
stream->print(ESPHOME_F("\",value=\""));
|
669
669
|
stream->print(media_player::media_player_state_to_string(obj->state));
|
670
|
-
stream->print(
|
671
|
-
stream->print(
|
672
|
-
stream->print(
|
673
|
-
stream->print(
|
670
|
+
stream->print(ESPHOME_F("\"} "));
|
671
|
+
stream->print(ESPHOME_F("1.0"));
|
672
|
+
stream->print(ESPHOME_F("\n"));
|
673
|
+
stream->print(ESPHOME_F("esphome_media_player_volume{id=\""));
|
674
674
|
stream->print(relabel_id_(obj).c_str());
|
675
675
|
add_area_label_(stream, area);
|
676
676
|
add_node_label_(stream, node);
|
677
677
|
add_friendly_name_label_(stream, friendly_name);
|
678
|
-
stream->print(
|
678
|
+
stream->print(ESPHOME_F("\",name=\""));
|
679
679
|
stream->print(relabel_name_(obj).c_str());
|
680
|
-
stream->print(
|
680
|
+
stream->print(ESPHOME_F("\"} "));
|
681
681
|
stream->print(obj->volume);
|
682
|
-
stream->print(
|
683
|
-
stream->print(
|
682
|
+
stream->print(ESPHOME_F("\n"));
|
683
|
+
stream->print(ESPHOME_F("esphome_media_player_is_muted{id=\""));
|
684
684
|
stream->print(relabel_id_(obj).c_str());
|
685
685
|
add_area_label_(stream, area);
|
686
686
|
add_node_label_(stream, node);
|
687
687
|
add_friendly_name_label_(stream, friendly_name);
|
688
|
-
stream->print(
|
688
|
+
stream->print(ESPHOME_F("\",name=\""));
|
689
689
|
stream->print(relabel_name_(obj).c_str());
|
690
|
-
stream->print(
|
690
|
+
stream->print(ESPHOME_F("\"} "));
|
691
691
|
if (obj->is_muted()) {
|
692
|
-
stream->print(
|
692
|
+
stream->print(ESPHOME_F("1.0"));
|
693
693
|
} else {
|
694
|
-
stream->print(
|
694
|
+
stream->print(ESPHOME_F("0.0"));
|
695
695
|
}
|
696
|
-
stream->print(
|
696
|
+
stream->print(ESPHOME_F("\n"));
|
697
697
|
}
|
698
698
|
#endif
|
699
699
|
|
700
700
|
#ifdef USE_UPDATE
|
701
701
|
void PrometheusHandler::update_entity_type_(AsyncResponseStream *stream) {
|
702
|
-
stream->print(
|
703
|
-
stream->print(
|
704
|
-
stream->print(
|
702
|
+
stream->print(ESPHOME_F("#TYPE esphome_update_entity_state gauge\n"));
|
703
|
+
stream->print(ESPHOME_F("#TYPE esphome_update_entity_info gauge\n"));
|
704
|
+
stream->print(ESPHOME_F("#TYPE esphome_update_entity_failed gauge\n"));
|
705
705
|
}
|
706
706
|
|
707
707
|
void PrometheusHandler::handle_update_state_(AsyncResponseStream *stream, update::UpdateState state) {
|
@@ -730,168 +730,168 @@ void PrometheusHandler::update_entity_row_(AsyncResponseStream *stream, update::
|
|
730
730
|
return;
|
731
731
|
if (obj->has_state()) {
|
732
732
|
// We have a valid value, output this value
|
733
|
-
stream->print(
|
733
|
+
stream->print(ESPHOME_F("esphome_update_entity_failed{id=\""));
|
734
734
|
stream->print(relabel_id_(obj).c_str());
|
735
735
|
add_area_label_(stream, area);
|
736
736
|
add_node_label_(stream, node);
|
737
737
|
add_friendly_name_label_(stream, friendly_name);
|
738
|
-
stream->print(
|
738
|
+
stream->print(ESPHOME_F("\",name=\""));
|
739
739
|
stream->print(relabel_name_(obj).c_str());
|
740
|
-
stream->print(
|
740
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
741
741
|
// First update state
|
742
|
-
stream->print(
|
742
|
+
stream->print(ESPHOME_F("esphome_update_entity_state{id=\""));
|
743
743
|
stream->print(relabel_id_(obj).c_str());
|
744
744
|
add_area_label_(stream, area);
|
745
745
|
add_node_label_(stream, node);
|
746
746
|
add_friendly_name_label_(stream, friendly_name);
|
747
|
-
stream->print(
|
747
|
+
stream->print(ESPHOME_F("\",name=\""));
|
748
748
|
stream->print(relabel_name_(obj).c_str());
|
749
|
-
stream->print(
|
749
|
+
stream->print(ESPHOME_F("\",value=\""));
|
750
750
|
handle_update_state_(stream, obj->state);
|
751
|
-
stream->print(
|
752
|
-
stream->print(
|
753
|
-
stream->print(
|
751
|
+
stream->print(ESPHOME_F("\"} "));
|
752
|
+
stream->print(ESPHOME_F("1.0"));
|
753
|
+
stream->print(ESPHOME_F("\n"));
|
754
754
|
// Next update info
|
755
|
-
stream->print(
|
755
|
+
stream->print(ESPHOME_F("esphome_update_entity_info{id=\""));
|
756
756
|
stream->print(relabel_id_(obj).c_str());
|
757
757
|
add_area_label_(stream, area);
|
758
758
|
add_node_label_(stream, node);
|
759
759
|
add_friendly_name_label_(stream, friendly_name);
|
760
|
-
stream->print(
|
760
|
+
stream->print(ESPHOME_F("\",name=\""));
|
761
761
|
stream->print(relabel_name_(obj).c_str());
|
762
|
-
stream->print(
|
762
|
+
stream->print(ESPHOME_F("\",current_version=\""));
|
763
763
|
stream->print(obj->update_info.current_version.c_str());
|
764
|
-
stream->print(
|
764
|
+
stream->print(ESPHOME_F("\",latest_version=\""));
|
765
765
|
stream->print(obj->update_info.latest_version.c_str());
|
766
|
-
stream->print(
|
766
|
+
stream->print(ESPHOME_F("\",title=\""));
|
767
767
|
stream->print(obj->update_info.title.c_str());
|
768
|
-
stream->print(
|
769
|
-
stream->print(
|
770
|
-
stream->print(
|
768
|
+
stream->print(ESPHOME_F("\"} "));
|
769
|
+
stream->print(ESPHOME_F("1.0"));
|
770
|
+
stream->print(ESPHOME_F("\n"));
|
771
771
|
} else {
|
772
772
|
// Invalid state
|
773
|
-
stream->print(
|
773
|
+
stream->print(ESPHOME_F("esphome_update_entity_failed{id=\""));
|
774
774
|
stream->print(relabel_id_(obj).c_str());
|
775
775
|
add_area_label_(stream, area);
|
776
776
|
add_node_label_(stream, node);
|
777
777
|
add_friendly_name_label_(stream, friendly_name);
|
778
|
-
stream->print(
|
778
|
+
stream->print(ESPHOME_F("\",name=\""));
|
779
779
|
stream->print(relabel_name_(obj).c_str());
|
780
|
-
stream->print(
|
780
|
+
stream->print(ESPHOME_F("\"} 1\n"));
|
781
781
|
}
|
782
782
|
}
|
783
783
|
#endif
|
784
784
|
|
785
785
|
#ifdef USE_VALVE
|
786
786
|
void PrometheusHandler::valve_type_(AsyncResponseStream *stream) {
|
787
|
-
stream->print(
|
788
|
-
stream->print(
|
789
|
-
stream->print(
|
787
|
+
stream->print(ESPHOME_F("#TYPE esphome_valve_operation gauge\n"));
|
788
|
+
stream->print(ESPHOME_F("#TYPE esphome_valve_failed gauge\n"));
|
789
|
+
stream->print(ESPHOME_F("#TYPE esphome_valve_position gauge\n"));
|
790
790
|
}
|
791
791
|
|
792
792
|
void PrometheusHandler::valve_row_(AsyncResponseStream *stream, valve::Valve *obj, std::string &area, std::string &node,
|
793
793
|
std::string &friendly_name) {
|
794
794
|
if (obj->is_internal() && !this->include_internal_)
|
795
795
|
return;
|
796
|
-
stream->print(
|
796
|
+
stream->print(ESPHOME_F("esphome_valve_failed{id=\""));
|
797
797
|
stream->print(relabel_id_(obj).c_str());
|
798
798
|
add_area_label_(stream, area);
|
799
799
|
add_node_label_(stream, node);
|
800
800
|
add_friendly_name_label_(stream, friendly_name);
|
801
|
-
stream->print(
|
801
|
+
stream->print(ESPHOME_F("\",name=\""));
|
802
802
|
stream->print(relabel_name_(obj).c_str());
|
803
|
-
stream->print(
|
803
|
+
stream->print(ESPHOME_F("\"} 0\n"));
|
804
804
|
// Data itself
|
805
|
-
stream->print(
|
805
|
+
stream->print(ESPHOME_F("esphome_valve_operation{id=\""));
|
806
806
|
stream->print(relabel_id_(obj).c_str());
|
807
807
|
add_area_label_(stream, area);
|
808
808
|
add_node_label_(stream, node);
|
809
809
|
add_friendly_name_label_(stream, friendly_name);
|
810
|
-
stream->print(
|
810
|
+
stream->print(ESPHOME_F("\",name=\""));
|
811
811
|
stream->print(relabel_name_(obj).c_str());
|
812
|
-
stream->print(
|
812
|
+
stream->print(ESPHOME_F("\",operation=\""));
|
813
813
|
stream->print(valve::valve_operation_to_str(obj->current_operation));
|
814
|
-
stream->print(
|
815
|
-
stream->print(
|
816
|
-
stream->print(
|
814
|
+
stream->print(ESPHOME_F("\"} "));
|
815
|
+
stream->print(ESPHOME_F("1.0"));
|
816
|
+
stream->print(ESPHOME_F("\n"));
|
817
817
|
// Now see if position is supported
|
818
818
|
if (obj->get_traits().get_supports_position()) {
|
819
|
-
stream->print(
|
819
|
+
stream->print(ESPHOME_F("esphome_valve_position{id=\""));
|
820
820
|
stream->print(relabel_id_(obj).c_str());
|
821
821
|
add_area_label_(stream, area);
|
822
822
|
add_node_label_(stream, node);
|
823
823
|
add_friendly_name_label_(stream, friendly_name);
|
824
|
-
stream->print(
|
824
|
+
stream->print(ESPHOME_F("\",name=\""));
|
825
825
|
stream->print(relabel_name_(obj).c_str());
|
826
|
-
stream->print(
|
826
|
+
stream->print(ESPHOME_F("\"} "));
|
827
827
|
stream->print(obj->position);
|
828
|
-
stream->print(
|
828
|
+
stream->print(ESPHOME_F("\n"));
|
829
829
|
}
|
830
830
|
}
|
831
831
|
#endif
|
832
832
|
|
833
833
|
#ifdef USE_CLIMATE
|
834
834
|
void PrometheusHandler::climate_type_(AsyncResponseStream *stream) {
|
835
|
-
stream->print(
|
836
|
-
stream->print(
|
837
|
-
stream->print(
|
835
|
+
stream->print(ESPHOME_F("#TYPE esphome_climate_setting gauge\n"));
|
836
|
+
stream->print(ESPHOME_F("#TYPE esphome_climate_value gauge\n"));
|
837
|
+
stream->print(ESPHOME_F("#TYPE esphome_climate_failed gauge\n"));
|
838
838
|
}
|
839
839
|
|
840
840
|
void PrometheusHandler::climate_setting_row_(AsyncResponseStream *stream, climate::Climate *obj, std::string &area,
|
841
841
|
std::string &node, std::string &friendly_name, std::string &setting,
|
842
842
|
const LogString *setting_value) {
|
843
|
-
stream->print(
|
843
|
+
stream->print(ESPHOME_F("esphome_climate_setting{id=\""));
|
844
844
|
stream->print(relabel_id_(obj).c_str());
|
845
845
|
add_area_label_(stream, area);
|
846
846
|
add_node_label_(stream, node);
|
847
847
|
add_friendly_name_label_(stream, friendly_name);
|
848
|
-
stream->print(
|
848
|
+
stream->print(ESPHOME_F("\",name=\""));
|
849
849
|
stream->print(relabel_name_(obj).c_str());
|
850
|
-
stream->print(
|
850
|
+
stream->print(ESPHOME_F("\",category=\""));
|
851
851
|
stream->print(setting.c_str());
|
852
|
-
stream->print(
|
852
|
+
stream->print(ESPHOME_F("\",setting_value=\""));
|
853
853
|
stream->print(LOG_STR_ARG(setting_value));
|
854
|
-
stream->print(
|
855
|
-
stream->print(
|
856
|
-
stream->print(
|
854
|
+
stream->print(ESPHOME_F("\"} "));
|
855
|
+
stream->print(ESPHOME_F("1.0"));
|
856
|
+
stream->print(ESPHOME_F("\n"));
|
857
857
|
}
|
858
858
|
|
859
859
|
void PrometheusHandler::climate_value_row_(AsyncResponseStream *stream, climate::Climate *obj, std::string &area,
|
860
860
|
std::string &node, std::string &friendly_name, std::string &category,
|
861
861
|
std::string &climate_value) {
|
862
|
-
stream->print(
|
862
|
+
stream->print(ESPHOME_F("esphome_climate_value{id=\""));
|
863
863
|
stream->print(relabel_id_(obj).c_str());
|
864
864
|
add_area_label_(stream, area);
|
865
865
|
add_node_label_(stream, node);
|
866
866
|
add_friendly_name_label_(stream, friendly_name);
|
867
|
-
stream->print(
|
867
|
+
stream->print(ESPHOME_F("\",name=\""));
|
868
868
|
stream->print(relabel_name_(obj).c_str());
|
869
|
-
stream->print(
|
869
|
+
stream->print(ESPHOME_F("\",category=\""));
|
870
870
|
stream->print(category.c_str());
|
871
|
-
stream->print(
|
871
|
+
stream->print(ESPHOME_F("\"} "));
|
872
872
|
stream->print(climate_value.c_str());
|
873
|
-
stream->print(
|
873
|
+
stream->print(ESPHOME_F("\n"));
|
874
874
|
}
|
875
875
|
|
876
876
|
void PrometheusHandler::climate_failed_row_(AsyncResponseStream *stream, climate::Climate *obj, std::string &area,
|
877
877
|
std::string &node, std::string &friendly_name, std::string &category,
|
878
878
|
bool is_failed_value) {
|
879
|
-
stream->print(
|
879
|
+
stream->print(ESPHOME_F("esphome_climate_failed{id=\""));
|
880
880
|
stream->print(relabel_id_(obj).c_str());
|
881
881
|
add_area_label_(stream, area);
|
882
882
|
add_node_label_(stream, node);
|
883
883
|
add_friendly_name_label_(stream, friendly_name);
|
884
|
-
stream->print(
|
884
|
+
stream->print(ESPHOME_F("\",name=\""));
|
885
885
|
stream->print(relabel_name_(obj).c_str());
|
886
|
-
stream->print(
|
886
|
+
stream->print(ESPHOME_F("\",category=\""));
|
887
887
|
stream->print(category.c_str());
|
888
|
-
stream->print(
|
888
|
+
stream->print(ESPHOME_F("\"} "));
|
889
889
|
if (is_failed_value) {
|
890
|
-
stream->print(
|
890
|
+
stream->print(ESPHOME_F("1.0"));
|
891
891
|
} else {
|
892
|
-
stream->print(
|
892
|
+
stream->print(ESPHOME_F("0.0"));
|
893
893
|
}
|
894
|
-
stream->print(
|
894
|
+
stream->print(ESPHOME_F("\n"));
|
895
895
|
}
|
896
896
|
|
897
897
|
void PrometheusHandler::climate_row_(AsyncResponseStream *stream, climate::Climate *obj, std::string &area,
|