@@ -2156,6 +2156,56 @@ esp_err_t add(endpoint_t *endpoint, config_t *config)
2156
2156
}
2157
2157
} /* battery_storage */
2158
2158
2159
+ namespace heat_pump {
2160
+ uint32_t get_device_type_id ()
2161
+ {
2162
+ return ESP_MATTER_HEAT_PUMP_DEVICE_TYPE_ID;
2163
+ }
2164
+
2165
+ uint8_t get_device_type_version ()
2166
+ {
2167
+ return ESP_MATTER_HEAT_PUMP_DEVICE_TYPE_VERSION;
2168
+ }
2169
+
2170
+ endpoint_t *create (node_t *node, config_t *config, uint8_t flags, void *priv_data)
2171
+ {
2172
+ return common::create<config_t >(node, config, flags, priv_data, add);
2173
+ }
2174
+
2175
+ esp_err_t add (endpoint_t *endpoint, config_t *config)
2176
+ {
2177
+ VerifyOrReturnError (endpoint != nullptr , ESP_ERR_INVALID_ARG, ESP_LOGE (TAG, " Endpoint cannot be NULL" ));
2178
+ esp_err_t err = add_device_type (endpoint, get_device_type_id (), get_device_type_version ());
2179
+ if (err != ESP_OK) {
2180
+ ESP_LOGE (TAG, " Failed to add device type id:%" PRIu32 " ,err: %d" , get_device_type_id (), err);
2181
+ return err;
2182
+ }
2183
+
2184
+ cluster_t *descriptor_cluster = cluster::get (endpoint, Descriptor::Id);
2185
+ descriptor::feature::taglist::add (descriptor_cluster);
2186
+
2187
+ power_source_device::add (endpoint, &config->power_source_device );
2188
+
2189
+ cluster_t *power_source_cluster = cluster::get (endpoint, PowerSource::Id);
2190
+ power_source::feature::wired::add (power_source_cluster, &config->power_source_device .power_source .wired );
2191
+
2192
+ electrical_sensor::add (endpoint, &config->electrical_sensor );
2193
+
2194
+ cluster_t *elec_power_measurement_cluster = cluster::get (endpoint, ElectricalPowerMeasurement::Id);
2195
+
2196
+ electrical_power_measurement::attribute::create_voltage (elec_power_measurement_cluster, config->voltage );
2197
+ electrical_power_measurement::attribute::create_active_current (elec_power_measurement_cluster, config->active_current );
2198
+
2199
+ electrical_energy_measurement::create (endpoint, &(config->electrical_energy_measurement ), CLUSTER_FLAG_SERVER, electrical_energy_measurement::feature::exported_energy::get_id () | electrical_energy_measurement::feature::cumulative_energy::get_id ());
2200
+
2201
+ device_energy_management::add (endpoint, &config->device_energy_management );
2202
+
2203
+ cluster_t *device_energy_management_cluster = cluster::get (endpoint, DeviceEnergyManagement::Id);
2204
+ cluster::device_energy_management::feature::power_adjustment::add (device_energy_management_cluster);
2205
+ return ESP_OK;
2206
+ }
2207
+ } /* heat_pump */
2208
+
2159
2209
} /* endpoint */
2160
2210
2161
2211
namespace node {
0 commit comments