# Solax2MQTT Scrapes the HTTP endpoint of a Solax X1-Boost G3 with PocketWIFI v3 firmware and pushes the scraped values to an MQTT server. Other inverter models are available but I only have access to this one. Most of the data for this project came from [`squishykid/solax`](https://github.com/squishykid/solax). Configuration is currently done by editing the source code and recompiling. PocketWIFI is dreadfully insecure. Use Modbus-RTU or, at the very least, a PocketLAN, if you can. I'll be switching as soon as I'm able to. The PocketWIFI squirts MQTTS to their cloud servers, but they don't verify TLS so it can be trivially intercepted. However, the messages are in a useless (to me) binary format. Once the metrics are in MQTT, they can be sent to prometheus using [`mqtt2prometheus`](https://github.com/hikhvar/mqtt2prometheus): ```yaml --- # Remaining mqtt2prometheus options... json_parsing: separator: . metrics: - prom_name: inverter_ac_volts mqtt_name: inverter.ac_net_voltage_volts help: AC voltage measured by the inverter type: gauge - prom_name: inverter_ac_output_amps mqtt_name: inverter.ac_out_current_amps help: Inverter AC current type: gauge - prom_name: inverter_ac_output_watts mqtt_name: inverter.ac_out_power_watts help: Inverter AC power type: gauge - prom_name: inverter_pv1_volts mqtt_name: inverter.pv1_voltage_volts help: String 1 voltage type: gauge - prom_name: inverter_pv1_amps mqtt_name: inverter.pv1_current_amps help: String 1 current type: gauge - prom_name: inverter_pv1_watts mqtt_name: inverter.pv1_power_watts help: String 1 power type: gauge - prom_name: inverter_ac_hz mqtt_name: inverter.ac_net_frequency_hz help: AC frequency measured by the inverter type: gauge - prom_name: inverter_status mqtt_name: inverter.status help: Inverter status type: gauge - prom_name: inverter_generated_kwh_total mqtt_name: inverter.energy_generated_kwh_total help: KWh generated to date type: counter - prom_name: inverter_generated_kwh_today mqtt_name: inverter.energy_generated_kwh_today help: KWh generated today type: gauge - prom_name: inverter_external_temperature_kelvin mqtt_name: inverter.temp_external_kelvin help: Temperature measured from the outside of the inverter type: gauge - prom_name: inverter_internal_temperature_kelvin mqtt_name: inverter.temp_internal_kelvin help: Temperature measured from the inside of the inverter type: gauge - prom_name: inverter_runtime_hours_total mqtt_name: inverter.runtime_hours help: Inverter runtime type: counter ```