diff --git a/packages/plant_snmp.yaml b/packages/plant_snmp.yaml index e081e07..144f18d 100644 --- a/packages/plant_snmp.yaml +++ b/packages/plant_snmp.yaml @@ -280,6 +280,106 @@ sensor: {% set m = value | regex_findall('output_amps ([0-9.]+)') %} {{ m[0] | float if m | length > 0 }} + # --- Storage / memory / chipset temps (already in lm-sensors output) --- + # DIMM patterns anchor to the jc42 i2c address — a bare 'temp1:' regex + # would match the wrong chip (each host has several temp1 lines). The jc42 + # ALARM flags are a limits-read artifact (limits read as 0.0C); values are good. + - platform: snmp + name: "PFV tsys3 NVMe temperature raw" + host: pfv-tsys3.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys3_nvme_temperature_raw + value_template: >- + {% set m = value | regex_findall('Composite:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys3 PCH temperature raw" + host: pfv-tsys3.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys3_pch_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)pch_skylake.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys4 DIMM 18 temperature raw" + host: pfv-tsys4.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys4_dimm_18_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)jc42-i2c-0-18.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys4 DIMM 19 temperature raw" + host: pfv-tsys4.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys4_dimm_19_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)jc42-i2c-0-19.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys4 DIMM 1a temperature raw" + host: pfv-tsys4.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys4_dimm_1a_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)jc42-i2c-0-1a.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys4 DIMM 1b temperature raw" + host: pfv-tsys4.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys4_dimm_1b_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)jc42-i2c-0-1b.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys5 NVMe temperature raw" + host: pfv-tsys5.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys5_nvme_temperature_raw + value_template: >- + {% set m = value | regex_findall('Composite:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + + - platform: snmp + name: "PFV tsys9 PCH temperature raw" + host: pfv-tsys9.knel.net + version: 2c + community: kn3lmgmt + baseoid: .1.3.6.1.4.1.8072.1.3.2.3.1.2.9.108.109.115.101.110.115.111.114.115 + accept_errors: true + unique_id: pfv_tsys9_pch_temperature_raw + value_template: >- + {% set m = value | regex_findall('(?s)pch_cometlake.*?temp1:\s*\+?(-?\d+\.?\d*)') %} + {{ m | first | float if m }} + # --- Garage PDU energy (kWh) integrated from watts [#344] --- - platform: integration source: sensor.pfv_garage_pdu_power @@ -485,3 +585,59 @@ template: state: >- {% set a = states('sensor.pfv_garage_pdu_output_current') | float(-1) %} {{ (a * 120) | round(0) if a >= 0 }} + - name: "PFV tsys3 NVMe temperature" + unique_id: pfv_tsys3_nvme_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys3_nvme_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys3 PCH temperature" + unique_id: pfv_tsys3_pch_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys3_pch_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys4 DIMM 18 temperature" + unique_id: pfv_tsys4_dimm_18_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys4_dimm_18_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys4 DIMM 19 temperature" + unique_id: pfv_tsys4_dimm_19_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys4_dimm_19_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys4 DIMM 1a temperature" + unique_id: pfv_tsys4_dimm_1a_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys4_dimm_1a_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys4 DIMM 1b temperature" + unique_id: pfv_tsys4_dimm_1b_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys4_dimm_1b_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys5 NVMe temperature" + unique_id: pfv_tsys5_nvme_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys5_nvme_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }} + - name: "PFV tsys9 PCH temperature" + unique_id: pfv_tsys9_pch_temperature + device_class: temperature + unit_of_measurement: "°F" + state: >- + {% set v = states('sensor.pfv_tsys9_pch_temperature_raw') %} + {{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }}