lokale Anbindung SENEC Batterie an FHEM

Begonnen von cjung, 12 Januar 2020, 13:33:37

Vorheriges Thema - Nächstes Thema

xerion

Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

Deanw1975

Zitat von: xerion am 29 Juli 2022, 13:52:55
Es gibt mittlerweile ein SENEC Modul was sehr zuverlässig läuft:
https://forum.fhem.de/index.php/topic,124096.0.html

Guten Morgen

das kenne ich. Fragt aber online die Senec Daten ab.
Darüber kann man z.B. aber nicht die lokale Temperaturen auf dem Speicher abfragen.

Deswegen habe ich gerne beide Funktionen am laufen.
Die online Version und die direkte Abfrage.

LG
Dean

xerion

Ja das stimmt. Das habe ich für das Modul schon ergänzt da mir das auch fehlte genauso wie den SOH. Hatte die Änderung dem Entwickler zur Verfügung gestellten er wollte das übernommen. Vielleicht nochmal dort nachfragen.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

Deanw1975

Zitat von: xerion am 30 Juli 2022, 07:50:22
Ja das stimmt. Das habe ich für das Modul schon ergänzt da mir das auch fehlte genauso wie den SOH. Hatte die Änderung dem Entwickler zur Verfügung gestellten er wollte das übernommen. Vielleicht nochmal dort nachfragen.

Servus,
nutze zwar Fhem seit Jahren aber Modul schreiben ist mit echt zu heikel.
Da würde ich nachher wahrscheinlich nur wieder mehr kaputt machen als wie es mir hilft  :o

Sende dir mal ne PN mit meiner Mailadresse.
Wenn du magst, kannst du mir gerne dein Modul senden 8)

LG
Dean 

Deanw1975

Hallo zusammen,

hat niemand eine Idee zu dem schon dargestellten verhalten?
(unten aufgeführt)
LG
Dean

Zitat von: Deanw1975 am 29 Juli 2022, 13:49:24
Hallo zusammen,

hatte den Senec Speicher schon in Fhem. Aufgrund eines Fehlers meinerseits habe das Device gelöscht und neu angelegt.
Danach konnte ich das Gerät aber nicht mehr auslesen.

Mit Verbose 5 bekomme ich das hier:

2022.07.29 13:40:32 4: 00_pvh_senec_direkt: GetUpdate called (update)
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 30.0 sec at 13:41:02.640, interval 30
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: AddToQueue adds type update to URL http://192.168.178.137/lala.cgi, no data, no headers, retry 0, initial queue len: 0
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: HandleSendQueue called from AddToSendQueue, qlen = 1
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: HandleSendQueue sends update with timeout 2 to http://192.168.178.137/lala.cgi, No Data, No Header
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: ReadCallback called from __ANON__
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: Read callback: request type was update retry 0,
header: HTTP/1.0 404 Not Found, body length 127
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: Read callback: body
<html><head><title>Not Found</title></head><body><h1>Not Found</h1><p>Resource `lala.cgi` could not be found.</p></body></html>
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: GetCookies is looking for Cookies
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: ExtractSid called, context reading, num unknown
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: checking for redirects, code=404, ignore=0
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: no redirects to handle
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: Read callback sets LAST_REQUEST to update
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: CheckAuth decided no authentication required
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: Read starts parsing response to update with defined readings:
2022.07.29 13:40:32 4: 00_pvh_senec_direkt: Read response to update didn't match any Reading
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: HandleSendQueue called from ReadCallback, qlen = 0
2022.07.29 13:40:32 5: 00_pvh_senec_direkt: HandleSendQueue found no usable entry in queue


Das ist die RAW Definition:

defmod 00_pvh_senec_direkt HTTPMOD http://192.168.178.137/lala.cgi 30
attr 00_pvh_senec_direkt room 00_PV
attr 00_pvh_senec_direkt verbose 0



