SMA EV-Charger

Begonnen von Kamik, 07 Dezember 2020, 22:05:02

Vorheriges Thema - Nächstes Thema

fhemsmaevcharger

Hallo Jürgen,

ich habe einen kleinen Schreibfehler (ich habe keine Ahnung wie das richtig heisst) in "der Ausgabe der Daten die mit dem verbosity level" zusammenhängen gefunden:   

   Line 744: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl Response Code: 200
   Line 749: 2022.04.22 11:33:12 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
   Line 750: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl cmd livedata: curl -i -s -k -X 'POST'...
   Line 752: 2022.04.22 11:33:13 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd

Ich nehme an es muss SMAEVCharger_getCurlcmd heissen...

jual

Zitat von: fhemsmaevcharger am 22 April 2022, 11:46:16
Hallo Jürgen,

ich habe einen kleinen Schreibfehler (ich habe keine Ahnung wie das richtig heisst) in "der Ausgabe der Daten die mit dem verbosity level" zusammenhängen gefunden:   

   Line 744: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl Response Code: 200
   Line 749: 2022.04.22 11:33:12 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
   Line 750: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl cmd livedata: curl -i -s -k -X 'POST'...
   Line 752: 2022.04.22 11:33:13 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd

Ich nehme an es muss SMAEVCharger_getCurlcmd heissen...

Danke für den Hinweis. Ist zum Glück nur ein Fehler in einem Logeintrag, der keine funktionalen Auswirkungen hat. Werde ich bei einem der nächsten Updates dann beheben.

fhemsmaevcharger

Hallo Jürgen,

ich bin auf den Schreibfehler im Logeintrag gestoßen, weil ich nun gerade versuche mit Node-RED nicht nur die Momentanwerte

"livedata"           ($baseurl.'/api/v1/measurements/live/')

auszulesen (was bisher wunderbar und stabil funktioniert), sondern nun auch die Parameter

"read_params"  ($baseurl.'/api/v1/parameters/search/').


Leider klappt es so wie ich es umgesetzt habe nicht, ich erhalte "statusCode: 500".

Ich kann in deinem PERL Script erkennen, dass es zwischen Auslesen von Momentanwerte und Parameter wohl einen prinzipiellen Unterschied gibt. Bei den Parameter wird noch ein '$data' angehängt.
Ich habe allerdings keine Ahnung warum und um welche Daten es geht...

$curlcmd = SMAEVCharger_getCurlcmd($hash, "livedata");
$curlcmd = SMAEVCharger_getCurlcmd($hash, "read_params", $data);

In Node-RED ist das Lesen der Momentanwerte umgesetzt, indem ein Node-Red HTTP Request Node wie folgt konfiguriert wird:

msg.method = "post";
msg.url = "https://192.168.178.62/api/v1/measurements/live/";
msg.payload = `[{"componentId":"IGULD:SELF"}]`;
msg.headers = {
    "Host": "192.168.178.62",
    "Connection": "close",
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "okhttp/3.10.0",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Dest": "empty",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
    "Content-Length": "30",
    "Referer": "https://192.168.178.62/webui/login",
    "Authorization": `Bearer ${token}`
};
msg.cookies = {};
msg.rejectUnauthorized = false;

