[70_ENPHASE.pm] Modul zur Integration Enphase Gateway

Begonnen von Christian83, 17 November 2023, 12:51:36

Vorheriges Thema - Nächstes Thema

Christian83

Hallo,

da nun parallel mehrere das bereits vorhandene Modul einsetzen. Hier nochmal als eigener Beitrag zum Zusammenfassen und Fragen innerhalb eines Threads.

Definition:
define <name> ENPHASE <IPAddr> <username> <serialnum>
username ist die mailadresse im Enlighten System.

Password für Enlighten hinterlegen:
set <name> password <password>
Danach wird bei positiver Erzeugung aller 60 Sekunden sonst aller 300 Sekunden abgefragt. (Kann über Attribut updateinterval geändert werden).


Attribute:

updateinterval - Intervall für automatische Abfragen (dann greift nicht der 60/300 Tag/Nacht Intervall)
updateintervalconsWh - Ab welchem Verbrauch soll anderes Updateintervall benutzt werden
updateintervalconssec - Intervall ab Verbrauch laut updateintervalconsWh
updateintervalprodWh - Ab welcher Produktion soll anderes Updateintervall benutzt werden
updateintervalprodsec - Intervall ab Produktion laut updateintervalprodWh
readingtimevariancesec - Zeitversatz in Sekunden zwischen lokaler Zeit und Gateway (default 15)



Wenn Speicherdaten ausgelesen werden sollen, einmalig:
get <name> StorageData
Dann werden evtl. vorhandene Speicher und deren Daten bei jeder Datenaktualisierung eingelesen.

peterboeckmann

Hallo Christian,

das ist wirklich ein tolles Modul.
Vielen Dank für deinen Einsatz.

Kann es sein, dass beim letzten Update das reading "storageFullPercent" kaputt gegangen ist?
Das wird scheinbar nicht mehr aktualisiert.
Oder hat das einen neuen Namen?

Viele Grüße,
Peter

Christian83

Zitat von: peterboeckmann am 17 November 2023, 16:25:31Hallo Christian,

das ist wirklich ein tolles Modul.
Vielen Dank für deinen Einsatz.

Kann es sein, dass beim letzten Update das reading "storageFullPercent" kaputt gegangen ist?
Das wird scheinbar nicht mehr aktualisiert.
Oder hat das einen neuen Namen?

Viele Grüße,
Peter

Ja habe umbenannt.

Storage.... Grosses S.


bastilyk

Hallo Christian,

heute wurde meine Enphase Anlage in Betrieb genommen (20x IQ8A, kein Speicher).
Habe also direkt mal dein Modul in Betrieb genommen, die Verbidnung zum Gateway klappt, allerdings die Abfrage der Daten nicht.

List des Devices:
Internals:
   DEF        192.168.1.38 bla@blub.de 123456789
   FUUID      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
   FVERSION   70_ENPHASE.pm:?/2024-01-26
   IP         192.168.1.38
   NAME       lykenvoy
   NR         300
   STATE      reading newlive
   TYPE       ENPHASE
   eventCount 21
   name       lykenvoy
   serialnum  123456789
   username   bla@blub.de
   READINGS:
     2024-01-26 17:04:36   counttimeout    0
     2024-01-26 16:57:41   sessionIDLocal  cwFCh8SXXXXXXXXXXXXXXXxtGUK
     2024-01-26 16:57:38   sessionid       3e982c0XXXXXXXXXXXXXXXef0ee13117
     2024-01-26 17:44:39   state           reading newlive
     2024-01-26 16:57:40   token           [eyJraWQitJ5Lr55ef.....]
     2024-01-26 17:04:36   whTodayConsumption 1179.192
     2024-01-26 17:04:36   whTodayProduction 232.592
   hmccu:
Attributes:
   DbLogExclude .*
   alias      lykenvoy
   verbose    0

