El término "vatio-hora" (Wh) a menudo no se entiende correctamente. Watt (W) es una unidad de poder. La energía se mide en julios (J) y está relacionada con el poder por
$$
E = {P_ \ text {avg}} \ times \ Delta t,
$$
donde \ $ \ Delta t \ $ es el tiempo en cuestión y \ $ P_ \ text {avg} \ $ es la potencia promedio gastada durante ese tiempo.
Con solo dos mediciones, una al comienzo y otra al final, la mejor estimación es que la potencia promedio fue
$$
P_ \ text {avg} = \ frac {P_ \ text {inicio} + P_ \ text {final}} {2}
$$
Note que "vatios-hora" es la potencia multiplicada por el tiempo, por lo que es una medida de energía. Esto es lo que las compañías de energía realmente te venden, y por lo que deberían cobrarte; aunque por alguna razón no siempre es el caso.
Joules es lo mismo que un "vatio-segundo", por lo que
$$
1 \; \ text {Wh} = (1 \; \ text {W}) \ times (1 \; \ text {h}) = (1 \; \ text {W}) \ times (3,600 \; \ text {s}) = 3,600 \; \ text {J} = 3.6 \; \ text {kJ}
$$
Sidenote
Si conoces el cálculo, entonces una fórmula más precisa para la relación entre potencia y energía es
$$
E = \ int_ {t_ \ text {inicio}} ^ {t_ \ text {final}} P (t) \; dt,
$$
o incluso
$$
P (t) = \ frac {dE (t)} {dt},
$$
que dice que la potencia es la tasa de cambio del consumo de energía. Puede hacer uso de esto, si conoce la frecuencia de muestreo de sus mediciones, por ejemplo, utilizando un ADC de un microcontrolador. Si el tiempo entre las muestras es dt, la energía total se puede calcular de la siguiente manera:
loop() {
current = currentADC.sample();
voltage = voltageADC.sample();
time = time_now();
dt = time - time_last;
power = current * voltage;
energy += power * dt;
time_last = time;
}