Skip to content

Conversation

@ProfBoc75
Copy link
Collaborator

Related to issue #3256

Add support for the TRW TPMS protocol used into Chrysler car from 2014 until 2022.

"alert", "Alert", DATA_COND, flags == 0x6 || flags == 0x9, DATA_STRING, "Pressure increase/decrease !",
"seq_num", "Seq Num", DATA_INT, seq_num,
"pressure_PSI", "Pressure", DATA_FORMAT, "%.0f PSI", DATA_DOUBLE, pressure_psi,
"temperature_C", "Temperature", DATA_FORMAT, "%.1f C", DATA_DOUBLE, (double)temperature_C,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For temperature I think you can use just int.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We trying to offer normalized keys and values. The temperature keys should always be DATA_DOUBLE, but the format here can be "%.0f C"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But for pressure we can use: "%.1f PSI"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, I just reverse the values ... corrected in next commit

"motion_status", "Motion", DATA_STRING, motion_flags == 0x0e ? "Parked" : "Moving",
//"inflate", "Inflate", DATA_INT, infl_detected,
"oem_model", "OEM Model", DATA_COND, oem_model == 0x4, DATA_STRING, "OEM",
"oem_model", "OEM Model", DATA_COND, oem_model == 0x0, DATA_STRING, "Chinese OEM",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably better to use the word Clone rather than Chinese OEM.

.modulation = OOK_PULSE_MANCHESTER_ZEROBIT,
.short_width = 52,
.long_width = 52,
.reset_limit = 200,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested successfully for a 150us reset.

.modulation = FSK_PULSE_MANCHESTER_ZEROBIT,
.short_width = 52,
.long_width = 52,
.reset_limit = 200,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above.

};

r_device const tpms_trw_ook = {
.name = "TRW TPMS OOK OEM and Chinese models",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.name = "TRW TPMS OOK OEM and Chinese models",
.name = "TRW TPMS OOK OEM and Clone",

};

