Autor Thema: Neue Versionen und Support zum Modbus-Modul  (Gelesen 57679 mal)

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2028
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #210 am: 12 Dezember 2018, 18:51:59 »
Hallo Stefan, hallo Rainer,

also ich habe das bei mir über eine serielle Schnittstelle laufen, und dementsprechend zwei Devices wie folgt definiert:
define modbus Modbus /dev/serial0@19200

define hwr_Heizungsanlage ModbusTrovis5576 240 300

Das funktioniert immer noch, zumindest mit folgender Version: Modbus 4.0.18 - 1.12.2018.
Es kommt nur eine Fehlermeldung, dass er ein Mapping nicht auflösen kann (weil bei einem Register plötzlich eine unerwartete "0" kommt). Das habe ich bei mir schon mal korrigiert, und beobachte es gerade... 

Grüße
Reiner

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #211 am: 12 Dezember 2018, 21:27:22 »
Hallo Rainer, hallo Reiner,

wenn es über RS485 funktioniert, sollte es auch über Modbus TCP weiterhin funktionieren. Vielen Dank für's Testen!
Bei RS485 oder RS232 ist ein Device vom Typ Modbus nötig, bei Verbindungen über Modbus TCP sollte das nicht der Fall sein.
Das Trovis-Modul sorgt selbst dafür, dass 98_Modbus.pm geladen wird.

Hintergrund ist der, dass bei Modbus TCP jedes Device eine eigene TCP-Verbindung öffnet und verwaltet. Bei RS485 / RS232 könnten mehrere Fhem-Geräte über die gleiche Schnittstelle kommunizieren wollen. Damit das kein Problem wird, gibt es das physische Modbus-Device in Fhem und die logischen Geräte verwenden dieses als IO-Device.

Für die Fehlersuche würde ich vorschlagen, verbose auf 5 zu setzen und dann das Log zu posten. Dann sollten wir sehen was tatsächlich passiert.

Gruss
   Stefan

Offline elektro_rainer

  • New Member
  • *
  • Beiträge: 26
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #212 am: 14 Dezember 2018, 09:42:51 »
Hallo Stefan,

wo und wie definiere ich die IP von meinem Gateway?

Danke und Grüße,
Rainer

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #213 am: 14 Dezember 2018, 14:52:22 »
Hallo Rainer,

die Syntax bei Modulen auf Basis von 98_Modbus.pm ist typischerweise identisch mit der Syntax von ModbusAttr.
Im Prinzip kann man sich die gerätespezifischen Modbus-Module wie ein ModbusAttr mit eingebauten Registerdefinitionen vorstellen.
Entsprechend kann man Register oder Details zur Ausgabe mit den Attributen wie sie in der Doku zu ModbusAttr stehen überschreiben.
Langer Rede kurzer Sinn:
Zitat
define WP ModbusAttr 5 60 192.168.1.122:502 TCP
to talk Modbus TCP to a device with IP-Address 192.168.1.122 and the reserved port for Modbus TCP 502
Note that for Modbus over a TCP connection you don't need a basic Modbus device for the interface like ModbusLine above.
so steht es in der Doku zu ModbusAttr.
In Deinem Fall ist die IP-Adresse nicht die des Geräts (das hat ja keine sondern spricht Modbus-RTU) sondern die des Gateways:
define modbustrovis ModbusTrovis5576 222 60 192.168.1.x:502 TCP

Gruss
    Stefan

Offline elektro_rainer

  • New Member
  • *
  • Beiträge: 26
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #214 am: 17 Dezember 2018, 08:36:05 »
Hallo Stefan,

danke für Deine Antwort,... genauso funktioniert's!

Vielen Dank!

Offline Roger

  • Full Member
  • ***
  • Beiträge: 144
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #215 am: 10 Januar 2019, 14:03:00 »
Hi Stefan,
einen Nutzer von dem 98_Fronius_Modbus.pm Modul ist folgende Warnung aufgefallen:
2019.01.01 13:58:16 3: Wechselrichter: MapConvert called from ModbusLD_ParseObj did not find 0 in map 1:aus, 2:AutoShutdown, 3:startet, 4:Normalbetrieb, 5:Leistungsreduktion, 6:abschalten, 7:Fehler, 8:Standby
Nun ist 0 bei Fronius nicht als Status definiert.
Kann man die Fehlermeldung unterdrücken/abstellen?

//Roger
Zotac, Wandboard, BBB, RPIs mit 10*FHEM
2*HM-LAN, 3*CUL/COC, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2028
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #216 am: 10 Januar 2019, 17:00:07 »
Hi Roger,

ich habe das auch in meinem Trovis-Modul festgestellt, und erstmal einfach ein Mapping für die 0 angegeben.

