[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

grochi

Guten Morgen,

manchmal ist es leicht. Hat funktioniert. In Zeile 650 in der 36_Senec.pm das "s" dran. Perfekt. Danke!
NUC, HomeMatic, Shelly, HUE

E-J-D

Moin zusammen,

ich habe unseren Senec in FHEM nun auch per 36_Senec Modul angebunden und nicht mehr per py-Skripte (SENEC2MQTT.py + Senec.py), wie es an anderer Stelle im Forum beschrieben war. Das hatte zwar 1a funktioniert, aber durch die Änderungen seitens Senec war die Abfrage offline. However...

Die Abfrage über das 36_Senec Modul funktioniert grundsätzlich (🥳), aber leider bekomme ich bei den "_total" Readings nur ein "VARIABLE_NOT_FOUND".

Die Attribute "interval" und "intervalmeinsenec" habe ich im Moment auf 60 stehen. FHEM und alles Weitere ist auf dem aktuellen Stand. Auch scheint mir sonst bei dem Senec-Device alles gut zu sein.

Woran kann der Fehler "VARIABLE_NOT_FOUND" liegen?

Beste Grüße


carlos

Das liegt daran, dass SENEC die Statistik Daten rausgenommen hat.
Wie gesagt ich bin dran, hatte aber wenig Zeit die letzten Wochen.
Kommt bald eine neue Version.

Gruß

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

E-J-D

Hi Carlos,

herzlichen Dank!

Zitat von: carlos am 08 Oktober 2023, 23:14:27Das liegt daran, dass SENEC die Statistik Daten rausgenommen hat.
Wie gesagt ich bin dran, hatte aber wenig Zeit die letzten Wochen.
Kommt bald eine neue Version.

Gruß

Carlos



Sorry, dass ich den aktuellen Stand im Thread übersehen habe und vielen Dank für deine Arbeit.


Beste Grüße

oakdesign

Hallo zusammen
Bin selbst kein FEHM Nutzer, sonder Homeassistent mit Node-red aber Betreiber einer Senec Home 4 (ohne lokales Interface lala.cgi)
Um meine Home 4 anzubinden gibt es zwar für Homeassistent eine Integration welche Daten aus den Services der mein-senec.de Webseite zieht. Da das nutzen der der mein-senec.de Services aber wegen der Session basierten cookie Authentifizierung eine kontinuierliche Reauthentifizierung erfordert und im Vergleich zur Senec App auch weniger Daten, bzw komplizierter abzurufen sind. (Statistische Daten Bedarfs es bei mein-senec.de bis zu 7 Aufrufen, aus dem app-gateway lediglich einen Aufruf.
Daher habe ich die REST Service-Endpoints und Methoden aus der aktuellsten Senec Apps v 4.3.3 / 4.4.0_beta01 unter nachfolgendem Link dokumentiert, um Entwicklern von Smart Home / EMS eine alternative zu mein-senec.de Services zur Verfügung zu stellen

https://documenter.getpostman.com/view/932140/2s9YXib2td

Habe gesehen das hier im Thread zwar schon Mal App API Rest Services verlinkt wurden, allerdings sind diese von der App v 3.12.0 die outdated ist und sich inzwischen alle Endpoints geändert also auch die Service Methoden und responses


carlos

Hallo,
Ich kenne deine Doku, auch sind davon einige in meinem Modul implementiert.
Die meisten habe ich auch getestet(mit Postman), leider funktionieren z.b. die v2 monitor calls bei mir nicht.
Warum auch immer, deswegen bin ich jetzt teilweise direkt  auf die mein-senec api umgestiegen.
z.b.:
https://mein-senec.de/endkunde/api/context/getEndkunde
https://mein-senec.de/endkunde/api/status/getautarky.php?anlageNummer=0
https://mein-senec.de/endkunde/api/status/getstatus.php?type=consumption&period=all&anlageNummer=0
...



Ich bin gerade dabei das modul entsprechend umzustellen.
Ich hoffe dass ich es dann zeitnah zur Verfügung stellen kann.

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

oakdesign

v2/senec/monitor gibt es in meiner Doku nicht.
v1 und v2 sind hauptsächlich bei den measurement services. Wobei der Unterschied in den measurement v1 zu v2 darin besteht,
v1 beinhaltet die totals aber keine wallbox consumption v2 beinhaltet wallbox consumption aber keine totals.
Bei den Measurments service is noch zu beachten, dass die from/to quary parameter als eopch timestamp mit auflösung Sekunde übergeben werden müssen (10stellig) wird dort ein timestamp in ms übergeben liefert der Servie eine 400 bad request.
Wo ich gerade noch dran bin sind die wallbox services den hier gibt es explizit unterschiedliche Services für die senec 1,2,3 Systeme und eigene für die Home 4

carlos

Ja stimmt ist v1, sorry da habe ich mich falsch ausgedrückt.
Ich meine z.B. den call:

https://app-gateway.prod.senec.dev/v1/senec/monitor/set automatically/data?period=YEAR&date=2023-11-01&locale=de_DE&timezone=Europe%252FBerlin

da kommt bei mir 400 Bad Request The request cannot be fulfilled due to bad syntax

Es scheint also ein Syntax Fehler zu sein.
Hast du die Calls mit Postman verifiziert?
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

oakdesign

Hi,
ja alle Service Calls sind getestet.
Hier Beispiel einer response. Es wurde aber schon außer dem Login noch der Service Systems aufgerufen, den aus dem wird die Anlagen/Systemid ausgelesen und als environment variable gesetzt. Ist nicht wie bei den mein-senec.de services "0" sondern in der regel ein 6 stelliger integer Wert.
{
    "overviewMonitorCard": {
        "gridFeedInInKwh": {
            "value": 7.828773498535156,
            "unit": "kWh"
        },
        "gridFeedOutInKwh": {
            "value": 4.67999267578125,
            "unit": "kWh"
        },
        "generatedElectricityInKwh": {
            "value": 19.090667724609375,
            "unit": "kWh"
        },
        "consumedElectricityInKwh": {
            "value": 14.5657958984375,
            "unit": "kWh"
        }
    },
    "energySourcesMonitorCard": {
        "pvUsageInPercent": {
            "value": 67.90277800768565,
            "unit": "%"
        },
        "batteryUsageInPercent": {
            "value": 15.378538858756635,
            "unit": "%"
        },
        "gridUsageInPercent": {
            "value": 16.718683133557704,
            "unit": "%"
        }
    },
    "pvStatsMonitorCard": {
        "selfConsumptionInPercent": {
            "value": 58.99162034839017,
            "unit": "%"
        },
        "gridFeedInInPercent": {
            "value": 41.00837965160983,
            "unit": "%"
        },
        "pvGeneration": {
            "value": 19.090667724609375,
            "unit": "kWh"
        }
    },
    "savingsMonitorCard": {
        "savedElectricityCosts": {
            "value": 7.090273992919922,
            "unit": "euro"
        },
        "avoidedCo2Emissions": {
            "value": 7.65535775756836,
            "unit": "kg"
        },
        "treesToBePlanted": 0.4876024049406599
    },
    "aggregation": {
        "startDate": "2023-10-31T23:00:00Z",
        "gridConsumption": {
            "value": 4.67999267578125,
            "unit": "kWh"
        },
        "gridFeedIn": {
            "value": 7.828773498535156,
            "unit": "kWh"
        },
        "storageLoad": {
            "value": 5.7201385498046875,
            "unit": "kWh"
        },
        "storageConsumption": {
            "value": 4.323631286621094,
            "unit": "kWh"
        },
        "storageLevel": {
            "value": 21.85655403137207,
            "unit": "%"
        },
        "generation": {
            "value": 19.090667724609375,
            "unit": "kWh"
        },
        "totalUsage": {
            "value": 14.5657958984375,
            "unit": "kWh"
        }
    },
    "intervals": [
        {
            "startDate": "2023-10-31T23:00:00Z",
            "gridConsumption": {
                "value": 0.38866424560546875,
                "unit": "kWh"
            },
            "gridFeedIn": {
                "value": 0.0,
                "unit": "kWh"

Also die Werte dieser Cards aus der app

https://up.picr.de/46636168bd.png

https://up.picr.de/46636169be.png

Um die Werte vergleichbar zu dem Service
https://mein-senec.de/endkunde/api/status/getstatus.php?type=consumption&period=all&anlageNummer=0über das app gateway abzurufen würde ich eher den dem v1/measurements Service verwenden
https://app-gateway.prod.senec.dev/v1/senec/systems/{{SENEC_ANLAGE}}/measurements?resolution=YEAR&from=946681200&to=1699958654wobei ich hier den 01.01.2000 00:00:00 als from Datum setzte und to den aktuellen timestamp was dann gesammelt totals liefert und in den Timeseries noch nach Jahren aufgeschlüsselt. Bei dem Query parameter und der resolution FULL gilt es zu beachten, das der nicht vergleichbar ist mit dem ALL des mein-senec.de period=ALL, sonder für den gewählten Zeitraum in der timeseries alle Datenpunkte zurückliefert. Je nach gewählten Zeitraum und Laufzeit der Anlage können das schnell etlich MB große json responses werden.
{
    "totals": [
        469.18804931640625,
        449.0621032714844,
        170.22589111328125,
        139.0238800048828,
        196.5705108642578,
        145.17283630371094,
        20.347837448120117,
        62.09
    ],
    "measurements": [
        "power-generation",
        "power-consumption",
        "grid-import",
        "grid-export",
        "battery-import",
        "battery-export",
        "battery-level-in-percent",
        "autarky-in-percent"
    ],
    "timeseries": [
        {
            "date": 1672527600,
            "measurements": {
                "durationInSeconds": 31536000,
                "values": [
                    469.18804997205734,
                    449.06209802627563,
                    170.22588658332825,
                    139.02387924864888,
                    196.57050344347954,
                    145.17282897233963,
                    20.64,
                    63.81
                ]
            }
        }
    ]
}