Als Antwort erhalte ich folgende Daten (payload: array[25]:

msg : Object
object
payload: array[25]
topic: """"
timestamp: 1650626047481
_msgid: ""b0acb56df3bd68fc""
method: ""post""
url: ""https://192.168.178.62/api/v1/measurements/live/""
headers: object
connection: ""close""
date: ""Fri, 22 Apr 2022 11:14:07 GMT""
cache-control: ""no-cache,no-store,must-revalidate""
content-type: ""application/json""
x-node-red-request-node: ""29f96838""
cookies: object
empty
rejectUnauthorized: false
statusCode: 200
responseUrl: ""https://192.168.178.62/api/v1/measurements/live/""
redirectList: array[0]
retry: 0"

Das Lesen der Parameter habe ich umgesetzt, indem ein Node-Red HTTP Request Node wie folgt konfiguriert wird:
(Die geänderten Angaben, im Vergleich zu den Momentanwerte habe ich rot markiert.)


msg.method = "post";
msg.url = "https://192.168.178.62/api/v1/parameters/search/";
msg.payload = `[{"queryItems":[{"componentId":"IGULD:SELF"}]}]`;
msg.headers = {
    "Host": "192.168.178.62",
    "Connection": "close",
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "okhttp/3.10.0",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Dest": "empty",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
    "Content-Type": "application/json",
    "Content-Length": "45",
    "Referer": "https://192.168.178.62/webui/Plant:1,IGULD:SELF/configuration/view-parameters",
    "Authorization": `Bearer ${token}`
};
msg.cookies = {};
msg.rejectUnauthorized = false;

Als Antwort erhalte ich folgende Daten (keine payload und statusCode: 500):

msg : Object
object
payload: """"
topic: """"
timestamp: 1650626047481
_msgid: ""b0acb56df3bd68fc""
method: ""post""
url: ""https://192.168.178.62/api/v1/parameters/search/""
headers: object
connection: ""close""
date: ""Fri, 22 Apr 2022 11:14:09 GMT""
cache-control: ""no-cache,no-store,must-revalidate""
x-node-red-request-node: ""da8506e0""
cookies: object
empty
rejectUnauthorized: false
statusCode: 500
responseUrl: ""https://192.168.178.62/api/v1/parameters/search/""
redirectList: array[0]
retry: 0"

Hast du vielleicht spontan eine Idee wo das Problem liegen könnte?

Danke und Gruß
Thomas

fhemsmaevcharger

Zusatzfrage: Eigentlich müsste man die "Details" doch mit Hilfe der Entwicklerwerkzeugen eines aktuellen Browsers herauslesen können, wenn man weiß wie. Oder?
(siehe Screenshot).

Dracolein

#109
Hallo zusammen,

die neue Softwareversion 1.2.23.R wurde auf meinem EV Charger 22 gestern vormittag automatisiert installiert. Sicherlich ist Euch bekannt, dass es neue Funktionen gibt:
https://www.sma-sunny.com/service-tipp-updates-sma-ev-charger/

Das Dimmen der LEDs funktioniert gut.
Die Ladefreigabe gegen Fremdzugriff funktioniert grundsätzlich auch, bleibt für meinen Geschmack aber dennoch deutlich hinter ihren Möglichkeiten. Derzeit kann ich diese Funktion global NUR auf der Browser-Benutzeroberfläche lokal auf dem EV Charger aktivieren/deaktivieren und habe folglich in der App lediglich die Möglichkeit, die Freigabe vor jeder Ladung zu erteilen. Sinnvoller wäre es gewesen, auch ersteren Parameter per App zu steuern. Naja...

Besteht eventuell die Möglichkeit, diesen Parameter "Parameter.Chrg.ChrgApv" ("Manuelle Ladefreigabe") in dies Modul einzubauen und per FHEM steuerbar zu machen? Ich habe eine kleine Urlaubsmodus-Routine in FHEM, steuerbar u.a. per Apple Home usw. Dort würde ich diesen Befehl einbauen und die Ladebox würde automatisch gesperrt werden  :)
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

joho

Hallo, ich habe das Modul mit meiner neuen Wallbaox auch ausprobiert. Es funktioniert soweit alles bestes, Danke dafür. Ich hättet aber noch eine Frage. Ich würde gerne den Parameter: Parameter.Inverter.AcALim über einen SET Befehl setzen ist das möglich und wie ist der Syntax. In den Readings taucht er nicht auf, laut Webzugang es es aber ein beschreibbarer Parameter.
Danke für die Unterstützung

jual

Zitat von: joho am 03 August 2022, 13:44:20
Hallo, ich habe das Modul mit meiner neuen Wallbaox auch ausprobiert. Es funktioniert soweit alles bestes, Danke dafür. Ich hättet aber noch eine Frage. Ich würde gerne den Parameter: Parameter.Inverter.AcALim über einen SET Befehl setzen ist das möglich und wie ist der Syntax. In den Readings taucht er nicht auf, laut Webzugang es es aber ein beschreibbarer Parameter.

Ich schaue mir das gerne nach meinem Urlaub mal an. Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.

Ralli

Herzlichen Dank für das Modul.

Wäre es dir möglich, sowohl Username als auch Passwort oder zumindest das Passwort im Klartext aus der Def herauszunehmen und dieses wie in anderen Modulen über Kryptierung in einem Attribut abzuspeichern?
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Dracolein

Zitat von: jual am 08 August 2022, 20:55:29
Ich schaue mir das gerne nach meinem Urlaub mal an. Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.
Hattest Du  zwischenzeitlich Gelegenheit einmal drüberzuschauen? Mich reizt weiterhin
Zitat von: Dracolein am 08 Mai 2022, 08:05:38
Besteht eventuell die Möglichkeit, diesen Parameter "Parameter.Chrg.ChrgApv" ("Manuelle Ladefreigabe") in dies Modul einzubauen und per FHEM steuerbar zu machen? Ich habe eine kleine Urlaubsmodus-Routine in FHEM, steuerbar u.a. per Apple Home usw. Dort würde ich diesen Befehl einbauen und die Ladebox würde automatisch gesperrt werden  :)
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Ralli

Zitat von: jual am 08 August 2022, 20:55:29
Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.

Danke für das Update, Jual.

Eine einfache Nachfrage: In Zeilen 367 und 368 nutzt du die Funktion "netatmo_encrypt", in Zeilen 440 und 441 aber dann "SMAEVCharger_SMAdecrypt" - ist hier noch ein Überbleibsel von einem Code-Transfer oder passt das so?
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

jual

Nun bin ich endlich dazu gekommen ein paar Dinge zu fixen/ergänzen:

Neue Parameter:
- AC-Strom_Begrenzung (Update nur als "advanced")
- Param_Manuelle_Ladefreigabe (was der macht, ist mir nicht klar)
- Param_Ladefreigabe_ueber_App (hiermit kann man wohl steuern, dass jede Ladung über die App freigegeben werden muß)

Ansonsten habe ich endlich User und Password encrypted. Dass define des Moduls muß hierfür nochmals angestoßen werden.

Den Fehler, der gerade schon von Ralli angemerkt wurde, habe ich direkt auch nochmal behoben. Das kommt davon, wenn man Code aus anderen Modulen "klaut" ;-).

Ich hoffe, dass ansonsten alles funktioniert.

Dracolein

In einem anderen Thread gibts selten aber sporadisch Probleme bzgl. unklarer Variablenwerte auf Seiten der SMA Geräte. Da werden z.B. auf numerische Variablen kurzzeitig auch mal Textstrings geschrieben und wenn FHEM in diesem Moment grade die Daten abholt, werden sie in FHEM übertragen und führen mitunter zu Logfiles.

Beim EV Charger ist das bei mir sehr häufig. Ich verwende das Reading
Leistung_Ladestation
für diverse Abfragen o.ä. und erhalten häufig beispielhaft solche Logeinträge:

2022.11.01 14:53:19 1: PERL WARNING: Argument "Scan-durchführen" isn't numeric in division (/) at (eval 217554) line 1.
2022.11.01 14:53:19 3: eval: { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }

Neben  "Scan-durchführen" steht dort alles Mögliche an sinnfreien Textstrings. Ob das auch bei anderen Readings der Fall ist, entzieht sich meiner Kenntnis.
Wäre es Dir möglich, den durch Dein Modul eingelesenen Wert auf Plausibilität zu prüfen ?

Ansonsten großartig, speziell die Möglichkeit die Ladefreigabe per FHEM zu automatisieren, wird mir sehr viel Freude bereiten.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Ralli

Das hatte ich noch nie  :o
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Dracolein

#118
Zitat von: Ralli am 01 November 2022, 16:43:04
Das hatte ich noch nie  :o

Kurios, ich kenne es gar nicht ohne diese Auffälligkeit.
Zitatattr interval 15
ist bei mir gesetzt, d.h. nach kurzer Zeit ist die (fehlerhafte) Darstellung in meiner FTUI Oberfläche wieder verschwunden, aber nervig ist es schon. Seit März hab ich das Elektroauto und auch das FHEM-Modul zum EV-Charger und seit diesem Zeitpunkt auch diese Auffälligkeit.

Ohne aktiven Ladevorgang gibts keinen Logeintrag, aber sobald die Wallbox lädt, habe ich mindestens 1-2 Logeinträge dieser Art.


edit:
sind die besagten Änderungen schon "eingecheckt"? (update all --> sehe keine Änderungen)
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

jual

Zitat von: Dracolein am 01 November 2022, 16:41:07
In einem anderen Thread gibts selten aber sporadisch Probleme bzgl. unklarer Variablenwerte auf Seiten der SMA Geräte. Da werden z.B. auf numerische Variablen kurzzeitig auch mal Textstrings geschrieben und wenn FHEM in diesem Moment grade die Daten abholt, werden sie in FHEM übertragen und führen mitunter zu Logfiles.

Beim EV Charger ist das bei mir sehr häufig. Ich verwende das Reading
Leistung_Ladestation
für diverse Abfragen o.ä. und erhalten häufig beispielhaft solche Logeinträge:

2022.11.01 14:53:19 1: PERL WARNING: Argument "Scan-durchführen" isn't numeric in division (/) at (eval 217554) line 1.
2022.11.01 14:53:19 3: eval: { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }

Neben  "Scan-durchführen" steht dort alles Mögliche an sinnfreien Textstrings. Ob das auch bei anderen Readings der Fall ist, entzieht sich meiner Kenntnis.
Wäre es Dir möglich, den durch Dein Modul eingelesenen Wert auf Plausibilität zu prüfen ?

Ansonsten großartig, speziell die Möglichkeit die Ladefreigabe per FHEM zu automatisieren, wird mir sehr viel Freude bereiten.

Von deinem beschriebenen Fehler habe ich bisher noch nichts gehört. Damit ich diesen näher eingrenzen kann, würden mir ein paar zusätzliche Infos helfen.

  • Tritt das Problem auch auf, wenn du das Intervall auf einen größeren Wert setzt?
  • Wie sieht der Code aus, in dem du das ReadingVal für die Ladeleistung nutzt?
  • welchen Wert hat der Parameter "Param_WLAN_suchen"
  • welchen Inhalt hat der Wert "Status_WLAN_Scan"
  • welchen Inhalt hat der Wert "Status_WLAN_Verbindung"
  • Ist die Wallbox über WLAN verbunden?

Zum Update. Das sollte ab morgen 8:00 verfügbar sein.