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

Offline Fistandantilus

  • Full Member
  • ***
  • Beiträge: 184
Poolsteuerung per Modbus auslesen
« am: 18 August 2018, 18:15:54 »
Hi,

ich habe ein Hidrolife 16 Poolsteuerung. Ist wohl identisch mit den Sugar Valley Anlagen. Eine Beschreibung der Register habe ich hier gefunden:
https://downloads.vodnici.net/uploads/wpforo/attachments/69/171-Modbus-registers.pdf

Mit einem In-Circuit rs485 Adpter habe ich die Verbindung auch hinbekommen und die ersten Werte werden mir angezeigt. Konfiguriert ist es wie folgt:

my %BrilixParseInfo = (
# MEASURE
'h100' => { reading => 'MBF_ION_CURRENT',
name => 'ION_CURR',
poll => 1
},
'h101' => { reading => 'MBF_HIDRO_CURRENT',
name => 'HIDRO_CURR',
poll => 1
},
'h102' => { reading => 'MBF_MEASURE_PH',
name => 'PH_MEASURE',
poll => 1
},
'h103' => { reading => 'MBF_MEASURE_RX',
name => 'RX_MEASURE',
poll => 1
},
'h104' => { reading => 'MBF_MEASURE_CL',
name => 'CL_MEASURE',
poll => 1
},
'h107' => { reading => 'MBF_PH_STATUS',
name => 'PH_STATUS',
poll => 1
},
'h108' => { reading => 'MBF_RX_STATUS',
name => 'RX_STATUS',
poll => 1
},
'h109' => { reading => 'MBF_CL_STATUS',
name => 'CL_STATUS',
poll => 1
},
'h1010' => { reading => 'MBF_CD_STATUS',
name => 'CD_STATUS',
poll => 1
},
'h1012' => { reading => 'MBF_ION_STATUS',
name => 'ION_STATUS',
poll => 1
},
'h1014' => { reading => 'MBF_HIDRO_STATUS',
name => 'HIDRO_STATUS',
poll => 1
},
'h1015' => { reading => 'MBF_RELAY_STATE',
name => 'RELAY_STATE',
poll => 1
}
);

Inbesondere bei den Registern 0x010A und ff. bin ich mir nicht sicher, ob das so richtig ist?

Ich bekomme aktuell folgende readings:

MBF_CD_STATUS
0
2018-08-18 18:09:18

MBF_CL_STATUS
0
2018-08-18 18:09:18

MBF_HIDRO_CURRENT
2030
2018-08-18 18:09:18

MBF_HIDRO_STATUS
0
2018-08-18 18:09:18

MBF_ION_CURRENT
4
2018-08-18 18:09:18

MBF_ION_STATUS
0
2018-08-18 18:09:18

MBF_MEASURE_CL
749
2018-08-18 18:09:18

MBF_MEASURE_PH
348
2018-08-18 18:09:18

MBF_MEASURE_RX
0
2018-08-18 18:09:18

MBF_PH_STATUS
0
2018-08-18 18:09:18

MBF_RELAY_STATE
0
2018-08-18 18:09:18

MBF_RX_STATUS
0
2018-08-18 18:09:18

Was mir jetzt unklar ist, wie ich zum einen bei den Messwerten z.B. MBF_MEASURE_PH mit 348 den echten Wert (7,1 oder 7,2) angezeigt bekomme.
Bei Register mit den 0 Werten hab ich auch noch keine Idee.
Vielleicht habt Ihr ein paar Denkanstöße für mich bzw. könnt mir anhand der Doku mit dem Setup helfen. Ich bin absoluter Modbus Neuling und arbeite mich gerade erst in das Thema ein.

VG
F.
Raspberry Pi 3 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry für Heizungsregelung und 3. Raspberry als Alarmanlage

Offline jewuma

  • New Member
  • *
  • Beiträge: 44
Antw:Poolsteuerung per Modbus auslesen
« Antwort #1 am: 06 September 2018, 13:31:18 »
Lt. Manual soll der Wert dem Wert inkl. 2 Nachkommastellen entsprechen.

"Este registro indica el nivel de pH medido en centésimas. El valor 700 indica un pH
de 7.00"

Ich spreche zwar kein Italienisch, aber so sieht es aus.
Meine Vermutung ist auch, dass die Register in Hex angegeben sind, aber h102 das "Dezimalregister" 102 abfragt.

Ich würde mal h258 probieren.
Gruß
Jens


Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #2 am: 29 April 2020, 22:10:18 »
Hi,

ich habe ein Hidrolife 16 Poolsteuerung. Ist wohl
F.

Hast du das am laufen? Habe auch so ein Gerät....
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #3 am: 26 Mai 2020, 13:49:00 »
Hallo, an welche Schnittstelle und welche Pins hast Du die RS485 Schnittstelle angeschlossen?

Gruss Jan

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #4 am: 26 Mai 2020, 16:10:53 »
ok, Verbindung habe ich aufgebaut... Bekomme auch die Werte... Ist es möglich die Relais zu schalten?

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #5 am: 26 Mai 2020, 19:10:11 »
Klingt gut. Und, welche Pins hast du belegt? Woran hast du diese angeklemmt? An einen USB Adapter?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #6 am: 26 Mai 2020, 21:57:35 »
Ich benutze einen RS485 USB Adapter.
Hier das list vom Device:
Internals:
   DEF        /dev/ttyUSB0@19200,8,N,1
   DeviceName /dev/ttyUSB0@19200,8,N,1
   EXPECT     idle
   FD         4
   FUUID      5ecd0c97-f33f-6aba-3a6f-df1932aaabaaba48
   LASTOPEN   1590508205.77863
   MODE       master
   NAME       ModBusLine
   NR         14
   NTFY_ORDER 50-ModBusLine
   PARTIAL   
   PROTOCOL   RTU
   STATE      opened
   SerialConn 1
   TYPE       Modbus
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-05-26 17:50:05   state           opened
   REMEMBER:
     lid        1
     lname      Pool
     lrecv      1590522639.52888
     lsend      1590522639.50378
   defptr:
     Pool       1
Attributes:



Das LIST vom SR-Pro:
Internals:
   DEF        1 5
   FUUID      5ecd3817-f33f-6aba-7d6f-4ace8bc1137cf58d
   INTERVAL   5
   IODev      ModBusLine
   LeadingZeros 1
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       Pool
   NOTIFYDEV  global
   NR         15
   NTFY_ORDER 50-Pool
   PROTOCOL   RTU
   STATE      opened
   TRIGGERTIME 1590522498.90716
   TRIGGERTIME_FMT 2020-05-26 21:48:18
   TYPE       ModbusAttr
   lastUpdate 1590522493.90716
   FRAME:
   READ:
   READINGS:
     2020-05-26 21:48:14   FiltrationsModus 1.00
     2020-05-26 21:48:13   FiltrationsSchalterMan 1.00
     2020-05-26 21:48:14   RX              533.00
     2020-05-26 21:48:14   Temperatur      24.40
     2020-05-26 21:48:14   pH              7.00
     2020-05-26 21:24:02   state           opened
   REMEMBER:
     lrecv      1590522494.44271
     lsend      1590522494.41817
   gotReadings:
     Temperatur 24.40
   lastRead:
     h00258     1590522494.18808
     h00259     1590522494.06008
     h00262     1590522494.44385
     h01041     1590522494.31593
     h01043     1590522493.93219
Attributes:
   dev-h-defFormat %.2f
   dev-h-defLen 2
   dev-h-defPoll 1
   obj-h00258-expr $val * 0.01
   obj-h00258-reading pH
   obj-h00259-expr $val * 1
   obj-h00259-reading RX
   obj-h00262-expr $val * 0.1
   obj-h00262-reading Temperatur
   obj-h01041-allowWrite 1
   obj-h01041-expr $val * 1
   obj-h01041-hint 0,1,2,3,4,5,6,7
   obj-h01041-max 7
   obj-h01041-min 0
   obj-h01041-reading FiltrationsModus
   obj-h01041-set 1
   obj-h01043-allowWrite 1
   obj-h01043-expr $val * 1
   obj-h01043-hint 0,1
   obj-h01043-max 1
   obj-h01043-min 0
   obj-h01043-reading FiltrationsSchalterMan
   obj-h01043-set 1
   userattr   dev-h-defFormat dev-h-defLen dev-h-defPoll 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


Hier die Defines:
ModBusLine:
defmod ModBusLine Modbus /dev/ttyUSB0@19200,8,N,1

Salt-Relax-Pro:
defmod Pool ModbusAttr 1 5
attr Pool userattr dev-h-defFormat dev-h-defLen dev-h-defPoll 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
attr Pool dev-h-defFormat %.2f
attr Pool dev-h-defLen 2
attr Pool dev-h-defPoll 1
attr Pool obj-h00258-expr $val * 0.01
attr Pool obj-h00258-reading pH
attr Pool obj-h00259-expr $val * 1
attr Pool obj-h00259-reading RX
attr Pool obj-h00262-expr $val * 0.1
attr Pool obj-h00262-reading Temperatur
attr Pool obj-h01041-allowWrite 1
attr Pool obj-h01041-expr $val * 1
attr Pool obj-h01041-hint 0,1,2,3,4,5,6,7
attr Pool obj-h01041-max 7
attr Pool obj-h01041-min 0
attr Pool obj-h01041-reading FiltrationsModus
attr Pool obj-h01041-set 1
attr Pool obj-h01043-allowWrite 1
attr Pool obj-h01043-expr $val * 1
attr Pool obj-h01043-hint 0,1
attr Pool obj-h01043-max 1
attr Pool obj-h01043-min 0
attr Pool obj-h01043-reading FiltrationsSchalterMan
attr Pool obj-h01043-set 1

Ich kann die Werte aus dem Salt-Relax auslesen, aber ich kann noch keine Relais schalten.. Wäre aber total gut, weil ich dann auch meine Filterpumpe darüber schalten könnte...


Gruss Jan

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #7 am: 26 Mai 2020, 22:04:35 »
Die RS485 Schnittstelle habe ich auf dem Anschluss "Extern (Modbus3)" rechts neben dem Stecker vom WIFI Modul auf den Pins 3 und 4 (von oben) angeschlossen. Hier musst Du mal experimentieren, was A und B ist... Wenn die Schnittstelle sich nicht öffnet einfach die Adern drehen...

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #8 am: 26 Mai 2020, 22:48:14 »
Vielen Dank! Habe auch einen salt relax pro, also mal sehen, ob ich weiter komme, hab aber noch kein Kabel in den technikschacht.
Daher werde ich vorerst die filterpumpe über knx direkt starten...
Eine Redox-sonde hast du nicht verbaut, oder?
Hast du das ph Modul im ph-minus oder ph-plus Modus?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #9 am: 27 Mai 2020, 08:31:44 »
Ich habe beide Optionen redox mit ph minus, wobei die ph Messung nicht funktioniert... Habe die Anlage seit letztem Jahr und Reklamation läuft... Das wifi Modul verbindet dich auch seit ein paar Tagen nicht mehr mit dem Portal, so dass ich jetzt nach einer anderen Lösung gesucht habe... Normalerweise schalte ich über die SR-Plus auch die Stufe der Pumpe... Habe ne badu Eco mit integriertem frequenzumformer... Die Anbindung vom web Portal hatte ich bisher mit httpmod realisiert, aber wenn das Portal nicht läuft geht halt auch in fhem nix [emoji35][emoji35][emoji35]

Gesendet von meinem VOG-L29 mit Tapatalk


Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #10 am: 27 Mai 2020, 08:37:57 »
Spannend, habe die selbe Pumpe wie du! Jedoch kein WiFi-Modul, da ich dort sowieso keinen WLAN Empfang hätte daher hoffe ich es per modbus zu lösen...
Dosierst du dann das ph-minus manuell?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #11 am: 27 Mai 2020, 08:41:30 »
zur zeit dosiere ich manuell, da die Messung nicht geht... hoffe dass bayrol sich hier bald mal äußert...

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #12 am: 27 Mai 2020, 08:49:46 »
Die 3 Stufen Pumpensteuerung kann man auch in der SR-Pro anschließen über den Kommunikationsschnittstellen, jedoch nicht das Aus-Signal, das habe ich über den potentialfreien Kontakt gelöst, der mir ein Schütz schaltet... Da die Anlage bei mir im Keller steht, habe ich die Zuleitung über einen verriegelnden Druckknopfschalter gelegt, der im Erdgeschoss als Not-Aus installiert ist, dann muss ich im Notfall nicht erst in den Keller rennen.. Die Ader vom GND der 3 Stufen ist noch zusätzlich über einen 0/1 Schalter gezogen, schalte ich den Schalter auf 0 kann ich die Pumpe manuell über das Steuergerät der Pumpe schalten, steht der Schalter auf 1 läufts über die SR-Pro...

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #13 am: 27 Mai 2020, 10:34:28 »
So, mit dieser Definition geht auch das Schreiben der HoldingRegister:

defmod Pool ModbusAttr 1 10
attr Pool userattr dev-h-defPoll dev-h-write 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
attr Pool dev-h-defPoll 10
attr Pool dev-h-write 16
attr Pool disable 0
attr Pool obj-h00258-expr $val * 0.01
attr Pool obj-h00258-reading pH
attr Pool obj-h00259-expr $val * 1
attr Pool obj-h00259-reading RX
attr Pool obj-h00262-expr $val * 0.1
attr Pool obj-h00262-reading Temperatur
attr Pool obj-h01041-allowWrite 1
attr Pool obj-h01041-expr $val * 1
attr Pool obj-h01041-hint 0,1,2,3,4,5,6,7
attr Pool obj-h01041-max 7
attr Pool obj-h01041-min 0
attr Pool obj-h01041-reading FiltrationsModus
attr Pool obj-h01041-set 1
attr Pool obj-h01043-allowWrite 1
attr Pool obj-h01043-expr $val * 1
attr Pool obj-h01043-hint 0,1
attr Pool obj-h01043-max 1
attr Pool obj-h01043-min 0
attr Pool obj-h01043-reading FiltrationsSchalterMan
attr Pool obj-h01043-set 1

