SMA EV-Charger

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

Vorheriges Thema - Nächstes Thema

fhemsmaevcharger

Zitat
Auf die Schnelle bin ich jetzt auch erst einmal überfragt und müsste erst einmal in die Tiefen einer Linux-Installation abtauchen. So, wie es aussieht sind die Perl-Module wohl nicht an der richtigen Stelle installiert oder werden nicht gefunden. Scheint also grundsätzlich erst einmal nichts mit dem Modul zu tun zu haben, sondern mit deiner Installation. Ich schau mal, ob ich einen Ansatz für eine Lösung finde, bin da aber auch nicht wirklich der Profi.

Gruß
Jürgen


Ok, danke dir!

Vielleicht hilft mir dein Output von
export
perl --version
perl -e "print qq(@INC)"
find /home/pi/perl5 -iname '*json*'  (bzw. mit entsprechend angepasstem Pfad?)

Oder andere Frage: Läuft das bei dir auch auf einem Raspberry Pi (2?) mit Raspberry Pi OS version 5.10?

Ich könnte das und FHEM ja nochmal neu aufsetzen...
Allerdings war das beim ersten mal schon etwas schwierig, die Anleitung nicht so ganz eindeutig für einen Laien wie mich...

Aber trotzdem vielen Dank nochmal für die Unterstützung!

fhemsmaevcharger

FHEM neu aufgesetzt ( manuell nach Anleitung hier: https://debian.fhem.de (Manual installation from console) ).
Leider mit demselben Ergebnis: ... STATE      Process died prematurely.

jual

Zitat von: fhemsmaevcharger am 30 Dezember 2021, 21:11:43
FHEM neu aufgesetzt ( manuell nach Anleitung hier: https://debian.fhem.de (Manual installation from console) ).
Leider mit demselben Ergebnis: ... STATE      Process died prematurely.

Ich glaube, dass das Problem nicht an der Installation des FHEM liegt, sondern eher beim Betriebssystem oder ggf. an irgendwelchen Rechten bzw. benutzten Usern?

jual

Zitat von: fhemsmaevcharger am 30 Dezember 2021, 16:50:32

Ok, danke dir!

Vielleicht hilft mir dein Output von
export
perl --version
perl -e "print qq(@INC)"
find /home/pi/perl5 -iname '*json*'  (bzw. mit entsprechend angepasstem Pfad?)

Oder andere Frage: Läuft das bei dir auch auf einem Raspberry Pi (2?) mit Raspberry Pi OS version 5.10?

Zunächst einmal zu meiner Installation. Ich habe einen Raspi 4 mit Raspbian Version 10 (buster).

Wenn ich mich mit "pi" anmelde dann bekomme ich folgende Werte:

export (nur die Perl-relevanten):
declare -x PATH="/home/pi/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"
declare -x PERL_LOCAL_LIB_ROOT="/home/pi/perl5"
declare -x PERL_MB_OPT="--install_base \"/home/pi/perl5\""
declare -x PERL_MM_OPT="INSTALL_BASE=/home/pi/perl5"


perl --version:
This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int
(with 61 registered patches, see perl -V for more detail)


perl -e "print qq(@INC)"
/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/                                                   perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi                                                   -64int /home/pi/perl5/lib/perl5 /etc/perl /usr/local/lib/arm-linux-gnueabihf/per                                                   l/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /u                                                   sr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /home                                                   /pi/perl5/lib/perl5/5.28.0 /home/pi/perl5/lib/perl5/5.28.0/arm-linux-gnueabihf-t                                                   hread-multi-64int /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-bas

find /home/pi/perl5 -iname '*json*' (hier habe ich nur bei der Abfrage mit home/pi etwas in versteckten Dateien gefunden,)
/home/pi/.local/lib/python3.7/site-packages/pkcs7-0.1.2.dist-info/metadata.json
/home/pi/.cpan/build/Crypt-Rijndael_PP-0.05-0/MYMETA.json
/home/pi/.cpan/build/Data-UUID-1.226-0/META.json
/home/pi/.cpan/build/Data-UUID-1.226-0/MYMETA.json
/home/pi/.cpan/build/local-lib-2.000024-0/META.json
/home/pi/.cpan/build/local-lib-2.000024-0/MYMETA.json
/home/pi/.cpan/build/Data-GUID-0.049-0/META.json
/home/pi/.cpan/build/Data-GUID-0.049-0/MYMETA.json


fhemsmaevcharger

Hallo J,

ich habe aus
use json;
ein
use JSON;
gemacht.

Und siehe da...
:) ;) :D ;D 8)

Vielen Dank so weit! Und guten Rutsch ins neue Jahr!!!

