Autor Thema: Poolsteuerung per Modbus auslesen  (Gelesen 1483 mal)

Offline JF Mennedy

  • New Member
  • *
  • Beiträge: 49
Antw:Poolsteuerung per Modbus auslesen
« Antwort #15 am: 27 Mai 2020, 12:03:10 »
So,

hier die derzeitige Definition:

defmod NaturallySalt ModbusAttr 1 10
attr NaturallySalt userattr dev-h-defPoll dev-h-write obj-h00257-expr obj-h00257-reading obj-h00258-expr obj-h00258-reading obj-h00259-expr obj-h00259-reading obj-h00262-expr obj-h00262-reading obj-h01041-allowWrite obj-h01041-expr obj-h01041-hint obj-h01041-max obj-h01041-min obj-h01041-reading obj-h01041-set obj-h01043-allowWrite obj-h01043-expr obj-h01043-hint obj-h01043-max obj-h01043-min obj-h01043-reading obj-h01043-set obj-h01057-expr obj-h01057-reading obj-h01068-allowWrite obj-h01068-expr obj-h01068-hint obj-h01068-max obj-h01068-min obj-h01068-reading obj-h01068-set obj-h01282-allowWrite obj-h01282-expr obj-h01282-hint obj-h01282-max obj-h01282-min obj-h01282-reading obj-h01282-set obj-h01284-allowWrite obj-h01284-expr obj-h01284-hint obj-h01284-max obj-h01284-min obj-h01284-reading obj-h01284-set obj-h01284-setexpr obj-h01288-allowWrite obj-h01288-expr obj-h01288-hint obj-h01288-max obj-h01288-min obj-h01288-reading obj-h01288-set
attr NaturallySalt DbLogExclude .*
attr NaturallySalt IODev ModBusLine
attr NaturallySalt alias NaturallySalt
attr NaturallySalt dev-h-defPoll 10
attr NaturallySalt dev-h-write 16
attr NaturallySalt disable 0
attr NaturallySalt group Pool
attr NaturallySalt icon virtualbox-alt
attr NaturallySalt obj-h00257-expr $val * 0.1
attr NaturallySalt obj-h00257-reading Hydro
attr NaturallySalt obj-h00258-expr $val * 0.01
attr NaturallySalt obj-h00258-reading pH
attr NaturallySalt obj-h00259-expr $val * 1
attr NaturallySalt obj-h00259-reading RX
attr NaturallySalt obj-h00262-expr $val * 0.1
attr NaturallySalt obj-h00262-reading Temperatur
attr NaturallySalt obj-h01041-allowWrite 1
attr NaturallySalt obj-h01041-expr $val * 1
attr NaturallySalt obj-h01041-hint 0,1,2,3,4,5,6,7
attr NaturallySalt obj-h01041-max 7
attr NaturallySalt obj-h01041-min 0
attr NaturallySalt obj-h01041-reading FiltrationsModus
attr NaturallySalt obj-h01041-set 1
attr NaturallySalt obj-h01043-allowWrite 1
attr NaturallySalt obj-h01043-expr $val * 1
attr NaturallySalt obj-h01043-hint 0,1
attr NaturallySalt obj-h01043-max 1
attr NaturallySalt obj-h01043-min 0
attr NaturallySalt obj-h01043-reading FiltrationsSchalterMan
attr NaturallySalt obj-h01043-set 1
attr NaturallySalt obj-h01057-expr $val * 1
attr NaturallySalt obj-h01057-reading FiltrationState
attr NaturallySalt obj-h01068-allowWrite 1
attr NaturallySalt obj-h01068-expr $val * 1
attr NaturallySalt obj-h01068-hint 0,1
attr NaturallySalt obj-h01068-max 1
attr NaturallySalt obj-h01068-min 0
attr NaturallySalt obj-h01068-reading Cover
attr NaturallySalt obj-h01068-set 1
attr NaturallySalt obj-h01282-allowWrite 1
attr NaturallySalt obj-h01282-expr $val * 0.1
attr NaturallySalt obj-h01282-hint 0,10,20,30,40,50,60,70,80,90,100
attr NaturallySalt obj-h01282-max 100
attr NaturallySalt obj-h01282-min 0
attr NaturallySalt obj-h01282-reading HydroSollwert
attr NaturallySalt obj-h01282-set 1
attr NaturallySalt obj-h01284-allowWrite 1
attr NaturallySalt obj-h01284-expr $val * 0.01
attr NaturallySalt obj-h01284-hint 6.8,6.9,7.0,7.1,7.2,7.4,7.5,7.6
attr NaturallySalt obj-h01284-max 7.6
attr NaturallySalt obj-h01284-min 6.8
attr NaturallySalt obj-h01284-reading phSollwert
attr NaturallySalt obj-h01284-set 1
attr NaturallySalt obj-h01284-setexpr $val * 100
attr NaturallySalt obj-h01288-allowWrite 1
attr NaturallySalt obj-h01288-expr $val * 1
attr NaturallySalt obj-h01288-hint 400,450,500,550,600,650
attr NaturallySalt obj-h01288-max 700
attr NaturallySalt obj-h01288-min 300
attr NaturallySalt obj-h01288-reading rxSollwert
attr NaturallySalt obj-h01288-set 1
attr NaturallySalt realRoom Schwimmbad
attr NaturallySalt room 00_Haus,11_Garten,12_Schwimmbad,35_Keller,73_GoogleHome
attr NaturallySalt stateFormat {sprintf("Temp: %.1f °C PH: %.2f Redox: %.0f Elektrolyse: %.0f", ReadingsNum($name,'Temperatur',0),ReadingsNum($name,'pH',0),ReadingsNum($name,'RX',0),ReadingsNum($name,'Hydro',0)  )}
attr NaturallySalt userReadings temperature { ReadingsNum($name,"Temperatur",0) }, \
state { ReadingsVal($name,"FiltrationState",0) }
attr NaturallySalt webCmd FiltrationsModus:FiltrationsSchalterMan:phSollwert:rxSollwert:HydroSollwert
attr NaturallySalt webCmdLabel FiltrationsModus:FiltrationsSchalterMan:phSollwert:rxSollwert:HydroSollwert

