Neue Versionen und Support zum Modbus-Modul

Begonnen von StefanStrobel, 20 August 2017, 12:11:08

Vorheriges Thema - Nächstes Thema

Kruemel

#945
Hallo, leider war das heute morgen nicht von Dauer. Es kam nur ein Reading. Seit dem steht es wieder auf disconnect. Ich habe jetzt mal ein neues Device eingerichtet mit lediglich 2 Registern - i00001 und h00001. Im log sehe ich glaube ich, das regelmäßig ein Zugriff probiert wird. Es sind jedoch keine readings sichtbar ;-((
Hat jemand noch eine Idee?
Gruß
Wolfgang


nternals:
   CFGFN     
   DEF        5 60 192.168.100.52:502 TCP
   DeviceName 192.168.100.52:502
   EXPECT     idle
   FUUID      6304eedc-f33f-1fe0-af6d-612e9194103162a6
   IODev      EWWP
   Interval   60
   LASTOPEN   1661276270.00309
   LeadingZeros 1
   MODBUSID   5
   MODE       master
   MODULEVERSION Modbus 4.4.04 - 17.7.2021
   NAME       EWWP
   NEXT_OPEN  1661276330.1304
   NOTIFYDEV  global
   NR         3282
   NTFY_ORDER 50-EWWP
   PARTIAL   
   PROTOCOL   TCP
   STATE      disconnected
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   eventCount 17
   nextOpenDelay 60
   FRAME:
   QUEUE:
   READ:
   READINGS:
     2022-08-23 19:37:50   state           disconnected
   defptr:
     EWWP       5
   lastRead:
Attributes:
   closeAfterResponse 1
   dev-h-defPoll 1
   dev-i-defPoll 1
   obj-h00001-expr $val / 10
   obj-h00001-len 2
   obj-h00001-reading Aktuelle Außenlufttemperatur (BT1)
   obj-i00001-expr $val / 10
   obj-i00001-len 2
   obj-i00001-reading Aktuelle Außenlufttemperatur (BT1)
   room       UG-Heizung
   verbose    5

2022.08.23 19:54:52.089 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277292.08871 / 19:54:52.088
2022.08.23 19:54:52.089 5: EWWP: ProcessRequestQueue will return, device is disconnected, qlen 2, try again in 1 seconds
2022.08.23 19:54:52.090 5: EWWP: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2022.08.23 19:54:53.092 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277293.092 / 19:54:53.092
2022.08.23 19:54:53.094 5: EWWP: ProcessRequestQueue called from Fhem internal timer as queue:EWWP, qlen 2, request: request: id 5, read fc 3 h00001, len 2, tid 162, master device EWWP, reading Aktuelle Außenlufttemperatur (BT1) (getUpdate for Aktuelle Außenlufttemperatur (BT1) len 2), queued 16.12 secs ago
2022.08.23 19:54:53.095 5: EWWP: open called from ProcessRequestQueue, busyOpenDev 0 NEXT_OPEN 19:54:58.156
2022.08.23 19:54:53.095 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277293.09486 / 19:54:53.094
2022.08.23 19:54:53.096 5: EWWP: ProcessRequestQueue will return, device is disconnected, qlen 2, try again in 1 seconds
2022.08.23 19:54:53.097 5: EWWP: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2022.08.23 19:54:53.994 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277293.99431 / 19:54:53.994
2022.08.23 19:54:54.097 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277294.09727 / 19:54:54.097
2022.08.23 19:54:54.099 5: EWWP: ProcessRequestQueue called from Fhem internal timer as queue:EWWP, qlen 2, request: request: id 5, read fc 3 h00001, len 2, tid 162, master device EWWP, reading Aktuelle Außenlufttemperatur (BT1) (getUpdate for Aktuelle Außenlufttemperatur (BT1) len 2), queued 17.12 secs ago
2022.08.23 19:54:54.099 5: EWWP: open called from ProcessRequestQueue, busyOpenDev 0 NEXT_OPEN 19:54:58.156
2022.08.23 19:54:54.100 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277294.09963 / 19:54:54.099
2022.08.23 19:54:54.100 5: EWWP: ProcessRequestQueue will return, device is disconnected, qlen 2, try again in 1 seconds
2022.08.23 19:54:54.100 5: EWWP: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2022.08.23 19:54:55.103 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277295.10267 / 19:54:55.102
2022.08.23 19:54:55.110 5: EWWP: ProcessRequestQueue called from Fhem internal timer as queue:EWWP, qlen 2, request: request: id 5, read fc 3 h00001, len 2, tid 162, master device EWWP, reading Aktuelle Außenlufttemperatur (BT1) (getUpdate for Aktuelle Außenlufttemperatur (BT1) len 2), queued 18.13 secs ago
2022.08.23 19:54:55.111 5: EWWP: open called from ProcessRequestQueue, busyOpenDev 0 NEXT_OPEN 19:54:58.156
2022.08.23 19:54:55.111 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277295.11106 / 19:54:55.111
2022.08.23 19:54:55.112 5: EWWP: ProcessRequestQueue will return, device is disconnected, qlen 2, try again in 1 seconds
2022.08.23 19:54:55.112 5: EWWP: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2022.08.23 19:54:56.114 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277296.11436 / 19:54:56.114
2022.08.23 19:54:56.116 5: EWWP: ProcessRequestQueue called from Fhem internal timer as queue:EWWP, qlen 2, request: request: id 5, read fc 3 h00001, len 2, tid 162, master device EWWP, reading Aktuelle Außenlufttemperatur (BT1) (getUpdate for Aktuelle Außenlufttemperatur (BT1) len 2), queued 19.14 secs ago
2022.08.23 19:54:56.117 5: EWWP: open called from ProcessRequestQueue, busyOpenDev 0 NEXT_OPEN 19:54:58.156
2022.08.23 19:54:56.118 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277296.11731 / 19:54:56.117
2022.08.23 19:54:56.118 5: EWWP: ProcessRequestQueue will return, device is disconnected, qlen 2, try again in 1 seconds
2022.08.23 19:54:56.118 5: EWWP: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2022.08.23 19:54:56.295 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277296.29512 / 19:54:56.295
2022.08.23 19:54:56.297 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277296.29753 / 19:54:56.297





RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

ch.eick

Zitat von: Kruemel am 23 August 2022, 19:41:01
Hallo, leider war das heute morgen nicht von Dauer. Es kam nur ein Reading. Seit dem steht es wieder auf disconnect. Ich habe jetzt mal ein neues Device eingerichtet mit lediglich 2 Registern - i00001 und h00001. Im log sehe ich glaube ich, das regelmäßig ein Zugriff probiert wird. Es sind jedoch keine readings sichtbar ;-((
Hat jemand noch eine Idee?
Gruß
Wolfgang
Hallo Wolfgang,
bitte verwende für Deine Postings auch die code Tags, das ist der Lattenzaun bei den Symbolen über dem Eingabefeld.
Es wäre toll, wenn Du das auch in Deinen alten Postings noch nachträglich machen würdest.


2022.08.23 19:54:56.118 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now is 1661277296.11731 / 19:54:56.117

Als erstes solltest Du ein stabiles connected bekommen.
Die readings kommen dann im zweiten Schritt.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Kruemel

#947
Ich habe die postings bearbeitet.

2022.08.23 19:54:52.089 5: EWWP: open ignored because DevIo has set NEXT_OPEN to 1661277298.1563 / 19:54:58.156 and now


Wie ist denn diese Meldung zu verstehen? Ich kenne nur das Intervall von 60 sec.
RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

Kruemel

#948
Hallo, hier ein update.
Ich habe mal die Wärmepumpe neu gestartet. In fhem ging das device dann auf opened und empfängt jetzt auch readings.
VG
Wolfgang
RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

Kruemel

#949
Hallo, so das opened scheint jetzt stabil zu sein. Ich habe auch mal mit closeAfterResponse gespielt 1 und 0 liefern Werte.
Ich habe jetzt Register da bekomme ich mit den Attributen reading, len und expr einen nachvollziehbaren regelmäßigen Wert.
Das poll habe jeweils für i und h - Register auf 1 gesetzt.


dev-h-defPoll 1 deleteattr
dev-i-defPoll 1 deleteattr


Dann habe ich andere Register, da kommt ein Wert nur bei der Einrichtung oder bisher nicht.
Habt Ihr einen Tipp wie ich diese zum Leben erwecke? Die Infos zu den Registern kommen ja aus einer Doku des Herstellers. Letztendlich kann ich dort auch nachfragen ob die Regeister existieren. Ich möchte nur von meiner Seite alles mögliche abklären.

VG Wolfgang

P.S. hier noch Details zu funktionieren (ok) und nicht funktionieren (nok) Registern


ok
obj-i00001-expr $val / 10
obj-i00001-len 2
obj-i00001-reading Aktuelle Außenlufttemperatur (BT1)

nok
obj-i00005-expr $val
obj-i00005-len 2
obj-i00005-poll 1
obj-i00005-reading VorlaufBT2

ok
obj-i00007-expr $val / 10
obj-i00007-len 2
obj-i00007-reading Rücklauf (BT3)

nok
obj-i00008-expr $val / 10
obj-i00008-len 2
obj-i00008-reading Brauchwasser oben (BT7)

nok
obj-i00009-expr $val / 10
obj-i00009-len 2
obj-i00009-reading Brauchwasser (BT6)

nok
obj-i00037-expr $val / 10
obj-i00037-len 2
obj-i00037-reading mittlere Temperatur (BT1)

ok
obj-i00040-expr $val / 10
obj-i00040-len 2
obj-i00040-reading Volumenstrommesser (BF1)

nok
obj-i00351-expr 139+$val
obj-i00351-len 6
obj-i00351-poll 1
obj-i00351-reading AnzahlStarts(S135)

nok
obj-i01622-expr $val / 10
obj-i01622-len 2
obj-i01622-reading Verdampfer(EB101-BT16)

ok
obj-i01803-expr $val / 10
obj-i01803-len 2
obj-i01803-reading aktuelle Verdichterfrequenz (EB101)





RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

ch.eick

Zitat von: Kruemel am 25 August 2022, 15:13:42
Hallo, so das opened scheint jetzt stabil zu sein. Ich habe auch mal mit closeAfterResponse gespielt 1 und 0 liefern Werte.
Ich habe jetzt Register da bekomme ich mit den Attributen reading, len und expr einen nachvollziehbaren regelmäßigen Wert.
Das poll habe jeweils für i und h - Register auf 1 gesetzt.


dev-h-defPoll 1 deleteattr
dev-i-defPoll 1 deleteattr


Dann habe ich andere Register, da kommt ein Wert nur bei der Einrichtung oder bisher nicht.
Habt Ihr einen Tipp wie ich diese zum Leben erwecke? Die Infos zu den Registern kommen ja aus einer Doku des Herstellers. Letztendlich kann ich dort auch nachfragen ob die Regeister existieren. Ich möchte nur von meiner Seite alles mögliche abklären.

VG Wolfgang
Hallo Wolfgang,
eventuell werden einige Register ja nur gesendet, wenn es Änderungen gibt.
Ansonsten hatte ich bei mir am Anfang auch mal einen Scann gemacht und diesen mit der Beschreibung verglichen. Danach habe ich dann alles unnütze entfernt, bzw korrekt konfiguriert.

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

Kruemel

Zitat von: ch.eick am 25 August 2022, 15:20:55
Hallo Wolfgang,
eventuell werden einige Register ja nur gesendet, wenn es Änderungen gibt.
Ansonsten hatte ich bei mir am Anfang auch mal einen Scann gemacht und diesen mit der Beschreibung verglichen. Danach habe ich dann alles unnütze entfernt, bzw korrekt konfiguriert.

VG
   Christian

Halllo Christian, der scan läuft gerade. Ich wollte das auch vergleichen.
Ich hatte irgendwo gelesen, das Klammer-Zeichen evt. ein Problem im reading sind. Sollte man darauf verzichten. Ein umbenennen hatte bei mir jedoch bisher keinen Effekt.
VG
Wolfgang
RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

ch.eick

Zitat von: Kruemel am 25 August 2022, 15:26:18
Halllo Christian, der scan läuft gerade. Ich wollte das auch vergleichen.
Ich hatte irgendwo gelesen, das Klammer-Zeichen evt. ein Problem im reading sind. Sollte man darauf verzichten. Ein umbenennen hatte bei mir jedoch bisher keinen Effekt.
Klammern vermeide ich im reading Namen, da gibt es auch immer Ärger wenn man Regex darauf anwendet.
Generell gebe ich für die register die Namen vor und beschränke mich auf "_+-".
Zu lang sollte es auch nicht werden, das wird dann auch zu unüberlichtlich.
Die zusammen geschriebene GroßKlein Schreibung finde ich recht nett.
Bei technischen Namen verwende ich auch Kürzel, Leistung wird P, Strom wird I, Spannung wird V, ...
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Kruemel

Zitat von: ch.eick am 25 August 2022, 15:31:50
Klammern vermeide ich im reading Namen, da gibt es auch immer Ärger wenn man Regex darauf anwendet.
Generell gebe ich für die register die Namen vor und beschränke mich auf "_+-".
Zu lang sollte es auch nicht werden, das wird dann auch zu unüberlichtlich.
Die zusammen geschriebene GroßKlein Schreibung finde ich recht nett.
Bei technischen Namen verwende ich auch Kürzel, Leistung wird P, Strom wird I, Spannung wird V, ...
Hallo, ja dann werde ich das bei der nächsten Version auch überarbeiten. Ich hatte auch gesehen, das Leezeichen im reading-Namen dazu führen, das man es nicht mehr löschen kann. Daher werde ich sicher noch mehrer Versionen des devices haben bis es passt  :-\
VG
RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

Adimarantis

#954
Hallo,

Ich habe eine Frage zur Syntax von ignoreExpr:

Sowas wie $val>950 funktioniert ja ganz gut. Da ich einen Temperatursensor habe der manchmal spinnt, dieser sich aber eigentlich immer in der Nähe eines Referenzsensors bewegt, wollte ich Werte relativ zu diesem ausschliessen, also sowas wie
$val>ReadingsVal("Max1","temperature",0)*10+200

Da bekomme ich aber einen Syntax Error. Verschiedene Versuche mit Klammersetzung oder "if" Anweisung haben auch höchstens dazu geführt, dass alle Werte ignoriert wurden. Ist sowas überhaupt vorgesehen und wenn ja, wie stelle ich das an?

Danke,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Kruemel

Hallo, im Moment wäre da auch ein ) zu viel, oder?
Gruß
Wolfgang
RPi, Homematik, LAN-CFG, Bewegungsmelder, Rauchmelder, Rolläden, Schalter, Türkontakte, Heizungsventile, FB7390, Owncloud, xBMC

Adimarantis

Copy&Paste Fehler von den Versuchen. Habs im Post korrigiert damit es keine Verwirrung gibt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

RobertSch

Guten Tag Zusammen!

Ich bin noch recht frisch im Thema fhem und habe so meine ersten Schritte bereits gemacht und bin auch immer ganz gut klar gekommen. Allerdings habe ich nun doch ein Problem. Und zwar weiß ich gar nicht weiter, was das Thema Modbus betrifft. Habe mir viel durchgelesen, aber stehe immer noch auf dem Schlauch. Ich habe hier mehrere UMG604 von Janitza, teils noch mit Anbindung an UMG103. Wollte klein anfangen und erstmal einen einzelnen UMG604 anbinden und entsprechend auslesen. Mein Problem besteht darin, das ich keine Ahnung habe, wie ich das genau anstelle.

Bei meiner Recherche bin ich hier auf das 98_ModbusUMG604.pm Modul gestoßen und habe es eingebunden. Hier haben auch ein paar Leute geschrieben, wie das geht. Ich habe dazu das Modul wie folgt hinzugefügt:

define UMG604 ModbusUMG604 1 10 172.27.5.24:502 TCP

Die Verbindung zum Zähler scheint hiermit auch zu stehen und man kann die Stromwandler und Spannungswandler entsprechend einstellen. Allerdings ist das auch der Punkt, bei dem es bei mir aufhört. Ich möchte gerne gezielt die Werte auslesen, wie Spannung L1, L2, L3 sowie Leistung der einzelnen Phasen und Gesamtleistung etc.. In den Code Ausschnitten hier steht dann, das man entsprechend per attr die Daten abrufen/auslesen lassen kann.

Beispiel:
attr UMG604 poll-Voltage_L1 1

Dummerweise meckert da dann fhem mit mir rum und meint, das wäre nicht möglich. Daher hatte ich noch andere Dinge ausprobiert, aber irgendwie bin ich egal wie, nicht ans Ziel gelangt. Kann mir da jemand etwas helfen und mir vielleicht den passenden Hinweis geben, der mich weiter bringt? Muss ich noch ein zusätzliches Modbus Gerät anlegen? Oder läuft das irgendwie über die ModbusAttr? Ich bin hier leider nicht wirklich aus der Dokumentation schlau geworden und würde mich freuen, wenn ich hier weiter komme.

Ich hoffe es ist verständlich wo es genau hängt bei mir, aber wenn nicht, dann bitte einfach fragen.

Danke schonmal im Voraus für eure Hilfe.

LG
Robert

aikawa24

hallo,
ich Versucher eine Wallbox über das Modbusattr auszulesen,

mein Problem liegt bei den Unpack Codes

die werte die nur ein Register füllen kommen an aber wenn die 2 und mehr füllen bekomm ich das reading nicht angezeigt bzw nur 0

bei dem Namen und Serien Nummer hab ich es mit unpack a16 oder a8 hinbekommen, jenachdem wie viele Register der wert füllt.

eine doch gibts hier https://www.cfos-emobility.de/en/cfos-power-brain/modbus-registers.htm

ich habs schon mit den Standards s> f> und n probiert aber das bleibt immer 0

bei Register 8058 müsste zumindest 1307,2 kWh rauskommen

StefanStrobel

Hallo Adimarantis,

ist Deine letzte Nachricht so gemeint, dass das Problem gelöst ist?
In meinen Tests funktioniert das ignoreExpr problemlos auch bei Vergleichen gegen den bisherigen Readings-Wert.
Falls Du da noch ein Problem hast, poste doch mal Deine exakte Konfiguration und einen Auszug aus dem Log mit verbose 5, in dem man die Verarbeitung / Zuweisung der Readings sieht.

Gruss
   Stefan