Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)

Begonnen von ch.eick, 07 Oktober 2020, 16:09:12

Vorheriges Thema - Nächstes Thema

plin

Zitat von: ch.eick am 08 November 2020, 17:06:42
Das ist von plin:
tja, aber ich habe das falsche Problem hochgeladen ;D. Als Anlage das richtige Script zum Auslesen von "/processdata/scb:statistic:EnergyFlow".

Und ich habe erfolgreich den ersten Schritt (Step1) in perl realisiert, einige Grundsatzfragen sind damit geklärt, der Rest ist nur noch Arbeit.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

ch.eick

Zitat von: plin am 08 November 2020, 20:56:29
Und ich habe erfolgreich den ersten Schritt (Step1) in perl realisiert, einige Grundsatzfragen sind damit geklärt, der Rest ist nur noch Arbeit.
??? Das sieht nach dem Python Skript aus, das ich bereits ausgebaut habe ???
In der alten Implementierung gab es diese http Aufrufe mit Python bereits, inklusive der Übergabe an Fhem.
Das verstehe ich jetzt nicht.

Ich bin sehr gespannt auf die Perl Umsetzung.

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo nochmal,
das ist nun nochmal passiert, jedoch steht es im Wiki korrekt drin.
Irgendwo auf dem Weg vom Wiki zum RAW Device im Fhem scheint etwas schief zu laufen.
Bitte achtet deshalb besonders darauf, was wirklich im Fhem Device hin kopiert wurde.
Ich arbeite direkt auf einem RPI mit Desktop und habe somit  keine Win Tools dazwischen.

Im Log seht Ihr dann diese Zeile und ziemlich am Ende das "/gee)"

2020.11.08 20:55:47 3: PV_Anlage_1_API: Replacement 04 with expression {my $NAME = "PV_Anlage_1_API" ;;fhem("deletereading ".$NAME." message");;fhem("deletereading ".$NAME." auth.*");;my @chars=('a'..'z','A'..'Z','0'..'9'); my $r; foreach(1..16) {$r.=$chars[rand @chars];};; fhem("setreading ".$NAME." auth_randomString64 ".$r);; $r;;} (s/(?^:%randomString64%)/{my $NAME = "PV_Anlage_1_API" ;;fhem("deletereading ".$NAME." message");;fhem("deletereading ".$NAME." auth.*");;my @chars=('a'..'z','A'..'Z','0'..'9'); my $r; foreach(1..16) {$r.=$chars[rand @chars];};; fhem("setreading ".$NAME." auth_randomString64 ".$r);; $r;;}/gee) created warning: Use of uninitialized value in substitution iterator at ./FHEM/98_HTTPMOD.pm line 877.

2020.11.08 12:02:46 5: PV_Anlage_1_API: Replace called for type get01, regex (?^:%auth_randomString64%), mode reading, value auth_randomString64 input: {"nonce": "","username": "user"}

>>>> {"nonce": "","username": "user"}
>>>> da müsste z.B.  {"nonce": "I4G54dSPVX3YPPQ9","username": "user"} stehen.


>>>> in der Kommandozeile kann manauch folgendes Testen

{my $NAME = "PV_Anlage_1_API";; my @chars=('a'..'z','A'..'Z','0'..'9');; my $r;; foreach(1..16) {$r.=$chars[rand @chars];;};; fhem("setreading ".$NAME." test_auth_randomString64 ".$r);; $r;;}
>>>> Auf dem Bildschirm kommt 5sUrso8HnWoDXLzd
>>>> Und im PV_Anlage_1 kommt ein neues reading
>>>> test_auth_randomString64 5sUrso8HnWoDXLzd


Zitat von: plin am 08 November 2020, 14:18:28
Das "/gee" habe ich gesehen aber nicht hinterfragt (habe die '}' übersehen und gedacht das wäre der Ersatzcode).
Ich habe das replacement04Value noch mal alleine übernommen und nun klappt's.
Vielleicht ist der Fehler beim Upload passiert. Ich hatte die raw-Defintion in ein separates File kopiert und via telnet hochgeladen. Bisher hatte ich damit noch keine Probleme. Aber es gibt für alles ein erste Mal.
Kann passieren ;-) Okay, dann läuft es wenigstens.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

plin

Zitat von: ch.eick am 08 November 2020, 21:57:43
??? Das sieht nach dem Python Skript aus, das ich bereits ausgebaut habe ???
In der alten Implementierung gab es diese http Aufrufe mit Python bereits, inklusive der Übergabe an Fhem.
Das verstehe ich jetzt nicht.

