{"id":51200246,"url":"https://github.com/crunchip77/iobroker.autodoc","last_synced_at":"2026-06-28T00:01:03.408Z","repository":{"id":350096974,"uuid":"1198520082","full_name":"crunchip77/ioBroker.autodoc","owner":"crunchip77","description":"ioBroker adapter: on-demand HTML/Markdown documentation, optional AI, onboarding \u0026 admin profiles","archived":false,"fork":false,"pushed_at":"2026-06-17T21:51:26.000Z","size":3813,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T23:17:05.622Z","etag":null,"topics":["documentation","html","iobroker","iobroker-adapter","json","markdown","smarthome"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crunchip77.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG_OLD.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-01T13:56:41.000Z","updated_at":"2026-06-17T21:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/crunchip77/ioBroker.autodoc","commit_stats":null,"previous_names":["crunchip77/iobroker.autodoc"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/crunchip77/ioBroker.autodoc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crunchip77%2FioBroker.autodoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crunchip77%2FioBroker.autodoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crunchip77%2FioBroker.autodoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crunchip77%2FioBroker.autodoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crunchip77","download_url":"https://codeload.github.com/crunchip77/ioBroker.autodoc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crunchip77%2FioBroker.autodoc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34872279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","html","iobroker","iobroker-adapter","json","markdown","smarthome"],"created_at":"2026-06-28T00:01:02.686Z","updated_at":"2026-06-28T00:01:03.402Z","avatar_url":"https://github.com/crunchip77.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](admin/autodoc.png)\n\n# ioBroker.autodoc\n\nAutomatically generates structured documentation (HTML, Markdown, JSON) for your ioBroker installation — on demand, on a schedule, or when the system changes.\n\n**Version:** 0.9.46\n\n**Installation**\n\n1. Open **[ioBroker Admin](https://www.iobroker.net/#en/documentation)** and install **`iobroker.autodoc`** from the adapter list.\n2. Official adapter index: **[ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories)** (**latest**). Maintainer workflow / PR: **[TODO — § 1.1 Release](TODO.md#release-veroeffentlichung)**.\n\n| | |\n| --- | --- |\n| **Repository** | [github.com/crunchip77/ioBroker.autodoc](https://github.com/crunchip77/ioBroker.autodoc) |\n| **Issues** | [GitHub Issues](https://github.com/crunchip77/ioBroker.autodoc/issues) |\n\n**CI:** ![Test and Release](https://github.com/crunchip77/ioBroker.autodoc/workflows/Test%20and%20Release/badge.svg)\n\n## Description\n\nThe adapter scans adapters, hosts, rooms, functions, scripts, aliases, userdata, and related metadata, then writes **three profiles** in one run:\n\n| Profile | Audience | Focus |\n| --- | --- | --- |\n| **Admin** | Operators | Instances, hosts, resources, scripts, maintenance hints, diagnosis |\n| **User** | Household | Rooms, devices, automations in plain language |\n| **Onboarding** | Guests | Welcome, capabilities, QR / link to the latest HTML |\n\nExports are written under `/files/autodoc.\u003cinstance\u003e/` (latest HTML + rotated timestamped `.md` / `.html` / `.json`). Optional notifications and **opt-in AI** text (separate providers) can enrich the docs.\n\n## Requirements\n\n- **Node.js** ≥ 22 (see `package.json` → `engines`)\n- **ioBroker.js-controller** ≥ 6.0.11 (declared in `io-package.json` → `common.dependencies`)\n- **ioBroker Admin** ≥ 7.6.20 (declared in `io-package.json` → `common.globalDependencies`) — needed for the **json** configuration UI and `jsonConfig` features (e.g. `textSendTo`, collapsible panels)\n\nNo other adapters are **required** for AutoDoc itself. Optional: a **web server** adapter if you want to open generated files from outside the Admin file browser; exports are always available under `/files/autodoc.\u003cinstance\u003e/`. **PDF** profiles need the optional npm package **`puppeteer`** (bundled Chromium) installed in the adapter directory — see **Optional PDF export** below.\n\n## Configuration\n\n### Documentation instance overview\n\nConfigure the instance in **ioBroker Admin** (tabs for basics, manual notes, advanced options, notifications, AI). Generation can be triggered manually, on startup, on a timer, and after adapter changes (debounced).\n\n**Documentation language** (Basic settings) drives headings and fixed wording in **all HTML profiles** and in Markdown. It also controls the **short summary lines** for inventory comparison (“changes since last run”) and for **changelog** cards when you regenerate — older stored changelog rows are shown in the **current** export language, not the language they had when saved.\n\nIn **Advanced → What to include \u0026 limits**, **Hide “changes since last run” in Admin exports** removes only the yellow delta box at the top of the **Admin** HTML system chapter and the matching subsection in **Admin** Markdown. The **Changelog** chapter, **User**, and **Onboarding** exports are not affected.\n\nThe **User / Family** profile adds a brief everyday sentence after the title block when AutoDoc found **at least one** inventory change since the previous snapshot (skipped on the first run and when nothing changed). **Onboarding** does not include that extra notice.\n\nShort **orientation** for operators (install paths, tabs, exports, hashes, checker): **[`docs/user-guide/README.md`](docs/user-guide/README.md)** · **German** config wiki (tabs, screenshots, demo scenario): **[`docs/user-guide/README.de.md`](docs/user-guide/README.de.md)**.\n\nUseful **states** (selection): `action.generate`; **`action.exportPdf`** (writes **PDF** profiles from the latest HTML under `/files` when optional **`puppeteer`** is installed in the adapter directory — no full regeneration); `info.lastGeneration` / `info.nextGeneration`; `info.htmlUrlAdmin` / `info.htmlUrlUser` / `info.htmlUrlOnboarding`; `info.templateVersion` (HTML template / renderer alignment); `info.forumCardPlain` (plaintext “system card” for forums, updated when documentation is generated).\n\n**Exports \u0026 storage:** after each successful run, **`documentation.exportHashes`** holds **SHA-256 (hex)** for the latest MD / JSON / Admin HTML served from `/files`, and **merges digests for `autodoc-{admin,user,onboarding}.pdf`** whenever a PDF export step wrote those files. Canonical full Markdown, JSON model, and Admin HTML live **only** under **`/files/`** (`autodoc-latest.*`, profile HTML). The states **`documentation.markdown`**, **`documentation.html`**, and **`documentation.json`** hold **short placeholders** only — use **`info.htmlUrl*`**, **`/files/`**, or download actions for full text.\n\n### Media, Redis, and state storage (short)\n\n- **Canonical exports** always live under **`/files/autodoc.\u003cinstance\u003e/`** and are **overwritten** each run (no accumulation of old HTML versions there).\n- **`documentation.*` body states** are **placeholders only** (large payloads are not duplicated in the object database). Scripts and integrations that need **full text** read **`/files/`** or use **`info.htmlUrl*`** / download actions.\n- **Photos and large binaries:** do **not** store big images or blobs as **large state values** in ioBroker’s **object database** — **especially with Redis** (binary payloads inflate RAM). Use **external URLs** (your NAS, HTTP server) or small **inline SVG** diagrams; the same guideline keeps **jsonl** setups predictable. AutoDoc keeps **full** Markdown/HTML/JSON under **`/files/`**; **`documentation.markdown`**, **`documentation.html`**, and **`documentation.json`** are **short placeholders** only — not a media store.\n- Rationale, options, and future media work: [`PLAN.md` — Media (MVP) \u0026 limits](PLAN.md#architektur-medien-mvp) and [Architecture boundaries](PLAN.md#architektur-grenzen).\n\n### Public base URL\n\nThe **Onboarding** HTML includes a QR code and a **Copy link** control. Both use the same target: the onboarding file under `/files/autodoc.\u003cinstance\u003e/autodoc-onboarding.html`, prefixed with the **ioBroker base URL** from the adapter settings (**Advanced** tab: *ioBroker base URL (optional)*).\n\n- Set the base URL to what you use in the browser to reach ioBroker (scheme, host, port if needed), **without** a trailing slash. Examples: `https://home.example.com:8081`, `http://192.168.1.10:8081`.\n- If it is **empty or wrong**, guests scanning the QR code or using the copied link from another device may get a broken or internal-only URL. After changing it, run documentation generation again so the HTML is rebuilt.\n\n### Optional filesystem export (Docker / NAS)\n\n**Filesystem export path** writes the three HTML profiles to a real directory (in addition to ioBroker’s `/files/…` storage). In **Docker**, map a host folder into the container and set **export path** to the **container-side** path (not the Unraid/host path). See the field help in Admin for a short reminder.\n\n### Optional PDF export (Puppeteer)\n\n**Best effort:** after a successful documentation run, you can create **`autodoc-admin.pdf`**, **`autodoc-user.pdf`**, and **`autodoc-onboarding.pdf`** from the same HTML that is stored under `/files/` (headless Chromium via **`puppeteer`**, declared as an **optional** npm dependency — same major line as **`@mermaid-js/mermaid-cli`**). Enable **Generate PDF after each documentation run** in **Advanced** next to the filesystem export, or trigger **`action.exportPdf`** manually. PDFs are written under **`/files/autodoc.\u003cinstance\u003e/`** and mirrored to **Filesystem export path** when that path is set. **Embedded Mermaid SVG** (when mmdc ran during generation) prints without extra network; **jsDelivr** client Mermaid still needs internet during the PDF step. Without a working Chromium stack, PDF creation is skipped with a clear log line — HTML/Markdown generation is unaffected.\n\n### AI context hints (guest vs resident)\n\n**AI context hints** are injected only into the LLM prompt; they are **not** printed in the documentation. For **guest onboarding**, prefer everyday facts. Heavy IT or project wording (adapters, repos, …) can cause the model to leak jargon into guest text; a **safety step** then replaces that AI block with neutral guest wording. That is intentional. The **resident / family** profile does not use the same guest-only restriction. Configure them in Admin under **KI documentation / AI documentation** (after enabling a provider); full wording appears in the hint above the field.\n\nCopy-paste **examples** (field IDs, syntax): [**Mermaid**](#mermaid-cookbook-examples) · [**JSON arrays**](#json-cookbook-snippets) · [**Custom CSS**](#html-custom-css-examples). **Stable URLs** for bookmarks / Admin `staticLink`: **`blob/main/README.md#…`** — GitHub opens Markdown in **Preview** (readable); fragments match heading slugs below (same names as local `#…` links). Scroll-to-section is **best effort** in GitHub’s viewer; **repository root** URLs like `…/ioBroker.autodoc#json-cookbook-snippets` remain unreliable. After large README edits, **re-check slugs** against **`blob/main`**.\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#documentation-instance-overview`\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#public-base-url`\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#optional-pdf-export-puppeteer`\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#mermaid-cookbook-examples`\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#json-cookbook-snippets`\n\n`https://github.com/crunchip77/ioBroker.autodoc/blob/main/README.md#html-custom-css-examples`\n\n\u003ch3 id=\"mermaid-cookbook-examples\"\u003eMermaid cookbook examples\u003c/h3\u003e\n\nPaste into **My documentation → Mermaid diagram** (`manualMermaidDiagram`). Use **plain line breaks** inside the field (no HTML). Prefer **`flowchart LR`** so wide diagrams fit the HTML page; very large graphs are hard to read — split concepts across separate diagrams if needed.\n\n**Embedded SVG:** when **`@mermaid-js/mermaid-cli`** is installed in the adapter directory and generation succeeds, diagrams become inline SVG in HTML (good for offline / PDF). If embedding fails or the CLI is missing, the export keeps a `\u003cpre class=\"mermaid\"\u003e` block and the browser may load Mermaid from jsDelivr — see **Optional PDF export** and **`docs/user-guide`** (“Optional Mermaid CLI”).\n\nMinimal left-to-right overview:\n\n```text\nflowchart LR\n  Internet([Internet]) --\u003e Router[Router]\n  Router --\u003e ioB(ioBroker host)\n  ioB --\u003e Heating[Heating adapters]\n  ioB --\u003e Lights[Lights / rooms]\n```\n\nSmall **subgraph** (group related nodes):\n\n```text\nflowchart LR\n  subgraph LAN[\"Home LAN\"]\n    A[js-controller] --\u003e B[javascript.0]\n    A --\u003e C[other instances]\n  end\n```\n\n**Tips**\n\n- Stick to **supported Mermaid** constructs you have seen working elsewhere; exotic directives may break `mmdc`.\n- **Auto host topology** is separate (`autoMermaidHostGraph`); hide it with **`mermaidAuto`** in **Admin/User** hide lists (see `EXTRA_HIDDEN_CHAPTER_IDS` in `lib/docTemplateConfig.js`). The **manual** Mermaid diagram lives under **`manual`** on **Admin** — hide that chapter if you want it gone. On **User**, field help lists **`mermaid`** and **`mermaidAuto`** separately; on **Onboarding**, use **`mermaid`** for the owner diagram in the welcome area (see that tab’s help).\n\n\u003ch3 id=\"json-cookbook-snippets\"\u003eJSON cookbook snippets\u003c/h3\u003e\n\nAdmin stores these fields as **strings**; content must be **valid JSON** (`\"` keys/strings, no trailing commas). Empty roster means defaults: use **`[]`** where you do not want to override order or hide anything.\n\nGerman **scenario page** (“hide first vs reorder”, copy-paste walkthrough anchored to Step 6): **[`README.de.md` — Wiki — Step 6](https://github.com/crunchip77/ioBroker.autodoc/blob/main/docs/user-guide/README.de.md#wiki-admin-json-cookbook)** (`docs/user-guide/`).\n\n**Allowed chapter ids** come from the adapter (`lib/docTemplateConfig.js`):\n\n| Profile | Order fields | Hidden fields | Notes |\n| --- | --- | --- | --- |\n| Admin | `adminChapterOrderJson` | `adminHiddenChaptersJson` | Order default: `manual`, `system`, …, `appendices`. Extra hide-only id: **`mermaidAuto`** (auto-host topology). The **manual** Mermaid diagram is part of **`manual`** — omit that chapter entirely to drop it from Admin exports. |\n| User | `userChapterOrderJson` | `userHiddenChaptersJson` | Keys include `manual`, `ai`, `guestHelp`, `atAGlance`, `rooms`, `scripts`, `routines`, `ownerPlaybook`, `mermaid`, `adapters`, `custom`, `system`, `troubleshooting`. |\n| Onboarding | `onboardingChapterOrderJson` | `onboardingHiddenChaptersJson` | Keys include `welcome`, `quickstart`, `tips`, `guestHelp`, `stats`, `ai`, `capabilities`, `mermaid`, `rooms`, `routines`, `ownerPlaybook`, `automations`, `adapters`, `custom`, `hint`, `system`, `manual`. |\n\n**Reorder Admin** — put system overview directly after manual context:\n\n```json\n[\"manual\", \"system\", \"adapters\", \"rooms\", \"scripts\", \"schedule\", \"userdata\", \"aliases\", \"maintenance\", \"diagnosis\", \"troubleshooting\", \"custom\", \"changelog\", \"appendices\"]\n```\n\n**Hide** Admin changelog and appendices:\n\n```json\n[\"changelog\", \"appendices\"]\n```\n\n**Hide User scripts chapter:**\n\n```json\n[\"scripts\"]\n```\n\n**Reorder User** — bring **`system`** up after rooms (full key list, same ids as default order otherwise):\n\n```json\n[\"manual\", \"guestHelp\", \"ai\", \"atAGlance\", \"rooms\", \"system\", \"scripts\", \"routines\", \"ownerPlaybook\", \"mermaid\", \"adapters\", \"custom\", \"troubleshooting\"]\n```\n\n**Custom Markdown chapters** (`customDocSectionsJson`) — array of objects with **`title`**, **`body`** (or **`bodyMarkdown`**), optional **`profiles`** (`\"admin\"` | `\"user\"` | `\"onboarding\"`). Omit **`profiles`** to show in **all** profiles.\n\n```json\n[\n  {\n    \"title\": \"Emergency contacts\",\n    \"body\": \"## Numbers\\n- **Repair:** …\\n- **Utility:** …\",\n    \"profiles\": [\"user\", \"onboarding\"]\n  },\n  {\n    \"title\": \"Operator notes\",\n    \"body\": \"## Rack layout\\nShort **Markdown** only; keep secrets out.\",\n    \"profiles\": [\"admin\"]\n  }\n]\n```\n\nMax **12** sections; very long bodies are truncated at generation time.\n\n\u003ch3 id=\"html-custom-css-examples\"\u003eHTML custom CSS examples\u003c/h3\u003e\n\nUnder **Admin → HTML export \u0026 extra sections**, **Font stack** (`htmlFontStack`) and **Extra CSS** (`htmlExtraCss`) tweak only the **exported HTML** (not Markdown). The renderer wraps pages in `lib/htmlRenderer.js` (`wrapPage`): sidebar links live under **`nav ul li a`**, layout uses **`#layout`**, **`nav`**, and **`main`** — inspect generated HTML if you need a selector.\n\n**Font stack:** one CSS `font-family` list (risky characters `\u003c \u003e { }` are stripped). Example paste:\n\n```css\n\"Source Serif 4\", Georgia, serif\n```\n\n**Extra CSS:** append short rules after the built-in stylesheet. Prefer **existing palette tokens** (`var(--link)`, `var(--nav-bg)`, `var(--border)`, `var(--surface)`, … from the `:root` / `body.dark` blocks); **`htmlThemePreset`** swaps those via `html.autodoc-preset-*` classes — there is no separate `--accent` token on `:root` (some components use `var(--accent, #0066cc)` as a **local** fallback only).\n\nStarter snippet you can paste into **Extra CSS**:\n\n```css\nnav { width: 260px; }\nnav ul li a:hover { opacity: 0.92; }\nh2 { border-bottom-color: var(--link); }\n```\n\n## Features (overview)\n\n- Discovery across instances, hosts, enums, scripts, aliases, userdata, system config\n- Standalone HTML per profile with search, dark mode, responsive layout\n- Markdown + JSON export and version history (rotation configurable)\n- Maintenance-oriented hints (documentation score for open checklist items; disabled instances listed as inventory, not penalized)\n- Multilingual Admin UI strings (EN / DE / FR full; more locales with English copy until translated — [CONTRIBUTING](CONTRIBUTING.md#admin-ui-translations-i18n)); generated documentation text follows **Documentation language**, including changelog/compare summary lines and optional inventory-change notices in User exports\n- Optional AI providers (e.g. Ollama, Groq, Anthropic) with strict opt-in\n\nFor **roadmap and planning**: [`TODO.md`](TODO.md) (open work at the top, full completed checklists in the appendix) and [`PLAN.md`](PLAN.md) (vision, rationale, architecture brainstorming).\n\n**Contributing / releases:** see [`CONTRIBUTING.md`](CONTRIBUTING.md).\n\n## Changelog\n\n**Admin `common.news`** in `io-package.json` lists only versions **published on npm** (Adapter Checker **E2004**). The detailed sections below are the **user-facing** changelog (Git-era releases plus npm); older entries are in [`CHANGELOG_OLD.md`](CHANGELOG_OLD.md).\n\n### 0.9.46 (2026-06-28)\n\n- (mcm1957) `info.summary` state now outputs English text by default\n- (mcm1957) Periodic documentation generation switched from `setInterval` to `setTimeout`-at-end — prevents overlapping runs\n- (mcm1957) `autoGenerateInterval` code-level minimum clamp of 0.1 h with warning log\n- (mcm1957) README: GitHub install instruction removed (E6013)\n- (fix) `common.news` 0.9.37 / 0.9.38 / 0.9.44 translated into es, it, nl, pl, pt, ru, uk, zh-cn (E1144)\n- (fix) `admin` minimum version bumped to `\u003e=7.8.23`\n\n### 0.9.45 (2026-06-18)\n\n- **ioBroker conformance — object structure:** Added channel parent objects (`action`, `documentation`, `info`, `versioning`) to `instanceObjects` in `io-package.json` — required by ioBroker object checker (E3009) for **ioBroker.repositories** review.\n- **ioBroker conformance — timers:** `adapter.delay()` (ioBroker base class) for AI retry delays; `window.setTimeout` / `globalThis.setTimeout` in browser-side and utility code — no bare `setTimeout` in adapter runtime (E5005/W5004 fixes).\n- **i18n:** All 10 supported languages translated via `@iobroker/adapter-dev` (Google Translate); `de` and `fr` remain manually maintained. Missing keys synced across all locales.\n- **Dependencies:** `@iobroker/adapter-core` → 3.4.1, `cytoscape` → 3.34.0.\n\n### 0.9.44 (2026-05-14)\n\n- **Chapter JSON \u0026 logs:** Each documentation run evaluates Admin/User/Onboarding chapter order and hide JSON. **English** adapter **`warn`** lines report invalid JSON shape, **unknown** chapter ids, and **duplicate** ids, with a pointer to the **[German user guide — JSON cookbook](https://github.com/crunchip77/ioBroker.autodoc/blob/main/docs/user-guide/README.de.md#wiki-admin-json-cookbook)**. Identical warning **lines** are **deduplicated** per adapter **log** reference (process lifetime). Values read only from **legacy** native keys are labeled **`…Json via native …`** in the log. **`lib/chapterConfigWarnings.js`**; wired from **`DocumentModel.buildDocumentModel`**. **`EXTRA_HIDDEN_CHAPTER_IDS`** exported from **`docTemplateConfig`** for hide-list validation.\n- **Admin i18n:** Extended **`?`** help for the six chapter order/hide JSON fields (log + GitHub links under **Which chapters to show (per profile)**) — **DE/FR** translated, **EN** + other locales as fallbacks.\n- **Quick Start (5.x.2):** Room highlight **`HIGHLIGHT_CATEGORY_RANK`** extended (**`leak`**, **`co2`**, **`valve`**, **`weather`**, **`sensor`**, …); function areas with equal **member count** tie-break by **name**.\n- **HTML template:** **`RENDERER_VERSION`** in **`lib/htmlRenderer.js`** bumped so instances that skip “generate on start” still **regenerate once** after the adapter update (**`info.templateVersion`** vs renderer marker).\n- **Docs maintainer:** **`docs/user-guide/assets/SCREENSHOTS.md`** notes that tooltip-only changes often need **no** new PNG.\n\n### 0.9.43 (2026-05-13)\n\n- **Admin / Adapter Checker:** **`common.news`** lists only semver versions that exist as tarballs on **npm** (ioBroker Adapter Checker **E2004**). Removed **`news`** keys **0.9.39**, **0.9.40**, and **0.9.41** — those bumps never shipped to the registry between **0.9.38** and **0.9.42**. Full narrative for **0.9.41–0.9.39** is kept in **`CHANGELOG_OLD.md`** (README changelog window matches the **`common.news`** version set).\n- **`common.news` copy:** **0.9.42** admin news now compares against **0.9.38** (last npm release before **0.9.42**).\n- **Runtime:** unchanged.\n\n### 0.9.42 (2026-05-13)\n\n- **npm / process:** Patch **0.9.42** — **no functional change** vs **0.9.38** (previous tarball on npm before **0.9.42**); `package.json` / `io-package.json` / README **`Version:`** aligned for npm publish only (release-script housekeeping).\n\n### 0.9.38 (2026-05-12)\n\n- **Advanced — storage (historical npm note):** release **0.9.38** introduced default **`metadata`** for **new** instances so full exports prefer **`/files/`** (`common.news`). **All** installs now behave like that **without** a toggle — **`documentationStatesMode`** was dropped in **0.9.39** (always placeholders + **`/files/`**).\n\n[Older changelogs can be found there](CHANGELOG_OLD.md)\n\n## License\n\nMIT License\n\n\u003c!-- Maintainer: Admin staticLinks — under chapter visibility: English README `#json-cookbook-snippets`, Wiki DE `#wiki-admin-json-cookbook`. Schnellzugriff in README.de; SCREENSHOTS table for PNG drift; Sync jsonConfig/i18n if URLs change. --\u003e\n\nCopyright (c) 2026 crunchip77 \u003c41550245+crunchip77@users.noreply.github.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrunchip77%2Fiobroker.autodoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrunchip77%2Fiobroker.autodoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrunchip77%2Fiobroker.autodoc/lists"}