Die Anzeige aus "list"

  .LASTSEND  1659095192.65999
   .LastUpdate 1659095192.65861
   .TRIGGERTIME 1659095222.65861
   .getList   
   .setList   interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
   .updateRequestHash 1
   BUSY       0
   CFGFN     
   DEF        http://192.168.178.137/lala.cgi 30
   FUUID      62e3a3d3-f33f-61e0-0aff-bb2c70846c40f27f
   Interval   30
   MainURL    http://192.168.178.137/lala.cgi
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       00_pvh_senec_direkt
   NOTIFYDEV  global
   NR         37044
   NTFY_ORDER 50-00_pvh_senec_direkt
   STATE      ???
   TYPE       HTTPMOD
   eventCount 8
   value     
   .readingParseList:
   HttpUtils:
     NAME       
     addr       http://192.168.178.137:80
     auth       0
     code       404
     compress   1
     conn       
     data       
     displayurl http://192.168.178.137/lala.cgi
     header     
     host       192.168.178.137
     httpheader HTTP/1.0 404 Not Found
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /lala.cgi
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.178.137/lala.cgi
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://192.168.178.137/lala.cgi
Attributes:
   room       00_PV
   verbose    0


Was mache ich falsch?  :o
Und ja die IP ist richtig.

LG
Dean

carlos

Nimm doch einfach das Beispiel aus dem 1. Beitrag.
Bei deiner 3 Zeilen definition fehlt ja auch so gut wie alles.

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

fhemsen

Hallo zusammen,
ich bin neu in dem Thema Fhem, habe aber in den letzen Tagen einiges gelesen und auch getestet. Mein Ziel ist es, aus einem Senec V3 hybrid auszelesen, wieviel Energie eingespeist wird, um in Abhängigkeit davon einen Verbraucher (kleine Wärmepumpe) zu steuern.
1) Mein erstes Problem ist, dass ich es nicht schaffe das von Carlos veröffentlichte 36_Senec_3.00.00.pm Modul einzubinden. Das Modul habe ich in den Ordner fhem/FHEM kopiert, aber wenn ich den define Befehl absetze bekomme ich immer die FM "Unknown Module ...".
2) Ich habe, wie im gleichen Beitrag von cjung beschrieben, die Definitionen für eine HTTPMOD Device selbst eingegeben. Das funktioniert soweit ganz gut für die Werte
AKKU-Beladung, AKKU-Entnahme, Haus-Stromverbrauch, Netz-Entnahme, PV-Begrenzung (wobei hier ein kryptischer Wert 1120403456 erscheint) und PV-Erzeugung.
Nicht angezeigt wird die Netz-Einspeisung. Auch wenn ich nur die Abfrage für PM1OBJ1_P_TOTAL mache, erscheint keine Anzeige für dieses Reading.

Ich hoffe mir kann jemand weiter helfen und bis dahin schon mal vielen Dank für die viele Mühe, die ihr euch bis jetzt schon gemacht habt.
Viele Grüße, Peter

xerion

Zitat von: fhemsen am 01 März 2023, 13:31:28
Hallo zusammen,
ich bin neu in dem Thema Fhem, habe aber in den letzen Tagen einiges gelesen und auch getestet. Mein Ziel ist es, aus einem Senec V3 hybrid auszelesen, wieviel Energie eingespeist wird, um in Abhängigkeit davon einen Verbraucher (kleine Wärmepumpe) zu steuern.
1) Mein erstes Problem ist, dass ich es nicht schaffe das von Carlos veröffentlichte 36_Senec_3.00.00.pm Modul einzubinden. Das Modul habe ich in den Ordner fhem/FHEM kopiert, aber wenn ich den define Befehl absetze bekomme ich immer die FM "Unknown Module ...".
2) Ich habe, wie im gleichen Beitrag von cjung beschrieben, die Definitionen für eine HTTPMOD Device selbst eingegeben. Das funktioniert soweit ganz gut für die Werte
AKKU-Beladung, AKKU-Entnahme, Haus-Stromverbrauch, Netz-Entnahme, PV-Begrenzung (wobei hier ein kryptischer Wert 1120403456 erscheint) und PV-Erzeugung.
Nicht angezeigt wird die Netz-Einspeisung. Auch wenn ich nur die Abfrage für PM1OBJ1_P_TOTAL mache, erscheint keine Anzeige für dieses Reading.

