Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
翻訳待ち
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Snow conditions for ski resorts in Austria, Switzerland, Italy, France, Germany, Czechia, Slovakia, Poland, Finland, Norway, Spain and Slovenia, published at liftradar.eu.
data): json/<country>/<resort>.json, json/index.json, json/stats.json,
history/<country>/<resort>.json and schema/…, published by the fetcher twice a day, plus
archive/ and logs/, which aren't served by the site. Don't edit it by hand: every publish
replaces it.
json/index.json: all resorts, with only what the table, map and sources pages read; the
full report (stations, lift and slope breakdowns, avalanche bulletin, ...) is in
json/<country>/<resort>.json.json/stats.json: daily totals per country and region over the last 365 days (resorts
tracked and open; open lifts, slopes and km, of open resorts only), for stats.html.history/<country>/<resort>.json: the key numbers of every run over the last 365 days
(open lifts and slopes, snow, status), one list per value, for the resort page's graphs.archive/<country>/<resort>/<season>.jsonl (e.g. 2026-27.jsonl, from 1 July): every
run, one JSON object per line, with the full report when it changed. Until 29 October
2026 the archive was a file per changed report plus an index.json per resort, served by
the site; those files remain in the data branch's git history.logs/<YYYY-MM-DDTHH-MMZ>.json: each run's log (UTC), what failed for which resort and the
run's warnings, kept for 30 days. Not served by the site (the site doesn't show errors).json/at/soell-skiwelt.json, as copies of the area's report with its id (not in
index.json); new links should use the area's, json/at/skiwelt.json. Their archives
stop at that date, and they have no history. Ski Arlberg's three areas became one resort
on 7 November 2026, json/at/ski-arlberg.json, before their season opened: the old files
(st-anton-am-arlberg, lech-zuers, warth-schroecken) are gone.main, this): index.html (table), map.html (map),
resort.html?r=<country>/<resort> (one resort: all its data, its area on the map and
its history), 3d.html?r=<country>/<resort> (the resort in 3D, as a diorama), api.html (the JSON files, for developers, with openapi.json: the same in OpenAPI 3.1, referring to the JSON Schemas by URL, so keep its paths and descriptions in step with api.html), sources.html (data sources, incl. every URL in the
current data) and about.html (what the values mean, and their caveats), plain
static pages that load the JSON in the browser. No build step locally.
The ski-area outlines, the resorts' points and the pistes and lifts on the map come from the ski
tiles at /ski/, built weekly and not kept in git; see Ski tiles.
assets/mini-map-light.webp, mini-map-dark.webp and mini-map.svg are the shaded relief
and country borders of the small map in the table page's header, drawn by
scripts/mini_map.py from Terrain Tiles and Natural Earth (see the script); the page adds the
resort dots from the data. Redraw them only if resorts appear outside their frame..github/workflows/pages.yml combines both, generates the translated pages (see Translations), minifies assets/*.js and *.css with esbuild, compacts json/index.json with jq, and deploys to the Cloudflare Worker liftradar
(the files, plus the MCP server at /mcp, see MCP; wrangler.jsonc; needs the CLOUDFLARE_API_TOKEN and
CLOUDFLARE_ACCOUNT_ID secrets), on every push to main and after every data update. It's
also at https://liftradar.liftradar.workers.dev. _headers lets any origin read json/,
history/, schema/ and openapi.json, and 404.html is served for missing files. Cloudflare redirects about.html to /about (and so on), keeping the query string: the deploy rewrites
the links to the pages without .html, so search engines don't reach them through a redirect. Every page but
404.html has a canonical address on liftradar.eu (the resort and 3D pages set theirs, with ?r=, in setResortAddress()), so the copy on
workers.dev and the addresses with filters aren't taken for duplicates.
scripts/sitemap.mjs writes sitemap.xml on deploy, from the site as it goes out: every page in every language,
each resort's page, and its 3D map when the ski tiles have its area, at the addresses without .html. Translations
with noindex (still partly in English) are left out. robots.txt points to it; Cloudflare adds its own lines to it.
What readers need to know (timing, status, snow, lifts and slopes, avalanche danger, the map,
history, and a section for developers) is on the site: About the data
(about.html). It keeps to what matters to a reader: how each value is computed per source is in
../liftradar-fetcher/README.md, "Data details". Keep both up to date with the fetcher. The format is defined by the JSON Schema in schema/
(resort.schema.json, index.schema.json, history.schema.json, stats.schema.json).
This is the beginning of the README. Read the rest at the original. Read the full README ↗