r_device const tpms_trw_fsk = {
.name = "TRW TPMS FSK OEM and Chinese models",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.name = "TRW TPMS FSK OEM and Chinese models",
.name = "TRW TPMS FSK OEM and Clone",

"mode",
"id",
//"battery_ok",
"pressure_kPa",
Copy link

@testuser7 testuser7 May 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"pressure_kPa",
"pressure_PSI",

@testuser7
Copy link

@ProfBoc75 Thank you for the PR!

I think it would be a good idea to combine the commits related to adding support into one and separate the commit unrelated to it.

Does csv output always display all data as int?

@testuser7
Copy link

Sometimes Clone sensor is recognized as OEM:

tpms_trw_decode: MSG codes {88}5c00f4a50eb15746158f00
tpms_trw_decode: MSG codes {88}5c00f4a50eb3574615a300
tpms_trw_decode: MSG codes {88}5c00f4a50eb4574615c140

Does the last message have the correct checksum?

@ProfBoc75
Copy link
Collaborator Author

Sometimes Clone sensor is recognized as OEM:

tpms_trw_decode: MSG codes {88}5c00f4a50eb15746158f00
tpms_trw_decode: MSG codes {88}5c00f4a50eb3574615a300
tpms_trw_decode: MSG codes {88}5c00f4a50eb4574615c140

Does the last message have the correct checksum?

OEM or Clone is not accurate, only based on the last 2 trailing bits ... we can remove it, as no added value ?

I corrected mostly all your findings here. I will commit the updates very soon.

@ProfBoc75
Copy link
Collaborator Author

@ProfBoc75 Thank you for the PR!

I think it would be a good idea to combine the commits related to adding support into one and separate the commit unrelated to it.

Does csv output always display all data as int?

if float, values are with 3 decimals after dot.

time,msg,codes,model,button,id,channel,battery_ok,temperature_C,mic,subtype,humidity,state,rain_mm,status,rain_rate,rain_rate_mm_h,rain_total,gust,average,direction,wind_max_m_s,wind_avg_m_s,wind_dir_deg,pressure_hPa,uv,power_W,energy_kWh,radio_clock,sequence,unit,group_call,command,dim,dim_value,dipswitch,rbutton,data,closed,event,tamper,esn,exception,status_hex,xactivity,xtamper1,xtamper2,setpoint_C,switch,cmd,cmd_id,tristate,wind_avg_km_h,wind_max_km_h,signal,sensor_code,uv_sensor_id,uv_status,uv_index,lux,wm,seq,current,interval,learn,message_type,sequence_num,leak_detected,storm_dist,strike_count,strike_distance,active,raw_msg,rfi,wind_approach,flags,maybetemp,binding_countdown,depth_cm,power0_W,power1_W,power2_W,power0,node,ct1,ct2,ct3,ct4,batt_Vrms,temp1_C,temp2_C,temp3_C,temp4_C,temp5_C,temp6_C,pulse,button1,button2,button3,button4,group,transmit,moisture,type,pressure_kPa,battery_mV,pulses,pulsecount,len,to,from,payload,motion,opened,water,msg_type,contact_open,reed_open,alarm,heartbeat,temperature_1_C,temperature_2_C,test,humidity_1,newbattery,heating,heating_temp,uvi,light_lux,pm2_5_ug_m3,estimated_pm10_0_ug_m3,counter,code,repeat,maybe_battery,moving,unknown,unknown_3,delay,raw_message,switch1,switch2,switch3,switch4,switch5,extradata,house_id,module_id,sensor_type,sensor_count,alarms,sensor_value,mode,version,type_string,CI,AC,ST,CW,sn,knx_ctrl,src,dst,l_npci,tpci,apci,crc,M,C,data_length,average_temperature_1h_C,average_temperature_24h_C,average_humidity_1h,average_humidity_24h,minimum_temperature_1h_C,maximum_temperature_1h_C,minimum_temperature_24h_C,maximum_temperature_24h_C,minimum_humidity_1h,maximum_humidity_1h,minimum_humidity_24h,maximum_humidity_24h,counter_0,counter_1,rapid_change,failed,battery,battery_V,alert,secret_knock,relay,message_num,housecode,address,ext,wind_dev_deg,exposure_mins,transmit_s,button_id,button_name,pulses_per_kwh,cumulative_kWh,effect,encrypted,current_A,voltage_V,pairing,connected,gap,impulses,triggered,storage,boost,ad_raw,power_idx,power_max,timestamp,rain,physical_tamper,ert_type,encoder_tamper,consumption_data,else,restore,supervised,spidernet,repeater,ProtocolID,EndpointType,EndpointID,Consumption,Tamper,PacketCRC,MeterType,from_id,to_id,msg_type_str,extended,hops_max,hops_left,formatted,cmd_dat,msg_str,hopsmax,hopsleft,PacketTypeID,PacketLength,HammingCode,ApplicationVersion,ERTType,ERTSerialNumber,ConsumptionIntervalCount,ModuleProgrammingState,Unknown_field_1,LastGenerationCount,Unknown_field_2,TamperCounters,AsynchronousCounters,PowerOutageFlags,LastConsumptionCount,DifferentialConsumptionIntervals,TransmitTimeOffset,MeterIdCRC,rolling,fixed,remote_id,sendmode,control,retransmission,rain1,rain2,startup,light_klx,pm10_0_ug_m3,co2_ppm,hcho_ppb,voc_level,message_subtype,raw,rain2_mm,temperature_alarm,timer,timer_active,timer_alarm,meat,taste,id0,id1,switch_id,pad_id,pin,net_id,message,text,ids,time_request,flame_status,zone,setpoint,cycle_rate,minimum_on_time,minimum_off_time,proportional_band_width,device_number,failsafe_mode,ticker,heat_demand,boiler_modulation_level,datetime,domain_id,demand,zone_idx,max_flow_temp,pump_run_time,actuator_run_time,min_flow_temp,token,cmd_name,cmd_value,boost_time,solar_off,tank_hot,battery_low,import_val,saved_today,saved_yesterday,saved_last_7,saved_last_28,saved_total,dst_id,mac,flag_end,flag_start,flag_mode,flag_beacon,flag_routed,flag_lpm,storm_dist_km,detect_wet,current_1_A,current_2_A,current_3_A,sensor_num,sync,temperature_1_F,temperature_2_F,facility,wheel,action,longpress,pressure,humidity_2,rain_raw,pilot,light,thermostat,power,front,fan,aux,flame,battery_level,ctr,cmac,encr,stype,value,centrifugal_acc,has_tick,tick,ext_power,flags_1,volume_gal,flags_2,power_VA,flags4,uptime_s,clock,flags5,flags15,peering_request,leaking,ack_leaking,unknown1,unknown2,button_press,button_press_name,unkn1,unkn2,nouse,backflow,consumption,unkn3,leak,leaknow,extra,probe_fail,unknown_1,unknown_2,volume_m3,device_time,frequency_Hz,power_factor_VA,fast_leak,inflate,heat,rain_start,supercap_V,firmware,msg_counter,msg_repeat,raw_value,sensitivity,brand,flags1,flags2,flags3,wind_ratio,wind_coef,flag,alarm_high_1_C,alarm_low_1_C,alarm_high_2_C,alarm_low_2_C,msg_0,msg_1,display_u,temperature_3_C,temperature_4_C,pm1_ug_m3,pm4_ug_m3,pm10_ug_m3,temperature_alert,sensor_raw,temperature_1_LO_C,temperature_1_HI_C,temperature_2_LO_C,temperature_2_HI_C,network,msg_id,msg_no,temperature_type,wnd_stat,retry,transfer,transfer_ack,target,register_high,register_low,target_ack,networkID,location,provider,wanaddress,destaddress,uptime,srclocation,destlocation,protoversion,framedata,learn_mode,seq_num,motion_flags,motion_status,oem_model
2025-05-21 18:57:32,,,TRW,,1045002299,,,24.000,CRC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,TPMS,129.621,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,93,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,91,Moving,OEM

@testuser7
Copy link

if float, values are with 3 decimals after dot.

I'm talking about sensor IDs. It would be better to have these values ​​as hex.

@testuser7
Copy link

OEM or Clone is not accurate, only based on the last 2 trailing bits ... we can remove it, as no added value ?

I'll do some more tests and let you know.

@ProfBoc75 ProfBoc75 changed the title Add support for TRW TPMS OEM and Chinese models Add support for TRW TPMS OEM and Clone models May 26, 2025
@zuckschwerdt zuckschwerdt force-pushed the master branch 2 times, most recently from 8d2ffe8 to a796732 Compare October 20, 2025 22:14
@zuckschwerdt zuckschwerdt force-pushed the master branch 3 times, most recently from 2e725ca to 5e76779 Compare December 29, 2025 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants