Hi all,
I’m seeing an issue where extended data v10 (Battery %) is uploaded successfully, but is never stored or displayed in Data View or Extended Data charts.
Details:
• Username: helvsmit
• System ID: 58119
• Account: Donator (active until 2026)
• Upload method: HomeyScript via API
• Example POST body sent to /service/r2/addstatus.jsp:
d=20250814&t=20:35&v2=1234&v4=567&v6=230.1&v5=21.1&v7=50&v10=100
What I see:
• API response is always “OK”
• v5 and v7 values are stored and displayed correctly
• v10 is configured in Settings → Systems → Extended Data as:
• Label: Battery %
• Units: %
• Decimals: 0
• Low: 0 / High: 100
• Axis: Right Axis (Bottom)
• Display: On
• However, v10 never appears in Data View or Extended Data graphs.
code:
// HomeyScript — PVOutput upload (no tariffs), includes v10 Battery %
// REDACTED placeholders: <API_KEY>, <SYSTEM_ID>, <SIG_DEVICE_ID>, <NETATMO_DEVICE_ID>
const apiKey = ‘<API_KEY>’; // e.g. xxxxxxxxxxxxxxxxx
const systemId = ‘<SYSTEM_ID>’; // e.g. 58119
// Devices
const sig = await Homey.devices.getDevice({ id: ‘<SIG_DEVICE_ID>’ });
const netatmo = await Homey.devices.getDevice({ id: ‘<NETATMO_DEVICE_ID>’ });
// Readings
const v2 = Math.round(sig.capabilitiesObj[‘measure_power.pv’].value); // W
const v4 = Math.round(sig.capabilitiesObj[‘measure_power.consumed’].value); // W
const v6raw = sig.capabilitiesObj[‘measure_voltage.phase1’].value;
const v6 = typeof v6raw === ‘number’ ? v6raw.toFixed(1) : ‘0’;
// Optional env from Netatmo
let v5 = null;
const tRaw = netatmo.capabilitiesObj[‘measure_temperature’].value;
if (typeof tRaw === ‘number’ && isFinite(tRaw) && tRaw > 0) v5 = parseFloat(tRaw.toFixed(1));
let v7 = null;
const hRaw = netatmo.capabilitiesObj[‘measure_humidity’].value;
if (typeof hRaw === ‘number’ && isFinite(hRaw)) v7 = Math.round(hRaw);
// Battery SoC → v10
let v10 = null;
const socRaw = sig.capabilitiesObj[‘measure_battery’]?.value; // 0–100 %
if (typeof socRaw === ‘number’ && isFinite(socRaw)) v10 = Math.max(0, Math.min(100, Math.round(socRaw)));
// NL time (Europe/Amsterdam) → yyyyMMdd + HH:mm
const now = new Date();
const d = new Intl.DateTimeFormat(‘en-CA’, { timeZone: ‘Europe/Amsterdam’ }).format(now).replace(/-/g, ‘’);
const t = new Intl.DateTimeFormat(‘en-GB’, { timeZone: ‘Europe/Amsterdam’, hour: ‘2-digit’, minute: ‘2-digit’ })
.format(now);
// Build body (no v8/v9)
let body = d=${d}&t=${t}&v2=${v2}&v4=${v4}&v6=${v6}
;
if (typeof v5 === ‘number’) body += &v5=${v5}
;
if (typeof v7 === ‘number’) body += &v7=${v7}
;
if (typeof v10 === ‘number’) body += &v10=${v10}
;
// Send + log response
console.log(‘Upload body ->’, body);
const resp = await fetch(‘https://pvoutput.org/service/r2/addstatus.jsp’, {
method: ‘POST’,
headers: {
‘X-Pvoutput-Apikey’: apiKey,
‘X-Pvoutput-SystemId’: systemId,
‘Content-Type’: ‘application/x-www-form-urlencoded’,
},
body
});
const text = await resp.text();
console.log(‘PVOutput response ->’, resp.status, text);
if (!text.startsWith(‘OK’)) throw new Error(PVOutput error: ${text}
);
return OK ${t} v2=${v2}W v4=${v4}W v5=${v5}°C v6=${v6}V v7=${v7}% v10=${v10}%
;
Could this be an API/DB-side issue specific to v10, or is there any other requirement for storing this value?
Thanks in advance for helping.
Ab Helversteijn-Smit