Wago /SPS über Modbus(TCP/IP) in FHEM steuern

Begonnen von lechez, 05 Mai 2013, 10:50:13

Vorheriges Thema - Nächstes Thema

der-Lolo

Vielen Dank ChrisD, diese beiden Möglichkeiten habe ich auch gefunden - man findet nur im Netz nicht viel darüber.
Entweder funktioniert das Konstrukt so relativ problemlos, oder es gibt kaum menschen die sich daran versuchen.

Ich habe soeben ein 750-880 Starterkit bestellt und werde sobald es eingetroffen ist einen ersten Testaufbau machen.

Ich bin gespannt - und hoffe auf das richtige Pferd zu setzen.

maxritti

Zitat von: PEPITO82 am 11 März 2015, 07:50:43
Ich habe gestern Abend versucht, meinen Solar Log als ModbusTCPServer zu definieren:
define mySolarlog ModbusTCPServer 192.168.178.49

Leider erhalte ich dann die Meldung, dass das Modul nicht geladen werden konnte.
Im Logfile steht folgendes:
2015.03.10 20:30:40 1: PERL WARNING: Bareword found where operator expected at ./FHEM/36_ModbusTCPServer.pm line 5, near ""en" class"
2015.03.10 20:30:40 1: PERL WARNING: (Missing operator before class?)
2015.03.10 20:30:40 1: PERL WARNING: Bareword found where operator expected at ./FHEM/36_ModbusTCPServer.pm line 12, near "<title>FHEM"
2015.03.10 20:30:40 1: PERL WARNING: (Missing operator before FHEM?)
2015.03.10 20:30:40 1: PERL WARNING: Bareword found where operator expected at ./FHEM/36_ModbusTCPServer.pm line 12, near "36_ModbusTCPServer"
2015.03.10 20:30:40 1: PERL WARNING: (Missing operator before ModbusTCPServer?)
2015.03.10 20:30:40 1: reload: Error:Modul 36_ModbusTCPServer deactivated:
Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 57 at ./FHEM/36_ModbusTCPServer.pm line 12.

2015.03.10 20:30:40 0: Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 57 at ./FHEM/36_ModbusTCPServer.pm line 12.


Woran könnte das liegen?

Da fällt mir gerade etwas zu ein.
Schau doch mal auf Deinem PI die 36_ModbusTCPServer.pm mit einem Editor an.
Steht da am Ende HTML Code?
Das wäre nämlich falsch.
Enden muss die Datei mMn so:

sub ModbusTCPServer_UpdateStatistics($$$$$) {############################################################
  my ($hash,$pi,$po,$bi,$bo)=@_;

  $hash->{helper}{statistics}{pktIn}=0 if (!defined($hash->{helper}{statistics}{pktIn}));
  $hash->{helper}{statistics}{pktOut}=0 if (!defined($hash->{helper}{statistics}{pktOut}));
  $hash->{helper}{statistics}{bytesIn}=0 if (!defined($hash->{helper}{statistics}{bytesIn}));
  $hash->{helper}{statistics}{bytesOut}=0 if (!defined($hash->{helper}{statistics}{bytesOut}));

  $hash->{helper}{statistics}{pktIn}+=$pi;
  $hash->{helper}{statistics}{pktOut}+=$po;
  $hash->{helper}{statistics}{bytesIn}+=$bi;
  $hash->{helper}{statistics}{bytesOut}+=$bo;
  $hash->{statistics} =$hash->{helper}{statistics}{pktIn} ." / " . $hash->{helper}{statistics}{pktOut} ." / " . $hash->{helper}{statistics}{bytesIn} ." / " . $hash->{helper}{statistics}{byt$
}
1;



PEPITO82

Danke! Genau daran lag es. Die Datei, die ich gespeichert hatte, enthielt nur HTML Code.
Jetzt hab ich nochmal alle Dateien von github heruntergeladen und nun passt es.  :D

ChrisD

Hallo,

Ich habe eine alternative Möglichkeit eingerichtet die Module unter FHEM zu installieren. Durch Eingabe von
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txtim Webinterface von FHEM wird die aktuelle Version heruntergeladen. Danach muss entweder FHEM neu gestartet werden oder die benötigten Module mit reload neu geladen werden.

Grüße,

ChrisD

bmwfan

Hallo,
ich lese meinen SolarLog 200 mit dem Modul von MopedPaul und der Änderung von OniT aus. Klappt auch alles sehr gut bis auf die Anzahl der gelesenen Messwerte. Ich bekomme jeden Wert in kW (alle ausser den Wert Pac, den ich in W abfrage) doppelt ausgelesen und kann den Fehler, trotz Vergleich mit den hier beschriebenen ModBus-Modulen nicht lokalisieren. Das liegt sicher daran, dass das Niveau der Programmierung der Module für meinen Kenntnisstand eindeutig zu hoch ist. Hat vielleicht jemand eine Tip für mich?
Anbei mein Modul und der Aufruf

###### SOLARLOG auslesen ##################################
define Pac dummy
attr Pac alias Ertrag Aktuell
attr Pac group PV
attr Pac room Photovoltaik

define Today dummy
attr Today alias Ertrag Heute
attr Today room Photovoltaik

define Yesterday dummy
attr Yesterday alias Ertrag Gestern
attr Yesterday room Photovoltaik

define Month dummy
attr Month alias Ertrag Monat
attr Month room Photovoltaik

define Year dummy
attr Year alias Ertrag Jahr
attr Year room Photovoltaik

define Total dummy
attr Total alias Ertrag Gesamt
attr Total room Photovoltaik

# Solarlog nur am Tag abfragen (isday). 00:01:00: Jede Minute wird abgefragt
define SolarLogValues at +*00:05:00 {if(isday()) {{Solarlog ("3502","1","Pac")};;{Solarlog ("3508","2","Today")};;{Solarlog ("3510","2","Yesterday")};;{Solarlog ("3512","2","Month")};;{Solarlog ("3514","2","Year")};;{Solarlog ("3516","2","Total")}}}
attr SolarLogValues group PV
attr SolarLogValues room Photovoltaik

# --- Filelog Definition
define FileLog_SolarLogValues FileLog ./log/SolarLogValues-%Y-%m.log Month:.*|Pac:.*|Today:.*|Year:.*
attr FileLog_SolarLogValues group PV
attr FileLog_SolarLogValues room Photovoltaik

Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

oniT

Hallo Jürgen,

Ich habe inzwischen einen Wiki-Artikel erstellt. Sieh dort bitte nach und richte es wie beschrieben ein.

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

der-Lolo

Heute war das Ding in der Post - der Wago 750-880 starterkit liegt vor mir, ich bin schon gespannt wie ein flitzebogen. Stehe aber auch quasi schon vor dem ersten problemchen, ich hatte gehofft einfach Codesys installieren und loslegen zu können - jetzt ist erstens codesys nicht dabei, und zweitens ist die Software nicht für OSX gedacht... Erste google befragungen ergaben das es diese programmierumgebungen nicht für den Mac gibt.
Hm...
Muss ich jetzt wirklich das alte parallels wieder installieren? Und wird das überhaupt funktionieren, oder bekomm ich probleme mit parallels?

Hat jemand ähnliches am laufen?

oniT

#262
Hallo ChrisD,

hier wie gewünscht ein Logauszug zum Timeout mit der Version 0013:


2015.03.13 16:24:23.695 3: ModbusTCPServer_Timeout, request: SimpleWrite [0D AE 00 00 00 06] 00 03 0D AE 00 01
2015.03.13 16:24:27.068 3: ModbusTCPServer_Timeout, request: SimpleWrite [00 2C 00 00 00 06] 00 01 00 2C 00 08
2015.03.13 16:24:33.099 3: ModbusTCPServer_Timeout, request: SimpleWrite [00 31 00 00 00 06] 00 01 00 31 00 08
2015.03.13 16:24:33.711 3: ModbusTCPServer_Timeout, request: SimpleWrite [0D AE 00 00 00 06] 00 03 0D AE 00 01

2015.03.13 16:43:35.549 3: ModbusTCPServer_Timeout, request: SimpleWrite [0D AE 00 00 00 06] 00 03 0D AE 00 01
2015.03.13 17:47:09.643 3: ModbusTCPServer_Timeout, request: SimpleWrite [0D B4 00 00 00 06] 00 03 0D B4 00 02
2015.03.13 17:47:10.853 3: ModbusTCPServer_Timeout, request: SimpleWrite [00 02 00 00 00 06] 00 03 00 02 00 01
2015.03.13 17:47:15.664 3: ModbusTCPServer_Timeout, request: SimpleWrite [0D AE 00 00 00 06] 00 03 0D AE 00 01
2015.03.13 17:47:16.861 3: ModbusTCPServer_Timeout, request: SimpleWrite [00 67 00 00 00 06] 00 03 00 67 00 01


Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

Dieter1

Hallo ChrisD,
ich habe mit den neueren Versionen von ModbusRegister das gleiche Problem wie oniT:

2015.03.14 09:56:06.127 3: EVU_Meter: Unknown code ModbusRegister:1:74:4:2:17429:24871, help me!

Der erste Einlesezyklus mit mehreren Werten hintereinander funktioniert. Wenn 60s später die gleichen Parameter noch einmal ausgelesen werden wird ab da ModbusRegister_Parse kurz hintereinander 2* aufgerufen und die "Unknown code" Fehlermeldung kommt:

2015.03.14 09:56:06.117 5: ModbusRegister_Parse: 4 1 74
2015.03.14 09:56:06.119 5: ModbusRegister_Parse: 4 1 74
2015.03.14 09:56:06.127 3: EVU_Meter: Unknown code ModbusRegister:1:74:4:2:17429:24871, help me!

Hier meine Konfig und die Logs. Ich hoffe, du kannst erkennen, woran das liegt. Mit den Versionen vom 2015-02-15 funktioniert es.


fhem> list EVU_Meter
Internals:
   DEF        192.168.178.101:20108
   DeviceName 192.168.178.101:20108
   FD         62
   NAME       EVU_Meter
   NR         48
   NTFY_ORDER 50-EVU_Meter
   PARTIAL
   STATE      ok
   TYPE       ModbusRTU
   dummy      0
   Readings:
     2015-03-14 09:55:00   state           opened
   Helper:
     PARTIAL
     databits   8
     hd_tr_id   52
     hd_unit_id 0
     parity     even
     state      idle
     stopbits   1
Attributes:
   room       Power
   timeout    6
   verbose    5

fhem> list EVU_ES_E
Internals:
   DEF        1 74
   EVU_Meter_MSGCNT 1
   EVU_Meter_TIME 2015-03-14 09:55:03
   IODev      EVU_Meter
   LASTInputDev EVU_Meter
   MSGCNT     1
   ModbusRegister_lastRcv 2015-03-14 09:55:03
   NAME       EVU_ES_E
   NR         69
   NTFY_ORDER 50-EVU_ES_E
   STATE      597.509
   TYPE       ModbusRegister
   Readings:
     2015-03-14 09:55:03   RAW             44156093
     2015-03-14 09:55:03   kWh             597.509
     2015-03-14 09:55:03   statKWh         Hour: 0.963 Day: 1.853 Month: 246.450                       Year: 355.947 (since: 2015-02-19 )
     2015-03-14 09:55:03   statKWhDay      1.853
     2015-03-13 23:59:55   statKWhDayLast  26.390
     2015-03-14 09:55:03   statKWhHour     0.963
     2015-03-14 08:59:57   statKWhHourLast 0.836
     2015-03-14 08:59:57   statKWhLast     Hour: 0.836 Day: 26.390 Month: 109.49                      7 Year: - (since: 2015-02-19 )
     2015-03-14 09:55:03   statKWhMonth    246.450
     2015-02-28 23:59:55   statKWhMonthLast 109.497
     2015-03-14 09:55:03   statKWhYear     355.947
     2015-03-14 09:55:03   state           597.508972167969
   Helper:
     _98_statistics Statistik
     addr       4 1 74
     address    74
     disableRegisterMapping 1
     lastUpdate 0
     nextUpdate 1426323607.43166
     nread      2
     readCmd    J
     register   74
     registerType 4
     unitId     1
     updateIntervall 60
     Cnv:
       a          1
       b          0
       max        3.403e+38
       min        -3.403e+38
       step       1e+36
Attributes:
   IODev      EVU_Meter
   disableRegisterMapping 1
   event-on-change-reading .*
   plcDataType REAL_BE
   registerType Input
   room       Power
   stateFormat {sprintf("%0.3f", ReadingsVal($name,"state",0))}
   updateInterval 60
   userReadings kWh {sprintf("%0.3f", ReadingsVal($name,"state",0))}




2015.03.14 09:55:00.341 1: 192.168.178.101:20108 reappeared (EVU_Meter)
2015.03.14 09:55:03.368 5: AddRQueue 01 04 00 4A 00 02 50 1D
2015.03.14 09:55:03.370 5: SimpleWrite 01 04 00 4A 00 02 50 1D
2015.03.14 09:55:03.383 5: AddRQueue 01 04 00 48 00 02 F1 DD
2015.03.14 09:55:03.384 5: adding to RQUEUE - 1
2015.03.14 09:55:03.386 5: AddRQueue 01 04 00 0C 00 02 B1 C8
2015.03.14 09:55:03.387 5: adding to RQUEUE - 2
2015.03.14 09:55:03.388 5: AddRQueue 01 04 00 0E 00 02 10 08
2015.03.14 09:55:03.389 5: adding to RQUEUE - 3
2015.03.14 09:55:03.391 5: AddRQueue 01 04 00 10 00 02 70 0E
2015.03.14 09:55:03.392 5: adding to RQUEUE - 4
2015.03.14 09:55:03.394 5: AddRQueue 01 04 00 34 00 02 30 05
2015.03.14 09:55:03.395 5: adding to RQUEUE - 5
2015.03.14 09:55:03.425 5: Read 01 04 04 44 15 60 93 96 DD
2015.03.14 09:55:03.427 5: Received 01 04 04 44 15 60 93 96 DD
2015.03.14 09:55:03.428 5: EVU_Meter dispatch ModbusRegister:1:74:4:2:17429:24723
2015.03.14 09:55:03.557 5: ModbusRegister_Parse: 4 1 74
2015.03.14 09:55:03.627 4: RQUEUE: 5
2015.03.14 09:55:03.629 5: SimpleWrite 01 04 00 48 00 02 F1 DD
2015.03.14 09:55:03.671 5: Read 01 04 04 43 A1 F7 4C F8 27
2015.03.14 09:55:03.673 5: Received 01 04 04 43 A1 F7 4C F8 27
2015.03.14 09:55:03.674 5: EVU_Meter dispatch ModbusRegister:1:72:4:2:17313:63308
2015.03.14 09:55:03.675 5: ModbusRegister_Parse: 4 1 72
2015.03.14 09:55:03.722 4: RQUEUE: 4
2015.03.14 09:55:03.723 5: SimpleWrite 01 04 00 0C 00 02 B1 C8
2015.03.14 09:55:03.768 5: Read 01 04 04 C3 85 A6 30 AD 9D
2015.03.14 09:55:03.770 5: Received 01 04 04 C3 85 A6 30 AD 9D
2015.03.14 09:55:03.771 5: EVU_Meter dispatch ModbusRegister:1:12:4:2:50053:42544
2015.03.14 09:55:03.773 5: ModbusRegister_Parse: 4 1 12
2015.03.14 09:55:03.792 4: RQUEUE: 3
2015.03.14 09:55:03.793 5: SimpleWrite 01 04 00 0E 00 02 10 08
2015.03.14 09:55:03.855 5: Read 01 04 04 C2 7E 90 D8 CA 7E
2015.03.14 09:55:03.857 5: Received 01 04 04 C2 7E 90 D8 CA 7E
2015.03.14 09:55:03.858 5: EVU_Meter dispatch ModbusRegister:1:14:4:2:49790:37080
2015.03.14 09:55:03.860 5: ModbusRegister_Parse: 4 1 14
2015.03.14 09:55:03.878 4: RQUEUE: 2
2015.03.14 09:55:03.880 5: SimpleWrite 01 04 00 10 00 02 70 0E
2015.03.14 09:55:03.934 5: Read 01 04 04 C3 87 01 2B 36 66
2015.03.14 09:55:03.936 5: Received 01 04 04 C3 87 01 2B 36 66
2015.03.14 09:55:03.937 5: EVU_Meter dispatch ModbusRegister:1:16:4:2:50055:299
2015.03.14 09:55:03.939 5: ModbusRegister_Parse: 4 1 16
2015.03.14 09:55:03.957 4: RQUEUE: 1
2015.03.14 09:55:03.958 5: SimpleWrite 01 04 00 34 00 02 30 05
2015.03.14 09:55:04.014 5: Read 01 04 04 C4 16 3C BB 76 03
2015.03.14 09:55:04.016 5: Received 01 04 04 C4 16 3C BB 76 03
2015.03.14 09:55:04.017 5: EVU_Meter dispatch ModbusRegister:1:52:4:2:50198:15547
2015.03.14 09:55:04.019 5: ModbusRegister_Parse: 4 1 52
2015.03.14 09:56:06.021 5: AddRQueue 01 04 00 4A 00 02 50 1D
2015.03.14 09:56:06.023 5: SimpleWrite 01 04 00 4A 00 02 50 1D
2015.03.14 09:56:06.036 5: AddRQueue 01 04 00 48 00 02 F1 DD
2015.03.14 09:56:06.037 5: adding to RQUEUE - 1
2015.03.14 09:56:06.039 5: AddRQueue 01 04 00 0C 00 02 B1 C8
2015.03.14 09:56:06.039 5: adding to RQUEUE - 2
2015.03.14 09:56:06.041 5: AddRQueue 01 04 00 0E 00 02 10 08
2015.03.14 09:56:06.042 5: adding to RQUEUE - 3
2015.03.14 09:56:06.044 5: AddRQueue 01 04 00 10 00 02 70 0E
2015.03.14 09:56:06.045 5: adding to RQUEUE - 4
2015.03.14 09:56:06.047 5: AddRQueue 01 04 00 34 00 02 30 05
2015.03.14 09:56:06.048 5: adding to RQUEUE - 5
2015.03.14 09:56:06.112 5: Read 01 04 04 44 15 61 27 97 3A
2015.03.14 09:56:06.114 5: Received 01 04 04 44 15 61 27 97 3A
2015.03.14 09:56:06.115 5: EVU_Meter dispatch ModbusRegister:1:74:4:2:17429:24871
2015.03.14 09:56:06.117 5: ModbusRegister_Parse: 4 1 74
2015.03.14 09:56:06.119 5: ModbusRegister_Parse: 4 1 74
2015.03.14 09:56:06.127 3: EVU_Meter: Unknown code ModbusRegister:1:74:4:2:17429:24871, help me!
2015.03.14 09:56:06.130 4: RQUEUE: 5
2015.03.14 09:56:06.132 5: SimpleWrite 01 04 00 48 00 02 F1 DD
2015.03.14 09:56:06.193 5: Read 01 04 04 43 A1 F7 6D 38 3F
2015.03.14 09:56:06.195 5: Received 01 04 04 43 A1 F7 6D 38 3F
2015.03.14 09:56:06.196 5: EVU_Meter dispatch ModbusRegister:1:72:4:2:17313:63341
2015.03.14 09:56:06.198 5: ModbusRegister_Parse: 4 1 72
2015.03.14 09:56:06.200 5: ModbusRegister_Parse: 4 1 72
2015.03.14 09:56:06.208 3: EVU_Meter: Unknown code ModbusRegister:1:72:4:2:17313:63341, help me!
2015.03.14 09:56:06.214 4: RQUEUE: 4
2015.03.14 09:56:06.215 5: SimpleWrite 01 04 00 0C 00 02 B1 C8
2015.03.14 09:56:06.261 5: Read 01 04 04 C3 87 87 AC 14 64
2015.03.14 09:56:06.263 5: Received 01 04 04 C3 87 87 AC 14 64
2015.03.14 09:56:06.264 5: EVU_Meter dispatch ModbusRegister:1:12:4:2:50055:34732
2015.03.14 09:56:06.266 5: ModbusRegister_Parse: 4 1 12
2015.03.14 09:56:06.267 5: ModbusRegister_Parse: 4 1 12
2015.03.14 09:56:06.276 3: EVU_Meter: Unknown code ModbusRegister:1:12:4:2:50055:34732, help me!


Danke

Dieter
FHEM V5.6 auf Raspberry Pi, HMLAN, div. Homematic Komponenten, SDM630 über Modbus/LAN/RS485

ChrisD

Hallo,

@Dieter:
Das Problem bei dir kommt daher dass ich ModbusRTU noch nicht an verschiedene Änderungen in ModbusRegister angepasst hatte. Kannst du bitte mit der Version 0008 von ModbusRTU testen ?

In der Version werden jetzt bei Timeouts auch Meldungen ins Log geschrieben wenn verbose auf 3 oder höher steht.

Zum Installieren kannst du in FHEM dies eingeben:
update 36_ModbusRTU https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt

@Tino:
Dass im Log Timeouts auftreten kann manchmal passieren, allerdings müssten sie immer um mindestens den Wert des Attributes timeout auseinanderliegen was bei deinem Log nicht der Fall ist. Ich muss mir den Code nochmal ansehen.

Grüße,

ChrisD

PEPITO82

#265
Edit: hat sich erledigt. Hab die betroffenen Defines gelöscht und nochmal mit dem korrekten Register angelegt. Hab zuvor wahrscheinlich zu Testzwecken eine andere Registernummer eingetragen gehabt...


Der Solar-Log läuft sehr gut über das Modul.
Meine Wärmepumpe von Waterkotte ansich auch.

Nur mit zwei Registern habe ich ein Problem. Die fluten das Logfile:

2015.03.15 11:06:28 2: ModbusRegister_Parse: invalid address 3 0 5030


Ich bekomme aus dem Register keinen sinnvollen Wert gelesen.
Dort sollte nur 0 oder 1 stehen (lt. Config-Seite von Carel, dem Hersteller des Wärmepumpenreglers).

Mit den Attributen habe ich ein wenig herumgespielt, aber leider bisher erfolglos:


IODev myWaterkotte
event-on-change-reading .*
plcDataType WORD
registerType Input
room Waterkotte
updateInterval 3600


Das updateIterval habe ich gepflegt, damit das Logfile nicht überläuft...

Wenn ich manuell einen Wert setze, dann wird in der Wärmepumpe selbst auch das Heizen ausgeschaltet.
Von dem her sollte das Register eigentlich passen.

Kann jemand helfen?

Dieter1

Hallo ChrisD,

mit den aktuellen Versionen einschl. Version 0008 von ModbusRTU sieht alles gut aus.  Danke.
Wenn ich einen Timeout sehe (was leider sicher kommen wird  :(  ) gebe ich dir über das Verhalten Bescheid.
Es sollte ja jetzt ein Logeintrag zu sehen sein. Hat sich sonst im Verhalten nach einem Timeout noch etwas geändert?

Grüße
Dieter
FHEM V5.6 auf Raspberry Pi, HMLAN, div. Homematic Komponenten, SDM630 über Modbus/LAN/RS485

ChrisD

Hallo,

@Dieter:
Es hat sich nichts am Verhalten beim Timeout geändert. Eine Möglichkeit wäre bei Timeout die Anfrage erneut zu senden, allerdings gibt es bei Modbus RTU immer noch das Problem dass es schwierig zu erkennen ist zu welcher Anfrage die ankommenden Daten gehören.

Grüße,

ChrisD

oniT

#268
Zitat von: PEPITO82 am 15 März 2015, 11:18:28
Nur mit zwei Registern habe ich ein Problem. Die fluten das Logfile:

2015.03.15 11:06:28 2: ModbusRegister_Parse: invalid address 3 0 5030


Ich bekomme aus dem Register keinen sinnvollen Wert gelesen.
Dort sollte nur 0 oder 1 stehen (lt. Config-Seite von Carel, dem Hersteller des Wärmepumpenreglers).

Mit den Attributen habe ich ein wenig herumgespielt, aber leider bisher erfolglos:


IODev myWaterkotte
event-on-change-reading .*
plcDataType WORD
registerType Input
room Waterkotte
updateInterval 3600


Das updateIterval habe ich gepflegt, damit das Logfile nicht überläuft...

Wenn ich manuell einen Wert setze, dann wird in der Wärmepumpe selbst auch das Heizen ausgeschaltet.
Von dem her sollte das Register eigentlich passen.

Kann jemand helfen?

Hallo,

sicher das es sich dabei um ein Register handelt? Wenn nur 0 oder 1 kommen, würde ich von einem Coil und somit Digitalwert ausgehen. Was steht zu diesem Wert in der Dokumentation?

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

PEPITO82

Ich habe bisher leider nur diese Doku: https://drive.google.com/file/d/0Bzg6eY-tNsw3cnRCc0xGUDFPNmc/view?usp=sharing.

Interessant sind für mich die Handabschaltung Heizung auf Seite 190: BMS-Index I30 / Typ WORD / Einstellbereich 0 ... 1 (0= Aus, 1 = Ein)
Sowie die Handabschaltung Warmwasser auf Seite 192: BMS-Index I32 / Typ WORD / Einstellbereich 0 ... 1 (0= Aus, 1 = Ein)

Auf der Konfigurationsseite von Carel sehe ich auch, dass sich bei Integer Variable 30 der Wert von 1 auf 0 bzw. 0 auf 1 ändert:
(https://lh3.googleusercontent.com/-W_HjS00z9M8/VQZ7q68FcCI/AAAAAAAAA-M/kl0hOHDMGhc/s1440/pcoweb_2.jpg)

Das Register ist aber scheinbar Nr. 5030 (Heizung) bzw. 5032.

Vermutlich gehen die analogen Variablen von Register 1 - 1000 und die Integer Variablen von 5000 - 7000.

Ist es korrekt eingestellt?
Seitdem ich Register 5030 nochmal neu definiert habe, gab es keine Logeinträge mehr.
Zuvor hatte ich es wahrscheinlich zuerst mit Register 158 probiert (lt. der beigefügten Doku) und anschließend auf 5030 geändert.