FHEM Log (kommt alle 5 Minuten zum Zeitpunkt der Abfrage, Stromproduktion ist ja gerade keine):
2024.01.26 17:39:39 1: DEBUG>eval Fehler
2024.01.26 17:39:39 1: DEBUG>Duplicate keys not allowed, at character offset 2884 (before "": {\n            "d...") at ./FHEM/70_ENPHASE.pm line 858.

2024.01.26 17:39:39 1: DEBUG>{
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "enabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1706287461,
        "soc": 0,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 0,
        "enc_agg_energy": 0,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 0,
            "agg_s_mva": 306951,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 105109,
            "agg_s_ph_b_mva": 87022,
            "agg_s_ph_c_mva": 114818
        },
        "storage": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        },
        "grid": {
            "agg_p_mw": 269531,
            "agg_s_mva": 713704,
            "agg_p_ph_a_mw": 212640,
            "agg_p_ph_b_mw": 20922,
            "agg_p_ph_c_mw": 35968,
            "agg_s_ph_a_mva": 359289,
            "agg_s_ph_b_mva": 167378,
            "agg_s_ph_c_mva": 187036
        },
        "load": {
            "agg_p_mw": 269531,
            "agg_s_mva": 1020655,
            "agg_p_ph_a_mw": 212640,
            "agg_p_ph_b_mw": 20922,
            "agg_p_ph_c_mw": 35968,
            "agg_s_ph_a_mva": 464398,
            "agg_s_ph_b_mva": 254400,
            "agg_s_ph_c_mva": 301854
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": -824326656,
        "timestamp": 1706280139
    },
    "counters": {
        "main_CfgLoad": 1,
        "main_CfgChanged": 1,
        "main_CfgNotFound": 168,
        "main_taskUpdate": 7,
        "MqttClient_publish": 6623,
        "MqttClient_respond": 120,
        "MqttClient_msgarrvd": 61,
        "MqttClient_create": 1,
        "MqttClient_setCallbacks": 1,
        "MqttClient_connect": 1,
        "MqttClient_subscribe": 1,
        "SSL_Keys_Create": 1,
        "sc_hdlDataPub": 6991,
        "sc_SendStreamCtrl": 53,
        "sc_SendDemandRspCtrl": 1,
        "rest_Status": 142
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "\u0006",
            "dry_contact_status": 3050996
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3050996
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3050996
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3050996
        }
    }
}

Was mir als absolut "programmiertalentfreier Mensch" auffällt: "dry_contact_xxx" kommt in der API-Dokumentation nicht vor - vielleicht hilft dass ja.

Irgendeine gute Idee dazu?

Und Tausend Dank schonmal für das Modul!

Beste Grüße
Sebastian

Christian83

Hi Sebastian,

bei mir sieht die Antwort genauso aus. Bekomme aber keine Fehlermeldung.
Auf welcher Umgebung läuft dein FHEM?

Gruß,
Christian

bastilyk

#5
Hi Christian,

sorry für die späte Rückmeldung!

FHEM (aktuell) läuft auf Debian 11.
Envoy Firmware D7.6.323.

Gerade nochmal Verbose Logging auf 5 gesetzt:

