220 lines
9.0 KiB
Markdown
220 lines
9.0 KiB
Markdown
# Your device data
|
|
|
|
This folder contains the data we hold about one of your Shelly devices, a
|
|
**LOQED**. It was prepared on 2026-10-23 in response to your request.
|
|
|
|
Every date and time in these files is **UTC**, which may differ from your local time.
|
|
|
|
## Your device
|
|
|
|
First seen on our systems: 2026-10-21 07:10:47
|
|
|
|
This device has a single channel.
|
|
|
|
| Channel | Your name for it | Identifier |
|
|
| --- | --- | --- |
|
|
| 0 | Back door | `XLQd6aExkzDOkdyDoV0KQer` |
|
|
|
|
### The rooms these files mention
|
|
|
|
`room_id` appears in `device.json` as a number. These
|
|
are the ones your device's own records use:
|
|
|
|
| `room_id` | Room |
|
|
| --- | --- |
|
|
| 2 | Lab |
|
|
|
|
More than one room can appear for the same channel: the value recorded is the room
|
|
the channel was in **at the time**, so moving a device leaves older rows pointing at
|
|
where it used to be. Only rooms your device appears in are listed here.
|
|
|
|
## What is in this folder
|
|
|
|
| File | What it is |
|
|
| --- | --- |
|
|
| `device.json` | How the device was set up |
|
|
| `event_log.csv` | Things the device did — 4 record(s) |
|
|
| `last_known_state.json` | How the device was set up and what it last reported |
|
|
| `statistics/` | Empty — see “What is not here, and why” |
|
|
| `README.md` | This file |
|
|
|
|
| `AGENTS.md` | The same information written for software — precise formats and full |
|
|
| | reference tables |
|
|
|
|
**Start with `event_log.csv`** if you just want an overview — for this device it is
|
|
the record of what happened, and there are no measurements to read alongside it.
|
|
|
|
## Using an AI assistant, or a database
|
|
|
|
These files work well with an AI assistant, and `AGENTS.md` in this folder is written
|
|
for exactly that — point the tool at the folder and it will find it.
|
|
|
|
One thing to weigh first: this data describes your home and when you are in it, and
|
|
most AI services upload whatever you give them to their own servers. Pick one you
|
|
trust with that, or run a model on your own machine.
|
|
|
|
For anything more than a quick look, load the CSV files into **SQLite**. It handles
|
|
the largest of these files without complaining, and there are free tools with a normal
|
|
windowed interface — DB Browser for SQLite, or DBeaver. Nothing leaves your computer.
|
|
`AGENTS.md` has the exact commands.
|
|
|
|
## `device.json`
|
|
|
|
How the device and each of its channels were configured: the name you gave it, the
|
|
room you put it in and its model.
|
|
`image` is the picture shown in the app — where that points at
|
|
`assets/user_images/...` the file is in `images/`; anything else is stock artwork
|
|
supplied with the app and is not personal data.
|
|
|
|
## `last_known_state.json`
|
|
|
|
How this device was configured, and the last thing it reported to us before this
|
|
export was prepared. It is a snapshot, not a history — if the device has been
|
|
offline, this is how it looked when we last heard from it.
|
|
|
|
**It can mention your other devices by id.** Some devices depend on another one to
|
|
reach us — a battery sensor on Bluetooth, for instance, is relayed by a
|
|
mains-powered device nearby, and its state names the one that relayed it. Those
|
|
ids identify devices of yours, not anybody else's, and nothing those devices
|
|
recorded is in this folder.
|
|
|
|
## `event_log.csv`
|
|
|
|
4 record(s), from 2026-10-21T07:10:53.259Z to 2026-10-21T07:22:58.358Z.
|
|
|
|
| Column | Meaning |
|
|
| --- | --- |
|
|
| `tag` | Which channel of the device the record belongs to |
|
|
| `t` | When it happened, in **milliseconds since 1 January 1970 (UTC)** |
|
|
| `e` | What happened — see the table below |
|
|
| `p` | The details of the event |
|
|
|
|
To turn `t` into a date: divide by 1000 and read the result as a Unix timestamp. In a
|
|
spreadsheet, `=(t/86400000)+DATE(1970,1,1)` gives a normal date and time.
|
|
|
|
**This log is not a full history.** We keep about the newest 100 records for each
|
|
channel and delete older ones as new ones arrive, so it reaches back weeks or months
|
|
rather than years — and a busy channel reaches back less far than a quiet one.
|
|
|
|
### What the `e` values in your file mean
|
|
|
|
| `e` | Meaning |
|
|
| --- | --- |
|
|
| 18 | A lock was locked or unlocked |
|
|
|
|
Only the values that occur in your file are listed. Other kinds of device produce
|
|
other kinds of record.
|
|
|
|
### Reading the `p` column
|
|
|
|
In this export the details are stored as a **list, in a fixed order** — the names are
|
|
not repeated on every row, to keep the file small. Read the values positionally:
|
|
|
|
**`e` = 18** — A lock was locked or unlocked
|
|
|
|
| Position | Name | Meaning |
|
|
| --- | --- | --- |
|
|
| 1 | `deviceId` | the device this event came from |
|
|
| 2 | `state` | the new state |
|
|
|
|
So a row reading `["c8f09e87cea0",0,true]` against `e` = 1 means: this device,
|
|
channel 0, switched on.
|
|
|
|
## Questions you might have
|
|
|
|
**Why does the time not match my clock?** All times are UTC.
|
|
Your time zone is **Europe/Vienna**, so a row stamped `2026-01-15T22:00:00Z`
|
|
is 15 January, late evening, where you are — and a row stamped just after midnight
|
|
UTC may belong to the previous day locally. Spreadsheets do not convert this for
|
|
you: add your offset to the value before grouping by day, or the first hours of
|
|
each local day land in the wrong one.
|
|
|
|
**Some readings look wrong.** Very likely they are — but they are what your device
|
|
sent us, and we have exported it unaltered rather than tidying it up. A device that
|
|
has failed can keep reporting nonsense while it is still listed on your account.
|
|
|
|
---
|
|
|
|
## How this export was produced
|
|
|
|
Device `XLQd6aExkzDOkdyDoV0KQer`, also written `XLQd6aExkzDOkdyDoV0KQer` in some files. Home `2531873`.
|
|
Generated 2026-10-23T07:03:32.760Z.
|
|
Times below are UTC. This home is set to
|
|
**Europe/Vienna**.
|
|
|
|
The same device is identified two ways depending on the file, which is why both forms
|
|
appear above:
|
|
|
|
| Form | Value | Used in |
|
|
| --- | --- | --- |
|
|
| Decimal | `XLQd6aExkzDOkdyDoV0KQer` | our internal records for this device |
|
|
| Hexadecimal | `XLQd6aExkzDOkdyDoV0KQer`, `XLQd6aExkzDOkdyDoV0KQer_<n>` | `device.json`, the event log `tag` |
|
|
|
|
| File | Selected by | Amount |
|
|
| --- | --- | --- |
|
|
| `device.json` | the identifiers above | 1 channel(s) |
|
|
| `event_log.csv` | the event `tag` | 4 record(s) |
|
|
| `statistics/` | the `device_id` tag | 0 row(s) in 0 file(s) |
|
|
| `images/` | the `image` setting of each channel | 0 file(s) |
|
|
|
|
The event log was read from `event_logs` (version 1), covering
|
|
2026-10-21T07:10:53.259Z to 2026-10-21T07:22:58.358Z.
|
|
|
|
This export was made to match what your **free plan** provides.
|
|
|
|
- The event log holds your 5 most recent records.
|
|
|
|
### What is not here, and why
|
|
|
|
Something you expected may be missing for six quite different reasons.
|
|
They are not the same, and the difference matters:
|
|
|
|
**1. It is not part of a device export.** This folder is about one device. We still
|
|
hold the following — it was left out on purpose, not lost, and you can ask for it:
|
|
|
|
- your account details: name, email, language, display preferences, billing
|
|
- your home's layout — room definitions, dashboards and groups
|
|
- automations and scenes, including records of automations running
|
|
- connections to other services such as Google Home
|
|
- account ownership and access rights
|
|
- whole-home monthly energy reports
|
|
- our internal server records
|
|
- the data belonging to every other device in your home
|
|
|
|
The rooms your device itself appears in are named earlier in this file, because its
|
|
own records would be unreadable without them.
|
|
|
|
**2. It is no longer stored.** Detailed measurements are deleted as they age, and the
|
|
event log keeps only the most recent records per channel. Anything past that is gone
|
|
from our systems entirely and cannot be exported by anyone — by us, or by you asking
|
|
again.
|
|
How long each level of detail survives is not fixed, so this export does not quote a
|
|
figure it cannot stand behind.
|
|
|
|
**3. We have it, and this copy does not include it.** Nothing was held back from this
|
|
export — but if you ever receive a copy that is shortened, it will say so here with
|
|
the numbers, so that a shortened copy can never be mistaken for everything we hold.
|
|
|
|
**4. Your device does not record it.** Not every device takes every
|
|
measurement. A relay without power metering, a door or window sensor, an input or
|
|
button report what happened rather than measuring anything; and a device that does
|
|
measure still leaves untouched the columns meant for sensors it does not have.
|
|
That is why there is no `statistics/` content here at all, and there never was.
|
|
Nothing was deleted or held back: it was never recorded in the first place, and no
|
|
request to us can produce it.
|
|
|
|
**5. It is a setting, and we keep no record of what it used to be.** Your tariffs and
|
|
your currency are stored as one current value each: changing one overwrites the old
|
|
one, and nothing anywhere remembers what it was on a given day.
|
|
|
|
**6. It belongs to us rather than to you.** Some of what we store about a device is
|
|
cloud housekeeping — how it was relayed, what was cached for it — rather than anything
|
|
about you, and that is left out. Only photographs you uploaded are included; stock
|
|
artwork supplied with the app is not.
|
|
|
|
### Checking the files arrived intact
|
|
|
|
A `.sha256` file was produced alongside this archive. To confirm nothing was altered
|
|
in transit, run `sha256sum -c <name>.zip.sha256` (Linux) or
|
|
`shasum -a 256 -c <name>.zip.sha256` (macOS) in the folder holding the archive.
|