« Letzte Änderung: 27 Mai 2020, 20:09:49 von JF Mennedy »

Offline alen

  • New Member
  • *
  • Beiträge: 36
Antw:Poolsteuerung per Modbus auslesen
« Antwort #16 am: 01 Juni 2020, 14:46:33 »
Hallo zusammen

Ich habe die Poolsteuerung Hidrolife Sal 22 (mehr oder weniger baugleich zur Salt Relax Pro).
Darf ich fragen, was für einen USB Modus converter ihr benutzt?
Würde dieser auch funktionieren?

https://www.digitec.ch/de/s1/product/oem-yf-usb-zu-rs485-adapter-diverse-elektronikmodul-5999133

Gruss
alen
Raspberry Pi Model Model 2 SD 32GB
Jeelink
FHEM 5.6, 2x TX 29DTH-IT

Offline JF Mennedy

  • New Member
  • *
  • Beiträge: 49
Antw:Poolsteuerung per Modbus auslesen
« Antwort #17 am: 03 Juni 2020, 13:59:35 »
Hallo Alen,

Ich verwende die USB - RS485 Adapter von CTI (https://www.cti-shop.com/rs485-konverter/usb-485-mini-op). Die sind zwar etwas teuerer, da ich sie oft in der Industrie verwende und ich die halt vorrätig habe. Normalersweise sollte es auch mit den günstigeren Varianten funktionieren, er muss nur von Deinem OS als serielles Device erkannt werden werden. Das kannst Du mit folgendem Befehl in der Konsole prüfen: ls -al /dev/serial/by-id
Das gibt Dir eine Ausgabe die etwa so aussehen sollte:

lrwxrwxrwx 1 root root  13 Mai 29 09:54 usb-CTI_GmbH_USB-485-Mini_CTRBD29D-if00-port0 -> ../../ttyUSB0
In das Define kommt dann als Schnittstelle:

/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
anstelle von ttyUSB0...

Da ich verschiedene USB Adapter an meinem System benutze (für Modbus, M-Bus, Enocean, Bluetooth, Z-Wave) bevorzuge ich die Definition über die ID und nicht über die ttyUSBx Angabe, da diese bei Neustart wechseln kann.

Das define der ModbusLine sieht bei mir so aus (die SaltRelaxPro kommuniziert mit 19200, 8 N 1, daher die Schnittstelle mit diesen Parametern öffnen):

define ModBusLine Modbus /dev/serial/by-id/usb-CTI_GmbH_USB-485-Mini_CTRBD29D-if00-port0@19200,8,N,1
Wenn die ModbusLine den Status open hat, kannst Du Deine Steuerung als ModbusAttr definieren. DieSaltRelaxPro hat die ModbusAdresse 1 und soll alle 10 Sekundengepollt werden:

define NaturallySalt ModbusAttr 1 10

Gruss Jan

Offline JF Mennedy

  • New Member
  • *
  • Beiträge: 49
Antw:Poolsteuerung per Modbus auslesen
« Antwort #18 am: 30 Juni 2020, 22:56:23 »
Anbei noch das Foto von den benutzten Pins...