2024.01.31 16:46:54 4: Enphase (lykenvoys): ==> start livedaten
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> header: HTTP/1.1 200 OK
Server: openresty/1.17.8.1
Date: Wed, 31 Jan 2024 15:46:56 GMT
Content-Type: application/json
Connection: close
Pragma: no-cache
Expires: 1
Cache-Control: no-cache
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
2024.01.31 16:46:55 5: {"production":[{"type":"inverters","activeCount":20,"readingTime":1706715967,"wNow":25,"whLifetime":38636},{"type":"eim","activeCount":1,"measurementType":"production","readingTime":1706716016,"wNow":24.786,"whLifetime":38570.86,"varhLeadLifetime":0.004,"varhLagLifetime":34716.279,"vahLifetime":69834.522,"rmsCurrent":1.384,"rmsVoltage":683.654,"reactPwr":294.441,"apprntPwr":314.925,"pwrFactor":0.07,"whToday":2842.86,"whLastSevenDays":35923.86,"vahToday":7187.522,"varhLeadToday":0.004,"varhLagToday":5044.279}],"consumption":[{"type":"eim","activeCount":1,"measurementType":"total-consumption","readingTime":1706716016,"wNow":848.336,"whLifetime":88282.137,"varhLeadLifetime":58151.103,"varhLagLifetime":-34635.437,"vahLifetime":139385.213,"rmsCurrent":6.465,"rmsVoltage":683.55,"reactPwr":-182.987,"apprntPwr":1474.713,"pwrFactor":0.57,"whToday":10527.137,"whLastSevenDays":28.137,"vahToday":16402.213,"varhLeadToday":8010.103,"varhLagToday":0.0},{"type":"eim","activeCount":1,"measurementType":"net-consumption","readingTime":1706716016,"wNow":823.55,"whLifetime":49876.462,"varhLeadLifetime":58151.106,"varhLagLifetime":80.842,"vahLifetime":139385.213,"rmsCurrent":5.081,"rmsVoltage":683.55,"reactPwr":-477.428,"apprntPwr":1159.524,"pwrFactor":0.71,"whToday":0,"whLastSevenDays":0,"vahToday":0,"varhLeadToday":0,"varhLagToday":0}],"storage":[{"type":"acb","activeCount":0,"readingTime":0,"wNow":0,"whNow":0,"state":"idle"}]}
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> Error:
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> ReturnCode: 200
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> Readingtime: 1706716016
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> Readingtime: 31
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> Readingtime: 31
2024.01.31 16:46:55 5: Enphase (lykenvoys): ==> Readingtime: Wed Jan 31 16:46:56 2024
2024.01.31 16:46:56 4: Enphase (lykenvoys): ==> start newlive
2024.01.31 16:46:56 5: Enphase (lykenvoys): ==> header: HTTP/1.1 200 OK
Server: openresty/1.17.8.1
Date: Wed, 31 Jan 2024 15:46:58 GMT
Content-Length: 3401
Connection: close
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
2024.01.31 16:46:56 5: {
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "enabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1706716017,
        "soc": 0,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 0,
        "enc_agg_energy": 0,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 22437,
            "agg_s_mva": 316772,
            "agg_p_ph_a_mw": 5611,
            "agg_p_ph_b_mw": 11447,
            "agg_p_ph_c_mw": 5379,
            "agg_s_ph_a_mva": 112231,
            "agg_s_ph_b_mva": 91576,
            "agg_s_ph_c_mva": 112964
        },
        "storage": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        },
        "grid": {
            "agg_p_mw": 824288,
            "agg_s_mva": 1160562,
            "agg_p_ph_a_mw": 169071,
            "agg_p_ph_b_mw": 628321,
            "agg_p_ph_c_mw": 26895,
            "agg_s_ph_a_mva": 321781,
            "agg_s_ph_b_mva": 672030,
            "agg_s_ph_c_mva": 166750
        },
        "load": {
            "agg_p_mw": 846725,
            "agg_s_mva": 1477334,
            "agg_p_ph_a_mw": 174682,
            "agg_p_ph_b_mw": 639768,
            "agg_p_ph_c_mw": 32274,
            "agg_s_ph_a_mva": 434012,
            "agg_s_ph_b_mva": 763606,
            "agg_s_ph_c_mva": 279714
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": -790354963,
        "timestamp": 1706628923
    },
    "counters": {
        "main_CfgLoad": 1,
        "main_CfgChanged": 1,
        "main_taskUpdate": 1,
        "MqttClient_publish": 5500,
        "MqttClient_respond": 24,
        "MqttClient_msgarrvd": 12,
        "MqttClient_create": 2,
        "MqttClient_setCallbacks": 2,
        "MqttClient_connect": 2,
        "MqttClient_subscribe": 2,
        "SSL_Keys_Create": 2,
        "sc_hdlDataPub": 85406,
        "sc_SendStreamCtrl": 163,
        "sc_SendDemandRspCtrl": 1,
        "rest_Status": 1646
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "\u0006",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        }
    }
}
2024.01.31 16:46:56 5: Enphase (lykenvoys): ==> Error:
2024.01.31 16:46:56 5: Enphase (lykenvoys): ==> ReturnCode: 200
2024.01.31 16:46:56 1: DEBUG>eval Fehler
2024.01.31 16:46:56 1: DEBUG>Duplicate keys not allowed, at character offset 2870 (before "": {\n            "d...") at ./FHEM/70_ENPHASE.pm line 858.

2024.01.31 16:46:56 1: DEBUG>{
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "enabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1706716017,
        "soc": 0,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 0,
        "enc_agg_energy": 0,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 22437,
            "agg_s_mva": 316772,
            "agg_p_ph_a_mw": 5611,
            "agg_p_ph_b_mw": 11447,
            "agg_p_ph_c_mw": 5379,
            "agg_s_ph_a_mva": 112231,
            "agg_s_ph_b_mva": 91576,
            "agg_s_ph_c_mva": 112964
        },
        "storage": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        },
        "grid": {
            "agg_p_mw": 824288,
            "agg_s_mva": 1160562,
            "agg_p_ph_a_mw": 169071,
            "agg_p_ph_b_mw": 628321,
            "agg_p_ph_c_mw": 26895,
            "agg_s_ph_a_mva": 321781,
            "agg_s_ph_b_mva": 672030,
            "agg_s_ph_c_mva": 166750
        },
        "load": {
            "agg_p_mw": 846725,
            "agg_s_mva": 1477334,
            "agg_p_ph_a_mw": 174682,
            "agg_p_ph_b_mw": 639768,
            "agg_p_ph_c_mw": 32274,
            "agg_s_ph_a_mva": 434012,
            "agg_s_ph_b_mva": 763606,
            "agg_s_ph_c_mva": 279714
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": -790354963,
        "timestamp": 1706628923
    },
    "counters": {
        "main_CfgLoad": 1,
        "main_CfgChanged": 1,
        "main_taskUpdate": 1,
        "MqttClient_publish": 5500,
        "MqttClient_respond": 24,
        "MqttClient_msgarrvd": 12,
        "MqttClient_create": 2,
        "MqttClient_setCallbacks": 2,
        "MqttClient_connect": 2,
        "MqttClient_subscribe": 2,
        "SSL_Keys_Create": 2,
        "sc_hdlDataPub": 85406,
        "sc_SendStreamCtrl": 163,
        "sc_SendDemandRspCtrl": 1,
        "rest_Status": 1646
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "\u0006",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        }
    }
}

