Neues Modul: 37_RCT für RCT-Power Systeme

Begonnen von marvin78, 08 April 2021, 21:00:24

Vorheriges Thema - Nächstes Thema

marvin78

Ich empfehle für RCT dieses python Modul von Dominik: https://forum.fhem.de/index.php/topic,126126.0.html

Das Modul ist performanter und basiert nicht auf der CLI. Man muss zudem keine Abhängigkeiten installieren (falls fhempy schon läuft).





Seit einiger Zeit werkelt hier ein RCT Wechselrichter mit Speicher. Basierend auf dem RCT Client habe ich ein kleines Modul gebaut, welches einige der wichtigsten Werte auslesen kann.

Das Modul kann noch nicht viel - nur ein paar Live- und Statistik-Werte auslesen. Das Modul ist quick&dirty ohne großes Fehlermanagement und nur kurz getestet. Es hat aber einige hilfreiche Logzeilen und sollte nicht blockierend sein. RCT Client CLI (Link oben) wird benötigt, außerdem werden die folgenden Perl Module benötigt:

Data::Dumper, JSON

Installation:

update all https://raw.githubusercontent.com/marvin78/FHEM-RCT/master/controls_RCT.txt

Definition:

define <NAME> RCT <HOST-IP> [<PORT>]

Intervall ist 10 Sekunden. Das kann per Attribut "pollInterval" angepasst werden.

Es gibt sicher noch einige Fehler im Modul. Ggf. kann ja mal jemand auf Herz und Nieren testen. Support gibt es leider nicht in Echtzeit.


marvin78

Kleines Update mit ein paar Batteriewerten zusätzlich.

marvin78

Im git liegt nun die Version 0.1.2. Die auszulesenden Values sind in ein Attribut gewandert, welches ein JSON enthält das angepasst werden kann. Somit kann jeder die Werte und entsprechenden Readings eintragen die er auswerten möchte. Auch kann man nun entscheiden, wie oft ein Wert eigentlich ausgelesen werden sollte, welche Einheit der Wert haben soll (noch ohne Funktion) und mit welchem Faktor der Wert ggf. direkt multipliziert werden soll. Es gibt entsprechende Vorgabewerte im Attribut values. Die Registerwerte kann man dieser Aufstellung entnehmen: https://rctclient.readthedocs.io/en/latest/registry.htm

Das JSON sieht so aus (Ausschnitt):

{
    "values":[
    {
      "name": "battery.soc", # Wert aus Registry
      "reading": "battery_soc", # gewünschter Readingname
      "unit": "%", # Einheit (noch ohne Funktion)
      "factor": 100, # Faktor für den gelesenen Wert
      "intervalFactor": 1 # wie oft soll der Wert gelesen werden (hier jedes mal) / 10 würde bedeuten, jedes 10. mal.
    },
    ...
    ]
  }

marvin78

#3
In Version 0.1.5 kann man nun auch das Zahlenformat direkt bestimmen. Es gibt nun im values-Attribut format für ein sprintf Format. Lässt man es weg, wird 1:1 aus dem Client übernommen.

{
    "values":[
    {
      "name": "battery.soc", # Wert aus Registry
      "reading": "battery_soc", # gewünschter Readingname
      "unit": "%", # Einheit (noch ohne Funktion)
      "factor": 100, # Faktor für den gelesenen Wert
      "intervalFactor": 1, # wie oft soll der Wert gelesen werden (hier jedes mal) / 10 würde bedeuten, jedes 10. mal.
      "format": "%.1f"
    },
    ...
    ]
  }

marvin78

#4
Version 0.2.0 schreibt die Einheit (unit) ins Reading, wenn im JSON vorhanden.

Standard ist ohne Einheit. Wenn ihr also Einheiten wünscht, müsst ihr Sie ins Attribut values einpflegen. Dabei dann bitte den Faktor beachten und in die Registry schauen.

thm2014

Danke erstmal für die Mühen. Die Verbindung steht auf Port 8899 und der STATE ist active. Die zwei genannten Perl-Module sind auch installiert. Wie kann ich denn jetzt auf die Werte zugreifen?

marvin78

Wenn die Daten nicht von alleine kommen:

Ist der RCT Client auf localhost installiert?

Ein list vom device wäre gut.

Dann mach mal verbose 5 und schaue ins Log.

thm2014

Danke, ich habe falsch gelesen, ich habe den RCT Client gar nicht installiert, sondern habe die IP des RCTPowers angegeben, da ja ein Telnet dorthin auf Port 8899 funktioniert. Werde meine Installation anpassen, dann wird es vermutlich einfach gehen.

marvin78

#8
Die IP des Inverters angeben ist schon richtig. Aber ohne den lokal installierten RCT Client funktioniert das Modul hier nicht. Es baut darauf auf. Im Grunde nutzt es nur die CLI des Clients um die Daten, frei konfigurierbar, ins FHEM zu bringen.

Bitte ein wenig mit dem Client beschäftigen. Oben gibt es einen Link.

thm2014

Okay verstanden. Muss ich mir wohl in Ruhe anschauen. Die Installation mag scheinbar meine Pyton 3 Version nicht, weder pip noch pip3 führen zum Erfolg.

pip install -U rctclient
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 6, in <module>
    from pip._internal.cli.main import main
ImportError: No module named 'pip._internal'

marvin78

Ich weiß nichts über dein System. Aber ggf. zunächst Python 3 aktualisieren...

Zeitisen

Ich habe das gleiche Problem.
Raspian hat aktuell Python 3.5 und rctclient benötigt 3.6
Da muss man wohl zuerst manuell auf eine höhere Python Version aktualisieren. Ist nach Doku im Netz wohl etwas Arbeit:
https://stackoverflow.com/questions/64718274/how-to-update-python-in-raspberry-pi

marvin78


peter-s

Moin zusammen,

ich habe gestern meine PV-Anlage von RCT-Power in Betrieb genommen und wollte natürlich die Daten unbedingt in FTUI anzeigen.
Die Integration mit dem Modul 37_RCT an sich hat eigentlich fast sofort und recht problemlos geklappt, vielen Dank für die tolle Arbeit an marvin78!!!

Das eigentliche Problem war die Installation des rctclient - diese sollte unbedingt als "root" erfolgen, dann klappt es auch mit dem Aufruf aus FHEM heraus.

Für die Visualisierung der Langzeit-Statistiken werde ich mir wohl irgendwann influxdb/Grafana antun müssen...

Nochmal danke für das Modul!

LG Peter

marvin78

Ich bin aktuell ziemlich begeistert von dem RCT System. RCT Client ist etwas hakelig. Leider gibt es auch Probleme, wenn man mit mehreren Clients gleichzeitig auf die serielle Schnittstelle zugreift (die RCT-Power App gehört wohl auch dazu). Aber im Grunde funktioniert das hier bei mir bisher prima. Ich habe mir einen Quick&veryDirty Block für Smartvisu gebaut (basierend auf einem Widget aus dem KNX User-Forum). So muss es nun erstmal laufen, bis ich wieder mehr Zeit habe.


Zeitisen

Zitat von: marvin78 am 20 April 2021, 08:25:20
Sieht nicht nach so viel Arbeit aus.
Leider doch. Wenn man nur die Zahl der auszuführenden Aktionen anschaut, ist es nicht so viel.
Aber der Teufel steckt im Detail. Ich habe es bis jetzt noch nicht geschafft, das ganze überhaupt zu kompilieren.
Der Raspi 3B+ hängt sich nach einigen Minuten immer auf. Auch Optionen bei make wie -j -l 4 ändern daran nichts.
Das ist besonders ärgerlich, wenn darauf auch pivccu läuft und der verwendetet DRAP nicht mal mehr lokale wired Verknüpfungen bedient.
Dann kann man nicht mal mehr das Licht einschalten.
Vielleicht hat noch jemand Tipps. Eine schnelle Aktion wird es auf jeden Fall nicht.

marvin78

Ok. Dabei kann ich nicht viel helfen. Dafür müsstest du dich in den einschlägigen Foren umschauen. Sorry.

Zeitisen

So, jetzt habe ich es geschafft, python3.8.4 zu kompilieren

Abhilfe: alles anhalten, was nicht unbedingt gebraucht wird, z.B. php Dienste entfernen, fhem anhalten und killen.
Aber bei der installation des fhem moduls kam folgender Fehler:
Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while
2021.04.27 20:22:05 1 : *** EN FHEM/70_STV.pm: ignoring text due to DOS encoding



marvin78

#18
70_STV hat aber nichts mit diesem Modul zu tun.

Das RCT Modul hat kein DOS encoding.

Aber der Fehler ohnehin beeinträchtigt nicht die Funktion des Moduls. Es sagt nur aus, dass ein Teil der Doku nicht erzeugt werden konnte. Allerdings nicht von diesem Modul.

Zeitisen

Oh, Entschuldigung, da habe ich mich vertan. Ich bin heute wohl nicht mehr ganz frisch.

Jetzt habe ich noch eine Frage:
Wie installiere ich Data::dumper oder stelle fest, ob es installiert ist?
Ich bekomme auch eine Fehlermeldung im Log:
2021.04.27 21:06:16 1: Timeout for RCT::DoGetData reached, terminated process 11149
Bei dem Versuch, das Modul aufzurufen, kommt keine Antwort vom Server.

