diff --git a/esphome/components/emerald_ble/emerald_ble.h b/esphome/components/emerald_ble/emerald_ble.h index 7f3ce6eab2d7..2b068db66e40 100644 --- a/esphome/components/emerald_ble/emerald_ble.h +++ b/esphome/components/emerald_ble/emerald_ble.h @@ -55,7 +55,7 @@ static const uint32_t RETURN_DEVICE_TIME_CMD = 0x0001010304; static const uint8_t standard_update_interval = 30; // seconds static const float kw_to_w_conversion = 1000.0; // conversion ratio - +static const int hr_to_s_conversion = 3600; class Emerald : public esphome::ble_client::BLEClientNode, public Component { // class Emerald : public esphome::ble_client::BLEClientNode, public PollingComponent { @@ -75,7 +75,7 @@ class Emerald : public esphome::ble_client::BLEClientNode, public Component { #endif void set_pulses_per_kwh(uint16_t pulses_per_kwh) { pulses_per_kwh_ = pulses_per_kwh; - pulse_multiplier_ = (standard_update_interval / (pulses_per_kwh / kw_to_w_conversion)); + pulse_multiplier_ = ((hr_to_s_conversion * kw_to_w_conversion) / (standard_update_interval * pulses_per_kwh)); } void set_pairing_code(uint32_t pairing_code) { pairing_code_ = pairing_code; }