Download raw body.
upd(4): add more sensors (load, power..)
Hi Stuart,
On Thu, Nov 21, 2024 at 01:53:20PM +0000, Stuart Henderson wrote:
> 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.
After applying this diff this happened:
$ sysctl hw.sensors
sysctl: sensors dev 0: Cannot allocate memory
Besides sensorsd(8), which I have in use, timed out on boot.
>
>
> 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);
> }
>
>
--
Walter
upd(4): add more sensors (load, power..)