Zeitisen

#20
Data::Dumper und json habe ich installiert.

sudo cpanm Data::Dumper
libjson-perl aus den Paketquellen war bereits installiert.

Aber immer noch keine Werte.2021.04.27 22:10:33 4 : RCT (Photovoltaik) - Start ProcessGetData
2021.04.27 22:10:33 4 : RCT (Photovoltaik) - ProcessGetData
2021.04.27 22:11:43 1 : Timeout for RCT::DoGetData reached, terminated process 17381
2021.04.27 22:12:19 4 : RCT (Photovoltaik) - Start ProcessGetData
2021.04.27 22:12:19 4 : RCT (Photovoltaik) - ProcessGetData

marvin78

Bitte immer ein list posten. Hast du den Host (Wechselrichter) korrekt angegeben? Dreh mal verbose auf 5 hoch und schau ins Log.

Zeitisen

Verbose ist auf 5 und alles, was kommt ist oben zu sehen, also start, get, timeout

Der wechselrichter ist korrekt und auch per ping zu erreichen

marvin78

Bitte ein list. Immer ein list

Funktioniert der Client auf der Konsole?

Zeitisen

#24
Was meinst du mit list? Die Logausgabe von fhem?

Mit client meinst du den rctclient? Wie ruft man den auf der console auf? Ich hatte jetzt eigentlich nicht vor, mir noch diese Ebene reinzuziehen.

Im fhem log kommt jetzt folgendes (gekürzt):

2021.04.28 09:17:41 5: RCT (Photovoltaik) - DoGetData: {}
2021.04.28 09:17:41 4: RCT (Photovoltaik) - Start ProcessGetData
2021.04.28 09:17:41 4: RCT (Photovoltaik) - ProcessGetData
2021.04.28 09:17:51 4: RCT (Photovoltaik) - Start DoGetData
2021.04.28 09:17:51 4: RCT (Photovoltaik) - DoGetData with host 192.168.195.80 and port 8899
2021.04.28 09:17:51 5: RCT (Photovoltaik) - JSON: {
"values":[
{
"name": "battery.soc",
"reading": "battery_soc",
"unit": "",
"factor": 100,
"intervalFactor": 1,
"format": "%.1f"
},

...


2021.04.28 09:17:51 5: RCT (Photovoltaik) - Array: $VAR1 = {
'unit' => '',
'format' => '%.1f',
'name' => 'battery.soc',
'reading' => 'battery_soc',
'intervalFactor' => 1,
'factor' => 100 };
...

2021.04.28 09:17:52 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:52 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:52 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:53 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:53 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:53 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:54 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:54 5: RCT (Photovoltaik) - RAW result:
2021.04.28 09:17:54 5: RCT (Photovoltaik) - RAW result:
....
2021.04.28 09:18:51 1: Timeout for RCT::DoGetData reached, terminated process 16301
2021.04.28 09:19:03 4: RCT (Photovoltaik) - Start DoGetData
2021.04.28 09:19:03 4: RCT (Photovoltaik) - DoGetData with host 192.168.195.80 and port 8899
2021.04.28 09:19:03 5: RCT (Photovoltaik) - JSON: {

....

marvin78

Bitte die FHEM Grundlagen lernen, bevor du mit so etwas hier loslegst.

Ein list von RCT Device:

list <RCT-device>

Ergebnis hier posten.

Bitte RCT-Client auf der Konsole testen. Läuft er da nicht, kann er hier nicht laufen. Ein Test ist nicht schwer:

rctclient read-value --host <host> --name battery.soc

Zeitisen

Ich arbeite jetzt schon seit fast 10 Jahren mit fhem, aber den Befehle list habe ich noch nie gebraucht.

Ich arbeite in anderen Umgebungen durchaus auf der Konsole, aber normalerweise nicht in fhem.

Internals:
   DEF        192.168.195.80
   FUUID      60885a05-f33f-ecac-30db-9b00e4f522bcedf3
   HOST       192.168.195.80
   INTERVAL   10
   MID        da39a3ee5e6dfjkdl348d434b0d3255bfef95601890afd80709
   NAME       Photovoltaik
   NOTIFYDEV  global
   NR         947
   NTFY_ORDER 14-Photovoltaik
   PORT       8899
   STATE      active
   TYPE       RCT
   VERSION    0.2.6
   READINGS:
     2021-04-28 09:10:45   state           active
   helper:
     RETRY_COUNT 27
     counter    49
     RUNNING_PID:
       abortFn    RCT::ProcessAbortedGetData
       arg        Photovoltaik
       bc_pid     686
       finishFn   RCT::ProcessGetData
       fn         RCT::DoGetData
       pid        29644
       telnet     telnetForBlockingFn_1619557037_127.0.0.1_38248
       timeout    60
       abortArg:
Attributes:
   icon       sani_solar
   room       Aussen
   values     {
    "values":[
    {
      "name": "battery.soc",
      "reading": "battery_soc",
      "unit": "",
      "factor": 100,
      "intervalFactor": 1,
      "format": "%.1f"
    },
    {
      "name": "battery.soh",
      "reading": "battery_soh",
      "unit": "",
      "factor": 100,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "battery.soc_target",
      "reading": "battery_soc_target",
      "unit": "",
      "factor": 100,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.soc_target_low",
      "reading": "battery_soc_target_low",
      "unit": "",
      "factor": 100,
      "intervalFactor": 11,
      "format": "%.1f"
    },
    {
      "name": "battery.temperature",
      "reading": "battery_temperature",
      "unit": "",
      "factor": 1,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.efficiency",
      "reading": "battery_efficiency",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.2f"
    },
    {
      "name": "battery.used_energy",
      "reading": "battery_used_energy",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum",
      "reading": "power_real",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_acc_lp",
      "reading": "power_battery",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_grid_sum_lp",
      "reading": "power_grid_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum_lp",
      "reading": "power_ac",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.q_ac_sum_lp",
      "reading": "power_reactive",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[0]",
      "reading": "power_ac1",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[1]",
      "reading": "power_ac2",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[2]",
      "reading": "power_ac3",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[0].p_dc_lp",
      "reading": "power_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[1].p_dc_lp",
      "reading": "power_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_load_sum_lp",
      "reading": "power_household_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_day",
      "reading": "energy_day",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_day",
      "reading": "energy_day_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_day",
      "reading": "energy_day_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_day_sum",
      "reading": "energy_day_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_day",
      "reading": "energy_day_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[0]",
      "reading": "energy_day_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[1]",
      "reading": "energy_day_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_month",
      "reading": "energy_month",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_month",
      "reading": "energy_month_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_month",
      "reading": "energy_month_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_month_sum",
      "reading": "energy_month_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_month",
      "reading": "energy_month_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[0]",
      "reading": "energy_month_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[1]",
      "reading": "energy_month_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_year",
      "reading": "energy_year",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_year",
      "reading": "energy_year_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_year",
      "reading": "energy_year_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_year_sum",
      "reading": "energy_year_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_year",
      "reading": "energy_year_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[0]",
      "reading": "energy_year_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[1]",
      "reading": "energy_year_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_total",
      "reading": "energy_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_total",
      "reading": "energy_total_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_total",
      "reading": "energy_total_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_total_sum",
      "reading": "energy_total_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_total",
      "reading": "energy_total_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[0]",
      "reading": "energy_total_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[1]",
      "reading": "energy_total_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    }
  ]
}
   verbose    5



pi@datalogger ~ $ rctclient read-value --host 192.168.195.80 --name battery.soc
"click" not found, commands unavailable


Da scheint etwas bei der Installation von rctclient noch nicht vollständig zu sein.
Click ist wohl ein Python Modul, das fehlt. muss ich noch nachbohren
.


marvin78

#27
Hast du das hier alles gemacht?

https://pypi.org/project/rctclient/

Ach und im Forum sollte immer ein list gepostet werden. Bitte die angepinnten Beiträge im Anfängerforum lesen. Die sind nicht neu ;)

Zeitisen

nachdem ich click mit
pip3 install click
pip3 install -U rctclient[cli]
installiert habe, funktioniert der Aufruf von

pi@datalogger ~ $ rctclient read-value --host 192.168.195.80 --name battery.soc
0.22657763957977295



und ich bekomme auch readings zurück.
Herzlichen Dank für deine Bemühungen und die schnellen Antworten!

marvin78


peter-s

Nabend zusammen!

nachdem meine RCT-Abfrage (incl. Logging via InfluxDBLogger) mehrere Wochen stabil und Problemlos lief, habe ich die Firmware des Wechselrichters von 2.3.5291 auf 2.3.5369 upgedated.
Seit dem bekomme ich nur unregelmäßig Daten von der Anlage, das FHEM-log ist voll mit so was:

Timeout for RCT::DoGetData reached, terminated process 8998


Kann das jemand bestätigen oder dementieren?
Gibt es eine Möglichkeit die RCT-Firmware zu downgraden um den Verdacht zu verifizieren?

LG Peter

marvin78

Mein Gerät läuft auch auf der neusten Firmware 2.3.5369. Probleme gibt es immer dann, wenn 2 Clients gleichzeitig auf die serielle Schnittstelle zugreifen. Wenn also irgendwo die App läuft wird man seltener erster sein und oft keine Daten bekommen.

Was passiert denn, wenn du per RCT Client CLI direkt auf der Konsole Daten holst?

peter-s

Die App benutze ich kaum. Dein FHEM-Modul ist eigentlich der einzige Client der die Schnittstelle benutzt.

Von der CLI bekomme ich (fast) immer eine Antwort. Es sei denn ich versuche das Problem zu provozieren und rufe den rctclient mehrfach sehr schnell hintereinander auf.

marvin78

Wie sieht denn deine Config aus? Insbesondere das Attribut values? Wenn du da zu viel auf einmal ausliest, gibt es Probleme.

Was sagt das Log? Verbose 5...

peter-s

Config:


Internals:
   DEF        192.168.241.77
   FUUID      60804d04-f33f-24d0-3d96-af621cd27a39c7a8
   HOST       192.168.241.77
   INTERVAL   20
   MID        da39a3ee5e6dfjkdl348d434b0d3255bfef95601890afd80709
   NAME       pv
   NOTIFYDEV  global
   NR         307
   NTFY_ORDER 14-pv
   PORT       8899
   STATE      active
   TYPE       RCT
   VERSION    0.2.6
   READINGS:
     2021-05-10 19:38:58   battery_efficiency 0.92
     2021-05-10 21:44:55   battery_soc     46.2
     2021-05-10 21:44:55   battery_soc_target 97.0
     2021-05-10 21:39:27   battery_soc_target_low 97.0
     2021-05-10 19:38:58   battery_soh     100
     2021-05-10 21:44:55   battery_temperature 23.7
     2021-05-10 19:38:58   battery_used_energy 93496
     2021-05-10 20:07:26   energy_day      3746
     2021-05-10 20:07:26   energy_day_external 0
     2021-05-10 20:07:26   energy_day_grid_feed_in -609
     2021-05-10 20:07:26   energy_day_grid_load 218
     2021-05-10 20:07:26   energy_day_household 3355
     2021-05-10 20:07:26   energy_day_solarA 2937
     2021-05-10 20:07:26   energy_day_solarB 3177
     2021-05-10 20:07:26   energy_month    141418
     2021-05-10 20:07:26   energy_month_external 0
     2021-05-10 20:07:26   energy_month_grid_feed_in -68949
     2021-05-10 20:07:26   energy_month_grid_load 9767
     2021-05-10 20:07:26   energy_month_household 82241
     2021-05-10 20:07:26   energy_month_solarA 72025
     2021-05-10 20:07:26   energy_month_solarB 88522
     2021-05-10 20:07:26   energy_total    473759
     2021-05-10 20:07:26   energy_total_external 0
     2021-05-10 20:07:26   energy_total_grid_feed_in -282996
     2021-05-10 20:07:26   energy_total_grid_load 16599
     2021-05-10 20:07:26   energy_total_household 207361
     2021-05-10 20:07:26   energy_total_solarA 257046
     2021-05-10 20:07:26   energy_total_solarB 266143
     2021-05-10 20:07:26   energy_year     473757
     2021-05-10 20:07:26   energy_year_external 0
     2021-05-10 20:07:26   energy_year_grid_feed_in -282996
     2021-05-10 20:07:26   energy_year_grid_load 16599
     2021-05-10 20:07:26   energy_year_household 207358
     2021-05-10 20:07:26   energy_year_solarA 257046
     2021-05-10 20:07:26   energy_year_solarB 266143
     2021-05-10 21:44:55   power_ac        850
     2021-05-10 21:44:55   power_ac1       283
     2021-05-10 21:44:55   power_ac2       285
     2021-05-10 21:44:55   power_ac3       283
     2021-05-10 21:44:55   power_battery   903
     2021-05-10 21:44:55   power_grid_total 6
     2021-05-10 21:44:55   power_household_external 857
     2021-05-10 21:44:55   power_reactive  17
     2021-05-10 21:44:55   power_real      850
     2021-05-10 19:56:24   power_solarA    0
     2021-05-10 19:56:24   power_solarB    1
     2021-05-10 19:15:58   state           active
   helper:
     RETRY_COUNT 204
     counter    331
     RUNNING_PID:
       abortFn    RCT::ProcessAbortedGetData
       arg        pv
       bc_pid     973
       finishFn   RCT::ProcessGetData
       fn         RCT::DoGetData
       pid        19041
       telnet     telnetPort_127.0.0.1_47200
       timeout    60
       abortArg:
Attributes:
   DbLogExclude .*
   pollInterval 20
   room       DEV->RCT
   values     {
    "values":[
    {
      "name": "battery.soc",
      "reading": "battery_soc",
      "unit": "",
      "factor": 100,
      "intervalFactor": 1,
      "format": "%.1f"
    },
    {
      "name": "battery.soh",
      "reading": "battery_soh",
      "unit": "",
      "factor": 100,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "battery.soc_target",
      "reading": "battery_soc_target",
      "unit": "",
      "factor": 100,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.soc_target_low",
      "reading": "battery_soc_target_low",
      "unit": "",
      "factor": 100,
      "intervalFactor": 11,
      "format": "%.1f"
    },
    {
      "name": "battery.temperature",
      "reading": "battery_temperature",
      "unit": "",
      "factor": 1,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.efficiency",
      "reading": "battery_efficiency",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.2f"
    },
    {
      "name": "battery.used_energy",
      "reading": "battery_used_energy",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum",
      "reading": "power_real",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_acc_lp",
      "reading": "power_battery",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_grid_sum_lp",
      "reading": "power_grid_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum_lp",
      "reading": "power_ac",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.q_ac_sum_lp",
      "reading": "power_reactive",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[0]",
      "reading": "power_ac1",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[1]",
      "reading": "power_ac2",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[2]",
      "reading": "power_ac3",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[0].p_dc_lp",
      "reading": "power_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[1].p_dc_lp",
      "reading": "power_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_load_sum_lp",
      "reading": "power_household_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_day",
      "reading": "energy_day",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_day",
      "reading": "energy_day_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_day",
      "reading": "energy_day_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_day_sum",
      "reading": "energy_day_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_day",
      "reading": "energy_day_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[0]",
      "reading": "energy_day_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[1]",
      "reading": "energy_day_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_month",
      "reading": "energy_month",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_month",
      "reading": "energy_month_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_month",
      "reading": "energy_month_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_month_sum",
      "reading": "energy_month_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_month",
      "reading": "energy_month_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[0]",
      "reading": "energy_month_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[1]",
      "reading": "energy_month_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_year",
      "reading": "energy_year",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_year",
      "reading": "energy_year_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_year",
      "reading": "energy_year_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_year_sum",
      "reading": "energy_year_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_year",
      "reading": "energy_year_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[0]",
      "reading": "energy_year_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[1]",
      "reading": "energy_year_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_total",
      "reading": "energy_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_total",
      "reading": "energy_total_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_total",
      "reading": "energy_total_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_total_sum",
      "reading": "energy_total_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_total",
      "reading": "energy_total_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[0]",
      "reading": "energy_total_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[1]",
      "reading": "energy_total_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    }
  ]
}


Ausschnitt aus dem Logfile (grep auf "RTC"):

2021.05.10 22:05:38 4: BlockingCall (RCT::DoGetData): created child (19848), uses telnetPort to connect back
2021.05.10 22:05:38 4: RCT (pv) - Start DoGetData
2021.05.10 22:05:38 4: RCT (pv) - DoGetData with host 192.168.241.77 and port 8899
2021.05.10 22:05:38 5: RCT (pv) - JSON: {
2021.05.10 22:05:38 5: RCT (pv) - Array: $VAR1 = {
2021.05.10 22:05:38 5: RCT (pv) - RAW result: 0.41693440079689026
2021.05.10 22:05:38 5: RCT (pv) - RAW result: 681.5027465820312
2021.05.10 22:05:38 5: RCT (pv) - RAW result: 717.4089965820312
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 1.0926505327224731
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 665.8854370117188
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 21.975601196289062
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 227.55728149414062
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 223.22299194335938
2021.05.10 22:05:39 5: RCT (pv) - RAW result: 224.8013916015625
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:40 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:41 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:05:42 5: RCT (pv) - RAW result: 668.2799072265625
2021.05.10 22:05:42 5: RCT (pv) - DoGetData: {"power_household_external":{"unit":"","val":"668"},"power_battery":{"unit":"","val":"717"},"power_reactive":{"val":"22","unit":""},"power_real":{"val":"682","unit":""},"battery_soc":{"unit":"","val":"41.7"},"power_ac":{"unit":"","val":"666"},"power_ac3":{"val":"225","unit":""},"power_ac1":{"val":"228","unit":""},"power_ac2":{"unit":"","val":"223"},"power_grid_total":{"unit":"","val":"1"}}
2021.05.10 22:05:42 5: Cmd: >{RCT::ProcessGetData('pv|{"power_household_external":{"unit":"","val":"668"},"power_battery":{"unit":"","val":"717"},"power_reactive":{"val":"22","unit":""},"power_real":{"val":"682","unit":""},"battery_soc":{"unit":"","val":"41.7"},"power_ac":{"unit":"","val":"666"},"power_ac3":{"val":"225","unit":""},"power_ac1":{"val":"228","unit":""},"power_ac2":{"unit":"","val":"223"},"power_grid_total":{"unit":"","val":"1"}}')}<
2021.05.10 22:05:42 4: RCT (pv) - Start ProcessGetData
2021.05.10 22:05:42 4: RCT (pv) - ProcessGetData
2021.05.10 22:06:02 4: BlockingCall (RCT::DoGetData): created child (19896), uses telnetPort to connect back
2021.05.10 22:06:02 4: RCT (pv) - Start DoGetData
2021.05.10 22:06:02 4: RCT (pv) - DoGetData with host 192.168.241.77 and port 8899
2021.05.10 22:06:02 5: RCT (pv) - JSON: {
2021.05.10 22:06:02 5: RCT (pv) - Array: $VAR1 = {
2021.05.10 22:06:02 5: RCT (pv) - RAW result: 0.41612517833709717
2021.05.10 22:06:02 5: RCT (pv) - RAW result: 652.9436645507812
2021.05.10 22:06:02 5: RCT (pv) - RAW result: 711.2181396484375
2021.05.10 22:06:02 5: RCT (pv) - RAW result: 4.996277809143066
2021.05.10 22:06:02 5: RCT (pv) - RAW result: 653.4359130859375
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 21.80425262451172
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 221.158447265625
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 219.69056701660156
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 217.78878784179688
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:03 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:04 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:05 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:05 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:05 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:06:05 5: RCT (pv) - RAW result: 652.7509155273438
2021.05.10 22:06:05 5: RCT (pv) - RAW result: 5118.1025390625
2021.05.10 22:06:05 5: RCT (pv) - RAW result: -611.3131713867188
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 4731.576171875
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 0.0
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 225.08871459960938
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 2936.590576171875
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 3176.871337890625
2021.05.10 22:06:06 5: RCT (pv) - RAW result: 142790.0625
2021.05.10 22:06:07 5: RCT (pv) - RAW result: -68950.9375
2021.05.10 22:06:07 5: RCT (pv) - RAW result: 83617.578125
2021.05.10 22:06:07 5: RCT (pv) - RAW result: 0.0
2021.05.10 22:06:07 5: RCT (pv) - RAW result: 9773.31640625
2021.05.10 22:06:07 5: RCT (pv) - RAW result: 72025.328125
2021.05.10 22:07:02 1: Timeout for RCT::DoGetData reached, terminated process 19896
2021.05.10 22:07:12 4: BlockingCall (RCT::DoGetData): created child (19991), uses telnetPort to connect back
2021.05.10 22:07:12 4: RCT (pv) - Start DoGetData
2021.05.10 22:07:12 4: RCT (pv) - DoGetData with host 192.168.241.77 and port 8899
2021.05.10 22:07:12 5: RCT (pv) - JSON: {
2021.05.10 22:07:12 5: RCT (pv) - Array: $VAR1 = {
2021.05.10 22:07:12 5: RCT (pv) - RAW result: 0.41375988721847534
2021.05.10 22:07:12 5: RCT (pv) - RAW result: 0.9700000286102295
2021.05.10 22:07:12 5: RCT (pv) - RAW result: 23.361108779907227
2021.05.10 22:07:12 5: RCT (pv) - RAW result: 655.6719970703125
2021.05.10 22:07:12 5: RCT (pv) - RAW result: 702.1278076171875
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 8.203160285949707
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 649.2426147460938
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 22.066728591918945
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 220.14752197265625
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 222.05775451660156
2021.05.10 22:07:13 5: RCT (pv) - RAW result: 222.14370727539062
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:14 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:15 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:15 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:15 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:15 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:15 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:16 5: RCT (pv) - RAW result: 704.3789672851562
2021.05.10 22:07:16 5: RCT (pv) - DoGetData: {"power_ac1":{"val":"220","unit":""},"battery_temperature":{"unit":"","val":"23.4"},"power_ac3":{"unit":"","val":"222"},"power_ac":{"unit":"","val":"649"},"power_grid_total":{"val":"8","unit":""},"power_ac2":{"unit":"","val":"222"},"power_battery":{"unit":"","val":"702"},"power_household_external":{"unit":"","val":"704"},"battery_soc":{"val":"41.4","unit":""},"battery_soc_target":{"unit":"","val":"97.0"},"power_real":{"val":"656","unit":""},"power_reactive":{"unit":"","val":"22"}}
2021.05.10 22:07:16 5: Cmd: >{RCT::ProcessGetData('pv|{"power_ac1":{"val":"220","unit":""},"battery_temperature":{"unit":"","val":"23.4"},"power_ac3":{"unit":"","val":"222"},"power_ac":{"unit":"","val":"649"},"power_grid_total":{"val":"8","unit":""},"power_ac2":{"unit":"","val":"222"},"power_battery":{"unit":"","val":"702"},"power_household_external":{"unit":"","val":"704"},"battery_soc":{"val":"41.4","unit":""},"battery_soc_target":{"unit":"","val":"97.0"},"power_real":{"val":"656","unit":""},"power_reactive":{"unit":"","val":"22"}}')}<
2021.05.10 22:07:16 4: RCT (pv) - Start ProcessGetData
2021.05.10 22:07:16 4: RCT (pv) - ProcessGetData
2021.05.10 22:07:36 4: BlockingCall (RCT::DoGetData): created child (20059), uses telnetPort to connect back
2021.05.10 22:07:36 4: RCT (pv) - Start DoGetData
2021.05.10 22:07:36 4: RCT (pv) - DoGetData with host 192.168.241.77 and port 8899
2021.05.10 22:07:36 5: RCT (pv) - JSON: {
2021.05.10 22:07:36 5: RCT (pv) - Array: $VAR1 = {
2021.05.10 22:07:36 5: RCT (pv) - RAW result: 0.4129426181316376
2021.05.10 22:07:36 5: RCT (pv) - RAW result: 639.2818603515625
2021.05.10 22:07:36 5: RCT (pv) - RAW result: 690.782958984375
2021.05.10 22:07:36 5: RCT (pv) - RAW result: 2.6034882068634033
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 643.625732421875
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 22.472726821899414
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 214.37110900878906
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 216.23992919921875
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 220.05274963378906
2021.05.10 22:07:37 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:38 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:07:39 5: RCT (pv) - RAW result: 649.208984375
2021.05.10 22:07:40 5: RCT (pv) - RAW result: 5134.84521484375
2021.05.10 22:08:36 1: Timeout for RCT::DoGetData reached, terminated process 20059
2021.05.10 22:08:47 4: BlockingCall (RCT::DoGetData): created child (20131), uses telnetPort to connect back
2021.05.10 22:08:47 4: RCT (pv) - Start DoGetData
2021.05.10 22:08:47 4: RCT (pv) - DoGetData with host 192.168.241.77 and port 8899
2021.05.10 22:08:47 5: RCT (pv) - JSON: {
2021.05.10 22:08:47 5: RCT (pv) - Array: $VAR1 = {
2021.05.10 22:08:47 5: RCT (pv) - RAW result: 0.4105305075645447
2021.05.10 22:08:47 5: RCT (pv) - RAW result: 665.1271362304688
2021.05.10 22:08:48 5: RCT (pv) - RAW result: 702.5770263671875
2021.05.10 22:08:48 5: RCT (pv) - RAW result: -6.132660388946533
2021.05.10 22:08:48 5: RCT (pv) - RAW result: 647.30859375
2021.05.10 22:08:48 5: RCT (pv) - RAW result: 22.327533721923828
2021.05.10 22:08:48 5: RCT (pv) - RAW result: 215.01278686523438
2021.05.10 22:08:48 5: RCT (pv) - RAW result: 214.30201721191406
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 214.38336181640625
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:49 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:50 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:51 5: RCT (pv) - RAW result: 5.605193857299268e-45
2021.05.10 22:08:51 5: RCT (pv) - RAW result: 643.914306640625
2021.05.10 22:08:51 5: RCT (pv) - DoGetData: {"power_battery":{"val":"703","unit":""},"power_household_external":{"unit":"","val":"644"},"power_real":{"val":"665","unit":""},"battery_soc":{"unit":"","val":"41.1"},"power_reactive":{"val":"22","unit":""},"power_ac3":{"unit":"","val":"214"},"power_ac1":{"val":"215","unit":""},"power_ac":{"unit":"","val":"647"},"power_ac2":{"unit":"","val":"214"},"power_grid_total":{"unit":"","val":"-6"}}
2021.05.10 22:08:51 5: Cmd: >{RCT::ProcessGetData('pv|{"power_battery":{"val":"703","unit":""},"power_household_external":{"unit":"","val":"644"},"power_real":{"val":"665","unit":""},"battery_soc":{"unit":"","val":"41.1"},"power_reactive":{"val":"22","unit":""},"power_ac3":{"unit":"","val":"214"},"power_ac1":{"val":"215","unit":""},"power_ac":{"unit":"","val":"647"},"power_ac2":{"unit":"","val":"214"},"power_grid_total":{"unit":"","val":"-6"}}')}<
2021.05.10 22:08:51 4: RCT (pv) - Start ProcessGetData
2021.05.10 22:08:51 4: RCT (pv) - ProcessGetData

marvin78

Entzerre deine Config mal ein wenig. Nutze unterschiedliche Primzahlen als Intervalfaktor für etwas seltener benötigte Daten (Langzeit). Andere Vorschläge habe ich aktuell nicht.

peter-s

Ich habe die Config etwas "entzerrt" (danke für den Tipp) besonders viel geholfen hat das leider nicht.

Dafür habe ich mittlerweile eine besser Lösung gefunden:
Ich habe mich per Email beim RCT-Service gemeldet mit der Frage ob ein Firmware-Downgrade möglich wäre.
Die Jungs haben sehr schnell reagiert und mir per "Fernwartung" ein Update installiert (v2.3.5406) damit läuft der Datenabruf wieder absolut stabil!

Ich bin von RCT (sowohl von der Hardware als auch vom Service) immer mehr begeistert!

marvin78

Interessant, dass es mit meiner Anlage auch mit der "schlechten" Version gut läuft.

Welche Konfiguration verwendest du? Welcher Wechselrichter?

Bin gespannt auf das Update. Mir hat der Support ab dem nächsten Update ein weniger seltsames Verhalten der Batterie versprochen. Haben sie gesagt, wann das Update offiziell kommt?

marvin78

Achso: Das mit dem Entzerren im JSON ist trotzdem eine gute Idee. Manche Daten braucht man nur jedes x. Mal. Manche sicher sogar nur jedes 101. oder so. So kann man viele Probleme vermeiden. Genau aus dem Grund habe ich die Config so gebaut. So kann das jeder individualisieren und auch Werte raus schmeißen, die er gar nicht benötigt.

peter-s

Zitat von: marvin78 am 11 Mai 2021, 10:03:54
Welche Konfiguration verwendest du? Welcher Wechselrichter?
Power Storage DC 6.0 Hybrid
21 Paneele a 360W in zwei Strings (Ost/West-Dach)
5.1kWh Speicher (3 Module)
Netzwerkanbindung über Ethernet.

Zitat
Haben sie gesagt, wann das Update offiziell kommt?
Nee, habe nur ganz kurz mit denen gemailt und war froh dass das Problem so schnell behoben war.

Gibt es irgendwo einen Changelog zu den FW-Updates? Habe nichts gefunden...

marvin78

Changelog gibt es wohl nicht. Die haben noch ein wenig Nachholbedarf in solchen Dingen.

Hier steht der 8.0 und 5 Module Speicher. Ggf. liegt es also an der unterschiedlichen Konfiguration.

Bin gespannt, wie das mit RCT weiter geht. Die Richtung ist ok. Mit einigen Dingen scheinen sie noch überfordert zu sein.

Nogga

Habe seit heute auch eine RCT Anlage und gleich mal das Modul installiert.
Funktioniert! Prima und vielen Dank!

Eine Frage: was spricht dagegen dem User zu überlassen das Intervall auch auf <5 zu setzen?

Nogga

Und ich weiss nicht, ob es an meiner Konfiguration liegt, aber mein Log wird mit Perl-Fehlern geflutet:

2021.08.26 22:53:06 1: Timeout for RCT::DoGetData reached, terminated process 30821
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:53:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 22:54:16 1: Timeout for RCT::DoGetData reached, terminated process 31592
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:54:26 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 22:55:26 1: Timeout for RCT::DoGetData reached, terminated process 32400
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:55:36 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 22:56:36 1: Timeout for RCT::DoGetData reached, terminated process 751
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:56:46 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 22:57:16 1: Timeout for RCT::DoGetData reached, terminated process 1206
2021.08.26 22:57:16 2: RCT (RCT_Wechselrichter) - device could not be checked after 3 retries (resuming normal operation)
2021.08.26 22:57:46 1: Timeout for RCT::DoGetData reached, terminated process 1386
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:57:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:57:57 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 22:58:56 1: Timeout for RCT::DoGetData reached, terminated process 2084
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 22:59:06 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 23:00:06 1: Timeout for RCT::DoGetData reached, terminated process 2859
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/37_RCT.pm line 774.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 776.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 783.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 791.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 793.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value in modulus (%) at ./FHEM/37_RCT.pm line 801.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/37_RCT.pm line 807.
2021.08.26 23:00:16 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/37_RCT.pm line 813.
2021.08.26 23:01:16 1: Timeout for RCT::DoGetData reached, terminated process 3651


List:

Internals:
   CFGFN     
   DEF        192.168.178.183
   FUUID      6127b488-f33f-bfba-39a3-4d34717b5f0ed0a6
   HOST       192.168.178.183
   INTERVAL   5
   MID        da39a3ee5e6dfjkdl348d434b0d3255bfef95601890afd80709
   NAME       RCT_Wechselrichter
   NOTIFYDEV  global
   NR         370
   NTFY_ORDER 14-RCT_Wechselrichter
   PORT       8899
   STATE      Batterie-Kapazität: 41.3 %<br>
Batterie-Entladung: 282 W<br>
West-Leistung: 0 W<br>
Ost-Leistung: 0 W<br>
Netzbezug: 1 W<br>
Hausverbrauch: 244 W<br>
Gesamtertrag heute: 19 kWh
   TYPE       RCT
   VERSION    0.2.6
   Helper:
     DBLOG:
       battery_soc:
         DbLog_DB:
           TIME       1630011817.12028
           VALUE      41.3
       energy_day:
         DbLog_DB:
           TIME       1630011802.94398
           VALUE      19
       power_battery:
         DbLog_DB:
           TIME       1630011817.12028
           VALUE      282
       power_grid_total:
         DbLog_DB:
           TIME       1630011817.12028
           VALUE      1
       power_household_external:
         DbLog_DB:
           TIME       1630011817.12028
           VALUE      244
       power_solarB:
         DbLog_DB:
           TIME       1630011768.78294
           VALUE      0
   OLDREADINGS:
   READINGS:
     2021-08-26 23:03:37   battery_cycles  0.0
     2021-08-26 23:01:50   battery_efficiency 0.93
     2021-08-26 23:03:37   battery_soc     41.3
     2021-08-26 23:03:37   battery_soc_target 97.0
     2021-08-26 23:02:48   battery_soc_target_low 97.0
     2021-08-26 23:01:50   battery_soh     100
     2021-08-26 23:03:37   battery_temperature 25.0
     2021-08-26 23:01:50   battery_used_energy 5775
     2021-08-26 23:03:22   energy_day      19
     2021-08-26 23:03:22   energy_day_external 0
     2021-08-26 23:03:22   energy_day_grid_feed_in -0
     2021-08-26 23:03:22   energy_day_grid_load 0
     2021-08-26 23:03:22   energy_day_household 19
     2021-08-26 22:59:29   energy_day_solarA 3655
     2021-08-26 23:03:22   energy_day_solarB 0
     2021-08-26 23:03:22   energy_month    6853
     2021-08-26 23:03:22   energy_month_external 0
     2021-08-26 23:03:22   energy_month_grid_feed_in -3122
     2021-08-26 23:03:22   energy_month_grid_load 3073
     2021-08-26 23:03:22   energy_month_household 6804
     2021-08-26 23:03:22   energy_month_solarA 3655
     2021-08-26 23:03:22   energy_month_solarB 3232
     2021-08-26 23:03:22   energy_total    6854
     2021-08-26 23:03:22   energy_total_external 0
     2021-08-26 23:03:22   energy_total_grid_feed_in -3122
     2021-08-26 23:03:22   energy_total_grid_load 3073
     2021-08-26 23:03:22   energy_total_household 6805
     2021-08-26 23:03:22   energy_total_solarA 3655
     2021-08-26 23:03:22   energy_total_solarB 3232
     2021-08-26 23:03:22   energy_year     6853
     2021-08-26 23:03:22   energy_year_external 0
     2021-08-26 23:03:22   energy_year_grid_feed_in -3122
     2021-08-26 23:03:22   energy_year_grid_load 3073
     2021-08-26 23:03:22   energy_year_household 6805
     2021-08-26 23:03:22   energy_year_solarA 3655
     2021-08-26 23:03:22   energy_year_solarB 3232
     2021-08-26 23:03:37   power_ac        243
     2021-08-26 23:03:37   power_ac1       83
     2021-08-26 23:03:37   power_ac2       81
     2021-08-26 23:03:37   power_ac3       81
     2021-08-26 23:03:37   power_battery   282
     2021-08-26 23:03:37   power_grid_total 1
     2021-08-26 23:03:37   power_household_external 244
     2021-08-26 23:03:37   power_reactive  30
     2021-08-26 23:03:37   power_real      243
     2021-08-26 23:00:59   power_solarA    0
     2021-08-26 23:02:48   power_solarB    0
     2021-08-26 22:10:52   state           active
   helper:
     RETRY_COUNT 4
     counter    146
     RUNNING_PID:
       abortFn    RCT::ProcessAbortedGetData
       arg        RCT_Wechselrichter
       bc_pid     1733
       finishFn   RCT::ProcessGetData
       fn         RCT::DoGetData
       pid        5981
       telnet     telnetPort_127.0.0.1_45420
       timeout    60
       abortArg:
Attributes:
   DbLogInclude battery_soc,power_battery,power_solarA,power_solarB,power_grid_total,power_household_external,energy_day
   group      Gateways
   pollInterval 5
   room       System
   stateFormat Batterie-Kapazität: battery_soc %<br>
Batterie-Entladung: power_battery W<br>
West-Leistung: power_solarA W<br>
Ost-Leistung: power_solarB W<br>
Netzbezug: power_grid_total W<br>
Hausverbrauch: power_household_external W<br>
Gesamtertrag heute: energy_day kWh
   values     {
    "values":[
{
  "name": "battery.cycles",
  "reading": "battery_cycles",
  "unit": "",
  "factor": 1,
      "intervalFactor": 1,
      "format": "%.1f"
},
    {
      "name": "battery.soc",
      "reading": "battery_soc",
      "unit": "",
      "factor": 100,
      "intervalFactor": 1,
      "format": "%.1f"
    },
    {
      "name": "battery.soh",
      "reading": "battery_soh",
      "unit": "",
      "factor": 100,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "battery.soc_target",
      "reading": "battery_soc_target",
      "unit": "",
      "factor": 100,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.soc_target_low",
      "reading": "battery_soc_target_low",
      "unit": "",
      "factor": 100,
      "intervalFactor": 11,
      "format": "%.1f"
    },
    {
      "name": "battery.temperature",
      "reading": "battery_temperature",
      "unit": "",
      "factor": 1,
      "intervalFactor": 5,
      "format": "%.1f"
    },
    {
      "name": "battery.efficiency",
      "reading": "battery_efficiency",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.2f"
    },
    {
      "name": "battery.used_energy",
      "reading": "battery_used_energy",
      "unit": "",
      "factor": 1,
      "intervalFactor": 10,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum",
      "reading": "power_real",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_acc_lp",
      "reading": "power_battery",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_grid_sum_lp",
      "reading": "power_grid_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_sum_lp",
      "reading": "power_ac",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.q_ac_sum_lp",
      "reading": "power_reactive",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[0]",
      "reading": "power_ac1",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[1]",
      "reading": "power_ac2",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac[2]",
      "reading": "power_ac3",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[0].p_dc_lp",
      "reading": "power_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "dc_conv.dc_conv_struct[1].p_dc_lp",
      "reading": "power_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "g_sync.p_ac_load_sum_lp",
      "reading": "power_household_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 1,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_day",
      "reading": "energy_day",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_day",
      "reading": "energy_day_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_day",
      "reading": "energy_day_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_day_sum",
      "reading": "energy_day_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_day",
      "reading": "energy_day_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[0]",
      "reading": "energy_day_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_day[1]",
      "reading": "energy_day_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_month",
      "reading": "energy_month",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_month",
      "reading": "energy_month_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_month",
      "reading": "energy_month_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_month_sum",
      "reading": "energy_month_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_month",
      "reading": "energy_month_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[0]",
      "reading": "energy_month_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_month[1]",
      "reading": "energy_month_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_year",
      "reading": "energy_year",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_year",
      "reading": "energy_year_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_year",
      "reading": "energy_year_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_year_sum",
      "reading": "energy_year_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_year",
      "reading": "energy_year_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[0]",
      "reading": "energy_year_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_year[1]",
      "reading": "energy_year_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ac_total",
      "reading": "energy_total",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_feed_total",
      "reading": "energy_total_grid_feed_in",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_load_total",
      "reading": "energy_total_household",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_ext_total_sum",
      "reading": "energy_total_external",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_grid_load_total",
      "reading": "energy_total_grid_load",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[0]",
      "reading": "energy_total_solarA",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    },
    {
      "name": "energy.e_dc_total[1]",
      "reading": "energy_total_solarB",
      "unit": "",
      "factor": 1,
      "intervalFactor": 2,
      "format": "%.0f"
    }
  ]
}

marvin78

Der Timeout ist ein Stück weit normal. Der Wechselrichter kann nur eine Verbindung auf einmal verarbeiten. Wenn man also ein zu kurzes Intervall verwendet, gleichzeitig die App geöffnet hat (auch im Hintergrund) oder weil die API einfach gerade nicht schnell genug reagiert, erhält man diesen Fehler. RCT sprach davon, Verbindungsprobleme über die Schnittstelle in einem kommenden Update zu beheben.

Das andere scheinen dann Folgefehler zu sein, die bei mir allerdings nicht auftauchen. Ich kann es aktuell nicht nachvollziehen. Es sieht so aus, als dass zwar die Parameter aus dem Speicher gelöscht wurden, der Prozess aber weiter läuft.

Ich habe eine neue Version eingecheckt, in der bei verbose 5 sowas ausgegeben werden sollte:

RCT (String: <DEVNAME>) - Start DoGetData

Falls meine Vermutung stimmt und ich da aktuell nichts ändern kann, kommt jedoch einfach ein weiterer Fehler dazu.

Kleiner Tipp: Setze mal das Pollintervall auf 10 hoch und hole gewisse, recht statische Daten seltener ab (Faktor 88 oder ähnliches)

Nogga

Jetzt habe ich gerade Dein Update eingespielt und zack ist mein Device in FHEM weg.
Das Logfile sagt:


2021.08.27 20:59:13 1: PERL WARNING: Subroutine RCT_Initialize redefined at ./FHEM/37_RCT.pm line 388.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Define redefined at ./FHEM/37_RCT.pm line 487.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Undefine redefined at ./FHEM/37_RCT.pm line 526.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Delete redefined at ./FHEM/37_RCT.pm line 537.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Notify redefined at ./FHEM/37_RCT.pm line 548.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/37_RCT.pm line 568.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Set redefined at ./FHEM/37_RCT.pm line 628.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Get redefined at ./FHEM/37_RCT.pm line 659.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine ValuesToAttribute redefined at ./FHEM/37_RCT.pm line 676.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine GetValue redefined at ./FHEM/37_RCT.pm line 691.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine RestartGetTimer redefined at ./FHEM/37_RCT.pm line 717.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine StartGetData redefined at ./FHEM/37_RCT.pm line 729.
2021.08.27 20:59:13 1: reload: Error:Modul 37_RCT deactivated:
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/37_RCT.pm line 772.

2021.08.27 20:59:13 0: Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/37_RCT.pm line 772.


Ist mein Device weg oder kommt es wieder sobald ich eine funktionierende Version Deines Moduls installiert habe?

marvin78

Seltsam. Mach ein restore ohne vorheriges save.

marvin78

Zitat von: Nogga am 27 August 2021, 21:00:38
Jetzt habe ich gerade Dein Update eingespielt und zack ist mein Device in FHEM weg.
Das Logfile sagt:


2021.08.27 20:59:13 1: PERL WARNING: Subroutine RCT_Initialize redefined at ./FHEM/37_RCT.pm line 388.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Define redefined at ./FHEM/37_RCT.pm line 487.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Undefine redefined at ./FHEM/37_RCT.pm line 526.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Delete redefined at ./FHEM/37_RCT.pm line 537.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Notify redefined at ./FHEM/37_RCT.pm line 548.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/37_RCT.pm line 568.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Set redefined at ./FHEM/37_RCT.pm line 628.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine Get redefined at ./FHEM/37_RCT.pm line 659.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine ValuesToAttribute redefined at ./FHEM/37_RCT.pm line 676.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine GetValue redefined at ./FHEM/37_RCT.pm line 691.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine RestartGetTimer redefined at ./FHEM/37_RCT.pm line 717.
2021.08.27 20:59:13 1: PERL WARNING: Subroutine StartGetData redefined at ./FHEM/37_RCT.pm line 729.
2021.08.27 20:59:13 1: reload: Error:Modul 37_RCT deactivated:
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/37_RCT.pm line 772.

2021.08.27 20:59:13 0: Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/37_RCT.pm line 772.


Ist mein Device weg oder kommt es wieder sobald ich eine funktionierende Version Deines Moduls installiert habe?

Ich habe das ganze als Debug umgesetzt. Bitte nochmal probieren.

Nogga

Hab das Modul mal neu gezogen, jetzt kann zwar das Device noch geladen werden, aber er baut offensichtlich keine Verbindung mehr zum Wechselrichter auf. Ich habe nichts am Device vor/nach dem Update verändert - sprich das Device lief noch mit der vorigen Version vom Modul (also die vorletzte bevor Du das Debugging umgebaut hast).

Log:

2021.08.31 22:48:19 2: RCT (RCT_Wechselrichter) - device could not be checked (retrying in 10 seconds)
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
2021.08.31 22:48:49 2: RCT (RCT_Wechselrichter) - device could not be checked after 1 retry (retrying in 10 seconds)
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
2021.08.31 22:49:19 2: RCT (RCT_Wechselrichter) - device could not be checked after 2 retries (retrying in 10 seconds)
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
2021.08.31 22:49:49 2: RCT (RCT_Wechselrichter) - device could not be checked after 3 retries (resuming normal operation)
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.
Undefined subroutine &RCT::Debug called at ./FHEM/37_RCT.pm line 772.

marvin78

Sag mal...welche FHEM Version betreibst du?

Was sagt "version"?

Falls aktuell, probiere nun nochmal die neu eingecheckte Version für das Debugging.

Nogga

#49
Es ist nicht die letzte Version (never touch a running system ;-)), aber auch nicht immens alt:


Latest Revision: 24817

File                   Rev   Last Change

fhem.pl                24810 2021-07-29 21:25:03Z rudolfkoenig
96_allowed.pm          24751 2021-07-15 12:46:01Z rudolfkoenig
73_AMADCommBridge.pm   20404 2019-10-24 07:10:03Z CoolTux
74_AMADDevice.pm       21406 2020-03-11 03:49:16Z CoolTux
90_at.pm               24129 2021-04-02 16:56:29Z rudolfkoenig
98_autocreate.pm       23727 2021-02-12 20:31:37Z rudolfkoenig
98_cmdalias.pm         16300 2018-03-01 08:48:21Z rudolfkoenig
14_CUL_TCM97001.pm     20839 2019-12-28 09:41:47Z bjoernh
14_CUL_TX.pm           17102 2018-08-08 05:34:42Z rudolfkoenig
14_CUL_WS.pm           20918 2020-01-08 19:20:38Z rudolfkoenig
93_DbLog.pm            24440 2021-05-15 06:43:56Z DS_Starter
98_DOIF.pm             24755 2021-07-15 16:40:59Z Damian
98_dummy.pm            20665 2019-12-06 11:05:35Z rudolfkoenig
34_ESPEasy.pm          18608 2019-02-16 09:03:52Z dev0
91_eventTypes.pm       23471 2021-01-04 19:24:21Z rudolfkoenig
01_FHEMWEB.pm          24714 2021-07-09 17:18:55Z rudolfkoenig
92_FileLog.pm          23751 2021-02-16 18:35:28Z rudolfkoenig
88_HMCCU.pm            21747 2020-04-22 13:42:49Z zap
88_HMCCUCHN.pm         21452 2020-03-19 13:16:06Z zap
88_HMCCUDEV.pm         21452 2020-03-19 13:16:06Z zap
88_HMCCURPCPROC.pm     21452 2020-03-19 13:16:06Z zap
98_HTTPMOD.pm          24708 2021-07-06 17:15:46Z StefanStrobel
02_HTTPSRV.pm          20110 2019-09-05 17:30:20Z neubert
98_IF.pm               12944 2017-01-03 12:56:17Z Damian
49_IPCAM.pm            24444 2021-05-15 10:18:07Z delmar
10_IT.pm               20839 2019-12-28 09:41:47Z bjoernh
98_JsonList2.pm        23727 2021-02-12 20:31:37Z rudolfkoenig
36_KeyValueProtocol.pm 20300 2019-10-03 18:47:47Z HCS
36_LaCrosse.pm         20217 2019-09-21 09:53:25Z HCS
36_LaCrosseGateway.pm  21663 2020-04-13 20:26:26Z HCS
32_LedController.pm        0 2016-05-01 12:00:00Z herrmannj
98_monitoring.pm       22154 2020-06-10 19:29:47Z igami
10_MQTT2_DEVICE.pm     24760 2021-07-16 20:59:09Z rudolfkoenig
00_MQTT2_SERVER.pm     24639 2021-06-15 18:35:51Z rudolfkoenig
91_notify.pm           24129 2021-04-02 16:56:29Z rudolfkoenig
47_OBIS.pm             24225 2021-04-12 11:37:25Z gvzdus
70_Pushover.pm         20897 2020-01-06 12:16:20Z loredo
# $Id: 98_RCT.pm  $
33_readingsGroup.pm    23844 2021-02-27 19:43:24Z justme1968
98_serviced.pm         24390 2021-05-06 22:25:17Z DeeSPe
36_Shelly.pm           24222 2021-04-11 17:27:47Z phenning
39_siri.pm             24071 2021-03-24 08:02:11Z justme1968
98_structure.pm        23818 2021-02-24 10:23:46Z rudolfkoenig
99_SUNRISE_EL.pm       24249 2021-04-14 05:45:49Z rudolfkoenig
98_SVG.pm              24097 2021-03-27 14:56:15Z rudolfkoenig
98_telnet.pm           23727 2021-02-12 20:31:37Z rudolfkoenig
74_Unifi.pm            23500 2021-01-09 15:14:50Z wuehler
99_Utils.pm            24128 2021-04-02 16:29:11Z rudolfkoenig
98_version.pm          15140 2017-09-26 09:20:09Z markusbloch
59_Weather.pm          22982 2020-10-17 12:49:38Z CoolTux
98_weblink.pm          23597 2021-01-23 17:57:05Z rudolfkoenig

AttrTemplate.pm        22985 2020-10-18 09:04:19Z rudolfkoenig
Blocking.pm            23268 2020-12-01 11:48:48Z rudolfkoenig
Color.pm               20813 2019-12-22 18:42:10Z justme1968
DarkSkyAPI.pm          23645 2021-01-30 17:55:57Z CoolTux
DevIo.pm               24800 2021-07-26 11:42:33Z rudolfkoenig
GPUtils.pm             19666 2019-06-20 11:17:29Z CoolTux
HMCCUConf.pm           20134 2019-09-08 12:19:00Z zap
HttpUtils.pm           24750 2021-07-15 06:22:47Z rudolfkoenig
Meta.pm                21008 2020-01-18 10:22:10Z loredo
RTypes.pm              10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm       23300 2020-12-06 11:36:24Z rudolfkoenig
SubProcess.pm          14334 2017-05-20 23:11:06Z neubert
TcpServerUtils.pm      23472 2021-01-04 19:56:38Z rudolfkoenig

doif.js                    24438 2021-05-14 18:08:18Z Ellert
f18.js                     24575 2021-06-03 09:52:42Z rudolfkoenig
fhemweb.js                 24716 2021-07-09 17:32:11Z rudolfkoenig
fhemweb_readingsGroup.js   15189 2017-10-03 17:53:27Z justme1968

OK


Ich update heute abend Mal und lade dann nochmal die letzte Version des Moduls! Ich melde mich! Danke.

marvin78

"Never touch a running system" ist ein Spruch, den faule ITler erfunden haben. Er hat keinerlei Gültigkeit oder Begründung...

Nogga

Ich habe jetzt FHEM komplett aktualisiert und sicherheitshalber auch neugestartet. Aber zumindest das Core-File hat sich offensichtlich nicht verändert:

Latest Revision: 24903

File                   Rev   Last Change

fhem.pl                24810 2021-07-29 21:25:03Z rudolfkoenig


und aus dem Event Log bei einem update:



Historie löschen
Downloading https://fhem.de/fhemupdate/controls_fhem.txt
nothing to do...


Wenn ich jetzt aber über update all https://raw.githubusercontent.com/marvin78/FHEM-RCT/master/controls_RCT.txt versuche ein Update von Dir einzuspielen, bekomme ich einen neuen Fehler im Event-Log:


2021.09.01 09:38:17 1 : UPD FHEM/37_RCT.pm
2021.09.01 09:38:17 1 : Got 24305 bytes for FHEM/37_RCT.pm, expected 24304
2021.09.01 09:38:17 1 : aborting.


(Zur Information: Ich hatte zuvor Deine letzte Version über die Kommando-Zeile aktualisiert. Die ging dann nicht, dann habe ich manuell wieder eine Backup-Kopie auf der Linux-Bash einkopiert)


marvin78

Probiere nochmal. Das controls file war nicht in Ordnung.

Nogga

Update hat funktioniert und er aktualisiert auch die Readings. Es kommen keine Fehler im Log außer:

2021.09.01 09:58:43 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:58:58 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:59:08 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:59:20 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:59:31 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:59:43 1: DEBUG>RCT_Wechselrichter
2021.09.01 09:59:53 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:00:07 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:00:19 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:00:34 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:00:44 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:00:56 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:01:07 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:01:20 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:01:32 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:01:44 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:01:54 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:02:07 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:02:20 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:02:35 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:02:45 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:02:59 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:03:10 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:03:25 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:03:37 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:03:50 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:04:01 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:04:16 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:04:27 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:04:42 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:04:52 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:05:08 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:05:21 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:05:37 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:05:48 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:06:00 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:06:10 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:06:26 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:06:39 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:06:56 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:07:05 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:07:18 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:07:28 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:07:41 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:07:52 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:08:05 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:08:14 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:08:27 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:08:36 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:08:51 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:09:03 1: DEBUG>RCT_Wechselrichter
2021.09.01 10:09:18 1: DEBUG>RCT_Wechselrichter

marvin78

Das ist interessant. Der name ist also da.

Ich habe das Debug wieder entfernt.

Was mir auffällt: Dein Interval steht noch immer auf 5 Sekunden? Das ist ggf. deutlich zu klein für den armen Wechselrichter. Mach mal mindestens 10 daraus.

Nogga

OK, dann mach ich nochmal ein Update.
Ja der Intervall steht auf 5, aber auch nur für ganz wenige Werte. Ich "brauche" das um eine Art intelligentes Überschussmanagement zu machen - also Steckdosen bei Überschuss an, etc...

marvin78

Aber wenn du dir das ansiehst, ist es ohnehin selten, dass das Interval gehalten werden kann. Ich würde es auf 10 stellen. Es macht für dein Überschussmanagement kaum einen Unterschied.

Nogga

Stimmt auch wieder - vor allen Dingen, wenn ich ohnehin eine Batterie hab, die ggf. den zeitlichen "Verzug" puffern kann.
Ich muss ohnehin mit den Werten noch rumspielen...

Aber zurück zum Modul: das Logfile ist jetzt zumidnest "clean". Ich beobachte aber mal weiter.

Unabhängig davon:
Cooles Modul!

BallaBalla

Vorne weg, Super Ding, Danke dafür.

Ist es ein großes Problem das Modul um die noch "fehlenden" Werte zu ergänzen?
Ich würde gern u.a. die Werte vom Power Sensor und Inverter Monitoren bzw. auswerten..
Habe das schon versucht selbst in Values einzutragen, aber irgendwie werden meine Eintragungen nicht gespeichert.

Danke für deine Mühe und schönes Wochenende
Benno

marvin78

Im Attribut values kannst du angeben, was du möchtest bzw. das Register hergibt. Siehe erste Seite dieses Threads.

thm2014

#60
Nachdem ich im April aufgegeben hatte, hat der neue Versuch heute direkt funktioniert. Vielen Dank für das Modul.

Was habe ich diesmal anders gemacht?

- zuerst die aktuelle Python Version (3.11) installiert => https://stackoverflow.com/questions/64718274/how-to-update-python-in-raspberry-pi
- dann den RCT-Client auf der CLI installiert =>  python -m pip install rctclient[cli]
- Funktionstest auf der CLI => rctclient read-value --host 192.168.XXX.XXX --name battery.soc
- anschließend aus Post #1 im FHEM => update all https://raw.githubusercontent.com/marvin78/FHEM-RCT/master/controls_RCT.txt
- FHEM Restart
- Wieder im FHEM => define <NAME> RCT <HOST-IP>

Vielleicht hilft dieses Vorgehen dem ein oder anderen ....

Slanesh

Hallo zusammen,

vielen Dank für das Modul! Super Arbeit und sehr einfach in Betrieb zu nehmen! Gibt es eigentlich ein Reading an dem ich erkennen kann ob ein Stromausfall vorliegt und das Haus gerade rein über den Wechselrichter und die Batterie versorgt wird? Ich würde gerne darauf reagieren und entbehrliche Verbraucher abschalten.

Viele Grüße
Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

marvin78

Du kannst dir die Readings ja selbst erzeugen. Wenn es in der Registry einen Wert gibt, der genau das sagt, kannst du ihn auch auch als Reading in das Modul holen. Alle Werte, die die Anlage liefert, lassen sich als Reading darstellen. Das Attribut values ist dazu anzupassen, wie auf Seite 1 dieses Threads dokumentiert. Wenn es nicht DEN direkten Wert gibt, der das aussagt, dann gibt es sicher eine indirekte Möglchkeit. Da kann man einfach ein wenig mit den Werten rumprobieren.

Slanesh

Hallo marvin78,

vielen Dank für dein Feedback. Ich habe keinen entsprechenden Wert in der Registry gefunden. Allerdings gibt es in der Event Table das Event "NO_GRID". Kommt man an diese Events über dein Modul auch irgendwie ran?

Danke & Gruß
Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

marvin78

Aktuell wird die Event-Table nicht ausgewertet. Ich muss mal sehen, ob ich irgendwann Zeit und Muße dafür aufbringe, mir das anzusehen.

chris_kmn

Hallo zusammen, Hi Marvin,

auch von mir ein Danke für dieses tolle Modul. Hat auch bei mir schnell und einfach seinen Dienst gestartet :)

Gibt es auch eine Chance mit dem Modul Werte zu schreiben ? Z.B. den Ziel SoC Wert der Batterie oder ihre Kompensationsleistung wären schon recht interessant. Vor allem wenn man E-Fahrzeug laden möchte.

Viele Grüße,

  Chris

marvin78

Aktuell noch nicht. Ich komme ggf. demnächst mal wieder dazu, etwas daran zu machen. Das nehme ich mal mit auf und schaue was der Client dann hergibt.




chris_kmn


marvin78

Aber um das klar zu stellen: Das Modul basiert aktuell auf der CLI des RCT-Clients und diese bietet aktuell nur "read-value". Aktuell sehe ich hier also keine Möglichkeit, das in dieses Modul einzubauen. Ich weiß aber nicht, wie sich der Client weiterentwickelt und ober ich irgendwann Zeit und Muße habe, mich dem Thema auf andere Art zu nähern.

chris_kmn

Ich bin da auch noch nicht ganz schlau was mit dem Client geht und was nicht. Jedoch meine ich, dass die PV Manager evcc und Open WB auch auf dem RCT CLIENT basieren und ich glaube auch, dass diese die Inverter Größen ändern können. Bin mir aber leider nicht sicher.

Der Client scheint auch relativ viel Ressourcen zu schlucken. Mein Raspi hat jetzt fast die doppelte CPU Last. Eine direkte Einbindung ins FHEM (Perl)wäre da sicher effektiver. Nur dazu müsste man Softwerker sein und die Zeit haben :(

ABER ich bin zufrieden mit dem, was aktuell geht. Positiv denken 😀😀😀😀

marvin78

Der Client kann es sicher. Die CLI nicht...

chris_kmn

Ich habe mal etwas recherchiert und im Projekt OpenWB eine wohl recht effektive Implementierung der RCT Abfrage gefunden - leider auch in Python.

Ist es viel Aufwand das ganze nach Perl zu portieren ?

https://github.com/snaptec/openWB/tree/master/modules/bezug_rct2

Die Kommunikation spielt sich in den zwei Dateien rct_lib.py und rct_read.py ab. Allerdings werden bei OpenWB die Daten in eine Ramdisk geschrieben bzw. per MQTT gepublished.

marvin78

So wie ich das sehe (habe nur kurz drüber geschaut), ist das auch nur "read".

Ehrlich gesagt werde ich mich damit beschäftigen, wenn ich Zeit und Muße dafür habe. Ich baue solche Module für mich und zur Übung. Ich bin mit den Möglichkeiten der CLI zufrieden, mag kein Python. Ggf. kannst du dich ja selbst ein wenig damit beschäftigen. Du kannst gerne mein Modul nehmen oder ein eigenes bauen. Bei mir kann es noch eine ganze Weile dauern, bis ich da ran gehe, oder auch nie.

chris_kmn

Ja das ist richtig, nur read.

Du das soll hier auch kein Betteln in deine Richtung sein und schon gar nicht Kritik an deinem Modul. Ich bin sehr dankbar dafür.

Ich sehe das genau wie du, wer Lust, Zeit und Wissen hat, der beteiligt sich hier, das ist für fast alle hier Hobby. Mal schauen ob ich mich da ran bewegen und etwas umsetzen kann. Es gibt ja dieses FHEM Modul für Python. Evtl. Kann man in Python die Routine von der OpenWB nutzen und dann per push die Werte ins FHEM schreiben. Was ich bislang gesehen habe zeigt, dass die bekannten Projekte OpenWB und EVCC auch nur read nutzen.

Ich werde mal ein wenig basteln :)

chris_kmn

Ich hatte die Tage Kontakt mit dem netten Entwickler des fhempy moduls Dominik.
(https://github.com/dominikkarall/fhempy
´
Er war so nett und hat den rctclient mit in seine Bibliothek aufgenommen. Ich habe das Modul heute getestet und bin begeistert, dass die CPU Last nun wieder deutlich niedriger ist.
Die "Installation" ist mit einem define erledigt, wenn man fhempy schon nutzt.

Vielen Dank an dieser Stelle an Dominik ! Super Arbeit !

Es soll nicht unerwähnt bleiben, dass die Umsetzung von Marvin Vorteile hat bzgl. der spezifischen Auswahl und Parametrierung der Readings. Man kann das dort wunderbar einstellen und auf seine Bedürfnisse
anpassen. Ist jetzt halt "Geschmackssache" was einem wichtiger ist. Evtl. macht ja auch Dominik noch etwas weiter an dem Modul und implementiert auch eine write-Routine. Dann kann man auch noch tiefer in Themen wie Überschussladen mit FHEM einsteigen :-)

marvin78

Das hört sich super an. Gibt es dazu einen Thread hier oder habt ihr privat kommuniziert?

chris_kmn

wir haben das erstmal privat geklärt. Aber können uns dazu gerne hier austauschen.

Vergessen habe ich zu erwähnen, dass man zusätzlich zum fhempy natürlich noch den rctclient installieren muss, wie bei dir auch. Aber die CLI wird nicht benötigt.

marvin78

Zitat von: chris_kmn am 10 Februar 2022, 13:03:40

Vergessen habe ich zu erwähnen, dass man zusätzlich zum fhempy natürlich noch den rctclient installieren muss.

Sicher? Ich habe das auf ein nacktes Docker Entwicklungssystem gepackt, ohne den RCT Client extra zu installieren. Läuft.

chris_kmn

nein, "sicher" nicht und du hast scheinbar den Gegenbeweis gebracht. Um so besser :-)

dominik

Hallo,

richtig, die Installation des Moduls ist nicht notwendig, das wird automatisch durch fhempy gemacht. Ich habe sicherheitshalber einen neuen Thread aufgemacht, damit es für neue User klarer ist:
https://forum.fhem.de/index.php/topic,126126.0.html

Gerne weitere Rückmeldungen/Wünsche dazu dort.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

marvin78

Ich empfehle ab sofort für RCT dieses python Modul von Dominik:

https://forum.fhem.de/index.php/topic,126126.0.html


Das Modul ist performanter und basiert nicht auf der CLI. Man muss zudem keine Abhängigkeiten installieren (falls fhempy schon läuft).