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

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

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Der Wireshark-Auszug sieht so aus als ob du Wireshark nicht auf dem Raspberry laufen hast sondern auf dem Rechner 192.168.10.25. Dadurch siehst du die Daten zwischen Raspberry und SPS nicht. Du kannst aber das Logging in FHEM mit
attr SPS verbose 5aktivieren und schauen was sich im Logfile von FHEM befindet. Alternativ könntest du auch tcpdump auf dem Raspberry benutzen um den Netzwerkverkehr mitzuschneiden.

Grüße,

ChrisD

Smartissimo

Gott ja klar  ::) das war dumm von mir :D ich probier es direkt mal aus und melde mich wieder ;D

Smartissimo

Okay :D Nach kurzem Überblick verschaffen meine folgende Einschätzung

PS dispatch ModbusCoil:0:160:1:1:0
2015.02.12 16:20:48 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.12 16:20:48 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.12 16:20:48 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.12 16:20:48 5: adding to RQUEUE - 1
2015.02.12 16:20:48 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.12 16:20:48 5: adding to RQUEUE - 2
2015.02.12 16:20:48 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.12 16:20:48 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.12 16:20:48 4: RQUEUE: 2
2015.02.12 16:20:48 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.12 16:20:48 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.12 16:20:48 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.12 16:20:48 4: RQUEUE: 1
2015.02.12 16:20:48 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.12 16:20:48 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00


Es sieht für mich so aus das meine drei Beispiel Coils 160, 161 und 167 durch ModbusTCPServer_Parse: received bestätigt werden und somit von FHEM erzeugt / gesendet werden.

Interpretation korrekt ?  :o

Gruß,

Sven

ChrisD

Hallo,

Die 3 Coils wurden von der SPS gelesen. Wenn du den Wert auf der SPS änderst sollte er auch in FHEM angezeigt werden.

Wenn du in FHEM auf On oder Off klickst sollte auch der Wert geschrieben werden.

Du kannst über das Attribut pollInterval festlegen wie häufig die Werte von der SPS gelesen werden sollen,
attr SPS pollInterval 5führt dazu dass alle 5 Sekunden gelesen wird. Geschrieben wird immer bei Bedarf unabhängig von der eingestellten Zeit.

Grüße,

ChrisD

Smartissimo

Hallo Chris,

also nachdem ich mich heute mit ein paar anderen Sachen rumärgern musste bin ich wieder back to the roots.
Also die Bestätigung kommt im Logfile. Das Problem momentan ist aber leider, das der Zustand zwar von off auf set on (Glühbirne mit rotem Ausrufezeichen) geht, nach kurzer Zeit aber wieder zurück springt. Muss man den Zustand in der SPS speichern ?

In der SPS ist neber dem besagten Server
http://imgur.com/FbBGxDJ

die Verwendungsstelle wie folgt belegt
http://imgur.com/kJodb5i

normalerweise sollte es funktionieren :D Normalerweise ... Ich glaube ich habe irgendwo noch einen Denkfehler oder eine Wissenslücke  :o

Gruß,

Sven

ChrisD

Hallo,

Kannst du verbose beim Server wieder auf 5 setzen (attr SPS verbose 5) und die Logeinträge beim Schreiben posten.

Dass die Glühbirne auf set_on hängen bleibt könnte auch bedeuten dass die SPS das Schreiben abgelehnt hat, Details sollten auf jedem Fall im Log sein.

Setzt du das Bit 109.15 im SPS-Code wieder auf 0 ?

Grüße,

ChrisD

Smartissimo

Hallo Chris,

hier nachfolgend der Log.
2015.02.14 14:26:16 1: Including fhem.cfg
2015.02.14 14:26:16 3: telnetPort: port 7072 opened
2015.02.14 14:26:16 3: WEB: port 8083 opened
2015.02.14 14:26:16 3: WEBphone: port 8084 opened
2015.02.14 14:26:16 3: WEBtablet: port 8085 opened
2015.02.14 14:26:16 2: eventTypes: loaded 62 events from ./log/eventTypes.txt
2015.02.14 14:26:16 3: Testcoil: I/O device is SPS
2015.02.14 14:26:16 3: 03_Uhr: I/O device is SPS
2015.02.14 14:26:16 3: Fernseher: I/O device is SPS
2015.02.14 14:26:16 1: Including ./log/fhem.save
2015.02.14 14:26:16 3: Opening SPS device 192.168.10.2:502
2015.02.14 14:26:16 3: SPS device opened
2015.02.14 14:26:18 5: AddWQueue [DD 08 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:21 5: AddWQueue [88 C9 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:21 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:21 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:21 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:21 5: adding to RQUEUE - 1
2015.02.14 14:26:21 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:21 5: adding to RQUEUE - 2
2015.02.14 14:26:21 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:21 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:21 4: RQUEUE: 2
2015.02.14 14:26:21 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:21 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:21 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:21 4: RQUEUE: 1
2015.02.14 14:26:21 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:21 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:21 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:26 5: AddWQueue [F7 1D 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:26 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:26 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:26 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:26 5: adding to RQUEUE - 1
2015.02.14 14:26:26 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:26 5: adding to RQUEUE - 2
2015.02.14 14:26:26 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:26 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:26 4: RQUEUE: 2
2015.02.14 14:26:26 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:26 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:26 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:26 4: RQUEUE: 1
2015.02.14 14:26:26 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:26 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:26 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:28 5: AddWQueue [5A D2 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:31 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:31 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:31 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:31 5: adding to RQUEUE - 1
2015.02.14 14:26:31 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:31 5: adding to RQUEUE - 2
2015.02.14 14:26:31 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:31 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:31 4: RQUEUE: 2
2015.02.14 14:26:31 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:31 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:31 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:31 4: RQUEUE: 1
2015.02.14 14:26:31 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:31 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:31 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:33 5: AddWQueue [CE 6D 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:36 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:36 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:36 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:36 5: adding to RQUEUE - 1
2015.02.14 14:26:36 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:36 5: adding to RQUEUE - 2
2015.02.14 14:26:36 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:36 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:36 4: RQUEUE: 2
2015.02.14 14:26:36 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:36 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:36 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:36 4: RQUEUE: 1
2015.02.14 14:26:36 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:36 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:36 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:39 5: AddWQueue [17 C3 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:41 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:41 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:41 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:41 5: adding to RQUEUE - 1
2015.02.14 14:26:41 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:41 5: adding to RQUEUE - 2
2015.02.14 14:26:41 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:41 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:41 4: RQUEUE: 2
2015.02.14 14:26:41 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:41 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:41 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:41 4: RQUEUE: 1
2015.02.14 14:26:41 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:41 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:41 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:46 5: AddWQueue [59 57 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:46 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:46 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:46 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:46 5: adding to RQUEUE - 1
2015.02.14 14:26:46 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:46 5: adding to RQUEUE - 2
2015.02.14 14:26:46 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:46 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:46 4: RQUEUE: 2
2015.02.14 14:26:46 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:46 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:46 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:46 4: RQUEUE: 1
2015.02.14 14:26:46 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:46 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:46 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:47 5: AddWQueue [99 E2 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:51 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:51 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:51 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:51 5: adding to RQUEUE - 1
2015.02.14 14:26:51 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:51 5: adding to RQUEUE - 2
2015.02.14 14:26:51 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:51 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:51 4: RQUEUE: 2
2015.02.14 14:26:51 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:51 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:51 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:51 4: RQUEUE: 1
2015.02.14 14:26:51 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:51 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:51 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:52 5: AddWQueue [B0 A7 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:26:56 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:56 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:26:56 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:56 5: adding to RQUEUE - 1
2015.02.14 14:26:56 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:56 5: adding to RQUEUE - 2
2015.02.14 14:26:56 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:26:56 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:26:56 4: RQUEUE: 2
2015.02.14 14:26:56 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:26:56 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:26:56 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:26:56 4: RQUEUE: 1
2015.02.14 14:26:56 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:26:56 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:26:56 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:26:57 5: AddWQueue [E6 B5 00 00 00 06] 00 05 00 A1 FF 00
2015.02.14 14:27:01 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:27:01 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:27:01 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:27:01 5: adding to RQUEUE - 1
2015.02.14 14:27:01 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:27:01 5: adding to RQUEUE - 2
2015.02.14 14:27:01 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:27:01 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:27:01 4: RQUEUE: 2
2015.02.14 14:27:01 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:27:01 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:27:01 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:27:01 4: RQUEUE: 1
2015.02.14 14:27:01 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:27:01 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:27:01 5: SPS dispatch ModbusCoil:0:160:1:1:0
2015.02.14 14:27:06 5: AddRQueue [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:27:06 5: SimpleWrite [00 A1 00 00 00 06] 00 01 00 A1 00 08
2015.02.14 14:27:06 5: AddRQueue [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:27:06 5: adding to RQUEUE - 1
2015.02.14 14:27:06 5: AddRQueue [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:27:06 5: adding to RQUEUE - 2
2015.02.14 14:27:06 5: ModbusTCPServer_Parse: received [00 A1 00 00 00 04] 00 01 01 00
2015.02.14 14:27:06 5: SPS dispatch ModbusCoil:0:161:1:1:0
2015.02.14 14:27:06 4: RQUEUE: 2
2015.02.14 14:27:06 5: SimpleWrite [00 A7 00 00 00 06] 00 01 00 A7 00 08
2015.02.14 14:27:06 5: ModbusTCPServer_Parse: received [00 A7 00 00 00 04] 00 01 01 00
2015.02.14 14:27:06 5: SPS dispatch ModbusCoil:0:167:1:1:0
2015.02.14 14:27:06 4: RQUEUE: 1
2015.02.14 14:27:06 5: SimpleWrite [00 A0 00 00 00 06] 00 01 00 A0 00 08
2015.02.14 14:27:06 5: ModbusTCPServer_Parse: received [00 A0 00 00 00 04] 00 01 01 00
2015.02.14 14:27:06 5: SPS dispatch ModbusCoil:0:160:1:1:0


Versucht wurde das Coil 160 zu schalten.
Zurückgesetzt wird das Coil nicht in der SPS. Ich gebe den Zustand direkt weiter in die logische Verknüpfung mittels MOVE Baustein bei Phoenix.

Gruß,

Sven

ChrisD

#307
Hallo,

Die Daten werden von FHEM nicht geschrieben, was steht im Reading 'state' (nicht STATE) beim Server (SPS) ?

Welche Version von FHEM hast du (steht im Logfile, z.B. Server started with x defined entities (fhem.pl:10462/2016-01-11...) ?

Grüße,

ChrisD

Smartissimo

#308
Heyhoo,

also Version ist
2016.01.16 10:28:19 0: Server started with 44 defined entities (fhem.pl:10462/2016-01-11 perl:5.014002 os:linux user:fhem pid:2297)

der Modbus Server Baustein bietet nicht die Möglichkeit eines reading state, soweit ich das jetzt herausgefunden habe.

Ich dachte dispatch bedeutet das fhem sendet ? Startet die Modbus Adresse eigentlich bei 0 ?

//EDIT: On und Off bleiben übrigens nicht mehr hängen sondern schalten ordnungsgemäß um.

Grüße,

Sven

Smartissimo

Der Wurm ist raus  :D

Der Fehler ist gefunden. Es war so unfassbar simpel das es umso ärgerlicher ist. Bei Verwenden der Modbus FC5 wurde zwar wie immer testweise in FHEM das Testcoil 160 geschaltet, in der Phoenix SPS wird aber das Coil 159 empfangen und gesetzt. Ich kann mir den OffSet nicht erklären. Ich bin heilfroh das die Kommunikation steht und die Daten wie vorgesehen gesendet und empfangen werden. Danke nochmal an ChrisD für den schnellen und kompetenten Support.
Vielleicht kann ich durch mein Problem ein paar kommenden Lesern die Fehlersuche erleichtern.

Beste Grüße,

Sven

ChrisD

Hallo,

ZitatStartet die Modbus Adresse eigentlich bei 0 ?
Die Adressen starten bei 0, aber (!) die Nummerierung der Register/Coils startet laut Spezifikation bei 1. Coil 160 liegt damit auf Adresse 159 (wie du feststellen musstest)

Leider ist es aber so dass verschiedene Hersteller Adressen und Coils/Registernummern in ihrer Dokumentation gleichsetzen. Aus diesem Grund gibt es das Attribut 'disableRegisterMapping'. Wenn dieses auf true steht sind Register/Coilnummern und Adressen identisch, andernfalls wird umgerechnet.

Bei der Anbindung an eine (rezente) SPS sollte disableRegisterMapping auf true gesetzt werden so dass keine Umrechnung nötig ist.

Grüße,

ChrisD

belu

Hi,

vorhin mal ausprobiert, läuft sehr gut! Verbinde ne Loxone Hausautomatisierung mit FHEM über eine Wago, die Wago is Slave und die anderen Beiden schreiben in die Adressregister der Wago. Problem ist nur bin mit FHEM nicht so vertraut.

Ich hab also FHEM nur mit diesem 00_THZ.pm am laufen weil ich diese Wärmepumpe habe, nun versuche ich die Infos weiter zu geben an meine Hausautomatisierung.

Ich hab nun also in der Wago und in FHEM 40 Wörter erstellt auf die ich schreibe bzw 20 Bit auf die ich etwas schreiben möchte.

Was rein soll sind die Readings aus dem THZ Modul. Da sind Istwerte die halt alle 60 Sekunden ausgelesen werden. Bzw möchte eich auch vereinzelnt auf Werte schreiben.

Hat jemand einen Tipp?

LG

Belu

ChrisD

Hallo,

Du kannst die Daten mit Hilfe von 'notify' übertragen. Wenn sich ein Wert der Wärmepumpe ändert wird er automatisch übertragen, z.B.:
define n_wp_heatTemp notify meinePumpe:heatTemp.* set mbregister1 $EVTPART1
define n_wp_returnTemp notify meinePumpe:returnTemp.* set mbregister2 $EVTPART1

Die passenden Reading-Namen musst du bei der Pumpe über userReadings bilden.

Wenn du Befehle an die Pumpe schicken möchtest, kannst du den umgekehrten Weg nehmen:
attr mbregister3 stateAlias p07FanStageDay
define n_wp_p07FanStageDay notify mbregister3:p07FanStageDay.* set meinePumpe p07FanStageDay $EVTPART1


Damit nur bei Änderung geschrieben wird solltest du zusätzlich event-on-change-reading setzen:
attr meinePumpe event-on-change-reading .*
attr mbregister3 event-on-change-reading .*


Grüße,

ChrisD

belu

Hallo ChrisD,

danke für deine Antwort,

hast du vielleicht noch ein Beispiel wie ich ein %MW oder %MD aufrufe, über einen Zyklus von 1 Minute und diesen in einer File Logge um ihn dann später Plotten und auswerten zu können?

LG

ChrisD

Hallo,

Wenn du einen Wert pro Minute loggen möchtest kannst du dies verwenden:

define MR_MW20 ModbusRegister wago MW20
attr MR_MW20 stateAlias measured-temp
attr MR_MW20 updateInterval 60


MW20 wird alle 60s gelesen und der Wert wird in das Reading measured-temp geschrieben.

define filelog_MW20 FileLog ./log/FL_MW20.log MR_MW20:measured-temp.*

Legt eine Datei im Verzeichnis ./log an (musst du eventuell anpassen) und speichert den gelesenen Wert ab.

Analog kannst du auch einen 32-Bit-Wert speichern:
define MR_MD40 ModbusRegister wago MD40
attr MR_MD40 stateAlias energy
attr MR_MD40 updateInterval 60
define filelog_MD40 FileLog ./log/FL_MD40.log MR_MD40:energy.*


Grüße,

ChrisD