Problem, war dass ich die Länge des Registers mit 2 definiert hatte... und das Attribut dev-h-write muss auf 16 stehen.

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #14 am: 27 Mai 2020, 10:39:42 »
Schade für die 600 Euro für das WIFI Modul, kann man sich eindeutig sparen und die Anbindung über Modbus ist wesentlich performanter... Werde das Modul in den nächsten Tagen noch ein wenig ausbauen und dann hier posten, auch mit Foto, wo die RS485 Schnittstelle angeschlossen wird...

Hilft vielleicht dann anderen SR-Pro Besitzern weiter ;-)


Gruss Jan

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
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

  • Full Member
  • ***
  • Beiträge: 165
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

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

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #19 am: 30 Juli 2020, 23:34:58 »
Danke für das Photo, hatte es tatsächlich falsch angeschlossen.
Hast Du auch weitere dinge versucht wie das schalten der relais oder das schalten einer vario-pumpe oder der UV Anlage?

Leider hab ich von Modbus so gar keinen Plan....

Mit diesem Dokument hier stimmt a nichts überein, oder? (Wurde an anderer Stelle verlinkt)
https://downloads.vodnici.net/uploads/wpforo/attachments/69/171-Modbus-registers.pdf

sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #20 am: 30 Juli 2020, 23:55:11 »
Noch eine Nachfrage: Weißt du, was darüber der 4-20mA stecker macht?
Und weißt du welcher Typ Temeratursendor auf dem Board passt? Der originale ist dieses Jahr nicht mehr lieferbar....
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #21 am: 31 Juli 2020, 09:18:51 »
Hallo,

doch das Dokument ist in Ordnung, Ich habe mir da die Register herausgeholt. Sie müssen allerdings von hex nach dezimal umgerechnet werden (Bsp. Register 0x0106 MBF_MEASURE_TEMPERATURE ist in FHEM obj-h00262-reading). Es fehlt leider die Registeradresse zum schalten der 3 Stufen der Pumpe, aber das Relais zum ein und ausschalten ist verfügbar.

UV habe ich nicht, kannst Du aber bestimmt an eins der freien Relais anschließen, ebenso wie einen Kontakt für eine Heizung. Die Pumpe darf auf keinen Fall direkt an die SR Pro angeschlossen werden, sondern an ein Relais bzw. Schütz. Wofür der 4-20mA Anschluss ist, kann ich Dir leider nicht sagen... Auch nicht für die Temperatur Sonde, aber die gibt es bei verschiedenen Online-Händlern...

Das ist meine derzeitige Konfig, mit der ich RX-Sollwert, pH-Sollwert und Pumpe schalten kann und auch die aktuellen Werte von RX, pH auslese

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-h01282-setexpr 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 DbLogInclude RX,Temperatur,pH
attr NaturallySalt IODev ModBusLine2
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-h00263-reading pH-Status
attr NaturallySalt obj-h00264-reading RX-Status
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-h01282-setexpr $val * 10
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

Die Stufe der Pumpe schalte ich über ein HTTPMOD Device (welches auch die Werte von der SR Pro abholt):

