From 66527c6ac3159394dedad597a0d50fd556e19767 Mon Sep 17 00:00:00 2001 From: Kai Osterbrink Date: Thu, 5 Mar 2026 15:01:18 +0100 Subject: [PATCH] Add local_test.py --- local_test.py | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 local_test.py diff --git a/local_test.py b/local_test.py new file mode 100644 index 0000000..e8d2efb --- /dev/null +++ b/local_test.py @@ -0,0 +1,114 @@ +### This file is used to test the aurora inverter (via TCP) locally without Homeassistant. + +from aurorapy.client import AuroraTCPClient, AuroraError +import json +from datetime import datetime, timedelta + +# Konfiguration +TARGET_IP = "192.168.250.245" +TARGET_PORT = 5000 +INVERTER_ADDRESS = 2 # Slave-ID deines Wechselrichters + +def test_comprehensive_data(): + try: + client = AuroraTCPClient(ip=TARGET_IP, port=TARGET_PORT, address=INVERTER_ADDRESS, timeout=10) + client.connect() + + # Daten abfragen + data = {} + + # 50: State Request + try: + data["state"] = client.state_request() + except AttributeError: + data["state"] = "Methode nicht verfügbar" + + # 58: Version Reading + try: + data["version"] = client.version() + except AttributeError: + data["version"] = "Methode nicht verfügbar" + + # 63: Serial Number Reading + try: + data["serial_number"] = client.serial_number() + except AttributeError: + data["serial_number"] = "Methode nicht verfügbar" + + # 65: Manufacturing Week and Year + try: + data["manufacturing_week_year"] = client.manufacturing_week_year() + except AttributeError: + try: + data["manufacturing_week_year"] = client.manufacturing_date() + except AttributeError: + data["manufacturing_week_year"] = "Methode nicht verfügbar" + + # 68: Cumulated Float Energy Readings + try: + data["daily_energy_float"] = client.cumulated_energy(period=1) + data["week_energy_float"] = client.cumulated_energy(period=2) + data["month_energy_float"] = client.cumulated_energy(period=3) + data["year_energy_float_global"] = client.cumulated_energy(period=4, global_measure=True) + data["total_energy_float_global"] = client.cumulated_energy(period=6, global_measure=True) + except AttributeError: + data["cumulated_float_energy"] = "Methode nicht verfügbar" + + # 70: Time/Date Reading + try: + seconds_since_2000 = client.time_date() + data["time_date"] = (datetime(2000, 1, 1) + timedelta(seconds=seconds_since_2000)).strftime("%Y-%m-%d %H:%M:%S") + except AttributeError: + data["time_date"] = "Methode nicht verfügbar" + + # 72: Firmware Release Reading + try: + data["firmware_micro_release_C"] = client.firmware(3) + except AttributeError: + data["firmware_micro_release_C"] = "Methode nicht verfügbar" + + # 78: Cumulated Energy Readings + try: + data["daily_energy"] = client.cumulated_energy(1) + data["week_energy"] = client.cumulated_energy(2) + data["month_energy"] = client.cumulated_energy(3) + data["year_energy"] = client.cumulated_energy(4) + data["total_energy"] = client.cumulated_energy(5) + except AttributeError: + data["cumulated_energy"] = "Methode nicht verfügbar" + + # 86: Last Four Alarms + try: + data["last_four_alarms"] = client.alarms() + except AttributeError: + data["last_four_alarms"] = "Methode nicht verfügbar" + + # 59: Measure Requests + try: + data["grid_voltage"] = client.measure(1) + data["grid_current"] = client.measure(2) + data["grid_power"] = client.measure(3) + data["frequency"] = client.measure(4) + data["inverter_temperature"] = client.measure(21) + data["booster_temperature"] = client.measure(22) + data["input_1_voltage"] = client.measure(23) + data["input_1_current"] = client.measure(25) + data["isolation_resistance"] = client.measure(30) + except AttributeError: + data["measure_requests"] = "Methode nicht verfügbar" + + client.close() + + # Daten als JSON speichern + with open('comprehensive_data.json', 'w') as f: + json.dump(data, f, indent=4) + + print("Daten erfolgreich in 'comprehensive_data.json' gespeichert.") + + except AuroraError as e: + print(f"Fehler bei der Kommunikation: {str(e)}") + except Exception as e: + print(f"Allgemeiner Fehler: {str(e)}") + +if __name__ == "__main__": + test_comprehensive_data()