Huawei Wechselrichter (Modbus Fragen)

Hello!

Letzter Stand 6.4 auf Windows 10

Nach der Installation (per Script für Huawei hier aus dem Forum) läuft alles soweit ich es benötige…
Ich habe aber in den Statusmeldungen haufenweise folgendes:


pro Tag kommen da 40000 zusammen.
Welche Kompatibilitätsgründe? Aktion ist ja definiert (siehe unten)

hier zb 38044


Da ist mMn nichts ungewöhnliches drinnen - „berechnungen“ ist ein kurzes php welches Werte addiert.

hat jemand eine Idee wieso? Mir fehlt der Ansatz…

LG
Alexander

Ist bei mir auch so…:face_with_peeking_eye::face_with_peeking_eye:

hmm, ja, da gab es doch meines Wissens eine Anpassung ab der Version 6.0 bei der Event-Erstellung.

        IPS_SetEventAction($eid, "{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", []); //neu ab 6.0

bei der Funktion GetOrCreateevent in dem erwähnten Script, also neu dann so:

        ....
        $eid = IPS_CreateEvent(0);                  //Ausgelöstes Ereignis
        IPS_SetEventTrigger($eid,$typ, $id);        // 0 	Bei Variablenaktualisierung, 1 	Bei Variablenänderung,2 	Bei Grenzüberschreitung. Grenzwert wird über IPS_SetEventTriggerValue festgelegt, 3 	Bei Grenzunterschreitung, 4 	Bei bestimmtem Wert
        IPS_SetParent($eid, $scriptid);         //Ereignis zuordnen
        IPS_SetName($eid,$name);
        IPS_SetEventAction($eid, "{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", []); //neu ab 6.0
        IPS_SetEventActive($eid, true);             //Ereignis aktivieren
       ....

Ich habe das entsprechend angepasst und habe die Meldungen nicht mehr

Noch etwas anderes: es wurde schon erwähnt, dass viele Fehlermeldungen (BUSY…) beim Zugriff auf die Registervariabeln entstehen. Um dies potentiell umgehen zu können, wäre es doch besser, wenn man im Gateway die Blockfunktion nutzen würde.

Sprich jeweils gleich ganze Blöcke einlesen beim entspr. Modbus-Gateway/Device (bei den einzelnen Register-Instanzen kann der Intervall auf 0 gestellt werden, denke ich) Wäre das nicht zielführender?

Ich selber habe noch wenig Erfahrung mit Modbus und Co… Daher meine Frage.

Hello!
@M70 - Du schreibts „habe ich angepasst“ - ich habe ja beriets eine installierte Version mit Verknüpfungen und Visu usw. Wie könnte hier eine Lösung aussehen um die Fehler Eventmanager (siehe oben) wegzubekommen?

Ich habe mich nach dieser Beschreibung gerichtet Event zum starten eines Skripts per PHP erstellen

Ich hatte dann alles gleöscht und neu ausgeführt.

Wie man es nachträglich korrigiert müsste ich noch nachschauen. Ev findest du aber im oben aufgeführten Link mehr dazu… Da steht u.a.

diese Verknüpfung entsprechend mitgeteilt werden. Dazu ist folgende Zeile notwendig, welche die „Führe Automation aus“ Aktion dem Ereignis zuordnet.

Vermutlich musst du „nur“ der Verknüpfung das Ereignis auch zuweisen

Das merkwürdige dabei ist dass es funktioniert. Ich habe testweise manuell - den Auslöser neu verbunden und auch die Aktion neu gesetzt. Ergbnis gleich; ich bekomme auch für dieses Ereignis dauern die genannten Einträge. Das führt dazu dass IPS nun manchmal stottert und keine Verbinden mehr hat.

Eine Neuinstalltion des ganzen Huawei PV Setups wäre sher sehr zeitaufwändig - das sind wohl viele viele Stunden.
Es muss doch möglich sein das irgendwie abzustellen; es stimmt einfach die Meldung nicht dass zB Ereignis #38044 keine Aktion definiert hat - die ist sogra nochmals gesetzt und gespeichert und funktioniert ja auch …
bitte Hilfe!
Lg Alexander

Zu meinem Post vom 3.Aug. weiter oben:
Ich habe alle Ereignisse gelöscht und manuell neu eingerichtet - siehe da - diese Fehlermeldungen sind weg.

Die Meldungen BUSY etc habe ich in großem Umfang - (LAN Anbindung Dongle) - habe jetzt per Script alle Modbus Poller auf 62 Sekunden gestellt - Weniger Meldungen - immer noch genug :frowning:

Weiters sind Meldungen da:


Kommte immer wieder vor. kann jemand sagen welchen Grund das haben kann?

LG
Alexander

Hallo zusammen.
Danke bestens für die guten Beiträge.
Ich versuche ebenfalls an die Daten des WR etc zu kommen.

Frage: kann ich direkt via TCP und IP des WR via Modbus TCP die Daten erreichen?
Muss noch irgendwas freigeschaltet werden, denn ich habe nicht ganzen Zugang auf Fusion und dem WR direkt.
Die Modbus Instanz von IPS kommt somit immer mit einem Fehler.

Danke für die Tips.
Danny