Grüße
Sebastian


###EDIT: Habe das Modul gerade auf einer zweiten FHEM Instanz, in Betrieb genommen -> Funktioniert prima!
Der Fehler liegt also verm. irgendwo in der langen Geschichte meiner Hauptinstanz, dein Modul funktioniert aber einwandfrei.

Nichts für Ungut und Danke nochmal für das Modul :-)

Christian83

Hallo Sebastian,

freut mich zu hören.
Ich tippe auf eine bestimmte perl Version bzw. Json Parser, der bei duplicate keys diese Fehlermeldung wirft.
Wenn es in einer andern Umgebung klappt würde ich das als wahrscheinlichste Ursache annehmen.

Gruß,
Christian

inf0

Hallo Christian,

habe das Modul in Betrieb genommen und läuft einwandfrei. Danke, dass Du Dir so viel Mühe damit gemacht hast und es auf diesem Wege mit uns teilst!

Ich finde, die Community ist eine der großen Stärken von FHEM.

Viele Grüße

Alan

StefanT

Hallo Christian,
ich habe seit letzter Woche auch eine Enphase-PV-Anlage. Bei der Suche in FHEM bin ich dann über dein Modul gestolpert. Prima, dass es da schon was gibt. Ich habe das Modul jetzt heruntergeladen und installiert. Funktioniert soweit auch. Allerdings bekomme ich nur die Readings "whTodayConsumption" und "whTodayProduction". Eigentlich müsste da doch mehr kommen, oder? Zumindest, wenn ich in das Modul reinschaue, sieht man dort ja noch weitere Readings.
Hast du eventuell einen Tipp für mich?
Vielen Dank schon mal
Stefan

Christian83

