Contribute data

This site can only see what LUMA publishes. That leaves two holes you can fill from your own house.

Why it matters

What it gets you

Readings are tied to the feeder your address sits on, so the more homes reporting, the better this site can answer the question it exists for: “is my block about to lose power, and for how long?” One home is an anecdote. Twenty homes across different feeders is a map that LUMA does not publish and cannot contradict — a record of what actually happened, minute by minute, that survives after their own map resets.

You can contribute with a $20 smart plug, or with nothing at all but a phone: reporting “my power is on” or “my power is out” is one command and is genuinely useful during a rotation.

Get a token

  1. Sign up at prstatus.live. An address is optional but makes your readings far more useful — it is what ties them to a feeder.
  2. Go to Settings.
  3. Create a token. Give it a name and a location. One token per sensor — revoking one should not stop the others.
  4. Copy it. It is shown once and cannot be recovered; only a hash is stored.

You do not need to wait for account approval to contribute. Approval opens the grid pages; contributing works as soon as you can sign in.

Send a reading

curl -X POST https://prstatus.live/ingest \
  -H "Authorization: Bearer $PRSTATUS_TOKEN" \
  -H "content-type: application/json" \
  -d '{
    "source": "community_plug",
    "deviceId": "kitchen",
    "readings": [
      { "key": "home.plug.voltage_v", "value": 122.4 },
      { "key": "home.plug.freq_hz",   "value": 60.1 }
    ]
  }'

There is a ready-made script — POSIX sh, no dependencies but curl, so it runs on a Raspberry Pi, a NAS, a router or a Mac: scripts/contribute_readings.sh. It can read a Shelly plug on your LAN directly with --shelly <ip>, or just report --power-on / --power-off.

What you can send

Metric keyMeaningAccepted range
home.plug.voltage_vVolts at the outlet0 – 300
home.plug.freq_hzLine frequency40 – 80
home.plug.power_wLoad through the plug, watts0 – 20,000
home.plug.current_aAmps0 – 200
home.plug.temp_cSensor temperature, °C−20 – 120
home.plug.energy_wh_totalLifetime Wh counter0 – 1e9
home.power.on1 = powered, 0 = out0 or 1

Anything else is rejected. A value outside its range is dropped on its own — one silly number does not lose the rest of the batch.

Limits

200 requests per hour per token (once a minute uses 60, leaving room for retries), 50 readings per request, and a token may only write community_plug. Tokens can be revoked at any time and revocation is immediate.

What happens to your data

Every row is stored with who sent it and which device, at full resolution — nothing is averaged away or deleted. Contributed readings land in a quarantined source and are not shown on the public site or used in any alert: accepting data and trusting it are separate decisions, and the second one has not been made yet. Your email address is never shown publicly or attached to a reading anyone else can see.

Questions or bugs

Email improve@prstatus.live. It goes into a triage queue that gets read.

Sign in or sign up