Ich bin sehr gespannt auf die Perl Umsetzung.
Ok, das ist lustig. Ich bin ja spät eingestiegen (erst Ende Oktober) und habe anscheinend einen Programmrumpf von Dir gefunden (Anfang des Programms) und den Code wieder ergänzt, den Du entfernt hast (ich brauchte ja eine Übergangslösung für mein \gee-Problem). Das Ende stammt eindeutig von mir  :).

Anyway: Die Logik und der Ablauf passen, daran kann ich mich orientieren.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

ch.eick

Zitat von: plin am 09 November 2020, 07:17:14
Ok, das ist lustig. Ich bin ja spät eingestiegen (erst Ende Oktober) und habe anscheinend einen Programmrumpf von Dir gefunden (Anfang des Programms) und den Code wieder ergänzt, den Du entfernt hast (ich brauchte ja eine Übergangslösung für mein \gee-Problem). Das Ende stammt eindeutig von mir  :).

Anyway: Die Logik und der Ablauf passen, daran kann ich mich orientieren.
Ahh, so wird ein Schuh draus.

Wenn Du hier aktive würdest und den Code zu Perl transferieren Könntest wäre das echt toll.
Bitte bearbeite das aber dann in diesem HTTPMOD komplexes Anmeldeverfahren Python Keygenerator Thread, den ich dafür aufgemacht habe. Da gibt es auch noch Zusatzinformationen und den isolierten Code.

Auch hierfür wäre es schön, wenn Du die Posts, die dorthin gehören einfach rüber kupierst und danach hier wieder löscht. Dann bleibt es übersichtlicher.

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

KölnSolar

Hi Christian,

das https://forum.fhem.de/index.php/topic,115702.msg1099652.html#msg1099652 wär doch noch was für Dich. Scheinbar eine etwas feinere Prognose.
Meine Meinung kennst Du ja zu Prognosen.  ;)
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ch.eick

Zitat von: KölnSolar am 09 November 2020, 13:16:09
das https://forum.fhem.de/index.php/topic,115702.msg1099652.html#msg1099652 wär doch noch was für Dich. Scheinbar eine etwas feinere Prognose.
Meine Meinung kennst Du ja zu Prognosen.  ;)
Danke schön, da bin ich doch schon dabei :-)

Ich habe bereits eine zufriedenstellende Prognose etabliert und verschiebe die mögliche Startzeit einzelner Verbraucher.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Mumpitz

Hallo zusammen

Ich habe den Forecast ebenfalls integriegriet und zum laufen bekommen.
Nun ist es so dass alle berechneten Werte ausführlich in das Fhem Log geschrieben werden. Kann man das irgendwie einfach unterbinden? Mir würde es reichen wenn die entsprechenden Readings geschrieben werden.

ch.eick

Zitat von: Mumpitz am 10 November 2020, 19:58:49
Ich habe den Forecast ebenfalls integriegriet und zum laufen bekommen.
Nun ist es so dass alle berechneten Werte ausführlich in das Fhem Log geschrieben werden. Kann man das irgendwie einfach unterbinden? Mir würde es reichen wenn die entsprechenden Readings geschrieben werden.

Du hast vergessen, das Debugging wieder herunter zu setzen

attr global verbose 2
verbose in den Devices auf 0


Wenn Du bei "attr global verbose 3" bleiben möchtest, müsstest Du in der 99_myUtils in den Funktionen Solar_* entweder das Logging auskommentieren oder z.B. Level 3 in 4 ändern.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo zusammen,
bevor jetzt noch jemand viel Arbeit in das PV_Anlage_1_API Device steckt möchte ich Euch stoppen.

Dank der Arbeit von plin , der die Python Skripte zu Perl migriert hat, überarbeite ich gerade das Komplette Device.
Die readings werden natürlich identisch bleiben, jedoch wird der Anmeldeprozess sich im Hintergrund ändern.

Manuell läuft es bereits und ich arbeite am Automatismus.

Viele Grüße und besonderen Dank an plin
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

killah78

Moin. Hat sich nach dem Firmwareupdate eigentlich was am API verändert oder ist was hinzugekommen? Im Modbus gibts ein paar neue Werte, die mir bei meinen zwei Wechselrichtern hoffentlich helfen. ZB wird die Lade- und Entladenergie gezählt.
Naja, bin immer noch dabei die Zahlen zu beobachten und die Enden zusammenzubekommen.
Echt sehr gute Arbeit die Du/ihr hier leistet. :-)
Gruss

ch.eick

Zitat von: killah78 am 14 November 2020, 11:02:17
Hat sich nach dem Firmwareupdate eigentlich was am API verändert oder ist was hinzugekommen? Im Modbus gibts ein paar neue Werte, die mir bei meinen zwei Wechselrichtern hoffentlich helfen. ZB wird die Lade- und Entladenergie gezählt.
Naja, bin immer noch dabei die Zahlen zu beobachten und die Enden zusammenzubekommen.
Echt sehr gute Arbeit die Du/ihr hier leistet. :-)
Moin,
mit dem Update hatte ich noch gewartet, weil ich dank plin die Python Skripte nun endlich weg bekommen habe. An zwei Stellen gleichzeitig zu ändern ist keine gute Idee :-)
Ich denke ich schaffe es heute noch das Wiki zu ändern, damit Ihr das Update machen könnt. Ändern wird sich dann folgendes:

PV_Anlage_1_API
  - Die Anmeldung ist dann besser integriert und verwendet das mehrstufige "sid" Verfahren
  - Die userreadings wurden bereinigt
  - Es gibt eine plenticor_auth() Funktion, die das Python ersetzt
  - Die Funktion erfüllt die drei Stufen der Anmeldung (start/finish/session)
  - Das Passwort wird im KeyStore abgelegt

  - Es sieht jetzt schön sauber aus und ich schüttele keine Verfolger mehr ab ;-) :-)

99_myUlils
  - KeyValue()
  - plenticore_auth()

Python Skripte entfallen
fhem@raspberrypi:~$ ls -l python/bin/plenticore
-rwxr----- 1 fhem fhem 1929 Nov 13 15:22 python/bin/plenticore_auth_finish.py
-rwxr----- 1 fhem fhem 2264 Nov 13 15:23 python/bin/plenticore_auth_session.py

Passwort json Files entfallen
fhem@raspberrypi:~$ ls -l python/pwd*
-rw-r----- 1 fhem fhem 53 Aug 19 10:52 python/pwd_fhem.json
-rw-r----- 1 fhem fhem 59 Mär 26  2020 python/pwd_plenticore.json

-rw-r----- 1 fhem fhem 61 Jul 30 16:01 python/pwd_byd.json  <<< falls Ihr einen BYD HV habt, daran arbeite ich noch


Anschließend werde ich die neu Plenticore FW aktualisieren. Im anderen Forum wurde bisher nichts negatives berichtet.

Hierbei muss folgendes geprüft werden:
  - Modbus/TCP PV_Anlage_1
      Werden hier alle bereits definierten readings noch gelesen? <<< Das könnte schon mal jemand anderes bitte prüfen
      Weitere neue Register identifizieren, die ich dann einbaue   <<< Hier wäre es schön, wenn ich eine Liste bekommen würde, dann kann ich mir die Sucherei sparen

  - PV_Anlage_1_API
     Es gibt wohl neue API Aufrufe, die für die Batterie Steuerung verwendbar sind, auch hier wäre ich über eine Liste Dankbar.
     Das wäre dann auch etwas für die Betreiber anderer Speicher Typen interessant.
     http://<ip-address_plenticore>/api/v1

Viele Grüße
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

KölnSolar

ZitatDank der Arbeit von plin , der die Python Skripte zu Perl migriert hat
Prima. Ein externer Fremdzugriff mit Fremdsoftware weniger.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ch.eick

Zitat von: KölnSolar am 14 November 2020, 12:46:25
Prima. Ein externer Fremdzugriff mit Fremdsoftware weniger.
Das hatte mich schon extrem gestört, aber ich habe das mit den ganzen Key gedöns nicht verstanden ;-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo zusammen,
ich möchte nun mit Stolz verkünden, dass Ihr jetzt das PV_Anlage_1_API Device umstellen könnt.
Die Dokumentation steht bereits im Wiki und ich betrachte das als eine wichtige Änderung, die Ihr auf jeden Fall machen solltet. Wie bereits von KölnSolar angemerkt wurde ist damit ein Fremdsoftware Zugriff eliminiert worden. Ich meine auch subjektiv festgestellt zu haben, dass die Anmeldung jetzt auch schneller läuft. Zumindest ist das device jetzt massiv übersichtlicher.

Falls Ihr bereits an den Firmware update des Plenticor gedacht habt, dann macht bitte zuerst diese Umstellung, damit Ihr auch wisst woher die Fehler kommen :-)
Bei mir steht der Update jetzt auch an, damit ich mal nach den Kostal Verbesserungen schauen kann.

Und wie immer nehme ich gerne Hinweise zum Wiki an, damit es auch für alle verständlich wird.

Viele Grüße
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick