From: Stuart Henderson Subject: Re: upd(4): add more sensors (load, power..) To: Landry Breuil , tech@openbsd.org Date: Thu, 21 Nov 2024 13:53:20 +0000 On 2024/11/19 10:51, Stuart Henderson wrote: > The unit for apparent power should be VA, not W. *untested* diff adding this. also adds some printers for SENSOR_ENERGY which were missed when adding it previously. Index: sys/sys/sensors.h =================================================================== RCS file: /cvs/src/sys/sys/sensors.h,v diff -u -p -r1.37 sensors.h --- sys/sys/sensors.h 15 Jul 2020 07:13:57 -0000 1.37 +++ sys/sys/sensors.h 21 Nov 2024 13:52:23 -0000 @@ -54,6 +54,7 @@ enum sensor_type { SENSOR_ACCEL, /* acceleration (u m/s^2) */ SENSOR_VELOCITY, /* velocity (u m/s) */ SENSOR_ENERGY, /* energy (uJ) */ + SENSOR_VOLTAMPS, /* apparent power (uVA) */ SENSOR_MAX_TYPES }; @@ -82,6 +83,7 @@ static const char * const sensor_type_s[ "acceleration", "velocity", "energy", + "voltamp", "undefined" }; #endif /* !_KERNEL */ Index: libexec/snmpd/snmpd_metrics/mib.c =================================================================== RCS file: /cvs/src/libexec/snmpd/snmpd_metrics/mib.c,v diff -u -p -r1.9 mib.c --- libexec/snmpd/snmpd_metrics/mib.c 22 May 2024 08:44:02 -0000 1.9 +++ libexec/snmpd/snmpd_metrics/mib.c 21 Nov 2024 13:52:23 -0000 @@ -2145,6 +2145,7 @@ mib_sensorvalue(struct sensor *s) case SENSOR_VOLTS_AC: case SENSOR_WATTS: case SENSOR_AMPS: + case SENSOR_VOLTAMPS: case SENSOR_WATTHOUR: case SENSOR_AMPHOUR: case SENSOR_LUX: @@ -2152,6 +2153,7 @@ mib_sensorvalue(struct sensor *s) case SENSOR_ACCEL: case SENSOR_VELOCITY: case SENSOR_DISTANCE: + case SENSOR_ENERGY: ret = asprintf(&v, "%.2f", s->value / 1000000.0); break; case SENSOR_INDICATOR: Index: sbin/sysctl/sysctl.c =================================================================== RCS file: /cvs/src/sbin/sysctl/sysctl.c,v diff -u -p -r1.262 sysctl.c --- sbin/sysctl/sysctl.c 9 Sep 2024 05:36:17 -0000 1.262 +++ sbin/sysctl/sysctl.c 21 Nov 2024 13:52:23 -0000 @@ -2832,6 +2832,9 @@ print_sensor(struct sensor *s) case SENSOR_ENERGY: printf("%.2f J", s->value / 1000000.0); break; + case SENSOR_VOLTAMPS: + printf("%.2f VA", s->value / 1000000.0); + break; default: printf("unknown"); } Index: usr.bin/systat/sensors.c =================================================================== RCS file: /cvs/src/usr.bin/systat/sensors.c,v diff -u -p -r1.33 sensors.c --- usr.bin/systat/sensors.c 8 Nov 2024 08:45:47 -0000 1.33 +++ usr.bin/systat/sensors.c 21 Nov 2024 13:52:23 -0000 @@ -300,6 +300,9 @@ showsensor(struct sensinfo *s) case SENSOR_ENERGY: tbprintf("%.2f J", s->sn_value / 1000000.0); break; + case SENSOR_VOLTAMPS: + tbprintf("%10.2f VA", s->sn_value / 1000000.0); + break; default: tbprintf("%10lld", s->sn_value); break; Index: usr.sbin/sensorsd/sensorsd.c =================================================================== RCS file: /cvs/src/usr.sbin/sensorsd/sensorsd.c,v diff -u -p -r1.69 sensorsd.c --- usr.sbin/sensorsd/sensorsd.c 8 Mar 2023 04:43:15 -0000 1.69 +++ usr.sbin/sensorsd/sensorsd.c 21 Nov 2024 13:52:23 -0000 @@ -708,6 +708,12 @@ print_sensor(enum sensor_type type, int6 case SENSOR_VELOCITY: snprintf(fbuf, RFBUFSIZ, "%4.3f m/s", value / 1000000.0); break; + case SENSOR_ENERGY: + snprintf(fbuf, RFBUFSIZ, "%.2f J", value / 1000000.0); + break; + case SENSOR_VOLTAMPS: + snprintf(fbuf, RFBUFSIZ, "%.2f VA", value / 1000000.0); + break; default: snprintf(fbuf, RFBUFSIZ, "%lld ???", value); }