docs / data / sensors

JSON Sensor Data

Every minute, each apartment produces one JSON file containing readings from 6 sensor categories. ~245,000 files total across 2 apartments over 10 weeks.

real JSON example — one file, one minute

This is an actual file from Jimmy's apartment (01.06.2023 00:01). Each section is explained below.

01.06.2023 0001_JimmyLoup_received.json
{
  "user": "JimmyLoup",
  "datetime": "01.06.2023 00:01",

  // Smart plugs — keyed by room
  "plugs": {
    "Office":     { power: 17.62, total: 81983, temperature: 30.71 },
    "Livingroom": { power: 1.87,  total: 95777, temperature: 33.94 }
  },

  // Door & window sensors — array per room
  "doorsWindows": {
    "Office": [
      { type: "Window", switch: "on",  battery: 100 },
      { type: "Door",   switch: "on",  battery: 100 }
    ],
    "Bhroom": [
      { type: "Door",   switch: "on",  battery: 100 },
      { type: "Window", switch: "off", battery: 100 }
    ]
  },

  // Motion sensors
  "motions": {
    "Livingroom": { motion: false, light: 0,   temperature: 24.31 },
    "Office":     { motion: true,  light: 144, temperature: 20.06 }
  },

  // Environmental stations — nested under meteos.meteo
  "meteos": {
    "meteo": {
      "Livingroom": { Temperature: 25.9, CO2: 980,  Humidity: 45, Noise: 31, Pressure: 1016.6 },
      "Outdoor":    { Temperature: 19.6, Humidity: 44, battery_percent: 93 },
      "Office":     { Temperature: 25.6, CO2: 1256, Humidity: 49,  battery_percent: 90 },
      "Bdroom":     { Temperature: 24.3, CO2: 839,  Humidity: 46,  battery_percent: 93 }
    }
  },

  // Humidity sensors
  "humidities": {
    "Bhroom": { temperature: 25.3, humidity: 59.9, devicePower: 100 }
  },

  // Whole-house energy meter (3-phase)
  "consumptions": {
    "House": {
      total_power: 60.7,
      power1: 32.69, power2: 28.01, power3: 0.0,
      current1: 0.27, current2: 0.26, current3: 0.15,
      voltage1: 233.58, voltage2: 233.7, voltage3: 234.2
    }
  }
}

reading this example

plugs

Office plug draws 17.62W, has consumed 81,983 Wh total. Livingroom plug draws 1.87W. Both plugs are on, no overtemperature.

doorsWindows

Office: window open, door open. Bathroom: door open, window closed. Bedroom: window closed, door open. All batteries at 100%.

motions

No motion in Livingroom (dark, 0 lux). Motion detected in Office (144 lux). Temperatures differ: 24.3°C vs 20.1°C.

meteos

Livingroom: 25.9°C, 980 ppm CO2, 45% humidity, 31 dB noise, 1016.6 hPa. Office has high CO2 (1256 ppm). Outdoor: 19.6°C. Note: nested under meteos.meteo.

humidities

Bathroom only: 25.3°C, 59.9% humidity. Separate from meteo sensors.

consumptions

Whole-house: 60.7W total across 3 phases. Phase 1: 32.69W, Phase 2: 28.01W, Phase 3: 0W. Voltage ~234V.

file overview

Filename formatDD.MM.YYYY HHMM_ApartmentName_received.json
Frequency1 file per apartment per minute
SourceSMB network share (Z:\)
Apartments2 (JimmyLoup, JeremieVianin)
Total files~245,000 (Aug–Oct 2023)
File size~3–5 KB each
Bronze pathbronze/{apartment}/YYYY/MM/DD/HH/

apartments

filename identifiermapped namebronze path
JimmyLoupJimmybronze/jimmy/YYYY/MM/DD/HH/
JeremieVianinJérémiebronze/jeremie/YYYY/MM/DD/HH/

Both apartments share the same JSON structure. Room names and sensor coverage differ.

JSON top-level fields

fieldtypedescription
userstringApartment owner identifier (JimmyLoup or JeremieVianin)
api_tokenstringAuth token — stripped/masked in Silver (not stored)
datetimestringCollection timestamp — format DD.MM.YYYY HH:MM
plugsobjectSmart plug readings, keyed by room name
doorsWindowsobjectDoor/window sensor readings, keyed by room name
motionsobjectMotion sensor readings, keyed by room name
meteosobjectEnvironmental sensors, nested under meteo key
humiditiesobjectHumidity sensor readings, keyed by room name
consumptionsobjectWhole-house energy consumption, keyed by House

sensor categories (6 types)

Each top-level object contains sensor readings keyed by room name. Click to expand field details.

plugs

Rooms: Office, Livingroom

fieldtypedescription
timePlugintUnix timestamp of the reading
powerfloatCurrent power draw (W)
overpowerfloatOverpower value (W)
is_validboolWhether reading is valid
counter1/2/3floatPer-phase power counters (W)
totalintTotal cumulative energy (Wh)
temperaturefloatPlug internal temperature (°C)
overtemperatureboolOvertemperature flag
switchboolPlug on/off state
doorsWindows

Rooms: Jérémie: Kitchen, Laundry, Bhroom, Office, Bdroom · Jimmy: Office, Bhroom, Bdroom

fieldtypedescription
typestringDoor or Window
switchstring"on" = open · "off" = closed
batteryintBattery level (%)
defenseintDefense mode flag
motions

Rooms: Jérémie: Kitchen, Office · Jimmy: Livingroom, Office

fieldtypedescription
motionboolMotion detected
lightintLight level (lux)
temperaturefloatRoom temperature at sensor (°C)
meteos

Rooms: Livingroom, Outdoor, Office, Bdroom (both apartments)

fieldtypedescription
Temperaturefloat°C
CO2intppm
Humidityint%
NoiseintdB — Livingroom only
PressurefloathPa — Livingroom only
AbsolutePressurefloathPa — Livingroom only
battery_percentintBattery level (%) — indoor stations
humidities

Rooms: Jérémie: Laundry, Bhroom · Jimmy: Bhroom

fieldtypedescription
temperaturefloat°C
humidityfloat%
devicePowerintBattery level (%)
consumptions

Rooms: House (whole apartment)

fieldtypedescription
timeConsumptionintUnix timestamp
power1/2/3floatPer-phase power (W)
pf1/2/3floatPower factor per phase
current1/2/3floatCurrent per phase (A)
voltage1/2/3floatVoltage per phase (V)
is_valid1/2/3boolValidity flag per phase
switchboolMain switch state
total_powerfloatTotal house power draw (W)

room name normalization

Raw JSON room names are abbreviated. The ETL normalizes them during Bronze Silver flattening. Room coverage differs between apartments not all rooms have all sensor types.

raw JSON keynormalized name
BhroomBathroom
BdroomBedroom
LivingroomLiving Room
OfficeOffice
KitchenKitchen
LaundryLaundry
OutdoorOutdoor
HouseHouse