Rehau modbus nea smart

HI. i want to connect my nea smart system trought modbus. i see that it’s possible with knx modbus gateway. i want to connect rehau with waveshare ethernet .

this is rehau setting:

Gateway KNX Modbus slave

Address slave 240 o 241
Baud rate 38400 Bits/s
Parity none (1 stop
bit)
Sequence byte after MSB
first address “0”

this is waveshare setting

this is pool error

this is thing configuration

Can someone help me please??

hi community. i have succesfully connected my neasmart system to openhab.
i’ve use waveshare ethernet as gateway.i’ve connected directly to neasmart base on sysbus pin

the first problem it’s that openhab can act only as master but the rehau act as master too. so i’ve istalled a docker istance that act as “tranformer” from master to slave . i ve found it on openhab forum GitHub - nett-media/modbus-server

after that i’ve created on openhab a modbus thing tcp connection to docker modbus-server that trough waveshare set as tcp client read and write the coil that is specificated on rehau gateway knx instruction https://www.rehau.com/downloads/813496/nea-smart-2-0-knx-gateway.pdf

i ve created all my thing ( pooller, coil etc) that i want to share with u:

Bridge modbus:tcp:RehauNeaSmart "Rehau Nea Smart " [ host="192.168.1.8", port=502, id=1, connectMaxTries=3] {
 

Bridge poller Rehau_Nea_Smart "Rehau Nea Smart" [ start=1, length=32, refresh=1000, type="input" ] {

Thing data Rehau_Mode "Rehau Modo Funzionamento"[ readStart="1", readValueType="uint16",writeStart="1",writeValueType="int16", writeType="holding"]   
Thing data Rehau_State "Rehau Stato Funzionamento"[ readStart="2", readValueType="uint16",writeStart="2",writeValueType="int16", writeType="holding"]   
Thing data Rehau_Outside_T "Rehau Temperatura esterna"[ readStart="7", readValueType="uint16",readTransform="JS:temponly.js"] 

Thing data Rehau_Deu_1 "Rehau Deumidificatore 1"[ readStart="22", readValueType="uint16"]     
Thing data Rehau_Deu_2 "Rehau Deumidificatore 2"[ readStart="23", readValueType="uint16"] 
Thing data Rehau_Deu_3 "Rehau Deumidificatore 3"[ readStart="24", readValueType="uint16"] 

Thing data Rehau_Circ_1 "Rehau Circolatore 01"[ readStart="31", readValueType="uint16"] 
Thing data Rehau_Circ_2 "Rehau Circolatore 02"[ readStart="32", readValueType="uint16"] 






 
}
 	Bridge poller Zone_id_1 "Camera Matrimoniale" [ start=100, length=11, refresh=1000, type="input" ] {
 	    	 
 	    	 Thing data Zone_id_1_Temp "Camera Matrimoniale Temperatura"[ readStart="102", readValueType="uint16",readTransform="JS:temp.js"] 
 	    	  	   	 
 	Thing data Zone_id_1_SetPoint "Camera Matrimoniale SetPoint"[ readStart="101", readValueType="uint16",readTransform="JS:temp.js",writeStart="101",writeValueType="int16", writeType="holding",writeTransform="JS:tempout.js"] 
 	    	  	   	 
 	Thing data Zone_id_1_Hum "Camera Matrimoniale Umidità"[ readStart="110", readValueType="uint16"]  
 	
 	Thing data Zone_id_1_Mode "Camera Matrimoniale Modo Funzionamento"[ readStart="100", readValueType="uint16",writeStart="100",writeValueType="int16", writeType="holding"]    	  	   	 
 	    	  	   	 
 	    	  	   	 
 	    	  	   	 
 	    	  	   	 }
 Bridge poller Zone_id_2 "Camera Blu" [ start=200, length=11, refresh=1000, type="input" ] {
 	    	 
 	    	 Thing data Zone_id_2_Temp "Camera Blu Temperatura"[ readStart="202", readValueType="uint16",readTransform="JS:temp.js"] 
 	    	  	   	 
 	Thing data Zone_id_2_SetPoint "Camera Blu SetPoint"[ readStart="201", readValueType="uint16",readTransform="JS:temp.js",writeStart="201",writeValueType="int16", writeType="holding",writeTransform="JS:tempout.js"] 
 	    	  	   	 
 	Thing data Zone_id_2_Hum "Camera Blu Umidità"[ readStart="210", readValueType="uint16"]    	  	   	 
 	
 	Thing data Zone_id_2_Mode "Camera Blu Modo Funzionamento"[ readStart="200", readValueType="uint16",writeStart="200",writeValueType="int16", writeType="holding"]    	  	   	 	    	  	   	 
 	    	  	   	 
 	    	  	   	 }
 	

rehau has a strange type of reading and writing of zone temperature from 20,1 degree .
i ve create 2 java script transformation
one for reading

(function(i) {
   if(i<2041) 
  return parseFloat(i) / 100;
   if (i > 2042) 
  return ((2010+((i-3053)*2))/100)
   })(input)

and one for writing

(function(i) {
   if(i<20.10) 
  return parseFloat(i) * 100;
  
  if (i > 20.10) 
  
   
 return (3053+((i-20.10)*50))
   
   //return(stoca)
})(input)

i ve also created ui pages

 - component: oh-label-cell
                config:
                  header: "SALA "
                  icon: material:living
                  item: Sala_Temperatura
                  action: analyzer
                  actionAnalyzerItems:
                    - Sala_Temperatura
                  trendItem: Sala_Temperatura
              - component: oh-label-cell
                config:
                  header: Umidità
                  icon: material:water_drop
                  item: Sala_Umidita
                  action: analyzer
                  actionAnalyzerItems:
                    - Sala_Umidita
                  trendItem: Sala_Umidita
              - component: oh-knob-cell
                config:
                  icon: material:thermostat
                  item: Sala_SetPoint
                  min: 5
                  max: 30
                  step: 0.5
                  title: Set Point
                  subtitle: =items.Sala_SetPoint.state
              - component: oh-label-cell
                config:
                  title: Modalità
                  item: Sala_Modo_Funzionamento
                  label: "=(items.Sala_Modo_Funzionamento.state === '4') ?
                    'Auto':(items.Sala_Modo_Funzionamento.state === '1') ?
                    'Normale': (items.Sala_Modo_Funzionamento.state === '2') ?
                    'Ridotto':(items.Sala_Modo_Funzionamento.state === '3') ?
                    'Spento': (items.Sala_Modo_Funzionamento.state === '5') ?
                    'Party': (items.Sala_Modo_Funzionamento.state === '6') ?
                    'Vacanza': 'errore'"
                  action: options
                  actionOptions: 1=Normale,2=Modalità
                    Ridotta,3=Spento,4=Automatico,5=Party,6=Vacanza
                  actionItem: CorridoioModoClima

I hope it can be of help to someone
Davide