Zitat von: StefanT am 12 März 2024, 17:31:57Hallo Christian,
ich habe seit letzter Woche auch eine Enphase-PV-Anlage. Bei der Suche in FHEM bin ich dann über dein Modul gestolpert. Prima, dass es da schon was gibt. Ich habe das Modul jetzt heruntergeladen und installiert. Funktioniert soweit auch. Allerdings bekomme ich nur die Readings "whTodayConsumption" und "whTodayProduction". Eigentlich müsste da doch mehr kommen, oder? Zumindest, wenn ich in das Modul reinschaue, sieht man dort ja noch weitere Readings.
Hast du eventuell einen Tipp für mich?
Vielen Dank schon mal
Stefan

Hi Stefan,

mach mal ein List deines Devices (Zugangsdaten, Key, etc. maskieren).

Gruß,
Christian

StefanT

Hi Christian,
hier das List von meinem Enphase...  Vielleicht kannst du ja was erkennen.
Was mir auch noch aufgefallen ist, es findet auch keine Aktualisierung der Readings statt, immer nur bei einem "get LiveData".
Vielen Dank für deine Unterstützung
Internals:
   CFGFN     
   DEF        192.168.178.220 xxxxxx.xxxxx@xxxxx.xxx 12xxxxxxxx32
   FUUID      65f07a6c-f33f-1b33-2822-06607050a0b6430d
   IP         192.168.178.220
   NAME       Enphase
   NR         173
   STATE      reading newlive
   TYPE       ENPHASE
   eventCount 2473
   name       Enphase
   serialnum  12xxxxxxxx32
   username   xxxxxx.xxxxx@xxxxx.xxx
   READINGS:
     2024-03-12 16:54:08   StorageSerial1  492251004630
     2024-03-13 06:18:28   counttimeout    0
     2024-03-12 16:53:37   sessionIDLocal  iTu5nY0sTaoq0T0QhP0IjvsXYwSfNXjx
     2024-03-12 16:53:34   sessionid       bfe08cb9d54279689fe14adc6fe85c79
     2024-03-16 17:41:34   state           reading newlive
     2024-03-12 16:53:36   token           eyJraWQiOiI3ZDEwMDA1ZC03ODk5LTRkMGQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIzMTkwMDU5MzIiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxNzQxNzk0ODE2LCJpYXQiOjE3MTAyNTg4MTYsImp0aSI6IjcxZTliZTUzLTZhMTktNDkzYy05ZDJkLTQ4MThlYjU3OWI3NSIsInVzZXJuYW1lIjoic3RlZmFuLnRpZGF1QGdtYWlsLmNvbSJ9.hoBZyaOWZ7fHYemF0iKtl2_T3OUliNG1waP76cISMPz7oICe2aPr_g2_S4vilp97zvxAG22-xWCbndq_E7JKDg
     2024-03-13 06:18:28   whTodayConsumption 671.689
     2024-03-13 06:18:28   whTodayProduction 426.934
   hmccu:
Attributes:
   room       Enphase

Christian83

Hi Stefan,

Der state sieht komisch aus.
Mach mal verbose auf 5 und zeig mal das log bzw. nen Auszug davon. Ich glaub er hat ein Problem mit der Antwort vom Gerät.

Welche Firmware hat dein Gateway? (Sieht man in der App unter System - Geräte)

StefanT

Hallo Christian,
sorry, dass ich mich erst jetzt melde.

Gateway ENV-S-EM-230 hat die Firmware D7.6.323

Logging bei get LiveData:
2024.03.20 18:13:28.612 4: Enphase (Enphase): ==> start livedaten
2024.03.20 18:13:29.111 5: Enphase (Enphase): ==> header: HTTP/1.1 200 OK
Server: openresty/1.17.8.1
Date: Wed, 20 Mar 2024 17:13:50 GMT
Content-Type: application/json
Connection: close
Pragma: no-cache
Expires: 1
Cache-Control: no-cache
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
2024.03.20 18:13:29.111 5: {"production":[{"type":"inverters","activeCount":13,"readingTime":1710954824,"wNow":12,"whLifetime":187432},{"type":"eim","activeCount":1,"measurementType":"production","readingTime":1710954830,"wNow":15.103,"whLifetime":184629.844,"varhLeadLifetime":1207.799,"varhLagLifetime":62039.665,"vahLifetime":246450.722,"rmsCurrent":0.957,"rmsVoltage":695.056,"reactPwr":202.635,"apprntPwr":221.678,"pwrFactor":0.07,"whToday":11468.844,"whLastSevenDays":82982.844,"vahToday":13335.722,"varhLeadToday":121.799,"varhLagToday":2392.665}],"consumption":[{"type":"eim","activeCount":1,"measurementType":"total-consumption","readingTime":1710954830,"wNow":18.608,"whLifetime":116574.382,"varhLeadLifetime":173398.875,"varhLagLifetime":-60788.908,"vahLifetime":355515.028,"rmsCurrent":-0.399,"rmsVoltage":695.225,"reactPwr":-371.218,"apprntPwr":-91.526,"pwrFactor":1.0,"whToday":6748.382,"whLastSevenDays":4.382,"vahToday":17502.028,"varhLeadToday":7247.875,"varhLagToday":0.0},{"type":"eim","activeCount":1,"measurementType":"net-consumption","readingTime":1710954830,"wNow":3.505,"whLifetime":-67995.306,"varhLeadLifetime":174606.675,"varhLagLifetime":1250.757,"vahLifetime":355515.028,"rmsCurrent":-1.356,"rmsVoltage":695.225,"reactPwr":-573.853,"apprntPwr":-313.166,"pwrFactor":1.0,"whToday":0,"whLastSevenDays":0,"vahToday":0,"varhLeadToday":0,"varhLagToday":0}],"storage":[{"type":"acb","activeCount":0,"readingTime":0,"wNow":0,"whNow":0,"state":"idle"}]}
2024.03.20 18:13:29.111 5: Enphase (Enphase): ==> Error:
2024.03.20 18:13:29.112 5: Enphase (Enphase): ==> ReturnCode: 200
2024.03.20 18:13:29.112 5: Enphase (Enphase): ==> Readingtime: 1710954830
2024.03.20 18:13:29.112 5: Enphase (Enphase): ==> Readingtime: 20
2024.03.20 18:13:29.113 5: Enphase (Enphase): ==> Readingtime: 20
2024.03.20 18:13:29.113 5: Enphase (Enphase): ==> Readingtime: Wed Mar 20 18:13:50 2024
2024.03.20 18:13:30.118 4: Enphase (Enphase): ==> start newlive
2024.03.20 18:13:30.360 5: Enphase (Enphase): ==> header: HTTP/1.1 200 OK
Server: openresty/1.17.8.1
Date: Wed, 20 Mar 2024 17:13:52 GMT
Content-Length: 3544
Connection: close
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
2024.03.20 18:13:30.360 5: {
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "disabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1710946284,
        "soc": 100,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 100,
        "enc_agg_energy": 3500,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 650021,
            "agg_s_mva": 743692,
            "agg_p_ph_a_mw": 206554,
            "agg_p_ph_b_mw": 242762,
            "agg_p_ph_c_mw": 200704,
            "agg_s_ph_a_mva": 228684,
            "agg_s_ph_b_mva": 278462,
            "agg_s_ph_c_mva": 236545
        },
        "storage": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        },
        "grid": {
            "agg_p_mw": -485313,
            "agg_s_mva": -749447,
            "agg_p_ph_a_mw": -111490,
            "agg_p_ph_b_mw": -238693,
            "agg_p_ph_c_mw": -135131,
            "agg_s_ph_a_mva": -282441,
            "agg_s_ph_b_mva": -282092,
            "agg_s_ph_c_mva": -184915
        },
        "load": {
            "agg_p_mw": 164708,
            "agg_s_mva": -5755,
            "agg_p_ph_a_mw": 95064,
            "agg_p_ph_b_mw": 4069,
            "agg_p_ph_c_mw": 65573,
            "agg_s_ph_a_mva": -53757,
            "agg_s_ph_b_mva": -3630,
            "agg_s_ph_c_mva": 51630
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": -384092949,
        "timestamp": 1710830689
    },
    "counters": {
        "main_CfgLoad": 1,
        "main_CfgChanged": 1,
        "main_taskUpdate": 49,
        "MqttClient_publish": 299165,
        "MqttClient_live_debug": 1113,
        "MqttClient_respond": 2240,
        "MqttClient_msgarrvd": 1120,
        "MqttClient_create": 11,
        "MqttClient_setCallbacks": 11,
        "MqttClient_connect": 11,
        "MqttClient_connect_err": 7,
        "MqttClient_connect_Err": 7,
        "MqttClient_subscribe": 4,
        "SSL_Keys_Create": 11,
        "sc_hdlDataPub": 299226,
        "sc_SendStreamCtrl": 1238,
        "sc_SendDemandRspCtrl": 1,
        "rest_Status": 22754
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "\u0006",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        }
    }
}
2024.03.20 18:13:30.360 5: Enphase (Enphase): ==> Error:
2024.03.20 18:13:30.360 5: Enphase (Enphase): ==> ReturnCode: 200
2024.03.20 18:13:30.361 1: DEBUG>eval Fehler
2024.03.20 18:13:30.361 1: DEBUG>Duplicate keys not allowed, at character offset 3013 (before "": {\n            "d...") at ./FHEM/70_ENPHASE.pm line 858.

2024.03.20 18:13:30.361 1: DEBUG>{
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "disabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1710946284,
        "soc": 100,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 100,
        "enc_agg_energy": 3500,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 650021,
            "agg_s_mva": 743692,
            "agg_p_ph_a_mw": 206554,
            "agg_p_ph_b_mw": 242762,
            "agg_p_ph_c_mw": 200704,
            "agg_s_ph_a_mva": 228684,
            "agg_s_ph_b_mva": 278462,
            "agg_s_ph_c_mva": 236545
        },
        "storage": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        },
        "grid": {
            "agg_p_mw": -485313,
            "agg_s_mva": -749447,
            "agg_p_ph_a_mw": -111490,
            "agg_p_ph_b_mw": -238693,
            "agg_p_ph_c_mw": -135131,
            "agg_s_ph_a_mva": -282441,
            "agg_s_ph_b_mva": -282092,
            "agg_s_ph_c_mva": -184915
        },
        "load": {
            "agg_p_mw": 164708,
            "agg_s_mva": -5755,
            "agg_p_ph_a_mw": 95064,
            "agg_p_ph_b_mw": 4069,
            "agg_p_ph_c_mw": 65573,
            "agg_s_ph_a_mva": -53757,
            "agg_s_ph_b_mva": -3630,
            "agg_s_ph_c_mva": 51630
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": -384092949,
        "timestamp": 1710830689
    },
    "counters": {
        "main_CfgLoad": 1,
        "main_CfgChanged": 1,
        "main_taskUpdate": 49,
        "MqttClient_publish": 299165,
        "MqttClient_live_debug": 1113,
        "MqttClient_respond": 2240,
        "MqttClient_msgarrvd": 1120,
        "MqttClient_create": 11,
        "MqttClient_setCallbacks": 11,
        "MqttClient_connect": 11,
        "MqttClient_connect_err": 7,
        "MqttClient_connect_Err": 7,
        "MqttClient_subscribe": 4,
        "SSL_Keys_Create": 11,
        "sc_hdlDataPub": 299226,
        "sc_SendStreamCtrl": 1238,
        "sc_SendDemandRspCtrl": 1,
        "rest_Status": 22754
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "\u0006",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 3047892
        }
    }
}


Viele Grüße
Stefan

Christian83

Hallo Stefan,

in #5 war das gleiche Problem.

Welche Umgebung hast du denn im Einsatz?

Ich kann das Problem bei mir nicht nachbauen.
Liegt vielleicht an der Perl-Version?

StefanT

Hi Christian,

danke für die Info. Mein "Home-Automation-PC" läuft unter Ubuntu 22.04.4 LTS. Fhem läuft bei mir allerdings darauf als Docker-Image. Dort wird die Perl-Version 5.32.1 genutzt. Habe mir auch nochmal eine zweite aktuelle FHEM-Installation erzeugt und dort das Modul installiert. Dort laufe ich aber auf denselben Fehler. Schade eigentlich.
Aber vielen Dank für deine Unterstützung.

Gruß Stefan