Verbesserte ModBus Anbindung (IP-Symcon 7.0)

Das müsste ich tatsächlich mal testen, ich weiß was du meinst…
Diese Skripte sind aus 2019 (IPS Anfangszeit) Ich war damals glücklich, als es lief, machte mir da keine Gedanken mehr;)

Auf welchem OS läuft dein Symcon denn?

Aber ein Suchen + Ersetzen in allen Skripten von ModBus_WriteRegisterWord → ModBus_WriteRegister sollte dein Problem sehr schnell lösen.

Trotzdem hat Nall-Chan Recht, dass du das vermutlich gar nicht brauchst und die Aktionsskripte an der Variable einfach entfernen kannst.

paresy

Der Test läuft aktuell auf einem aktuellen Ubuntu Desktop in einer Proxmox VM…

Ansonsten bin ich beim Produktivsystem mit V6.4 auf einem Pi unterwegs.

Dann fallen also generell alle ModbusWritRegisterWord, Integer, Real ausser String weg, nur noch
ModbusWritRegister, ohne Datentyp???

Ja genau. Und noch einfacher ist, wenn du RequestAction direkt auf die Variable machst. Dann brauchst du eigentlich die ModBus_* Funktionen gar nicht mehr.

paresy

1 „Gefällt mir“

Aber NICHT in einem Aktions-Skript der Variable welche du versuchst mit RequestAction anzusteuern.
Dann hast du eine perfekte Endlosschleife!

Michael

1 „Gefällt mir“

Ich werde diesen Typ von Skript dann mit der Standard Aktion, wie oben erläutert betreiben.

Jedoch habe ich noch unzählige andere solcher Konstrukte wo ich z.B die Modbuswerte, von Heizung, Wallbox, Akku, PV Anlage zwischen Symcon und den SPS,n austausche, hier muss ich per Hand ran.

Hier kann ich nicht einfach die Standardaktion laufen lassen.

Ich hoffe es geht schnell mit Suchen + Ersetzen alles fix.

Falls es Probleme gibt, ich melde mich.

Danke Euch…

@goifalracer Im aktuellen Update sollten die Funktionen da sein (sie werfen zwar eine Deprecation Notice), aber Sie sollten komplett funktional sein.

paresy

Danke für den Hinweis.
Hab mittlerweile mit Suchen und alles Ersetzen auf die neue Syntax gewechselt.
Aber das mit dem Hinweis auf Deprecation finde ich gut.

Wie bekomme ich bei einer Anlage von einer virtuellen Adresse den Ident von einer anderen Adresse heraus ohne im Objektbaum nachzuschauen? Gibt es da eine Möglichkeit, per Tastenkürzel die Adressen auszuwählen?

Das ist tatsächlich aktuell der beste Weg. Wenn du das Objekt bearbeitest kannst du auch den Ident per Copy&Paste rausholen.


Zum nächsten Update gibt es noch einen Fix zum Little Endian Modus. Der war seit dem Umbau beim Schreiben komplett murks. Ich habe mich auch entschieden doch noch mal die Byte Order Geschichte anzufassen und größer umzubauen, sodass das ganze Thema komplett konsistent wird.

  • Byte Order fliegt im Splitter komplett raus
  • Im neuen ModBus Device kann man die ByteOrder auf Geräteebene setzen und pro Adresse noch überschreiben. Das sollte alle aktuell gewünschten Use-Cases abbilden.
  • Zu den bisherigen Byte Order Einstellungen „Big Endian“ und „Little Endian (Byte Swap)“ fügen wir noch „Little Endian“ und „Big Endian (Byte Swap)“ hinzu. Das wird zwar sehr selten genutzt, aber ist dann vollständig.
  • In den alten ModBus Adress Instanzen werden wir die im Splitter gesetzte ByteOrder in die jeweiligen Instanzen kopieren. Dies passiert einmalig beim ersten Start der nächsten 7.0.
  • Die Eigenschaft „SwapWords“ belassen wir im Splitter noch, damit ggf. PHP-Module die darauf zugreifen nicht ins Leere fallen. Langfristig werden wir die Eigenschaft jedoch entfernen.

Zusätzlich konnte ich das Problem von @bumaas mit den Einzelinstanzen fixen.

paresy

4 „Gefällt mir“

Dann bitte sofort umbennen in ‚als Kompatibilität nur für php Module relevant‘. Sonst gibt das nur Verwirrung.

Im Formular wird die gar nicht mehr sein. Nur LowLevel für die, die IPS_GetProperty nutzen.

paresy

Ok. Dann bitte hier anpassen. Gerne auch mit Verweis ‚bis V6.4 so; ab V7.0 (Build xyz) direkt in der Instanz‘.

Ich bin leider schon das ein oder andere Mal an veralteter Doku (nicht ausschließlich bei IP-Symcon, auch bei anderen Systemen) sehr deutlich auf die Schnauze gefallen und habe Stunden damit verloren.

Die Doku werden wir natürlich komplett überarbeiten - da müssen ja auch die neuen Funktionen inkl. Vorlagen rein.

paresy

Gebe ich beim Geräteeintrag
grafik
an, steht in der Liste dann
grafik

Nach meinem Verständnis sollte da eine „1“ oder „keiner“ stehen.

Gruß Schuggi

Stimmt. „Keiner“ wäre definitv schöner/korrekter. Danke für den Fund!

paresy

Bei der Umstellung auf die neue Geräteinstanz sind mir noch zwei Sachen aufgefallen:

  • ich kann einer Integer Adresse nicht das Profil „Watt“ zuordnen, da kommt es zu dem Fehler
    image
    Benenne ich das Profil um (z.B. "SMA.Watt), dann geht es.

  • wenn es unter der Geräteinstanz eine eigene Variable ohne Ident gibt, dann gibt es den Fehler
    image

Das erste ist bereits bekannt (das hattest du weiter oben schon gemeldet). Das liegt daran, dass es ein ~Watt Standartprofil gibt, welches wir bevorzugt nutzen. Ich weiß auch noch nicht, wie wir dies aktuell optimal lösen.

Das zweite schaue ich mir gleich an.

paresy

Sorry, das hatte ich übersehen. Vielleicht könntest du in der Fehlermeldung erst einmal den Profilnamen mit aufnehmen. Das hilft vielleicht schon mal bei der Fehlersuche.

Danke für das coole ModBus-Gerät. Ich habe heute darüber meinen Wechselrichter in IP-Symcon integriert. Das ging absolut intuitiv und funktioniert auf Anhieb einwandfrei. Ich bin begeistert. Vor allem die Im- und Exportfunktion ist sehr hilfreich, da man dadurch sehr effizient alle Einstellungen in der json-Datei vornehmen und über copy/paste auf andere Kanäle übertragen kann.

Grüße
Jürgen

1 „Gefällt mir“