Internals:
   DEF        192.168.178.87 <user> <password>
   FUUID      61cd7f09-f33f-95fa-a9a9-a3032af9c91fd210
   HOST       192.168.178.87
   INTERVAL   60
   LASTUPDATE 31.12.2021 / 17:46:12
   NAME       mySMAEVCharger
   NR         16
   PASS       <password>
   STATE      Data retrieved
   TYPE       SMAEVCharger
   USER       <user>
   HELPER:
     ACCESS_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDA5NjkxMTAsInN1YiI6IldCQWRtaW4iLCJ1aWQiOiJkYThmNzMxNi1kZmUxLTQzNjMtODU2Yi0yZmI5YjMwNzJkNTAiLCJleHAiOjE2NDA5NzI3MTB9.gL8qZIe37FeRDwBAWImzSsxyKVpmlX-Ll5MOsj8ozMk
     BASEURL    https://192.168.178.87
     EXPIRE_TOKEN 1640972711
     INTERVAL   60
     REFRESH_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDA5NjkxMTAsInN1YiI6IldCQWRtaW4iLCJ1aWQiOiJkYThmNzMxNi1kZmUxLTQzNjMtODU2Yi0yZmI5YjMwNzJkNTAiLCJleHAiOjE2NDEwNTU1MTAsInR5cGUiOiJyZWZyZXNoIn0.MoQ57uKNid57MbqktLHj8J2apMU-ycPfJlLK5ryIm-k
     SESSIONID  node0rgsyafp2dkdghmd4zqbbyezq342.node0
     Status_Ladevorgang nicht verbunden
   READINGS:
     2021-12-31 17:46:12   Energie_Ladevorgang 0
     2021-12-31 17:46:12   Leistung_Bezug  0
     2021-12-31 17:46:12   Leistung_Ladestation 0
     2021-12-31 17:46:12   Netzspannung_Phase_L1 229.604
     2021-12-31 17:46:12   Netzspannung_Phase_L2 230.778
     2021-12-31 17:46:12   Netzspannung_Phase_L3 231.103
     2021-12-31 17:46:12   Netzstrom_Phase_L1 0
     2021-12-31 17:46:12   Netzstrom_Phase_L2 0
     2021-12-31 17:46:12   Netzstrom_Phase_L3 0
     2021-12-31 17:46:12   Param_Betriebsart_Ladevorgang Optimiertes_Laden
     2021-12-31 17:46:12   Param_Dauer_Ladevorgang 0
     2021-12-31 17:46:12   Param_Ende_Ladevorgang 2021-12-31 10:48:28
     2021-12-31 17:46:12   Param_Energiemenge_Ladevorgang 0
     2021-12-31 17:46:12   Param_Fallback_Wirkleistungsbegrenzung 11000
     2021-12-31 17:46:12   Param_Ladebereitschaft_bis_Trennung 60
     2021-12-31 17:46:12   Param_Minimaler_Ladestrom 10
     2021-12-31 17:46:12   Param_Nennstrom_Netzanschluss 32
     2021-12-31 17:46:12   Param_Netz_Nennspannung 230
     2021-12-31 17:46:12   Param_Trennung_nach_Vollladung ja
     2021-12-31 17:46:12   Schalterstellung_Drehschalter intelligente Ladung
     2021-12-31 17:46:12   Schnellabschaltung 1467
     2021-12-31 17:46:12   Startzeit_Verbindung nicht verbunden
     2021-12-31 17:46:12   Status_Ladevorgang nicht verbunden
     2021-12-31 17:46:12   Status_Meldung  ---
     2021-12-31 17:46:12   Status_Zustand  Ok
     2021-12-31 17:46:12   Status_verbundenes_Fahrzeug Ok
     2021-12-31 17:46:12   Zaehlerstand_Bezugszaehler 505470
     2021-12-31 17:46:12   Zaehlerstand_Ladestation 505470
     2021-12-31 17:46:12   state           Data retrieved
Attributes:
   room       all
   verbose    5

jual

Zitat von: fhemsmaevcharger am 31 Dezember 2021, 17:51:59
Hallo J,

ich habe aus
use json;
ein
use JSON;
gemacht.

Und siehe da...
:) ;) :D ;D 8)

Vielen Dank so weit! Und guten Rutsch ins neue Jahr!!!

Sehr schön und dann so einfach ;-). Ich falle doch auch immer wieder auf diese Groß-/Kleinschreibung rein.

Viel Spaß mit dem Modul und einen guten Start ins neue Jahr!

jual

Hallo Zusammen,

wenn ich nun alles richtig gemacht habe, dann sollte ab morgen 8:00 Uhr das Modul über den normalen Update-Prozess verfügbar sein.

Ein gutes Neues Jahr!
Jürgen

Dracolein

Super! Für mich ,,Endnutzer" der das Modul bereits installiert hat ändert sich da irgendwas? Beziehungsweise muss ich etwas anpassen damit das Update automatisch ddin Modul ,,mitnimmt"?
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 02 Januar 2022, 15:50:55
Super! Für mich ,,Endnutzer" der das Modul bereits installiert hat ändert sich da irgendwas? Beziehungsweise muss ich etwas anpassen damit das Update automatisch ddin Modul ,,mitnimmt"?

Wenn du in deinem FHEM demnächst ein Update machst, wird automatisch die neueste Version des Moduls installiert. Du musst also nichts machen.

fhemsmaevcharger

#99
Zitat von: jual am 24 Dezember 2021, 09:54:40
Mit Node-RED kenne ich mich leider nicht so aus. Im Prinzip müssen aber für den Zugriff auf die Wallbox nur entsprechende URL's aufgerufen werden, die dann die notwendigen Ergebnisse liefern. In meinem Modul habe ich aktuell Curl-Aufrufe dafür verwendet. Dort müsstest du eventuell fündig werden. Ansonsten habe ich nochmal meine ersten Versuche als Python-Script angehangen.

Hallo jual,

wie weiter oben schon steht, reichen meine "Software-Kenntnisse" leider nicht aus um das in FHEM umzusetzen was ich gerne möchte.
Es kostet mich einfach zu viel Zeit, da ich mich mit der Linux- und Perl-Welt überhaupt nicht auskenne.

Mit Node-RED geht es für mich deutlich einfacher!
Problem: Ich habe in dieser Welt nichts gefunden, was Daten aus dem SMA EV Charger auslesen kann.

Wenn ich mir den Inhalt von smaEVCharger.py ansehe, dann vermute ich dass es für einen Experten kein großes Ding ist ein entsprechendes Modul für Node-RED zu programmieren.
Mich persönlich interessieren eigentlich nur folgende Werte / Zustände aus dem EVCharger:
- lädt/lädt nicht
- Fehler aufgetreten?
- Ladeleistung

Wenn ich es richtig verstehe, dann liefert der Charger die gewünschten Daten im JSON-Datenformat (wie z.B. unten dargestellt (Wetterdaten von Openweathermap)). Oder?

Ich würde mit zutrauen in Node-RED diese Daten mit Javascript selbst auszuwerten.
Aber das Ding mit dem einloggen und den curl-Aufrufen habe ich leider nicht drauf.

Wie könnte man das lösen?
Kann ich mit deinem Code im Node-RED-Forum nach Unterstützung fragen?
Oder hast du eine andere Idee?
Oder kann man die beiden Welten mit MQTT zusammenführen (hab's gerade irgendwo gelesen...)?
Oder ist diese Frage in diesem Forum schon ein "Verbrechen"?
Ich hoffe ich ärgere hier niemanden zu sehr mit meinen Fragen...
:-\

Auf jeden Fall viele Grüße
Thomas


{
  "lat": 33.4418,
  "lon": -94.0377,
  "timezone": "America/Chicago",
  "timezone_offset": -21600,
  "current": {
    "dt": 1641425180,
    "sunrise": 1641388843,
    "sunset": 1641424925,
    "temp": 287.78,
    "feels_like": 286.4,
    "pressure": 1012,
    "humidity": 42,
    "dew_point": 275.02,
    "uvi": 0,
    "clouds": 1,
    "visibility": 10000,
    "wind_speed": 0.89,
    "wind_deg": 75,
    "wind_gust": 3.58,
    "weather": [
      {
        "id": 800,
        "main": "Clear",
        "description": "clear sky",
        "icon": "01n"
      }
    ]
  },
  "minutely": [
    {
      "dt": 1641425220,
      "precipitation": 0
    },
    {
      "dt": 1641425280,
      "precipitation": 0
    },
    {
      "dt": 1641425340,
      "precipitation": 0
    },
    {
      "dt": 1641425400,
      "precipitation": 0
    },
    {
      "dt": 1641425460,
      "precipitation": 0
    },
    {
      "dt": 1641425520,
      "precipitation": 0
    },
    {
      "dt": 1641425580,
      "precipitation": 0
    },
    {
      "dt": 1641425640,
      "precipitation": 0
    },
    {
      "dt": 1641425700,
      "precipitation": 0
    },
    {
      "dt": 1641425760,
      "precipitation": 0
    },



jual

Zitat von: fhemsmaevcharger am 06 Januar 2022, 00:45:54
Hallo jual,

wie weiter oben schon steht, reichen meine "Software-Kenntnisse" leider nicht aus um das in FHEM umzusetzen was ich gerne möchte.
Es kostet mich einfach zu viel Zeit, da ich mich mit der Linux- und Perl-Welt überhaupt nicht auskenne.

Mit Node-RED geht es für mich deutlich einfacher!
Problem: Ich habe in dieser Welt nichts gefunden, was Daten aus dem SMA EV Charger auslesen kann.

Wenn ich mir den Inhalt von smaEVCharger.py ansehe, dann vermute ich dass es für einen Experten kein großes Ding ist ein entsprechendes Modul für Node-RED zu programmieren.
Mich persönlich interessieren eigentlich nur folgende Werte / Zustände aus dem EVCharger:
- lädt/lädt nicht
- Fehler aufgetreten?
- Ladeleistung

Wenn ich es richtig verstehe, dann liefert der Charger die gewünschten Daten im JSON-Datenformat (wie z.B. unten dargestellt (Wetterdaten von Openweathermap)). Oder?

Ich würde mit zutrauen in Node-RED diese Daten mit Javascript selbst auszuwerten.
Aber das Ding mit dem einloggen und den curl-Aufrufen habe ich leider nicht drauf.


Dann versuche ich mal ein paar Anregungen/Hilfestellungen zu geben, soweit ich das kann ;-).

Da du FHEM ja mittlerweile laufen hast, wäre das aus meiner Sicht grundsätzlich eine gute Ausgangsbasis auf bestimmte Daten zuzugreifen. Man könnte FHEM auch mittels MQTT mit Node-RED verbinden. Dazu habe ich ein etwas älteres Video bzw. eine vielleicht insgesamt interessante Videoreihe gefunden.

https://www.youtube.com/watch?v=AGn_QfPmk-g

Dann ein paar Hinweise zum Thema "curl". Diese Aufrufe habe ich verwendet, weil ich bei den ersten Schritten in der Programmierung eines Moduls (war für mich auch Neuland), mit den vorhanden "http-Aufrufen" Probleme hatte. Das komplizierte ist tatsächlich immer der eigentliche Login-Prozess bei solchen Seiten. Hier müssen dann evtl. Cookies und Access-Token ermittelt werden und bei folgenden Aufrufen verwendet werden.

Im Code meine Moduls findet man in der Logon-Funktion die Vorgehensweise für die Login und die Funktion getCurlCmd baut im Prinzip nur die notwendigen Parameter für den Aufruf der Webseite zusammen. Dort findet man dann im Prinzip auch quasi die Links, die man benötigt, um auf die jeweiligen Daten zuzugreifen. Ich bin mir allerdings nicht sicher, ob dir das wirklich weiter hilft ;-).

Daher auch nochmal eine grundsätzliche Frage. Was möchtest du denn genau machen bzw. wo möchtest du was anzeigen? Vielleicht ist es ja einfacher dir bei der reinen Umsetzung in FHEM zu helfen. Denn dafür würde man eigentlich nich sehr viel Infos benötigen und müsste auch kein erfahrener Programmierer sein.

MadMax

Hallo jual,

ist es möglich diesen Wert noch aus der WB zu lesen?
Measurement.InOut.DigIn.CurWCtlNom

Hatte in Zeile 724
$livedata->{"Measurement.InOut.DigIn.CurWCtlNom"} = "Vorgabe_Wirkleistungsbegrenzung";
und in Zeile 741
"Measurement.InOut.DigIn.CurWCtlNom" => "Vorgabe_Wirkleistungsbegrenzung",
hinzugefügt aber das Reading kommt nicht.

Hier kann ich sehen ob die Wallbox über die Digitaleingänge runtergeregelt wird.

Danke.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

jual

Zitat von: MadMax am 19 Februar 2022, 13:18:03
Hallo jual,

ist es möglich diesen Wert noch aus der WB zu lesen?
Measurement.InOut.DigIn.CurWCtlNom

Schau ich mir an, kann aber ein wenig dauern.

MadMax

Hallo Jual,

ich habe es selbs gefunden.


Measurement.Operation.WMaxLimNom

das ist mein Wert den ich benötige.

also Zeile 724:
$livedata->{"Measurement.Operation.WMaxLimNom"} = "Vorgabe_Wirkleistungsbegrenzung";

und Zeile 741:
"Measurement.Operation.WMaxLimNom" => "Vorgabe_Wirkleistungsbegrenzung",

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

jual

Zitat von: MadMax am 19 Februar 2022, 16:20:42
Hallo Jual,

ich habe es selbs gefunden.


Super, dann schau ich mal, ob ich morgen Zeit finde, dass direkt einzubauen und ein Update bereit zu stellen.

Gruß
Jürgen