@pellebot/homebridge-fritz-platform-hb2 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +83 -0
- package/DEBUG.md +72 -0
- package/LICENSE +22 -0
- package/README.md +240 -0
- package/branding/Icon.png +0 -0
- package/config.schema.json +943 -0
- package/index.mjs +19 -0
- package/package.json +69 -0
- package/src/accessories/extras/extras.accessory.js +73 -0
- package/src/accessories/extras/extras.config.js +43 -0
- package/src/accessories/extras/extras.handler.js +799 -0
- package/src/accessories/extras/extras.js +8 -0
- package/src/accessories/extras/extras.setup.js +93 -0
- package/src/accessories/router/router.accessory.js +583 -0
- package/src/accessories/router/router.config.js +51 -0
- package/src/accessories/router/router.handler.js +1024 -0
- package/src/accessories/router/router.js +9 -0
- package/src/accessories/router/router.setup.js +73 -0
- package/src/accessories/router/router.utils.js +22 -0
- package/src/accessories/smarthome/blind/blind.accessory.js +40 -0
- package/src/accessories/smarthome/button/button.accessory.js +89 -0
- package/src/accessories/smarthome/contact/contact.accessory.js +120 -0
- package/src/accessories/smarthome/energy-meter/energy-meter.accessory.js +75 -0
- package/src/accessories/smarthome/energy-temperature/energy-temperature.accessory.js +68 -0
- package/src/accessories/smarthome/humidity/humidity.accessory.js +90 -0
- package/src/accessories/smarthome/lightbulb/lightbulb.accessory.js +112 -0
- package/src/accessories/smarthome/outlet/outlet.accessory.js +117 -0
- package/src/accessories/smarthome/outlet-lightbulb/outlet-lightbulb.accessory.js +233 -0
- package/src/accessories/smarthome/smarthome-button.handler.js +316 -0
- package/src/accessories/smarthome/smarthome.config.js +35 -0
- package/src/accessories/smarthome/smarthome.handler.js +1981 -0
- package/src/accessories/smarthome/smarthome.js +24 -0
- package/src/accessories/smarthome/smarthome.setup.js +160 -0
- package/src/accessories/smarthome/smarthome.utils.js +40 -0
- package/src/accessories/smarthome/smoke/smoke.accessory.js +85 -0
- package/src/accessories/smarthome/switch/switch.accessory.js +56 -0
- package/src/accessories/smarthome/switch-lightbulb/switch-lightbulb.accessory.js +172 -0
- package/src/accessories/smarthome/temperature/temperature.accessory.js +111 -0
- package/src/accessories/smarthome/thermostat/thermostat.accessory.js +186 -0
- package/src/accessories/smarthome/window/window.accessory.js +120 -0
- package/src/accessories/smarthome/window-switch/window-switch.accessory.js +38 -0
- package/src/lib/telegram.js +80 -0
- package/src/package.json +4 -0
- package/src/platform.js +241 -0
- package/src/types/custom.types.js +132 -0
- package/src/types/eve.types.js +112 -0
- package/src/utils/logger.js +68 -0
- package/src/utils/utils.js +132 -0
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Vielen Dank dass du zu `@pellebot/homebridge-fritz-platform-hb2` beitragen willst. Dieser Fork wird **LLM-unterstützt** gepflegt (siehe [`CONCEPT.md`](./CONCEPT.md)) — die Workflow-Erwartungen sind dadurch etwas anders als bei klassischen Open-Source-Projekten.
|
|
4
|
+
|
|
5
|
+
## Issues melden
|
|
6
|
+
|
|
7
|
+
Bevor du ein Issue öffnest, **bitte prüfe**:
|
|
8
|
+
|
|
9
|
+
1. **Ist das Issue schon offen oder gelöst?** Suche in [bestehenden Issues](https://github.com/PelleBot/homebridge-fritz-platform-ng/issues?q=is%3Aissue).
|
|
10
|
+
2. **Ist dein Anliegen im Scope?** Wenn es um Callmonitor, Presence, Network-Watcher, WoL, Childlock oder Telegram-Notifications geht — diese Subsysteme sind aus diesem Fork entfernt (siehe README). Issues dazu werden geschlossen mit Verweis auf den Original-Repo oder alternative Plugins.
|
|
11
|
+
3. **Hast du minimale Infos?** Ein Issue ohne Versions-Angaben + Logs + Config-Auszug ist schwer zu beantworten. Bitte das Issue-Template nutzen.
|
|
12
|
+
|
|
13
|
+
### Was ein guter Bug-Report enthält
|
|
14
|
+
|
|
15
|
+
- **Homebridge-Version**: `homebridge --version`
|
|
16
|
+
- **Node-Version**: `node --version`
|
|
17
|
+
- **Plugin-Version**: `npm ls -g @pellebot/homebridge-fritz-platform-hb2`
|
|
18
|
+
- **FritzBox-Modell** + **FRITZ!OS-Version** (siehe FritzBox-UI → System → Übersicht)
|
|
19
|
+
- **Konkretes Verhalten**: was hast du erwartet, was passiert stattdessen?
|
|
20
|
+
- **Reproduktionsschritte**: wie kann ich (oder ein anderer Tester) das Problem nachstellen?
|
|
21
|
+
- **Logs**: idealerweise mit `"debug": true` in der Plugin-Config, der relevante Ausschnitt (nicht 10.000 Zeilen)
|
|
22
|
+
- **Config-Auszug**: nur die relevante Plugin-Sektion, **ohne Passwort!**
|
|
23
|
+
|
|
24
|
+
## Pull Requests
|
|
25
|
+
|
|
26
|
+
**Vor dem PR**: bitte ein Issue öffnen (oder kommentieren), das die Änderung beschreibt. So vermeidest du Aufwand für Patches, die nicht in den Scope passen oder anders gelöst werden sollten.
|
|
27
|
+
|
|
28
|
+
### PR-Checkliste
|
|
29
|
+
|
|
30
|
+
- [ ] Eine Sache pro PR (kleine, fokussierte Änderungen)
|
|
31
|
+
- [ ] Commit-Messages folgen [Conventional Commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `docs:`, `refactor:`, `chore:`
|
|
32
|
+
- [ ] Beschreibung im PR: Was ändert sich, warum, wie getestet
|
|
33
|
+
- [ ] Tests (falls anwendbar) — siehe `__tests__/` Verzeichnis
|
|
34
|
+
- [ ] Lint passt (`npm run lint`)
|
|
35
|
+
- [ ] `node --check` auf allen geänderten Dateien
|
|
36
|
+
- [ ] Bei Code-Änderungen am Plugin: idealerweise mit einer echten FritzBox getestet (oder gegen die Mocks falls vorhanden)
|
|
37
|
+
- [ ] CHANGELOG.md-Entry nicht selbst hinzufügen — das macht der Maintainer beim Release
|
|
38
|
+
|
|
39
|
+
### Was wir gerne hätten
|
|
40
|
+
|
|
41
|
+
Hohe Priorität (siehe [`ROADMAP.md`](./ROADMAP.md)):
|
|
42
|
+
|
|
43
|
+
- Test-Suite ausbauen (Mock-Layer für AHA-API)
|
|
44
|
+
- FRITZ!Smart Energy 250 OBIS-Reader-Verbesserungen (Phase 2.3)
|
|
45
|
+
- `config.schema.json` Field-Hilfetexte verbessern (Phase 2.1 noch nicht ganz fertig)
|
|
46
|
+
- energy-meter accType ins Schema aufnehmen (Phase 2.1)
|
|
47
|
+
- Doku-Verbesserungen, vor allem zur Migration vom Original
|
|
48
|
+
- Sauberere Logging-Strukturen
|
|
49
|
+
|
|
50
|
+
Niedrige Priorität / wahrscheinlich abgelehnt:
|
|
51
|
+
|
|
52
|
+
- Wiederherstellung der entfernten Subsysteme (Callmonitor, Presence, etc.) — siehe README
|
|
53
|
+
- Große Refactors ohne klaren Mehrwert (CommonJS → ESM im src/-Tree)
|
|
54
|
+
- Features für Geräte die der Maintainer nicht im Testbestand hat (z.B. Rollläden) — können angenommen werden, aber langsamere Iteration
|
|
55
|
+
|
|
56
|
+
## Code-Konventionen
|
|
57
|
+
|
|
58
|
+
- **CommonJS** im `src/`-Baum (intentional, minimal-patch-Prinzip)
|
|
59
|
+
- **ESM** nur im `index.mjs`-Entrypoint (HB 2.0 Anforderung)
|
|
60
|
+
- **HAP-Charakteristiken** über String-Literale (`'uint32'`, `'pr'`, etc.), nicht über `Characteristic.Formats.X`-Statics (siehe Eve-Types-Port)
|
|
61
|
+
- **ES6-Klassen** für neue Custom-Characteristics (siehe `eve.types.js` als Vorlage)
|
|
62
|
+
- **Keine** direkte Veränderung der HAP-Standard-Services (kein `Service.X = function() {...}`)
|
|
63
|
+
|
|
64
|
+
## Maintenance-Workflow
|
|
65
|
+
|
|
66
|
+
Wenn du ein PR öffnest:
|
|
67
|
+
|
|
68
|
+
1. CI läuft automatisch (Lint + Build + Tests).
|
|
69
|
+
2. Der Maintainer reviewed in den nächsten 1-7 Tagen.
|
|
70
|
+
3. Bei Bedarf wird der Maintainer den Patch in einer LLM-Session diskutieren (das ist intern, du siehst nur das Review-Ergebnis).
|
|
71
|
+
4. Bei Approval: Merge in `main`, Aufnahme in den nächsten Release.
|
|
72
|
+
|
|
73
|
+
**Du wirst niemals automatische Bot-Antworten von uns bekommen.** Wenn 7 Tage keine Reaktion kommt, gerne nachfragen — manchmal ist Realität schneller als Github-Notifications.
|
|
74
|
+
|
|
75
|
+
## Credits
|
|
76
|
+
|
|
77
|
+
Dieser Fork baut auf der jahrelangen Arbeit von **Seyit Bayraktar (SeydX)** auf — siehe Original [`SeydX/homebridge-fritz-platform`](https://github.com/SeydX/homebridge-fritz-platform). Weitere Credits:
|
|
78
|
+
|
|
79
|
+
- [@ulfalfa](https://github.com/ulfalfa) für das modifizierte **TR064**-Modul
|
|
80
|
+
- [@simont77](https://github.com/simont77/fakegato-history) für **FakeGato** (im Fork als No-Op gestubbt)
|
|
81
|
+
- [@tbasse](https://github.com/tbasse/fritzbox-callmonitor) für die ursprüngliche **Callmonitor**-Implementierung (im Fork nicht enthalten)
|
|
82
|
+
- AVM für DECT-Hardware + AHA-HTTP-Interface-Doku
|
|
83
|
+
- Alle Beta-Tester und Issue-Reporter aus dem Original-Repo
|
package/DEBUG.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Debugging
|
|
2
|
+
|
|
3
|
+
Wenn das Plugin sich nicht so verhält wie erwartet, gibt es zwei nützliche Debug-Mechanismen.
|
|
4
|
+
|
|
5
|
+
## 1. Plugin-Debug-Mode
|
|
6
|
+
|
|
7
|
+
In deiner `config.json` im FritzPlatform-Block:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"platform": "FritzPlatform",
|
|
12
|
+
"debug": true,
|
|
13
|
+
...
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Anschließend Homebridge neu starten. Die Logs zeigen jetzt detaillierte Informationen zu jedem Polling-Zyklus, AHA-API-Antworten, und Accessory-State-Übergängen.
|
|
18
|
+
|
|
19
|
+
**Wichtig beim Posten von Debug-Logs in Issues:**
|
|
20
|
+
- FritzBox-Passwort entfernen (steht zwar nicht direkt im Log, aber sicherheitshalber prüfen)
|
|
21
|
+
- FritzBox-IP entfernen (z.B. `192.168.x.x` ersetzen durch `192.168.X.X`)
|
|
22
|
+
- AINs können stehen bleiben (sind nicht sensibel)
|
|
23
|
+
- Bridge-PIN nicht mitposten
|
|
24
|
+
|
|
25
|
+
## 2. VS Code Debugger
|
|
26
|
+
|
|
27
|
+
Wenn du den Plugin-Code lokal weiterentwickelst:
|
|
28
|
+
|
|
29
|
+
`.vscode/launch.json` im Repo-Root anlegen:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"version": "0.2.0",
|
|
34
|
+
"configurations": [
|
|
35
|
+
{
|
|
36
|
+
"name": "Launch Homebridge with Plugin",
|
|
37
|
+
"program": "${env:HOME}/homebridge-test/node_modules/homebridge/bin/homebridge",
|
|
38
|
+
"args": [
|
|
39
|
+
"-U", "${env:HOME}/homebridge-test",
|
|
40
|
+
"--plugin-path", "${env:HOME}/homebridge-test/node_modules"
|
|
41
|
+
],
|
|
42
|
+
"request": "launch",
|
|
43
|
+
"skipFiles": ["<node_internals>/**"],
|
|
44
|
+
"type": "pwa-node"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Vorausgesetzt du hast ein Test-Homebridge-Setup unter `~/homebridge-test/` und das Plugin per `npm link` reingezogen.
|
|
51
|
+
|
|
52
|
+
## 3. Plugin-Files direkt anschauen
|
|
53
|
+
|
|
54
|
+
Logs-Pfad bei einem hb-service-Setup (Homebridge UI X):
|
|
55
|
+
|
|
56
|
+
- macOS: `~/Library/Logs/homebridge/`
|
|
57
|
+
- Linux: `/var/log/homebridge/`
|
|
58
|
+
- Via CLI: `hb-service logs`
|
|
59
|
+
|
|
60
|
+
Häufige Fehlerbilder:
|
|
61
|
+
|
|
62
|
+
| Symptom | Wahrscheinliche Ursache |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `Can not find switch data` | Gerät hat keinen schaltbaren Relais-Ausgang (z.B. Energy 250) — falscher `accType` in Config |
|
|
65
|
+
| `Can not find device with AIN: ...` | AIN-Tippfehler in Config, oder Gerät ist beim Plugin-Start offline an der FritzBox |
|
|
66
|
+
| `TypeError: Cannot read properties of undefined (reading 'UUID')` | Custom-Characteristic nicht registriert — sollte mit v6.1.0-hb2patch.1+ nicht mehr auftreten. Falls doch: Plugin-Version prüfen (`npm ls -g @pellebot/homebridge-fritz-platform-hb2`), ggf. neu installieren |
|
|
67
|
+
| `ECONNREFUSED` / TLS-Fehler beim Start | FritzBox-IP, Port (49443 für TR-064 SSL), oder TR-064-Zugriff in FritzBox-UI nicht aktiviert |
|
|
68
|
+
| Polling läuft, aber Werte aktualisieren nicht | FritzBox-User hat keine "Smart Home"-Berechtigung → in FritzBox-UI prüfen |
|
|
69
|
+
|
|
70
|
+
## Issues mit reproduzierbarem Debug-Output melden
|
|
71
|
+
|
|
72
|
+
Wenn du nach diesen Schritten weiter Probleme hast, [öffne ein Issue](https://github.com/PelleBot/homebridge-fritz-platform-ng/issues/new/choose) und füge den relevanten Debug-Log-Auszug an. Bitte das Issue-Template nutzen — es führt durch alle nötigen Informationen.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Seyit Bayraktar <seydx@outlook.de>
|
|
4
|
+
Copyright (c) 2026 PelleBot <pelle-bot@we-success.de>
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# @pellebot/homebridge-fritz-platform-hb2
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="branding/Icon.png" alt="Plugin Logo" width="160">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
> Homebridge 2.0 plugin für AVM FRITZ!DECT Geräte und FRITZ!Box Router-Switches. Fokus: produktiver Betrieb auf Homebridge 2.0 mit Node 22 / 24.
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@pellebot/homebridge-fritz-platform-hb2)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://github.com/homebridge/homebridge)
|
|
12
|
+
[](https://nodejs.org/)
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
Production: läuft produktiv beim Maintainer mit 12 DECT-Thermostaten, 1 DECT-Lampe, 2 Temperatursensoren, einem FRITZ!Smart Energy 250 OBIS-Reader an einem ISKRA-Stromzähler, sowie aktiven Router-Switches für Gast-WLAN und WPS — alles auf Homebridge 2.0.2 + Node 24 + FRITZ!OS 8.x.
|
|
17
|
+
|
|
18
|
+
## Unterstützte Geräte
|
|
19
|
+
|
|
20
|
+
| Gerätetyp | accType | Was wird in HomeKit angezeigt |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| FRITZ!DECT 301 / Comet DECT (Heizkörper-Thermostat) | `thermostat` | Soll-/Ist-Temperatur, Batterie, Fenster-offen-Erkennung |
|
|
23
|
+
| FRITZ!Smart Light 500 / FRITZ!DECT 500 (DECT-Lampe) | `lightbulb` | An/Aus, Helligkeit, Farbe |
|
|
24
|
+
| FRITZ!Smart Control 440 (Temperatursensor) | `temperature` | Temperatur, Batterie |
|
|
25
|
+
| FRITZ!DECT 200 / 210 (schaltbare Steckdose) | `switch` | An/Aus + optional Energiemessung |
|
|
26
|
+
| FRITZ!Smart Energy 250 (OBIS-Reader, an ISKRA o.ä.) | `energy-temperature` | Aktuelle Leistung in W, kumulierte Energie in kWh — als TemperatureSensor exposed, von Apple Home nativ als Zahlen-Tile dargestellt |
|
|
27
|
+
| FRITZ!Box Router (Master) | (via `options`) | Gast-WLAN-Switch, WPS-Switch, optional weitere Toggles |
|
|
28
|
+
|
|
29
|
+
## Architektur
|
|
30
|
+
|
|
31
|
+
Das Plugin nutzt zwei AVM-Schnittstellen:
|
|
32
|
+
|
|
33
|
+
- **TR-064** initialisiert die FritzBox-Verbindung (für AHA-API-Authentifizierung und Router-Steuerung). Konfiguration über `devices[]` mit `master: true`.
|
|
34
|
+
- **AHA-HTTP-API** liest und steuert DECT-Geräte. Konfiguration über `smarthome[]` mit jeweils einer AIN pro Gerät.
|
|
35
|
+
|
|
36
|
+
Das **Router-Accessory** (Master FritzBox) wird per default mit `hide: true` ausgeblendet. Wer Gast-WLAN und WPS als HomeKit-Tile haben will, konfiguriert das über das `options`-Objekt des Master-Devices (`wifi_guest: 'switch'`, `wps: 'switch'`).
|
|
37
|
+
|
|
38
|
+
## Scope-Grenzen
|
|
39
|
+
|
|
40
|
+
Aus dem ursprünglichen Code-Baum entfernt oder nicht migriert — wer eine dieser Funktionen braucht, ist hier nicht richtig:
|
|
41
|
+
|
|
42
|
+
- **Callmonitor** (Anrufüberwachung)
|
|
43
|
+
- **Presence** (WLAN-Anwesenheit)
|
|
44
|
+
- **Network-Watcher**
|
|
45
|
+
- **Wake-on-LAN**
|
|
46
|
+
- **Child Lock** (Internet-Sperren)
|
|
47
|
+
- **Extras-Subsysteme** (DNS-Switch, Fallback-Internet, Phonebook, Telegram-Notifications) — die WiFi/WPS-Switches der Extras-Datei sind ausgenommen und voll funktional
|
|
48
|
+
- **`fakegato-history`** (Eve-App History-Graphen — als No-Op gestubbt weil HAP-v2-inkompatibel)
|
|
49
|
+
|
|
50
|
+
## Voraussetzungen
|
|
51
|
+
|
|
52
|
+
- **Homebridge** ≥ 1.8.5 oder ≥ 2.0.0
|
|
53
|
+
- **Node.js** ≥ 22.12.0 oder ≥ 24.0.0
|
|
54
|
+
- **FRITZ!Box** mit aktiviertem **TR-064-Zugriff** + dediziertem User mit "Smart Home"-Berechtigung (FRITZ!OS 7.x oder neuer)
|
|
55
|
+
- Optional: **homebridge-config-ui-x** für die Web-UI-Konfiguration
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g @pellebot/homebridge-fritz-platform-hb2
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Vor der Veröffentlichung auf npm — direkt aus dem Git-Repo:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/PelleBot/homebridge-fritz-platform-ng.git
|
|
67
|
+
cd homebridge-fritz-platform-ng
|
|
68
|
+
npm pack
|
|
69
|
+
sudo npm install -g ./pellebot-homebridge-fritz-platform-hb2-1.0.0.tgz
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Anschließend Homebridge neu starten (z.B. via Config UI X "Restart"-Button oder `sudo hb-service restart`).
|
|
73
|
+
|
|
74
|
+
## Konfiguration
|
|
75
|
+
|
|
76
|
+
Minimal-Config (`~/.homebridge/config.json`):
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"platforms": [
|
|
81
|
+
{
|
|
82
|
+
"platform": "FritzPlatform",
|
|
83
|
+
"name": "FritzBox",
|
|
84
|
+
"devices": [
|
|
85
|
+
{
|
|
86
|
+
"active": true,
|
|
87
|
+
"name": "FritzBox",
|
|
88
|
+
"host": "192.168.178.1",
|
|
89
|
+
"username": "homebridge-user",
|
|
90
|
+
"password": "DEIN_TR064_PASSWORT",
|
|
91
|
+
"ssl": true,
|
|
92
|
+
"tr064": true,
|
|
93
|
+
"master": true,
|
|
94
|
+
"hide": true,
|
|
95
|
+
"options": {
|
|
96
|
+
"wifi_guest": "switch",
|
|
97
|
+
"wps": "switch"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"smarthome": [
|
|
102
|
+
{
|
|
103
|
+
"active": true,
|
|
104
|
+
"name": "Bad-Thermostat",
|
|
105
|
+
"ain": "099950870710",
|
|
106
|
+
"accType": "thermostat",
|
|
107
|
+
"temperature": true,
|
|
108
|
+
"window": true,
|
|
109
|
+
"battery": true
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"options": {
|
|
113
|
+
"polling": {
|
|
114
|
+
"timer": 30
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Vollständige Optionen über das **Homebridge Config UI X** Plugin grafisch unterstützt.
|
|
123
|
+
|
|
124
|
+
### Router-Switches (Gast-WLAN + WPS)
|
|
125
|
+
|
|
126
|
+
Im Master-Device-Block die `options` ergänzen:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"options": {
|
|
131
|
+
"wifi_guest": "switch",
|
|
132
|
+
"wps": "switch"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Damit erscheinen zwei zusätzliche Tiles in HomeKit. Empfehlung: in der Home-App umbenennen ("Gast-WLAN", "WPS") für klarere Beschriftung als der vom Plugin generierte Default `<Master-Name> Wifi guest` / `<Master-Name> Wps`.
|
|
138
|
+
|
|
139
|
+
### FRITZ!Smart Energy 250 (OBIS-Reader)
|
|
140
|
+
|
|
141
|
+
Die Smart Energy 250 ist ein HAN-FUN-Gateway, der einen externen Stromzähler (ISKRA o.ä.) per OBIS-Reader anbindet. AVM stellt zwei Sub-AINs bereit:
|
|
142
|
+
|
|
143
|
+
- `<base-AIN>-1` → OBIS 1.8 (Verbrauch / Bezug)
|
|
144
|
+
- `<base-AIN>-2` → OBIS 2.8 (Einspeisung)
|
|
145
|
+
|
|
146
|
+
Für ein typisches PV-Setup mit Bezug + Einspeisung legst du **vier `smarthome[]`-Einträge** an — je AIN ein aktueller Watt-Wert und ein kumulierter kWh-Wert:
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"smarthome": [
|
|
151
|
+
{
|
|
152
|
+
"active": true,
|
|
153
|
+
"name": "Aktueller Verbrauch",
|
|
154
|
+
"ain": "152820924403-1",
|
|
155
|
+
"accType": "energy-temperature",
|
|
156
|
+
"obisChannel": "current_power"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"active": true,
|
|
160
|
+
"name": "Gesamt Verbrauch",
|
|
161
|
+
"ain": "152820924403-1",
|
|
162
|
+
"accType": "energy-temperature",
|
|
163
|
+
"obisChannel": "total_energy"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"active": true,
|
|
167
|
+
"name": "Aktuelle Einspeisung",
|
|
168
|
+
"ain": "152820924403-2",
|
|
169
|
+
"accType": "energy-temperature",
|
|
170
|
+
"obisChannel": "current_power"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"active": true,
|
|
174
|
+
"name": "Gesamt Einspeisung",
|
|
175
|
+
"ain": "152820924403-2",
|
|
176
|
+
"accType": "energy-temperature",
|
|
177
|
+
"obisChannel": "total_energy"
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Wieso TemperatureSensor?** HomeKit hat keinen nativen Service für Leistung oder Energie. TemperatureSensor wird hier als Anzeige-Vehikel "missbraucht": Apple Home rendert den Wert nativ als Zahl, plottet Verlaufsgraphen, und ist auf allen HomeKit-Clients ohne Eve-App-Abhängigkeit sichtbar. **Trade-off:** die Einheit zeigt `°C` an, gemeint sind aber `W` oder `kWh`. In der Home-App das Tile umbenennen ("Aktueller Verbrauch (W)", "Gesamt Einspeisung (kWh)") macht's eindeutig.
|
|
184
|
+
|
|
185
|
+
**Richtungs-Trennung:** AVM spiegelt den NET-Power-Wert auf beiden Sub-AINs (gleiche Zahl mit Vorzeichen). Das Plugin trennt das anhand des AIN-Suffixes — `-1` zeigt den Wert nur wenn `power > 0` (Bezug), `-2` zeigt `|power|` nur wenn `power < 0` (Einspeisung). Im Ruhe-/Inverse-Zustand zeigt die jeweils andere Kachel `0`.
|
|
186
|
+
|
|
187
|
+
## Migration vom Original-Plugin
|
|
188
|
+
|
|
189
|
+
Wenn du bisher das unmaintained Original `homebridge-fritz-platform@6.0.19` eingesetzt hast:
|
|
190
|
+
|
|
191
|
+
1. **Backup** dein `~/.homebridge/` Verzeichnis: `cp -R ~/.homebridge ~/.homebridge.backup`
|
|
192
|
+
2. **Update Homebridge auf 2.x**: `sudo npm install -g homebridge@latest`
|
|
193
|
+
3. **Original-Plugin entfernen**: `sudo npm uninstall -g homebridge-fritz-platform`
|
|
194
|
+
4. **Dieses Plugin installieren**: `sudo npm install -g @pellebot/homebridge-fritz-platform-hb2`
|
|
195
|
+
5. **Config anpassen**: nicht-mehr-unterstützte Subsysteme aus der Config entfernen (`presence`, `callmonitor`, `wol`, `childLock`, `network`, `extras`, `telegram` — werden eh ignoriert, aber sauberer wenn weg).
|
|
196
|
+
6. **Homebridge neu starten**
|
|
197
|
+
|
|
198
|
+
Accessory-UUIDs basieren auf AIN + Name. Wer Device-Namen unverändert lässt, behält das HomeKit-Pairing bei und muss nichts in der Home-App neu zuordnen.
|
|
199
|
+
|
|
200
|
+
## Troubleshooting
|
|
201
|
+
|
|
202
|
+
Siehe [`DEBUG.md`](./DEBUG.md) für:
|
|
203
|
+
- Plugin-Debug-Mode aktivieren
|
|
204
|
+
- VS Code Debugger Setup
|
|
205
|
+
- Häufige Fehlerbilder + Lösungen
|
|
206
|
+
- Log-Pfade auf macOS / Linux
|
|
207
|
+
|
|
208
|
+
## Issues melden
|
|
209
|
+
|
|
210
|
+
Bevor du ein Issue öffnest, bitte zusammenstellen:
|
|
211
|
+
|
|
212
|
+
- Homebridge-Version (`homebridge --version`)
|
|
213
|
+
- Node-Version (`node --version`)
|
|
214
|
+
- Plugin-Version (`npm ls -g @pellebot/homebridge-fritz-platform-hb2`)
|
|
215
|
+
- FritzBox-Modell + FRITZ!OS-Version
|
|
216
|
+
- Relevante Log-Auszüge (idealerweise mit `"debug": true` in der Plugin-Config)
|
|
217
|
+
- Config-Auszug (ohne Passwort!)
|
|
218
|
+
|
|
219
|
+
Issue-Template im Repo führt durch alle Punkte.
|
|
220
|
+
|
|
221
|
+
## Maintenance-Modell
|
|
222
|
+
|
|
223
|
+
Dieser Plugin wird **LLM-unterstützt** gepflegt (siehe [`CONCEPT.md`](./CONCEPT.md)):
|
|
224
|
+
|
|
225
|
+
- PelleBot ist menschlicher Maintainer, Repo-Owner, Final-Reviewer
|
|
226
|
+
- Code-Patches, Doc-Updates und Issue-Antworten werden mit Hilfe eines LLM (Claude) entworfen
|
|
227
|
+
- Jede Änderung wird vom menschlichen Maintainer geprüft, bevor sie committed wird
|
|
228
|
+
- Es gibt **keine automatischen Bot-Antworten** auf Issues — Reaktionszeit kann daher etwas länger sein, dafür ist Qualität konsistent
|
|
229
|
+
|
|
230
|
+
Pull Requests willkommen. Issues mit Label `discussion` für offene Architektur-Themen.
|
|
231
|
+
|
|
232
|
+
## Lineage
|
|
233
|
+
|
|
234
|
+
Dieses Plugin baut auf der Code-Basis des [`homebridge-fritz-platform`](https://github.com/SeydX/homebridge-fritz-platform) Projekts von Seyit Bayraktar (SeydX) auf. Ohne seine jahrelange Vorarbeit (2020-2022) wäre die HB-2.0-Migration nicht in dieser Zeit machbar gewesen.
|
|
235
|
+
|
|
236
|
+
Lizenz: MIT — siehe [`LICENSE`](./LICENSE), Copyright-Halter sind dort beide aufgeführt.
|
|
237
|
+
|
|
238
|
+
## Disclaimer
|
|
239
|
+
|
|
240
|
+
Alle Produkt- und Firmennamen (FRITZ!Box®, AVM®, HomeKit™, etc.) sind Marken ihrer jeweiligen Eigentümer. Die Verwendung impliziert keine Affiliation oder Empfehlung. Dieses Plugin ist **kein offizielles AVM- oder Apple-Produkt**.
|
|
Binary file
|