Ja, du bekommst alle Daten per TCP. Aber modbus muss vom Installer freigeschaltet sein.

Schau dir mal die 7.0 an. Dort kannst du im Gateway die Wartezeit zwischen den Anfragen setzen. Das müsste helfen.

paresy

Halli Hallo , ich hätte da auch mal eine Frage.
Mein Master hat die Modbus ID2 dort hängt dongle und Zähler dran , der Slave hat die ModbusID1 , dort hängt der Akku dran.

Wie kann ich den Slave ID1 Bit 32064 und Akku Bit 37004 gleichzeitig abfragen? Es scheitert gearde, dass ich nur eins von beiden abrufen kann. Für tipps wäre ich sehr dankbar

Du brauchst zwei ModBus Gateway Instanzen in Symcon. Wie sieht denn dein physikalischer Objektbaum dazu aus

paresy

Modbus-client1: Unit ID1; Port 502
modbus-client2: Unit ID2; Port 502

Diese zwei wechselrichter lassen sich abfragen,
Wenn jetzt die Batterie abgefragt wird

Modbus-client1: unit Id (egal was) , funktioniert die ganze abfrage nicht mehr

Ich stehe beim Blockweise lesen der Modbus-Adressen noch auf dem Schlauch… oder ich stelle mich einfach zu dumm an :wink:
Ich möchte bei meiner Huawei-Abfrage nun zum Beispiel div. einzelne Register von 30000 bis 32000 lesen und somit diesen Block als ganzes festlegen.

Zum einen würde ich also den Startwert (somit 30000) erfassen und nun aber die Anzahl von was…? Die Anzahl Bytes in diesem Segment oder Gesamtanzahl der Register in diesem Bereich (welche ich ja in der Regel nicht mal genau kenne… ) oder etwas anderes???

Wie gesagt, irgendwie habe ich die Logik nicht verstanden :wink: … und dokumentiert ist es leider auch nicht wirklich gut. Das gleiche gilt übrigens auch für die diversen Intervalle / Zeiten, die man einstellen kann (ich glaube mittlerweile kann man an drei verschiedenen Orten diese anpassen). Da fehlt eine Erklärung, welche wie zu verwenden ist.

Danke schon mal

Hat niemand einen Gedankenanstoss für mich? Ich hänge nachwievor mit diesen Blöcken resp. der Bedeutung von Anzahl…

Im Detail kann ich es jetzt nicht beantworten, aber ich habe festgestellt das symcon bei mir zumindest öfters Probleme hatte ganze Blöcke zu lesen als wie jetzt aktuell bei mir die 20 Variablen von Interesse auszulesen.
Gruß Dennis

Danke für die Rückmeldung. Und ja, ich nehme auch war, dass es nicht immer so klappt mit den Blockweise einlesen, wie man erwarten könnte.

Beispielsweise habe ich mehrere Blöcke in einem Gateway definiert (halt so wie ich die Blocklese-Funktion interpretiere…)… und doch gibt es im Log Fehlermeldungen (Timeout) beim betreffenden Gerät (Version 7) auf einzelnen Feldern (!!), obwohl das eigentlich doch gar nicht passieren sollte, da ja Blockweise gelesen wird und nicht individuell… Verstehe ich nicht…

Ja meine Interpretation dieser ganzen Funktion ist halt das es Ressourcen schonender ist wenn man Blockweise ausliest. Wohl für alle Teilnehmenden Geräte. Aber wie gesagt ich bekomme da mehr Fehlermeldungen im Log als wenn ich alle Einzeln auslesen und das auch in einem Sportlichen Intervall.
Für mich ist das jetzt erstmal in Ordnung das ich alle Einzeln auslesen.
Irgendwann probiere ich nochmal das neue unter Version 7 mit dem Modbus Device. Eventuell gab es da ja zusätzliche Optimierungen.

Gruß
Dennis

Ich habe einige auf das neue Modbus-Device-Modell von V7 umgestellt. Und das finde ich recht gut gelungen. Es ist zum einen sehr übersichtlich und auch von Anfang an sehr gut strukturiert. Auch die vielen Timeouts haben sich verbessert gegenüber früher.
Kann ich also nur empfehlen.

Ich wollte es nun eben weiter optimieren mit dem Blockweise lesen im Gateway (das macht z.B. bei mir Sinn bei der PVA-Abfrage, nur schon, dass die Werte auch mehr oder weniger zum gleichen Zeitpunkt gelesen werden können ==> die Datenintegrität resp. -konsistenz wäre deutlich besser)
Aber eben, hier hilft die Doku nicht wirklich um zu beurteilen, wie man dieses blockweise Lesen am besten einsetzt… leider. Auch wie sich die versch. Intervalle (auf Gateway, auf Blockeinträge, auf Device, etc.!) verhalten

Ich habe zudem hier im Forum gelesen, dass geplant wäre, später die Blockbildung automatisch zu generieren/unterstützen auf Grund der Erfassung im Device. Das wäre dann schon cool, dann müsste man sich nicht mehr drum kümmern… :wink:

Grüsse
Martin

Wie meinst du das? Einfach die Blöcke eintragen und die Intervalle bei den einzelnen Instanzen deaktivieren. :slight_smile:

paresy