[36_Senec.pm] FHEM module zur Integration eines SENEC Speicher und MeinSenec

Begonnen von carlos, 12 November 2021, 15:22:44

Vorheriges Thema - Nächstes Thema

Sammy51

Ah .. ok die Datei ohne Versionsnummer ist die neueste. Danke :)
----------------------------------------------------------------
PI3b FHEM@Buster | Homematic via HMLAN | Phillips HUE/Zigbee | EnoCean via USB300 | Z-Wave via USB | Sonos | AlexaConnector

In Schublade (Anwendungstipps?): Raspy 1 | HM-Raspi-Modul | USB-Serial Adapter

cnkru

Hallo,

erstmal vielen Dank für die geleistete Arbeit.
Wir sind seit wenigen Tagen Nutzer der SENEC-Funktion im FHEM.

Heute möchte ich ein Problem melden.
Die SENEC-App hat bis jetzt keine Verbindung zum Server der SENEC.
Damit auch das Modul 36_Senec.pm ...


Nach einem obligatorischen Update von FHEM - startete unsere FHEM-Installation nicht mehr.

Ursache: Fhem blockierte innerhalb SENEC-Modul-Konfiguration

Hier kurz ein LOG-Auszug:


2023.01.25 09:30:21 1: Including ./FHEM/fhem_senec.cfg
2023.01.25 09:31:23 1: PERL WARNING: Use of uninitialized value $data in concatenation (.) or string at /opt/fhem/FHEM/36_Senec.pm line 1419.
2023.01.25 09:32:12 1: PERL WARNING: Use of uninitialized value $FHEM::Senec::data in concatenation (.) or string at /opt/fhem/FHEM/36_Senec.pm line 1544.
2023.01.25 09:32:12 2: [FHEM::Senec::SenecApi_getAnlagen] No TOKEN from API connect:  -
2023.01.25 09:33:12 1: PERL WARNING: Use of uninitialized value $FHEM::Senec::data in concatenation (.) or string at /opt/fhem/FHEM/36_Senec.pm line 1463.
2023.01.25 09:33:12 2: [FHEM::Senec::SenecApi_getAbilities] No TOKEN from API connect:  -


Danach Stillstand und fhem bleibt hängen.

Haben jetzt die fhem_senec.cfg auskommentiert - somit startete fhem wieder zuverlässig.

Ansonsten lief alles zur Zufriedenheit - nochmal ein Dankeschön.

LG
C.K.

Update 13:45 Uhr

Senec-App funktioniert wieder - damit auch 36_Senec.pm Modul
Der Neustart von fhem mit der senig.cfg benötigte etwas Anlauf
Hier noch ein paar Fehlermeldungen:

2023.01.25 13:45:15 2: [FHEM::Senec::SenecApi_getStatistikAllCallback] Fehler beim Dekodieren der Statistik(All) JSON R?ckmeldung: <html><body><h1>429 Too Many Requests</h1>
You have sent too many requests in a given amount of time.
</body></html>
- malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><body><h1>429 ...") at /opt/fhem/FHEM/36_Senec.pm line 2173.

2023.01.25 13:45:15 2: [FHEM::Senec::SenecApi_getStatistikAllCallback] Fehler beim Dekodieren der Statistik(All) JSON R?ckmeldung: <html><body><h1>429 Too Many Requests</h1>
You have sent too many requests in a given amount of time.
</body></html>
- malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><body><h1>429 ...") at /opt/fhem/FHEM/36_Senec.pm line 2173.

2023.01.25 13:45:15 3: [FHEM::Senec::SenecApi_getStatistikAllCallback] APICALL: Statistik_TAGE Periode: TAGE Counter: 16

2023.01.25 13:45:15 2: [FHEM::Senec::SenecApi_getStatistikAllCallback] Fehler beim Dekodieren der Statistik(All) JSON R?ckmeldung: <html><body><h1>429 Too Many Requests</h1>
You have sent too many requests in a given amount of time.
</body></html>
- malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><body><h1>429 ...") at /opt/fhem/FHEM/36_Senec.pm line 2173.

2023.01.25 13:45:15 2: [FHEM::Senec::SenecApi_getStatistikAllCallback] Fehler beim Dekodieren der Statistik(All) JSON R?ckmeldung: <html><body><h1>429 Too Many Requests</h1>
You have sent too many requests in a given amount of time.
</body></html>
- malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><body><h1>429 ...") at /opt/fhem/FHEM/36_Senec.pm line 2173.


Das zieht sich im Logfile so hin ...
inklusive Freeze ...

2023.01.25 13:45:33 1: [Freezemon] myFreezemon: possible freeze starting at 13:45:25, delay is 8.215 possibly caused by: no bad guy found :-(
2023.01.25 13:45:33 2: [FHEM::Senec::Senec_getLalacgiCallback] Fehler beim Dekodieren der APICALL: lalacgi REQUEST: {"STATISTIC":{"LIVE_WB_ENERGY" : ""},
            "WALLBOX" : {
     "ALLOW_INTERCHARGE" : "",
     "APPARENT_CHARGING_POWER": "",
     "EV_CONNECTED": "",
     "MIN_CHARGING_CURRENT": "",
     "PHASES_USED": "",
     "PROHIBIT_USAGE": "",
     "SMART_CHARGE_ACTIVE": "",
     "STATE": ""
    }
            } R?ckmeldung: <html><head><title>Bad Request</title></head><body><h1>Bad Request</h1><p>Your request could not be processed.</p></body></html> - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><head><title>B...") at /opt/fhem/FHEM/36_Senec.pm line 2482.

Jetzt läuft wieder alles - Werte sind plausibel - alle okidoki

LG
C.K.
RPi4, Razberry, ZWAVE (Thermostate, Dimmer, Schalter, Multisensor), Milight-LED, Wifi (IPCAM, Fritz!DECT, Sonoff), alexa, Hombridge, Velux-Rollos, Viessman-API, iobroker, SENEC

carlos

Hallo C.K.
Ja das ist natürlich ein Problem, wenn der connect mit der SENEC APP schon nicht funktioniert, dann auch nicht mit dem FHEM Senec module.
Da muss ich wohl noch ein besseres error handling einbauen, wenn das nicht geht.
Dann kann man zumindest die Werte vom Speicher im lokalen Netz holen und über die api dann wieder, wenn der connect funktioniert.
Ich werde mir da mal was überlegen.

Aber schön wenn jetzt alles wieder funktioniert.

Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

HGButte

Hallo zusammen,

Ich habe seit einiger Zeit kuriose Probleme dass mir der Arbeitsspeicher voll läuft. Ob es mit dem SENEC Modul zu tun hat ist schwer zu sagen.

Unabhängig davon hier mal meine SENEC Log Einträge.

Beim Start von FHEM

2023.02.14 21:00:48 1: PERL WARNING: Use of uninitialized value $chargingMode in hash element at ./FHEM/36_Senec.pm line 2289.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3585.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3586.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3587.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3588.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3589.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3590.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3591.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3592.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3593.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3620.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3621.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3622.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3623.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3624.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3625.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3626.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3627.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3628.
2023.02.14 21:00:49 1: PERL WARNING: Use of uninitialized value $live_house_cons in numeric gt (>) at ./FHEM/36_Senec.pm line 3787.
2023.02.14 21:02:46 1: PERL WARNING: Argument "N/A" isn't numeric in division (/) at ./FHEM/36_Senec.pm line 3175.
2023.02.14 21:02:46 1: PERL WARNING: Argument "N/A" isn't numeric in sprintf at ./FHEM/36_Senec.pm line 3177.


Sonstige zur Laufzeit

2023.02.04 20:27:23 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/36_Senec.pm line 1358.
2023.02.05 07:30:39 1: PERL WARNING: Use of uninitialized value $chargingMode in hash element at ./FHEM/36_Senec.pm line 2289.


Effektiv wird bei Autarkie Monat und Jahr immer 'N/A' angezeigt. Die Readings dazu zeigen '0.00'.
Es kommt immer wieder vor dass Daten von der SENEC API (Monat und Jahr) einfach 0 anzeigen.
Wenn ich dann manuell von SENEC API updaten  lasse, bekomme ich wieder Werte.

Btw ich habe keine Wallbox.

Und nochmals vielen Dank für die Arbeit.

HGButte

Vorgestern ist mir der komplette FHEM Server abgestürzt beim manuellen Update von der Senec API.

Scheinbar wird ja stündlich die Senec API gepollt. Allerdings werden hierbei immer meine Monats und Jahreswerte immer genullt. Nur ein manuelles Update liefert die korrekten Daten.

Habe verbose hoch gestellt. Sehe aber nur die Fehler der Anfrage vom lokalen Senec Speicher.

SpeedracerM

Hallo zusammen,

ich weiß nicht, ob das hier her gehört, aber ich teile es trotzdem mal hier.

Ich habe mir heute etwas gebaut, mit dem ich die aktuellen Leistungs-Daten aus meinem Senec Speicher auslesen kann. Und zwar mit Hilfe eines HTTPMOD Moduls und dem Webinterface des Speichers.

Hier ist ein Beispiel meiner ausgelesenen Werte:

batterie -2.503 kW 10.03.2023 17:56
einspeisung -0.019 kW 10.03.2023 17:56
erzeugung 0.224 kW 10.03.2023 17:56
hausverbrauch 2.708 kW 10.03.2023 17:56
ladezustand ENTLADEN 10.03.2023 17:56


Falls jemand Interesse hat, einfach melden.

Sonnige Grüße

carlos

FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

cjung

Hallo Hubert,

Ich habs mal eingespielt und mein FHEM neu gestartet.
Nach dem Boot kommen diese Stacktraces bei mir.
In der Oberfläche schein allerdings alles zu laufen.

Der Fehler im ersten Stacktrace scheint zur SENEC Wallbox zu gehören, die ich nicht habe. Als Wallbox habe ich eine OPENWB im Einsatz.


Danke für Deine Mühe für die SENEC ein eigenes Modul zu schreiben.

Gruß
Christoph

2023.03.13 21:56:12 1: PERL WARNING: Argument "N/A" isn't numeric in division (/) at ./FHEM/36_Senec.pm line 3314.
2023.03.13 21:56:12 1: stacktrace:
2023.03.13 21:56:12 1:     main::__ANON__                      called by ./FHEM/36_Senec.pm (3314)
2023.03.13 21:56:12 1:     FHEM::Senec::senec_wallbox_html     called by ./FHEM/36_Senec.pm (2919)
2023.03.13 21:56:12 1:     FHEM::Senec::senec_anlage_Html      called by ./FHEM/36_Senec.pm (1120)
2023.03.13 21:56:12 1:     FHEM::Senec::entryPage              called by ./FHEM/36_Senec.pm (1073)
2023.03.13 21:56:12 1:     FHEM::Senec::FwFn                   called by ./FHEM/01_FHEMWEB.pm (3447)
2023.03.13 21:56:12 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1930)
2023.03.13 21:56:12 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (2106)
2023.03.13 21:56:12 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1198)
2023.03.13 21:56:12 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (609)
2023.03.13 21:56:12 1:     main::FW_Read                       called by fhem.pl (3978)
2023.03.13 21:56:12 1:     main::CallFn                        called by fhem.pl (784)
2023.03.13 21:56:12 1: PERL WARNING: Argument "N/A" isn't numeric in sprintf at ./FHEM/36_Senec.pm line 3316.
2023.03.13 21:56:12 1: stacktrace:
2023.03.13 21:56:12 1:     main::__ANON__                      called by ./FHEM/36_Senec.pm (3316)
2023.03.13 21:56:12 1:     FHEM::Senec::senec_wallbox_html     called by ./FHEM/36_Senec.pm (2919)
2023.03.13 21:56:12 1:     FHEM::Senec::senec_anlage_Html      called by ./FHEM/36_Senec.pm (1120)
2023.03.13 21:56:12 1:     FHEM::Senec::entryPage              called by ./FHEM/36_Senec.pm (1073)
2023.03.13 21:56:12 1:     FHEM::Senec::FwFn                   called by ./FHEM/01_FHEMWEB.pm (3447)
2023.03.13 21:56:12 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1930)
2023.03.13 21:56:12 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (2106)
2023.03.13 21:56:12 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1198)
2023.03.13 21:56:12 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (609)
2023.03.13 21:56:12 1:     main::FW_Read                       called by fhem.pl (3978)
2023.03.13 21:56:12 1:     main::CallFn                        called by fhem.pl (784)
2023.03.13 21:56:29 3: PV_State: error while parsing JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html><head><title>B...") at lib/FHEM/HTTPMOD/Utils.pm line 695.

2023.03.13 21:56:30 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/36_Senec.pm line 3724.
2023.03.13 21:56:30 1: stacktrace:
2023.03.13 21:56:30 1:     main::__ANON__                      called by ./FHEM/36_Senec.pm (3724)
2023.03.13 21:56:30 1:     FHEM::Senec::update_readings_apisenec called by ./FHEM/36_Senec.pm (1995)
2023.03.13 21:56:30 1:     FHEM::Senec::SenecApi_getStatistikCallback called by FHEM/HttpUtils.pm (736)
2023.03.13 21:56:30 1:     main::__ANON__                      called by fhem.pl (781)
Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR

carlos

Hallo Christoph,
Kannst du mal ein get data machen und mir den output schicken.
Wenn keine Senec Wallbox bei dir konfiguriert ist dürfte er auch nicht in die Wallbox routine gehen.
Ich habe auch eine OpenWB und die kennt mein Senec Speicher auch nicht.

Was steht denn bei dir im reading Anlage_wallboxIds_1?
Oder gibt's das gar nicht?

Der json Fehler dürfte dann ein Folgefehler sein.

Trotzdem kommt es manchmal vor, dass sowohl vom lokalen Speicher als vom API HTTP Fehler und auch json decoding Fehler auftreten.
Ist bei mir manchmal auch so.
Leider kann ich da nicht viel machen außer den Fehler abfangen, was ich in der jetzigen Version versucht habe.

Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

cjung

Hallo Hubert,

das reading Anlage_wallboxIds_1 habe ich bei mir nicht
Die anderen Wallbox Readings sehen so aus:
Wallbox_api_error          Internal Server Error
Wallbox_api_message
Wallbox_api_path                    /v1/senec/anlagen/XXXXX/wallboxes/0
Wallbox_api_status                 500
Wallbox_api_timestamp          2023-03-13T20:55:02.247+00:00
Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR

carlos

Er geht also in die Wallbox routine.
Die Frage ist warum.
Bitte noch das get data, dann kann ich besser analysieren.
Gerne auch als pn.
Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

carlos

Neue Version 2.07.00 im 1. thread.

@cjung, sollte dein Problem beheben.

Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

cjung

Hallo Hubert,

Ich hab die neue Version jetzt eine Woche in Betrieb.
Die Wallbox Meldungen sind weg. Derzeit bekomme ich noch diese Meldungen:
2023.04.01 00:25:53 1: PERL WARNING: Use of uninitialized value $live_house_cons in numeric gt (>) at ./FHEM/36_Senec.pm line 3933.
2023.04.01 00:25:53 1: stacktrace:
2023.04.01 00:25:53 1:    main::__ANON__                      called by ./FHEM/36_Senec.pm (3933)
2023.04.01 00:25:53 1:    FHEM::Senec::update_readings_localsenec called by ./FHEM/36_Senec.pm (2676)
2023.04.01 00:25:53 1:    FHEM::Senec::Senec_getLalacgiCallback called by FHEM/HttpUtils.pm (736)
2023.04.01 00:25:53 1:    main::__ANON__                      called by fhem.pl (781)

Vielen Dank für Deine Mühe.
Christoph

Zitat von: carlos am 28 März 2023, 17:10:23Neue Version 2.07.00 im 1. thread.

@cjung, sollte dein Problem beheben.

Gruß

Hubert

Raspberry Pi 2 B
Funk: HM_CFG_USB2, HM-CFG-LAN 8*HM_CC_RT_DN, 3*HM-SEC-SD, 3*HM_TC_IT_WM_W_EU, 1*HM-LC-Dim1TPBU-FM,5*HM-SEC-SC-2, 1*HM-SEC-SCo
Wired: HMW: CFG-LAN, 8*LC_Bl1_DR, LC_Dim1L_DR

spel

Hallo,

wie installiere ich das Senec Modul?

Danke

-> erledigt, war nicht eingeloggt.

Sammy51

Hallo Hubert,

kann man über Dein Plugin auch Zeitreihedaten von Senec Nutzen / Weiterverarbeiten?
Wie geht das?

Die offensichtliche Funktion ist die weiße Tabelle mit den Summeneckdaten. Aber da du auf die Api zugreifst geht vielleicht mehr als offensichtlich ist?

Mich interessiet insbesondere die Zeitreihe der Netzeinspeisung (zum Vergleich mit dem Wärmepumpenstrombedarf - das wäre zwar nicht perfekt da auch Energie aus dem Speicher ergänzend noch dafür genutzt werden könnte aber es geht um ein grobes Gefühl ob der separate Zähler für die WP wirtschaftlich Sinn macht oder nicht). Den Zähler der WP lese ich mit einem Optokoppler aus. Dessen Werte muss nich noch in Zeitreihen konvertieren. Allerdings am besten im gleichen Format wie das was über Senec verfügbar ist.

Im Voraus vielen Dank!
Beste Grüße
Sammy
----------------------------------------------------------------
PI3b FHEM@Buster | Homematic via HMLAN | Phillips HUE/Zigbee | EnoCean via USB300 | Z-Wave via USB | Sonos | AlexaConnector

In Schublade (Anwendungstipps?): Raspy 1 | HM-Raspi-Modul | USB-Serial Adapter