Das ist erst mit einer neuen Version irgendwann reingekommen. Anscheinend wird da etwas in der falschen Reihenfolge ausgewertet, da ich im Reading niemals diese 0 zu sehen bekomme...

Grüße
Reinerlein

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #217 am: 10 Januar 2019, 17:10:21 »
Hallo,

ich könnte das LogLevel für diese Meldung generell auf 4 oder 5 erhöhen.
Andererseits wäre es interessant zu sehen, wie die Situation entsteht.
Wenn es sich also reproduzieren lässt, würde ich mich über ein Log mit Verbose 5 freuen :-)

Gruss
   Stefan

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #218 am: 29 Januar 2019, 18:08:40 »
Hallo,

anbei eine neue Version zum Testen.
Man kann jetzt auch dev-x-defSet, dev-x-defHint sowie
dev-type-[A-Za-z0-9_]+-hint  und dev-type-[A-Za-z0-9_]+-set verwenden

Wenn keine Beschwerden kommen, würde ich es demnächst einchecken :-)

Gruss
   Stefan

Offline wthiess

  • Full Member
  • ***
  • Beiträge: 482
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #219 am: 29 Januar 2019, 21:36:03 »
Hallo Stefan!
die neue Version läuft bei mir Ralais Lüftung und Thermostate wie gewohnt.

Aber ich hab unabhängig eine Frage. Seit geraumer Zeit habe ich immer wieder Timeoutfehler.
Meldung: Timeout waiting for a modbus response in ReadAnswer
Zu 90%Meistens schaltet er aber korrekt.
Welches attr kann ich da einsetzen.
lg
Wolfgang
« Letzte Änderung: 29 Januar 2019, 21:38:40 von wthiess »
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; MCP23017; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; diverse Modbus Relais; 1-wire Bus; Telegram; QuickFhem; Alexa ......

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #220 am: 29 Januar 2019, 21:53:01 »
Hallo Wolfgang,

Da würde ich zunächst nach der Ursache forschen.
Ein Log-Auszug bei verbose 5 wenn gerade ein Timout kommt, wäre hilfreich.

Gruß
   Stefan

Offline pejonp

  • Sr. Member
  • ****
  • Beiträge: 965
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #221 am: 29 Januar 2019, 21:57:05 »
Hallo Stefan,

habe mal die neuen Module installiert. Werde testen und berichten.

Ein Frage habe ich aber noch. Wie kann ich die Abfrage von Reg nur einmal täglich machen. Bei meinem SolarEdge-Modul sind ja einige Reg nicht veränderlich. Die brauchen eigentlich nur einmal am Tag oder bei Neustart ausgelesen werden.

C_DeviceAddress  3 2019-01-29 21:51:59
C_Manufacturer    SolarEdge 2019-01-29 21:51:59
C_Model                SE5K 2019-01-29 21:51:59
C_SerialNumber    7E1820EA 2019-01-29 21:51:59
C_SunSpec_DID    Dreiphasig 2019-01-29 21:51:59
C_SunSpec_ID      SunS 2019-01-29 21:51:59
C_Version              0002.1053 2019-01-29 21:51:59

Definition ist so.

"type-VT_String" =>  { 
        'decode' => 'cp850',
        'encode' => 'utf8',
        'expr' => '$val =~ s/[\00]+//gr',
        'len' => '8',
        'revRegs' => '0',
        'unpack' => 'a16',
    },
....

"h40000" =>  {  # 40001 2 C_SunSpec_ID uint32 Wert = "SunS" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte
                                   'len' => '2',
                               'reading' => 'C_SunSpec_ID',
                               'revRegs' => '0',
                                'unpack' => 'a4',
                               'defPoll' => '0',
                       },
          "h40004" =>  { # 40005 16 C_Hersteller String(32) Bei SunSpec eingetragener Wert = " SolarEdge "
                               'reading' => 'C_Manufacturer',
                                  'type' => 'VT_String',
                               'defPoll' => '0',
                       },
          "h40020" =>  {       'reading' => 'Block_C_Model',
                                  'type' => 'VT_String',
                               'defPoll' => '0',
                                  'expr' => 'ExprMppt($hash,$name,"C_Model",$val[0],0,0,0,0)', # conversion of raw value to visible value
                       },
          "h40044" =>  {       'reading' => 'C_Version',
                                  'type' => 'VT_String',
                               'defPoll' => '0',
                       },
          "h40052" =>  {       'reading' => 'C_SerialNumber',
                                  'type' => 'VT_String',
                               'defPoll' => '0',
                       },
          "h40068" =>  { #
                      'reading'  => 'C_DeviceAddress',
                               'defPoll' => '0',
                       },
          "h40069" => { # 40070 1 C_SunSpec_DID uint16 101 = Einphasig 102 = Spaltphase1 103 = Dreiphasig
                      'reading' => 'C_SunSpec_DID', # name of the reading for this value
                          'len' => '1' ,
                                  'map' => '101:Einphasig, 102:Spaltphase1, 103:Dreiphasig',
                              'defPoll' => '0',
                },


Gruß Jörg
JeeLink (RFM69CW) LGW 868MHz:WT470+TFA+TX37-IT+EMT7110+FS20+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080) Velux KLF200
MAX!:HM-MOD-UART:Rauch HM-SEC-SD
VITOSOLIC 200 + RESOL VBUS-LAN
SolarEdge SE5K(TCP 24 RS485)+Sonnenbatterie ComfortS(Vera3)+TD3511+DRT710M(RS485

Offline wthiess

  • Full Member
  • ***
  • Beiträge: 482
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #222 am: 29 Januar 2019, 22:08:46 »
Hallo Stefan!

Hier einige Meldungen.2019.01.29 21:58:56 3: VR400Mod: Timeout waiting for a modbus response, request: id 1, fCode 3, type h, adr 800, len 1 for device Alarms reading REG_ALARMS_ALL, read buffer empty
2019.01.29 21:58:56 3: Zaehler: Timeout waiting for a modbus response, request: id 16, fCode 3, type h, adr 9, len 1 for device Birgit_Soll reading temperature, read buffer empty

2019.01.29 22:00:42 5: Zaehler: QueueRequest called from ModbusLD_DoRequest with c1, qlen 1
2019.01.29 22:00:42 5: Zaehler: StartQueueTimer called form QueueRequest has already set internal timer to call Modbus_ProcessRequestQueue in 0.991 seconds
2019.01.29 22:00:42 5: Zaehler: read buffer: 100302000ac440
2019.01.29 22:00:42 5: Zaehler: ParseFrameStart (RTU) extracted id 16, fCode 3 and data 02000a
2019.01.29 22:00:42 5: Zaehler: HandleResponse called from Read
2019.01.29 22:00:42 5: Zaehler: ParseResponse called from HandleResponse
2019.01.29 22:00:42 5: Zaehler: CheckChecksum (called from HandleResponse): c440 is valid
2019.01.29 22:00:42 5: Zaehler: HandleResponse now passing to logical device Birgit_Soll for parsing data
2019.01.29 22:00:42 5: Birgit_Soll: ParseObj called with data 000a, type h, adr 9, valuesLen 1, op read
2019.01.29 22:00:42 5: Birgit_Soll: ParseObj ObjInfo for h9: reading=temperature, unpack=n, expr=$val/2, format=%.1f, map=
2019.01.29 22:00:42 5: Birgit_Soll: ParseObj unpacked 000a with n to 10 hex 3130
2019.01.29 22:00:42 5: Birgit_Soll: CheckEval for ModbusLD_ParseObj evaluates expr for temperature, val=10, expr=$val/2
2019.01.29 22:00:42 5: Birgit_Soll: CheckEval for ModbusLD_ParseObj result is 5
2019.01.29 22:00:42 5: Birgit_Soll: ParseObj for temperature does sprintf with format %.1f, value is 5
2019.01.29 22:00:42 5: Birgit_Soll: ParseObj for temperature sprintf result is 5.0
2019.01.29 22:00:42 4: Birgit_Soll: ParseObj assigns value 5.0 to temperature


lg
Wolfgang
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; MCP23017; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; diverse Modbus Relais; 1-wire Bus; Telegram; QuickFhem; Alexa ......

Offline wthiess

  • Full Member
  • ***
  • Beiträge: 482
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #223 am: 29 Januar 2019, 22:12:23 »
Hallo Stefan!
Ich hab das auch wenn ich nichts ändere. DH auch beim auslesen dürfte hier ein Timingproblem vorliegen.
lg
Wolfgang

Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; MCP23017; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; diverse Modbus Relais; 1-wire Bus; Telegram; QuickFhem; Alexa ......

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #224 am: 30 Januar 2019, 19:52:13 »
Hallo Wolfgang,

In Deinem Log-Ausschnitt kommt der Fehler als erstes, danach scheinen einige Zeilen zu fehlen und dann kommt ein erfolgreicher Request.
Um die Herkunft des Fehler zu sehen, bräuchte ich mehr Kontext, vor allem was vor dem Fehler passiert.
Bitte poste doch noch einen ungekürzten Log-Auszug beginnend mindestens 4 Sekunden vor der Fehlermeldung.

Gruss / Thanx
   Stefan