import re

with open('/home/crogers2287/hoymiles-interceptor/server.py', 'r') as f:
    content = f.read()

old = '''            publish_metrics = {
                "power_w":        m.get("ac_power_ext") or m.get("ac_power", 0),
                "ac_voltage_v":   m.get("ac_voltage", 0),
                "ac_current_a":   m.get("ac_current", 0),
                "ac_freq_hz":     m.get("ac_frequency", 0),
                "pv1_voltage_v":  m.get("pv1_voltage", 0),
                "pv1_current_a":  m.get("pv1_current", 0),
                "pv1_power_w":    m.get("pv1_power", 0),
                "energy_today_wh": m.get("energy_today_wh", 0),
                "energy_total_wh": m.get("energy_total_wh", 0),
                "energy_today_kwh": round(m.get("energy_today_wh", 0) / 1000, 3),
                "temperature_c":  m.get("temperature", 0),
                "status":         m.get("status", 0),
                "battery_soc_pct":    m.get("battery_soc", 0),
                "battery_voltage_v":   m.get("battery_voltage", 0),
                "battery_current_a":   m.get("battery_current", 0),
            }
            mqtt_publish(publish_metrics)'''

new = '''            publish_metrics = {
                "power_w":        m.get("ac_power_ext") or m.get("ac_power", 0),
                "ac_voltage_v":   m.get("ac_voltage", 0),
                "ac_current_a":   m.get("ac_current", 0),
                "ac_freq_hz":     m.get("ac_frequency", 0),
                "pv1_voltage_v":  m.get("pv1_voltage", 0),
                "pv1_current_a":  m.get("pv1_current", 0),
                "pv1_power_w":    m.get("pv1_power", 0),
                "energy_today_wh": m.get("energy_today_wh", 0),
                "energy_total_wh": m.get("energy_total_wh", 0),
                "energy_today_kwh": round(m.get("energy_today_wh", 0) / 1000, 3),
                "temperature_c":  m.get("temperature", 0),
                "status":         m.get("status", 0),
            }
            # Only publish battery fields when we have a valid detection (don\'t overwrite with zeros)
            if m.get("battery_voltage", 0) > 0:
                publish_metrics["battery_soc_pct"]    = m.get("battery_soc", 0)
                publish_metrics["battery_voltage_v"]  = m.get("battery_voltage", 0)
                publish_metrics["battery_current_a"]  = m.get("battery_current", 0)
            mqtt_publish(publish_metrics)'''

if old in content:
    content = content.replace(old, new)
    with open('/home/crogers2287/hoymiles-interceptor/server.py', 'w') as f:
        f.write(content)
    print("patched OK")
else:
    print("NOT FOUND - check manually")
    print(repr(old[:100]))