defmod NaturallySaltWeb HTTPMOD http://naturally-salt-poolaccess.de/de/pool/getmainvalues?id=7440 60
attr NaturallySaltWeb userattr reading100JSON reading100Name reading101JSON reading101Name reading102JSON reading102Name reading103JSON reading103Name reading104JSON reading104Name reading105JSON reading105Name reading106JSON reading106Name reading107JSON reading107Name reading108JSON reading108Name reading109JSON reading109Name reading110JSON reading110Name reading111JSON reading111Name reading112JSON reading112Name reading113JSON reading113Name reading114JSON reading114Name reading115JSON reading115Name reading116JSON reading116Name reading117JSON reading117Name reading118JSON reading118Name reading119JSON reading119Name reading120JSON reading120Name reading121JSON reading121Name reading122JSON reading122Name reading123JSON reading123Name reading124JSON reading124Name reading125JSON reading125Name reading126JSON reading126Name reading127JSON reading127Name reading128JSON reading128Name reading129JSON reading129Name reading130JSON reading130Name reading131JSON reading131Name reading132JSON reading132Name set01Data set01Hint set01Name set01URL set02Data set02Hint set02Name set02URL set03Data set03Hint set03Name set03URL set04Data set04Hint set04Name set04URL set05Data set05Hint set05Max set05Min set05Name set05URL set06Data set06Hint set06Max set06Min set06Name set06URL set07Data set07Hint set07Max set07Min set07Name set07URL set08Data set08Hint set08Max set08Min set08Name set08URL setHeader1 setHeader2 sid01Data sid01URL
attr NaturallySaltWeb DbLogExclude .*
attr NaturallySaltWeb alias NaturallySalt
attr NaturallySaltWeb enableControlSet 1
attr NaturallySaltWeb enableCookies 1
attr NaturallySaltWeb enableXPath 1
attr NaturallySaltWeb enforceGoodReadingNames 0
attr NaturallySaltWeb extractAllJSON 1
attr NaturallySaltWeb gassistantName Schwimmbad
attr NaturallySaltWeb genericDeviceType thermometer
attr NaturallySaltWeb group Pool
attr NaturallySaltWeb handleRedirects 1
attr NaturallySaltWeb icon virtualbox-alt
attr NaturallySaltWeb reAuthRegex id="pass"|data-validation-engine
attr NaturallySaltWeb reading100JSON RX_status_current
attr NaturallySaltWeb reading100Name RX_status_current
attr NaturallySaltWeb reading101JSON CL_status_hidro
attr NaturallySaltWeb reading101Name CL_status_hidro
attr NaturallySaltWeb reading102JSON CL
attr NaturallySaltWeb reading102Name CL
attr NaturallySaltWeb reading103JSON PH_status_hi_value
attr NaturallySaltWeb reading103Name PH_status_hi_value
attr NaturallySaltWeb reading104JSON RXColor_hex
attr NaturallySaltWeb reading104Name RXColor_hex
attr NaturallySaltWeb reading105JSON CLColor_class
attr NaturallySaltWeb reading105Name CLColor_class
attr NaturallySaltWeb reading106JSON CL1
attr NaturallySaltWeb reading106Name CL1
attr NaturallySaltWeb reading107JSON RXColor_class
attr NaturallySaltWeb reading107Name RXColor_class
attr NaturallySaltWeb reading108JSON temp
attr NaturallySaltWeb reading108Name temp
attr NaturallySaltWeb reading109JSON PH
attr NaturallySaltWeb reading109Name PH
attr NaturallySaltWeb reading110JSON CLColor_hex
attr NaturallySaltWeb reading110Name CLColor_hex
attr NaturallySaltWeb reading111JSON PH_status_type
attr NaturallySaltWeb reading111Name PH_status_type
attr NaturallySaltWeb reading112JSON RX1
attr NaturallySaltWeb reading112Name RX1
attr NaturallySaltWeb reading113JSON CL_status_current
attr NaturallySaltWeb reading113Name CL_status_current
attr NaturallySaltWeb reading114JSON RX_status_hidro
attr NaturallySaltWeb reading114Name RX_status_hidro
attr NaturallySaltWeb reading115JSON lightStat_status_type
attr NaturallySaltWeb reading115Name lightStat_status_type
attr NaturallySaltWeb reading116JSON RX
attr NaturallySaltWeb reading116Name RX
attr NaturallySaltWeb reading117JSON CD1
attr NaturallySaltWeb reading117Name CD1
attr NaturallySaltWeb reading118JSON lightStat_status_status
attr NaturallySaltWeb reading118Name lightStat_status_status
attr NaturallySaltWeb reading119JSON CDColor_class
attr NaturallySaltWeb reading119Name CDColor_class
attr NaturallySaltWeb reading120JSON local_time
attr NaturallySaltWeb reading120Name local_time
attr NaturallySaltWeb reading121JSON PH_status_color_class
attr NaturallySaltWeb reading121Name PH_status_color_class
attr NaturallySaltWeb reading122JSON PH_status_alarm
attr NaturallySaltWeb reading122Name PH_status_alarm
attr NaturallySaltWeb reading123JSON CD
attr NaturallySaltWeb reading123Name CD
attr NaturallySaltWeb reading124JSON filtration_time_remaining
attr NaturallySaltWeb reading124Name filtration_time_remaining
attr NaturallySaltWeb reading125JSON filtration_stat
attr NaturallySaltWeb reading125Name filtration_stat
attr NaturallySaltWeb reading126JSON CL_status_status
attr NaturallySaltWeb reading126Name CL_status_status
attr NaturallySaltWeb reading127JSON RX_status_status
attr NaturallySaltWeb reading127Name RX_status_status
attr NaturallySaltWeb reading128JSON PH_status_status
attr NaturallySaltWeb reading128Name PH_status_status
attr NaturallySaltWeb reading129JSON PH_status_color_hex
attr NaturallySaltWeb reading129Name PH_status_color_hex
attr NaturallySaltWeb reading130JSON CD_status
attr NaturallySaltWeb reading130Name CD_status
attr NaturallySaltWeb reading131JSON CDColor_hex
attr NaturallySaltWeb reading131Name CDColor_hex
attr NaturallySaltWeb reading132JSON filtration_mode
attr NaturallySaltWeb reading132Name filtration_mode
attr NaturallySaltWeb realRoom Schwimmbad
attr NaturallySaltWeb room 11_Garten,35_Keller
attr NaturallySaltWeb set01Data data={"mode": $val}
attr NaturallySaltWeb set01Hint 0,1
attr NaturallySaltWeb set01Name Pumpe
attr NaturallySaltWeb set01URL http://naturally-salt-poolaccess.de/de/pool/setfiltrationvalues
attr NaturallySaltWeb set02Data data={"mode": 1 , "vel": $val}
attr NaturallySaltWeb set02Hint 0,1,2
attr NaturallySaltWeb set02Name Pumpenstufe
attr NaturallySaltWeb set02URL http://naturally-salt-poolaccess.de/de/pool/setfiltrationvalues
attr NaturallySaltWeb set03Data data=%7B%22type%22%3A0%2C%22mode%22%3A1%2C%22vel%22%3A$val%7D&int=%5B%5D&vel=%5B%5D
attr NaturallySaltWeb set03Hint 1
attr NaturallySaltWeb set03Name PumpeStufe2
attr NaturallySaltWeb set03URL http://naturally-salt-poolaccess.de/de/pool/setfiltrationvalues
attr NaturallySaltWeb set04Data data=%7B%22type%22%3A0%2C%22mode%22%3A1%2C%22vel%22%3A$val%7D&int=%5B%5D&vel=%5B%5D
attr NaturallySaltWeb set04Hint 2
attr NaturallySaltWeb set04Name PumpeStufe3
attr NaturallySaltWeb set04URL http://naturally-salt-poolaccess.de/de/pool/setfiltrationvalues
attr NaturallySaltWeb set05Data type=0&status=$val&freq=86400&start=20%3A00&end=23%3A00
attr NaturallySaltWeb set05Hint 0,1
attr NaturallySaltWeb set05Max 1
attr NaturallySaltWeb set05Min 0
attr NaturallySaltWeb set05Name Licht
attr NaturallySaltWeb set05URL http://naturally-salt-poolaccess.de/de/pool/setlightvalues
attr NaturallySaltWeb set06Data id=7440&acid=$val&base=NaN&type=ACID
attr NaturallySaltWeb set06Hint 700,710,720,730,740,750
attr NaturallySaltWeb set06Max 750
attr NaturallySaltWeb set06Min 700
attr NaturallySaltWeb set06Name SollwertPH
attr NaturallySaltWeb set06URL http://naturally-salt-poolaccess.de/de/pool/setphvalue
attr NaturallySaltWeb set07Data id=7440&val=$val
attr NaturallySaltWeb set07Hint 500,550,600,650,700,750,800
attr NaturallySaltWeb set07Max 800
attr NaturallySaltWeb set07Min 500
attr NaturallySaltWeb set07Name SollwertRedox
attr NaturallySaltWeb set07URL http://naturally-salt-poolaccess.de/de/pool/setrxvalue
attr NaturallySaltWeb set08Data id=7440&level=$val&cover=0&reduction=20&cloration=0&hidroControl=cl&disable=0&hidroTemp=0&hidroTempValue=5
attr NaturallySaltWeb set08Hint 0,10,20,30,40,50,60,70,80,90,95,100
attr NaturallySaltWeb set08Max 100
attr NaturallySaltWeb set08Min 0
attr NaturallySaltWeb set08Name SollwertElektrolyse
attr NaturallySaltWeb set08URL http://naturally-salt-poolaccess.de/de/pool/sethidrovalue
attr NaturallySaltWeb setHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr NaturallySaltWeb setHeader2 User-Agent: Mozilla/5.0 (Windows NT 10.0;; Win64;; x64)
attr NaturallySaltWeb sid01Data user=deine@email.de&pass=DeinPasswort&remember_password=1&entrar=Eingabe
attr NaturallySaltWeb sid01URL http://naturally-salt-poolaccess.de/de/login/login
attr NaturallySaltWeb stateFormat {sprintf("Temp: %.1f °C PH: %.1f Redox: %.0f Elektrolyse: %.0f", ReadingsNum($name,'temp',0),ReadingsNum($name,'PH',0),ReadingsNum($name,'RX',0),ReadingsNum($name,'RX_status_current',0)  )}
attr NaturallySaltWeb userReadings temperature { ReadingsNum($name,"Temperatur",0) }, \
state { ReadingsVal($name,"FiltrationState",0) }
attr NaturallySaltWeb verbose 0
attr NaturallySaltWeb webCmd SollwertPH:SollwertRedox:SollwertElektrolyse:Pumpe:Pumpenstufe
attr NaturallySaltWeb webCmdLabel PH:Redox:Elektrolyse:Pumpe:Stufe