Ich hoffe mir kann jemand weiter helfen und bis dahin schon mal vielen Dank für die viele Mühe, die ihr euch bis jetzt schon gemacht habt.
Viele Grüße, Peter


Der Name der Datei muss folgendermaßen lauten:
36_Senec.pm

Wenn du die Datei dann eingefügt hast, musst du das über die FHEM Console neu einlesen.
Das macht man mit "reload  36_Senec.pm".
Alternativ FHEM komplett neu starten, dann wird es auch eingelesen.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

carlos

Und bitte auch nicht vergessen:

chown fhem:dialout 36_Senec.pm
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

fhemsen

Hallo , vielen Dank, das ging ja fix und hat auf Anhieb geklappt. Jetzt werde ich mal weiterübern um daraus resultierende Aktionen zu kreieren. Falls ich dabei Problem habe melde ich mich noch einmal, aber jetzt versuche ich es erst mal allein. Bis dahin nochmals vielen Dank für die prompte Hilfe!
Peter

fhemsen

Hallo, jetzt muss ich doch noch einmal nachfragen. Ich habe FHEM mittlerweile auf einen raspi umgezogen und das Senec Modul dort wieder installiert. Jetzt sehe ich im Logilfe bei jeder Abfrage, also minütlich die FM: "SENEC: error while parsing JSON data: ':' expected, at character offset 82 (before "(end of string)") at lib/FHEM/HTTPMOD/Utils.pm line 695.
Kann mir dazu evtl nochmal jemand helfen?
Gruß, Peter

carlos

Ja, ich werde heute oder morgen eine neue Version mit verbesseretem Error handling zur Verfügung stellen.
Wenn du dich noch ein  wenig gedulden kannst.
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

fhemsen

Hallo Carlos,
gibt es denn schon eine aktualisierte Version und falls ja, wo kann man die finden?
Viele Grüße, Peter

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

Carsten12

#164
Hallo,

ich stehe ein wenig auf dem Schlauch, deswegen frage ich einmal hier: ich würde gerne die gelieferte Leistung auf den einzelnen Phasen darstellen. Nun ist ja der SENEC normalerweise an L1 angeschlossen. Insofern muss ich die Berechnung der Leistung an L1 ohne Netzbezug/-einspeisung bzw. Batterieladung/-entladung berechnen. Anfangs dachte ich, ich nehme einfach den Hausbezug-L2-L3, aber ich sehe immer wieder negative Spikes. Da ich dieses dem unterschiedlichen Zeitpunkt des Eintreffens der Daten beim SENEC Modul zuschrieb, nutze ich nun den HTTPMOD und die Definition von Juergen27 hier.

Doch welche Kombination ich auch verwende, die negativen Spikes bleiben. Ich habe schon einen Knoten im Kopf, kann mich jemand erleuchten?

Hier ein Datenauszug:

2023-03-25_13:17:37 SENEC PV-Begrenzung: 1120403456
2023-03-25_13:17:37 SENEC PV-Erzeugung: 4137.67
2023-03-25_13:17:37 SENEC AKKU-Beladung: 25.53
2023-03-25_13:17:37 SENEC AKKU-Entnahme: 604.78
2023-03-25_13:17:37 SENEC Haus-Stromverbrauch: 0.00
2023-03-25_13:17:37 SENEC Netz-Einspeisung: -3138.92
2023-03-25_13:17:37 SENEC PV-Status: 14
2023-03-25_13:17:37 SENEC BatterieSpannung-1: 50.27
2023-03-25_13:17:37 SENEC BatterieSpannung-2: 50.27
2023-03-25_13:17:37 SENEC BatterieSpannung-3: 0.00
2023-03-25_13:17:37 SENEC BatterieSpannung-4: 0.00
2023-03-25_13:17:37 SENEC BatterieStrom-1: 6.02
2023-03-25_13:17:37 SENEC BatterieStrom-2: 6.01
2023-03-25_13:17:37 SENEC BatterieStrom-3: 0.00
2023-03-25_13:17:37 SENEC BatterieStrom-4: 0.00
2023-03-25_13:17:37 SENEC BatterieZyklen-1: 10
2023-03-25_13:17:37 SENEC BatterieZyklen-2: 10
2023-03-25_13:17:37 SENEC BatterieZyklen-3: 0
2023-03-25_13:17:37 SENEC BatterieZyklen-4: 0
2023-03-25_13:17:37 SENEC ModulSpannung-1: 226.20
2023-03-25_13:17:37 SENEC ModulSpannung-2: 189.42
2023-03-25_13:17:37 SENEC ModulSpannung-3: 0.00
2023-03-25_13:17:37 SENEC ModulStrom-1: 8.40
2023-03-25_13:17:37 SENEC ModulStrom-2: 8.52
2023-03-25_13:17:37 SENEC ModulStrom-3: 0.00
2023-03-25_13:17:37 SENEC ModulLeistung-1: 1877.73
2023-03-25_13:17:37 SENEC ModulLeistung-2: 1602.74
2023-03-25_13:17:37 SENEC ModulLeistung-3: 0.00
2023-03-25_13:17:37 SENEC Temperatur_Batterie: 23.00
2023-03-25_13:17:37 SENEC Temperatur_Gehaeuse: 29.50
2023-03-25_13:17:37 SENEC Temperatur_Hardware: -133.22
2023-03-25_13:17:37 SENEC Leistung-L1: -3241.26
2023-03-25_13:17:37 SENEC Leistung-L2: 22.80
2023-03-25_13:17:37 SENEC Leistung-L3: 79.54
2023-03-25_13:17:37 SENEC ur_Akku_Laden: 604.78
2023-03-25_13:17:37 SENEC ur_Akku_Entladen: 0
2023-03-25_13:17:37 SENEC ur_Netz_Einspeisung: 3138.92
2023-03-25_13:17:37 SENEC ur_Netz_Bezug: 0
2023-03-25_13:17:37 SENEC ur_EnergieNetzStd: 5512.69080778458
2023-03-25_13:17:37 SENEC ur_TimeStampStatus: 13:17
2023-03-25_13:17:37 SENEC ur_SENECStatusText: LADEN
2023-03-25_13:17:37 SENEC ur_Modulleistung: 3480.47
2023-03-25_13:17:37 SENEC ur_Direktverbrauch: -263.23
2023-03-25_13:17:37 SENEC ur_EigenverbrauchBasis: 3480.47
2023-03-25_13:17:37 SENEC ur_AutarkiegradBasis: -263.23
2023-03-25_13:17:37 SENEC ur_AutarkieDirektverbrauch: 0
2023-03-25_13:17:37 SENEC ur_AutarkieAkkuEntnahme: 0
2023-03-25_13:17:37 SENEC ur_AutarkieNetzbezug: 0
2023-03-25_13:17:37 SENEC ur_AutarkieGrad: 0
2023-03-25_13:17:37 SENEC ur_EigenverbrauchDirektverbrauch: -7.6
2023-03-25_13:17:37 SENEC ur_EigenverbrauchAkkuLaden: 17.4
2023-03-25_13:17:37 SENEC ur_EigenverbrauchNetzeinspeisung: 90.2
2023-03-25_13:17:37 SENEC ur_EigenverbrauchAnteil: 9.8
2023-03-25_13:17:37 SENEC ur_Leistung_L1: -365.57

mit der Berechnung der Leistung L1 als

ur_Akku_Laden:AKKU-Entnahme.*
{if(ReadingsVal("SENEC","AKKU-Entnahme",0) > 0) {return ReadingsVal("SENEC","AKKU-Entnahme",0)} else {return 0}},
ur_Akku_Entladen:AKKU-Entnahme.*
{if(ReadingsVal("SENEC","AKKU-Entnahme",0) < 0) {return ReadingsVal("SENEC","AKKU-Entnahme",0) * -1} else {return 0}},
ur_Netz_Einspeisung:Netz-Einspeisung.*
{if(ReadingsVal("SENEC","Netz-Einspeisung",0) < 0) {return ReadingsVal("SENEC","Netz-Einspeisung",0) * -1} else {return 0}},
ur_Netz_Bezug:Netz-Einspeisung.*
{if(ReadingsVal("SENEC","Netz-Einspeisung",0) > 0) {return ReadingsVal("SENEC","Netz-Einspeisung",0)} else {return 0}},
ur_EnergieNetzStd:ur_Netz_Einspeisung.*
integral {ReadingsVal("SENEC","ur_Netz_Einspeisung",0)/3600},
ur_TimeStampStatus:Netz-Einspeisung.*
{SplitStr2Time_Short(ReadingsTimestamp("SENEC","ur_Netz_Einspeisung","2000-01-01 00:00:00"))},
ur_SENECStatusText:Netz-Einspeisung.*
{SENECStatusText(ReadingsVal("SENEC","PV-Status","13"))},
ur_Modulleistung:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ModulLeistung-1",0) + ReadingsVal("SENEC","ModulLeistung-2",0) + ReadingsVal("SENEC","ModulLeistung-3",0)},
ur_Direktverbrauch:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_Modulleistung",0) - ReadingsVal("SENEC","ur_Netz_Einspeisung",0) - ReadingsVal("SENEC","ur_Akku_Laden",0)},
ur_EigenverbrauchBasis:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_Direktverbrauch",0) + ReadingsVal("SENEC","ur_Netz_Einspeisung",0) + ReadingsVal("SENEC","ur_Akku_Laden",0)},
ur_AutarkiegradBasis:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_Direktverbrauch",0) + ReadingsVal("SENEC","ur_Netz_Bezug",0) + ReadingsVal("SENEC","ur_Akku_Entladen",0)},
ur_AutarkieDirektverbrauch:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_AutarkiegradBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Direktverbrauch",0)/ReadingsVal("SENEC","ur_AutarkiegradBasis",0)*100)} else {return 0}},
ur_AutarkieAkkuEntnahme:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_AutarkiegradBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Akku_Entladen",0)/ReadingsVal("SENEC","ur_AutarkiegradBasis",0)*100)} else {return 0}},
ur_AutarkieNetzbezug:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_AutarkiegradBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Netz_Bezug",0)/ReadingsVal("SENEC","ur_AutarkiegradBasis",0)*100)} else {return 0}},
ur_AutarkieGrad:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_AutarkieAkkuEntnahme",0) + ReadingsVal("SENEC","ur_AutarkieDirektverbrauch",0)},
ur_EigenverbrauchDirektverbrauch:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_EigenverbrauchBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Direktverbrauch",0)/ReadingsVal("SENEC","ur_EigenverbrauchBasis",0)*100)} else {return 0}},
ur_EigenverbrauchAkkuLaden:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_EigenverbrauchBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Akku_Laden",0)/ReadingsVal("SENEC","ur_EigenverbrauchBasis",0)*100)} else {return 0}},
ur_EigenverbrauchNetzeinspeisung:Haus-Stromverbrauch.*
{if(ReadingsVal("SENEC","ur_EigenverbrauchBasis",0) > 0.1) {return sprintf("%.1f",ReadingsVal("SENEC","ur_Netz_Einspeisung",0)/ReadingsVal("SENEC","ur_EigenverbrauchBasis",0)*100)} else {return 0}},
ur_EigenverbrauchAnteil:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_EigenverbrauchAkkuLaden",0) + ReadingsVal("SENEC","ur_EigenverbrauchDirektverbrauch",0)},
ur_Leistung_L1:Haus-Stromverbrauch.*
{ReadingsVal("SENEC","ur_AutarkiegradBasis",0) - ReadingsVal("SENEC","Leistung-L2",0) - ReadingsVal("SENEC","Leistung-L3",0)}

unter Verwendung der o.g. User Readings.

Gruß,
Carsten.