Files
Solax/debug.py
Norbert a2006baf04 update
2024-03-01 09:13:14 +01:00

116 lines
3.3 KiB
Python
Executable File

#!/usr/bin/env python3
from solaxx3.rs485 import SolaxX3
solax_items=[
"power_dc1",
"power_dc2",
"battery_capacity",
"radiator_temperature",
"grid_power",
"grid_voltage",
"grid_current",
"pv_voltage_1",
"pv_voltage_2",
"pv_current_1",
"pv_current_2",
"consumption_energy_today",
"feed_in_power",
"energy_to_grid_total",
"feed_in_energy_today",
"consumption_energy_today",
"solar_energy_today",
"battery_power_charge1",
"temperature_battery",
"output_energy_charge_today",
"grid_current_r",
"grid_current_s",
"grid_current_t",
"grid_power_r",
"grid_power_s",
"grid_power_t",
"grid_voltage_r",
"grid_voltage_s",
"grid_voltage_t"
]
openhab_items=[
"Solax_PowerDC1",
"Solax_PowerDC2",
"Solax_BatterySOC",
"Solax_TempRadiator",
"Solax_ACPower",
"Solax_NetworkVoltage",
"Solax_OutputCurrent",
"Solax_PV1Voltage",
"Solax_PV2Voltage",
"Solax_PV1Current",
"Solax_PV2Current",
"Solax_ConsumeFromGridToday",
"Solax_FeedInPower",
"Solax_FeedInTotal",
"Solax_FeedinEnergyToday",
"Solax_HouseConsumption",
"Solax_DailyYield",
"Solax_BatteryPowerCharge",
"Solax_BatteryTemp",
"Solax_BatteryOutputEnergyToday",
"Solax_GridCurrent_1",
"Solax_GridCurrent_2",
"Solax_GridCurrent_3",
"Solax_GridPower_1",
"Solax_GridPower_2",
"Solax_GridPower_3",
"Solax_GridVoltage_1",
"Solax_GridVoltage_2",
"Solax_GridVoltage_3"
]
# adjust the serial port and baud rate as necessary
s = SolaxX3(port="/dev/ttyUSB0", baudrate=19200)
data =[]
if s.connect():
s.read_all_registers()
available_stats = s.list_register_names()
for stat in available_stats:
print(stat + " " + str(s.read(stat)[0]))
battery_capacity = s.read("battery_capacity")[0]
feed_in_today = s.read("feed_in_energy_today")[0]
consumtion_today = s.read("consumption_energy_today")[0]
battery_charging = s.read("battery_power_charge1")[0]
grid_voltage_r = s.read("grid_voltage_r")[0]
grid_voltage_s = s.read("grid_voltage_s")[0]
grid_voltage_t = s.read("grid_voltage_t")[0]
run_mode = s.read("run_mode")[0]
time_count_down = s.read("time_count_down")[0]
inverter_ac_power = s.read("grid_power")[0]
etoday_togrid = s.read("energy_to_grid_today")[0]
solar_energy_today = s.read("solar_energy_today")[0]
echarge_today = s.read("echarge_today")[0]
energy_from_grid = s.read("energy_from_grid_meter")[0]
energy_to_grid = s.read("energy_to_grid_meter")[0]
power_to_ev = s.read("power_to_ev")[0]
feed_in_power = s.read("feed_in_power")[0]
output_energy_charge = s.read("output_energy_charge")[0]
output_energy_today = s.read("output_energy_charge_today")[0]
input_energy_today = s.read("input_energy_charge_today")[0]
power_dc1 = s.read("power_dc1")[0]
power_dc2 = s.read("power_dc2")[0]
total_power = power_dc1 + power_dc2
#battery_temperature = s.read("temperature_battery")
#print(f"\n\nBattery temperature: {s.read('temperature_battery')}")
# for i, item in enumerate(solax_items):
# print (item + " " + str(s.read(item)[0]) + str(s.read(item)[1])+ " " + openhab_items[i])
# for i, item in enumerate(solax_items):
# try:
# act_item=items.get(openhab_items[i])
# act_item.state=float(s.read(item)[0])
# data += [openhab_items[i]+" value="+str(s.read(item)[0])]
# except:
# print("error in" + openhab_items[i] + " " + item )
else:
print("Cannot connect to the Modbus Server/Slave")
exit()