Gruss Jan

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #22 am: 31 Juli 2020, 11:10:46 »
Vielen Dank für die Infos, das ist eine riesen Hilfe!

Nun, WiFi Modul habe ich keines da da draußen eh kein Empfang ist und die Rohre ins Haus fast 40m lang sind.
Aber zumindest kann ich über das Pumpen Relais abgreifen, ob die Pumpe laufen sollte oder nicht. Die Stufe kann ich in der Haussteuerung einstellen, aber wollte die Verantwortung dafür Kerne an die pool Steuerung "abgeben".
Vielleicht muss ich einfach den Status der Klemmen über einen sensor abgreifen.
Die Pumpe selbst hängt an einem Relais, da sie per Luftdruckschalter direkt aus dem Pool heraus in der Geschwindigkeit geregelt werden kann.
Mweist du wie diese Stecker heißen, die du an pin 3 und 4 angebracht hast? Mein Kabel ist noch sehr provisorisch an dem Stecker befestigt.

Danke vielmals, LG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #23 am: 31 Juli 2020, 11:29:43 »
Ich habe da einfache Jumper Kabel für benutzt, die aus der Steuerung herausgeführt sind und dann auf die Busleitung angeklemmt sind.

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #24 am: 01 August 2020, 08:29:35 »
Super, danke.

Habe noch das gefunden:
0x0100
Hidro shock enabled – Chlorine boost activated.

Das sollte ich ja dann auch noch hinzufügen können, oder?

Werde es mal versuchen, doch wie rechne ich dies zu dezimal um?
Wäre das dann 256?

