mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-21 10:15:04 +02:00
Enhanced MQTT support with separate topics and multipliers (#173)
- Add separate MQTT topics for power, energy, and state monitoring - mqtt_power_topic, mqtt_power_path, mqtt_power_multiplier - mqtt_energy_topic, mqtt_energy_path, mqtt_energy_multiplier - mqtt_state_topic, mqtt_state_path, mqtt_state_on_value - Support different MQTT topics per data type (e.g., Zigbee2MQTT with separate power/energy/state topics) - Individual multipliers for power and energy (e.g., mW→W, Wh→kWh) - Configurable ON value for state monitoring (e.g., "ON", "true", "1") - Maintain backward compatibility with legacy mqtt_topic/mqtt_multiplier - Database migration auto-copies legacy fields to new fields - Update backup/restore to handle new MQTT fields - Add backend tests for new MQTT configurations - Update frontend form with organized Power/Energy/State sections Closes #173
This commit is contained in:
@@ -315,9 +315,19 @@ def smart_plug_factory(db_session):
|
||||
defaults["ha_entity_id"] = "switch.test"
|
||||
defaults["ip_address"] = None
|
||||
elif plug_type == "mqtt":
|
||||
# Legacy fields (for backward compatibility tests)
|
||||
defaults["mqtt_topic"] = kwargs.get("mqtt_topic", "test/topic")
|
||||
defaults["mqtt_power_path"] = kwargs.get("mqtt_power_path", "power")
|
||||
defaults["mqtt_multiplier"] = kwargs.get("mqtt_multiplier", 1.0)
|
||||
# New separate topic/path/multiplier fields
|
||||
defaults["mqtt_power_topic"] = kwargs.get("mqtt_power_topic")
|
||||
defaults["mqtt_power_path"] = kwargs.get("mqtt_power_path", "power")
|
||||
defaults["mqtt_power_multiplier"] = kwargs.get("mqtt_power_multiplier", 1.0)
|
||||
defaults["mqtt_energy_topic"] = kwargs.get("mqtt_energy_topic")
|
||||
defaults["mqtt_energy_path"] = kwargs.get("mqtt_energy_path")
|
||||
defaults["mqtt_energy_multiplier"] = kwargs.get("mqtt_energy_multiplier", 1.0)
|
||||
defaults["mqtt_state_topic"] = kwargs.get("mqtt_state_topic")
|
||||
defaults["mqtt_state_path"] = kwargs.get("mqtt_state_path")
|
||||
defaults["mqtt_state_on_value"] = kwargs.get("mqtt_state_on_value")
|
||||
defaults["ip_address"] = None
|
||||
defaults["ha_entity_id"] = None
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user