Edit: Scheint nicht zu funktionieren, bekomme immer die 0 als ergebnis
« Letzte Änderung: 01 August 2020, 08:45:51 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #25 am: 01 August 2020, 10:55:33 »
Ja du kannst alles an Registern auslesen... Wenn Du eine 0 zurück bekommst, dann ist die schockchlorung deaktiviert... Von hex in dez kannst Du ganz einfach mit dem Windows Rechner umrechnen. Den Rechner auf Programmierer umschalten... Ich habe mich gestern noch amüsiert und die bit-maskierten register des Relais Status und ph, RX stati zu implementieren...
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-h00260-expr obj-h00260-reading obj-h00261-expr obj-h00261-reading obj-h00262-expr obj-h00262-reading obj-h00263-reading obj-h00263-unpack obj-h00264-reading obj-h00264-unpack obj-h00270-reading obj-h00270-unpack 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-h01282-setexpr 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 DbLogInclude RX,Temperatur,pH,pH-Minus
attr NaturallySalt IODev ModBusLine2
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-h00260-expr $val * 1
attr NaturallySalt obj-h00260-reading Chlor
attr NaturallySalt obj-h00261-expr $val * 1
attr NaturallySalt obj-h00261-reading Conductivity
attr NaturallySalt obj-h00262-expr $val * 0.1
attr NaturallySalt obj-h00262-reading Temperatur
attr NaturallySalt obj-h00263-reading pH-Status
attr NaturallySalt obj-h00264-reading RX-Status
attr NaturallySalt obj-h00270-reading Relais-Status
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-h01282-setexpr $val * 10
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 pH-Minus: %d", ReadingsNum($name,'Temperatur',0),ReadingsNum($name,'pH',0),ReadingsNum($name,'RX',0),ReadingsNum($name,'Hydro',0),ReadingsVal($name,'pH-Minus',0)  )}
attr NaturallySalt userReadings temperature { ReadingsNum($name,"Temperatur",0) }, \
state { ReadingsVal($name,"FiltrationState",0) },\
PH_STATUS { sprintf("%016b",ReadingsVal($name,"pH-Status",0)) },\
RX_STATUS { sprintf("%016b",ReadingsVal($name,"RX-Status",0)) },\
RELAIS_STATUS { sprintf("%016b",ReadingsVal($name,"Relais-Status",0)) },\
pH-Minus { (split //,ReadingsVal($name,"RELAIS_STATUS","0000000000000000"))[15]}\

attr NaturallySalt webCmd FiltrationsModus:FiltrationsSchalterMan:phSollwert:rxSollwert:HydroSollwert
attr NaturallySalt webCmdLabel FiltrationsModus:FiltrationsSchalterMan:phSollwert:rxSollwert:HydroSollwert

Somit weiss ich wie oft und wie lange die PH minus Pumpe gelaufen ist :-)

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #26 am: 01 August 2020, 11:00:34 »
Danke vielmals!

Das mit der Schockchlorierung klappt bei mir leider nicht, da wird immer die 0 angezeigt.
Lässt du dein Gerät permanent eingeschaltet?
Ich habe aktuell auch das Problem, dass nach dem einschalten des Gerätes stark negative Werte einmalig gesendet werden. Hast du saß auch? Filtert du das irgendwie?


FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #27 am: 01 August 2020, 11:13:14 »
Ne meine Anlage läuft durch...

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #28 am: 01 August 2020, 20:36:57 »
Zur Info: Ich habe einfach PH und RX jeweils mit Min und Max begrenzt,um beim Start die negativen Werte zu verhindern,klappt bestens, seither sehen meine Plots besser aus!

sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #29 am: 01 August 2020, 23:24:53 »
Anbei noch veränderte Userreadings. Diese sind gefiltert, lösen also nicht alle bei jedem event aus.
Zusätzlich habe ich eventValues verwendet.
Vielleicht interessierts dich :D

temperature:Temperatur.* { $eventValue },
state:FiltrationState.* { $eventValue },
PH_STATUS:pH-Status.* { sprintf("%016b",$eventValue) },
RX_STATUS:RX-Status.* { sprintf("%016b",$eventValue) },
RELAIS_STATUS:Relais-Status.* { sprintf("%016b",$eventValue) },
pH-Minus:RELAIS_STATUS.* { (split //,$eventValue)[15]}
« Letzte Änderung: 01 August 2020, 23:48:00 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #30 am: 02 August 2020, 21:03:01 »
Servus nochmal.
Wenn ich das richtig sehe, steht in RELAIS_STATUS jetzt auch, welche Stufe die Filterpumpe
laufen soll.
Bit 6= schnell, 7 mittel und 8 langsam.


Bekomme es leider dennoch nicht "programmiert", perl ist mir einfach zu fremd.
Versucht habe ich es über

filterSpeed:RELAIS_STATUS.* {
if    (($eventValue & '0000001') == '0000001') {return 1} 
elsif (($eventValue & '00000001')== '00000001') {return 2} 
else { return 0}
},

Der Vorteil ist, dass es schneller geht als die modhttp Variante!
« Letzte Änderung: 02 August 2020, 22:30:58 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #31 am: 05 August 2020, 11:02:14 »
Ja das ist richtig dass in dem register auch die pumpen Stufe angezeigt wird, allerdings ist dieses register nicht beschreibbar :(

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #32 am: 05 August 2020, 11:07:40 »
Du musst die bits anders interpretieren (siehe mein Beitrag in einem anderen thread) :
Zitat
author=JF Mennedy link=topic=75638.msg1075465#msg1075465 date=1596191742]
Also, Selbsthilfe ist der Beste Weg zum Lernen...

Ich habe nun die Dezimalzahl in eine Binärzahl umgewandelt:
PH_STATUS { sprintf("%016b",ReadingsVal($name,"pH-Status",0)) }
Das Ergebnis ist:
PH_STATUS 1110010100000000
Die Bitfolge ist :

bit:     15 14 13 12   11 10 9  8    7  6  5  4    3  2  1  0
binar:   1  1  1  0    0  1  0  1    0  0  0  0    0  0  0  0

Und somit komme ich an die jeweiligen Statusmeldungen aus dem Register :-)

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #33 am: 05 August 2020, 12:00:34 »
Ja das ist richtig dass in dem register auch die pumpen Stufe angezeigt wird, allerdings ist dieses register nicht beschreibbar :(
Stimmt, aber ich brauche das hier gar nicht beschreibbar. Ich lese das hier nur aus, und sende es weiter per knx. Somit übernimmt bei mir die Elektrolyse Box die grundsteuerung, ich kann es aber jederzeit per knx übersteuern.
Beim manuellen filterstart kann ich auch die Pumpe Geschwindigkeit mit angeben. Ist dieses Feld. Auch nicht schreibbar?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #34 am: 05 August 2020, 12:05:40 »
Welches register meinst du? Die beschreibbaren sind alle im 0x04er Bereich...

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #35 am: 07 August 2020, 07:53:53 »
Servus,
Das muss ich mir noch genauer ansehen, bin gerade nicht vor Ort.

Mir fällt auf, dass nach einer Stromabschaltung manchmal Werte nicht gespeichert werden.
Weist du zufällig, ob das Setzen dieses Wertes dabei etwas helfen würde?
Oder ist der gar nicht schrkeibbar, weil er eben nicht im 0x04er Bereich sich befindet?

0x02F0
MBF_SAVE_TO_EEPROM

Hast du noch eine Idee, wie ich "erkennen", sprich in einem reading einen Eintrag bekommen kann, wenn das Gerät strom los ist?
Im Log von FHEM finde ich Reading timeouts, aber
I'm Modbus Modul selbst scheint es dafür nichts zu geben.

Sg Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #36 am: 07 August 2020, 13:06:36 »
Ist es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #37 am: 07 August 2020, 13:51:31 »
Zitat
Mir fällt auf, dass nach einer Stromabschaltung manchmal Werte nicht gespeichert werden.
Weist du zufällig, ob das Setzen dieses Wertes dabei etwas helfen würde?
Oder ist der gar nicht schrkeibbar, weil er eben nicht im 0x04er Bereich sich befindet?

Die Sollwerte sind im 0x05er Bereich (USER). Laut Doku muss ein Schreiben ins EEPROM durchgeführt werden um die Werte dauerhaft zu speichern... Aber beachte den hinweis aus der Doku dass das EEPROM nicht unendlich viele Schreibzyklen hat...

Zitat
Hast du noch eine Idee, wie ich "erkennen", sprich in einem reading einen Eintrag bekommen kann, wenn das Gerät strom los ist?
Im Log von FHEM finde ich Reading timeouts, aber
I'm Modbus Modul selbst scheint es dafür nichts zu geben.

Was steht denn im State, wenn die Anlage ausgeschaltet ist?

Zitat
Ist es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.

Ich lasse den Sollwert der Hydrolyse eigentlich immer auf 100% stehen... Aber wenn ich ihn verändere( 0x0502 MBF_PAR_HIDRO in fhem obj-h01282-reading
HydroSollwert) wird es auf der SR-Pro übernommen...

Gruss Jan

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #38 am: 07 August 2020, 14:12:32 »
Aber beachte den hinweis aus der Doku dass das EEPROM nicht unendlich viele Schreibzyklen hat...
Nun, ich brauche maximal 100 im Jahr.

Was steht denn im State, wenn die Anlage ausgeschaltet ist?

connected.

Aber wenn ich ihn verändere( 0x0502 MBF_PAR_HIDRO in fhem obj-h01282-reading
HydroSollwert) wird es auf der SR-Pro übernommen...
Übernommen, sprich angezeigt wird mir auch der neue Wert. Aber angesteuert wird noch der alte!
Ich habe eine recht große Anlage und bei 100% entstehen bei mir in der Verrohrung recht viele Blasen, wenn die Pumpe nicht auf der höchsten Stufe läuft. (Ich habe Glasrohre, sehe die Blasen also).
Nun möchte ich aber tagsüber nur 10-15m3/h  permanernt umwälzen, daher möchte ich dazu den Sollwert, bei nicht allzugroßer Differenz reduzieren.
50% scheint hier ein recht guter Wert zu sein.

sG Joe
« Letzte Änderung: 08 August 2020, 22:24:21 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Fosso

  • Newbie
  • Beiträge: 1
Antw:Poolsteuerung per Modbus auslesen
« Antwort #39 am: 31 August 2020, 14:24:48 »
Ist es bei dir auch so? Wenn ich die Hydrolyse von 40% auf 60% erhöhe, bleibt die tatsächliche Stufe bis zum Restart des Gerätes bei den 40%.
Ob das auch mit dem Speichern des Wertes zusammenhängt? Wenn ich am Display das verändere, wird der neue Wert auch erst nach dem OK übernommen.

Hallo Zusammen,
dafür gibt es einen undokumentierten Befehl MBF_EEPROM_RESTART, welchen mir ein Poolmonteur freundlicherweise genannt hat...
1. den neuen Sollwert setzen z.B.: 0x0508 (dez. 1288) MBF_PAR_RX1 auf 700 (mV)
2. im EEPROM speichern: 0x02F0 (dez. 752) MBF_SAVE_TO_EEPROM auf 1 setzen
3. EEPROM Restart: 0x02F5 (dez. 757) MBF_EEPROM_RESTART auf 1 setzen

nach 3. wird der neue Sollwert, so als würde man am Display OK drücken, unmittelbar aktiviert :-)
Grüße von Fosso

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #40 am: 31 August 2020, 20:04:35 »
Juhuu, das funktioniert perfekt!
Man muss lediglich nach dem Setzen des neuen Sollwertes "etwas" warten...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #41 am: 31 August 2020, 21:14:59 »
Kann man eigentlich den Boost starten?
Wenn nein, lt. Anleitung sollte die RX-Controlle deaktiviert werden während einem Boost.

Wenn ich also den RX-Soll auf 999 stelle und 100% Leistung einstelle, kann ich ja einen Boost "simulieren".
KAnn ich dann zumindest diese RX-Kontrolle deaktivieren, oder macht das keinen Sinn?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #42 am: 08 Mai 2021, 21:56:46 »
Welches register meinst du? Die beschreibbaren sind alle im 0x04er Bereich...

Servus! Sorry der Nachfrage, hast Du das mal in iobroker versucht?
Kann mir dabei jemand auf die Sprünge helfen? Wo muss ich dort die Adressen angeben?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #43 am: 08 Mai 2021, 22:51:03 »
Im iobroker sollte es etwas einfacher gehen, da kannst Du die Registeradressen im Adapter eintragen.. Schau Dir mal von Matthias Kleine das Tutorial für die Integration von einem Wechselrichter über Modbus an... Da ist das Modul ganz gut beschrieben... https://haus-automatisierung.com/hardware/iobroker/2020/12/18/iobroker-sma-wechselrichter-modbus.html

Gruss Jan

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1614
Antw:Poolsteuerung per Modbus auslesen
« Antwort #44 am: 12 Mai 2021, 21:24:13 »
Hallo
Im iobroker sollte es etwas einfacher gehen

Hallo Jan, DANKE!!
Das Lesen der 100er Werte klappt damit mittlerweile ganz gut, das schreiben jedoch noch nicht.

Auch 1282_HydroSollwert kann ich damit nicht lesen. Hast Du dazu viell. noch einen Tip? Ich will die Werte damit auf einem entfernten Standort
erhalten und per mqtt auf mein FHEM senden. 
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Eduard76

  • New Member
  • *
  • Beiträge: 3
Antw:Poolsteuerung per Modbus auslesen
« Antwort #45 am: 13 Mai 2021, 12:20:49 »
Hallo Zusammen,

ich bin FHEM-Neuling und auch ModBus ist neu für mich.
Nun habe ich eine Oxilife-Poolsteuerung, welche mit den genannten Steuerungen fast baugleich ist.
Leider komme ich beim Auslesen des ModBus nicht weiter und bräuchte etwas Hilfe in der Art: "Hast du das und das schon gemacht?"

Aktueller Stand:
- PI mit FHEM + "Raspberry Pi - USB-RS485-Schnittstelle, CH340C"
- Anschlüsse A und B schonmal verdreht
- "ModBusLine" nach o.g. Code angelegt
- "Pool" nach o.g. Code angelegt

Folgend ein paar Ausschnitte aus FHEM.
Was habe ich vergessen zu konfigurieren???

Vielen Dank schon mal.

Event Log
2021.05.13 12:18:24 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 01041, len 2 for device Pool reading FiltrationsModus (getUpdate), queued 20.30 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:26 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00262, len 2 for device Pool reading Temperatur (getUpdate), queued 17.31 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:28 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 01043, len 2 for device Pool reading FiltrationsSchalterMan (getUpdate), queued 19.31 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:30 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00258, len 2 for device Pool reading pH (getUpdate), queued 21.31 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:32 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00262, len 2 for device Pool reading Temperatur (getUpdate), queued 18.31 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:34 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 01043, len 2 for device Pool reading FiltrationsSchalterMan (getUpdate), queued 20.31 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:36 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 01043, len 2 for device Pool reading FiltrationsSchalterMan (getUpdate), queued 17.32 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:38 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00258, len 2 for device Pool reading pH (getUpdate), queued 19.32 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:40 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00259, len 2 for device Pool reading RX (getUpdate), queued 21.32 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:42 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 01041, len 2 for device Pool reading FiltrationsModus (getUpdate), queued 18.32 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:44 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00259, len 2 for device Pool reading RX (getUpdate), queued 20.33 secs ago, sent 2.00 secs ago, Current read buffer: 00
2021.05.13 12:18:46 3 : ModBusLine: Timeout waiting for a modbus response request: id 1, fCode 3, type h, adr 00262, len 2 for device Pool reading Temperatur (getUpdate), queued 17.33 secs ago, sent 2.00 secs ago, Current read buffer: 00

Listing ModBusLine
Internals:
   DEF        /dev/ttyUSB0@19200,8,N,1
   DeviceName /dev/ttyUSB0@19200,8,N,1
   EXPECT     response
   FD         4
   FUUID      609ce06a-f33f-898f-a049-1ade2abadc1bfffd
   LASTOPEN   1620896340.5088
   MODE       master
   NAME       ModBusLine
   NR         15
   NTFY_ORDER 50-ModBusLine
   PARTIAL   
   PROTOCOL   RTU
   STATE      opened
   SerialConn 1
   TYPE       Modbus
   devioLoglevel 3
   nextOpenDelay 60
   nextQueueRun 1620900829.75217
   nextTimeout 1620900829.74888
   FRAME:
   QUEUE:
     HASH(0x13cc5c0)
     HASH(0x14ab528)
     HASH(0x14392e0)
     HASH(0x1438848)
     HASH(0x14b3c40)
     HASH(0x13cd2c8)
     HASH(0x14cb028)
     HASH(0x13cd418)
     HASH(0x13c4cf8)
     HASH(0x14cb118)
     HASH(0x14b0fb8)
     HASH(0x14ca758)
     HASH(0x14b12b8)
     HASH(0x14ca7a0)
     HASH(0x14cab90)
     HASH(0x14caab8)
     HASH(0x14b1600)
     HASH(0x14cacf8)
     HASH(0x13c4b30)
     HASH(0x14abed0)
   READ:
     BUFFER     
   READINGS:
     2021-05-13 10:59:00   state           opened
   REMEMBER:
     lid        1
     lname      ModBusLine
     lrecv      1620900827.76168
     lsend      1620900827.75106
   REQUEST:
     ADR        01043
     DBGINFO    getUpdate
     FCODE      3
     FRAME      4�
     LEN        2
     MODBUSID   1
     OPERATION  read
     READING    FiltrationsSchalterMan
     SENT       1620900827.74888
     TIMESTAMP  1620900808.67083
     TYPE       h
     VALUES     0
     DEVHASH:
       DEF        1 5
       FUUID      609ce226-f33f-898f-c813-ba2b98c0c169d885
       INTERVAL   5
       IODev      ModBusLine
       LeadingZeros 1
       MODBUSID   1
       MODE       master
       MODULEVERSION Modbus 4.1.5 - 17.9.2019
       NAME       Pool
       NOTIFYDEV  global
       NR         16
       NTFY_ORDER 50-Pool
       PROTOCOL   RTU
       STATE      opened
       TRIGGERTIME 1620900833.6699
       TRIGGERTIME_FMT 2021-05-13 12:13:53
       TYPE       ModbusAttr
       lastUpdate 1620900828.6699
       FRAME:
       READ:
       READINGS:
         2021-05-13 10:59:00   state           opened
       REMEMBER:
         lsend      1620900827.75106
       lastRead:
   defptr:
     Pool       1
Attributes:
   room       Heizungskeller

Listing Pool
Internals:
   DEF        1 5
   FUUID      609ce226-f33f-898f-c813-ba2b98c0c169d885
   INTERVAL   5
   IODev      ModBusLine
   LeadingZeros 1
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       Pool
   NOTIFYDEV  global
   NR         16
   NTFY_ORDER 50-Pool
   PROTOCOL   RTU
   STATE      opened
   TRIGGERTIME 1620900903.68604
   TRIGGERTIME_FMT 2021-05-13 12:15:03
   TYPE       ModbusAttr
   lastUpdate 1620900898.68604
   FRAME:
   READ:
   READINGS:
     2021-05-13 10:59:00   state           opened
   REMEMBER:
     lsend      1620900897.82262
   lastRead:
Attributes:
   dev-h-defFormat %.2f
   dev-h-defLen 2
   dev-h-defPoll 1
   obj-h00258-expr $val * 0.01
   obj-h00258-reading pH
   obj-h00259-expr $val * 1
   obj-h00259-reading RX
   obj-h00262-expr $val * 0.1
   obj-h00262-reading Temperatur
   obj-h01041-allowWrite 1
   obj-h01041-expr $val * 1
   obj-h01041-hint 0,1,2,3,4,5,6,7
   obj-h01041-max 7
   obj-h01041-min 0
   obj-h01041-reading FiltrationsModus
   obj-h01041-set 1
   obj-h01043-allowWrite 1
   obj-h01043-expr $val * 1
   obj-h01043-hint 0,1
   obj-h01043-max 1
   obj-h01043-min 0
   obj-h01043-reading FiltrationsSchalterMan
   obj-h01043-set 1
   room       Heizungskeller
   userattr   dev-h-defFormat dev-h-defLen dev-h-defPoll 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


Offline Eduard76

  • New Member
  • *
  • Beiträge: 3
Antw:Poolsteuerung per Modbus auslesen
« Antwort #46 am: 13 Mai 2021, 18:29:13 »
Hallo,

man muss nur seine Überlegungen teilen und kommt dann selber drauf - naja so ähnlich:

Die Übertragung hatte schon gehakt - das lag daran dass ich einen 5er Stecker habe und der 2. PIN nicht vorhanden ist.
Deshalb war bei meiner Rechnung PIN 3 und 4 ganz unten - jetzt funktioniert es.  :)

Offline Eduard76

  • New Member
  • *
  • Beiträge: 3
Antw:Poolsteuerung per Modbus auslesen
« Antwort #47 am: 26 Mai 2021, 22:05:57 »
Hallo Zusammen,

ich bin mittlerweile gut weitergekommen mit o.g. Thema.
Vielen Dank für die Beschreibungen.

Jetzt versuche ich einen "Salzalarm" zu realisieren.
Da ich aber keine Konduktivitätssonde habe, hätte ich gerne einfach nur den Alarm ausgelesen, der bei "Salzmangel" erscheint.
-> Weiß jemand wie das gehen könnte?

In dem Dokument mit den Register haben ich nur Folgendes gefunden:
"MBF_HIDRO_VOLTAGE - Dieses Register beinhaltet die Belastung der Hydrolysezelle.
Dieses Register ermöglicht zusammen mit dem von MBF_HIDRO_CURRENT die Extrapolation des Salzgehalts des Wassers."
-> Oder weiß jemand wie man das berechnen könnte?

Vielen Dank für ein paar Ideen oder Verweise.

Offline Niko1987

  • Jr. Member
  • **
  • Beiträge: 92
Antw:Poolsteuerung per Modbus auslesen
« Antwort #48 am: 28 Mai 2021, 20:10:30 »
Ich habe beide Optionen redox mit ph minus, wobei die ph Messung nicht funktioniert... Habe die Anlage seit letztem Jahr und Reklamation läuft... Das wifi Modul verbindet dich auch seit ein paar Tagen nicht mehr mit dem Portal, so dass ich jetzt nach einer anderen Lösung gesucht habe... Normalerweise schalte ich über die SR-Plus auch die Stufe der Pumpe... Habe ne badu Eco mit integriertem frequenzumformer... Die Anbindung vom web Portal hatte ich bisher mit httpmod realisiert, aber wenn das Portal nicht läuft geht halt auch in fhem nix [emoji35][emoji35][emoji35]

Gesendet von meinem VOG-L29 mit Tapatalk

Hallo,
hast du dein Wifi-Modul wieder zum laufen bekommen?
Arbeite zufällig bei einem Pool-Händler.
Hayward hat die Server-IP geändert, daher sind die Geräte alle offline...

Bei Fehlern der pH-Messung liegt es meistens am pH-Chip...

Gruß

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #49 am: 28 Mai 2021, 23:22:23 »
Hi.. Ja das wifi Modul könnte wieder laufen, wenn ich es wollte.. Die Server IP Adresse wurde geändert, ohne die Kunden, die mir ihrer Email Adresse im Portal registriert sind, darüber zu informieren.. Ich habe mich allerdings so darüber geärgert, daß es meinen Ehrgeiz umso mehr angeregt hat, das Gerät ohne Cloud und wifi adapter in mein System zu integrieren... Hätte ich das vorher gewusst, hätte ich 300euro für das dämliche wifi Modul gespart... Meine letzte ph sonde habe ich bei Amazon für ca 50 Euro inkl. Versand bestellt und sie funktioniert einwandfrei... Seitdem läuft die Anlage wie gewünscht und störungsfrei und das Wasser ist glasklar und hoffentlich auch nächste Woche warm 🤪🤪🤪

Offline JF Mennedy

  • Full Member
  • ***
  • Beiträge: 165
Antw:Poolsteuerung per Modbus auslesen
« Antwort #50 am: 28 Mai 2021, 23:28:11 »
Das war übrigens das Dokument, welches mir nach mehrfacher Nachfrage zur Verfügung gestellt wurde...

Offline Niko1987

  • Jr. Member
  • **
  • Beiträge: 92
Antw:Poolsteuerung per Modbus auslesen
« Antwort #51 am: Heute um 11:57:07 »
Es gibt übrigens auch die Möglichkeit, die Steuerungen (Hidrolife, Aquascenic, Oxilife, Bionet, Hidroniser, UVScenic, Neosal, Station, Brilix, Bayrol, Salt One, Kripsol KLX usw.) mit einem TTL UART to RS485 und einem Wemos per Tasmota auszulesen und zu steuern.

Das scheint eine recht unkomplizierte Lösung zu sein wenn man keine Kabel ziehen will oder kann.

Hier der GitHub Link: https://tasmota.github.io/docs/NeoPool/

 

decade-submarginal