---
title: "HomeWizard Wi-Fi P1 Meter (HWE-P1)"
description: "Netzbezug, Einspeisung, Leistung je Phase L1–L3 und Gaszählerstand eines DSMR-Smart-Meters über die lokale HTTP API des HomeWizard P1 Meter in TapHome."
url: "https://taphome.com/de/compatibility/homewizard-p1-meter-http/"
language: de
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["http","electric-meter","smart-meter","p1-port","dsmr","3-phase","wifi","gas-meter","local-api"]
  questions: ["Wie integriere ich den HomeWizard Wi-Fi P1 Meter in TapHome?","Was misst die TapHome-Vorlage für den HomeWizard Wi-Fi P1 Meter?","Wie aktiviere ich die Local API des HomeWizard P1 Meter in der App HomeWizard Energy?","Wie verbinde ich den HomeWizard P1 Meter per HTTP mit TapHome?","Benötigt der HomeWizard P1 Meter ein USB-C-Netzteil?","Warum zeigen die Geräte Phase L2 Power, Phase L3 Power oder Gas Meter keinen Wert?","Wie oft aktualisiert der HomeWizard P1 Meter die Leistungs- und Gaswerte?"]
---

# HomeWizard Wi-Fi P1 Meter (HWE-P1)

Kommunikation: Packet Parser → HTTP

> Netzwerkadresse
> 
> TapHome erreicht dieses Gerät unter der beim Import eingegebenen Adresse. Geben Sie dem Gerät eine feste Adresse — eine IP-Reservierung im Router oder seinen mDNS-Namen, falls es einen unterstützt —, sonst funktioniert die Integration nicht mehr, sobald der Router die Adresse ändert.
> 
> [Netzwerkvorbereitung](https://taphome.com/de/docs/setup/network-preparation/)

## Integrationsanleitung

Der HomeWizard Wi-Fi P1 Meter (HWE-P1) wird in den P1-Port eines DSMR-Smart-Meters (intelligenter Stromzähler) gesteckt und stellt dessen Messwerte im lokalen Netzwerk bereit. TapHome kommuniziert mit ihm über die lokale HTTP API (v1) des Zählers auf Port 80 — ein Cloud-Konto ist nicht nötig, und der gesamte Datenverkehr bleibt im LAN. Die Vorlage fragt den Endpunkt `/api/v1/data` ab und stellt die Netzleistung, die Energie für Netzbezug und Einspeisung, die Werte je Phase und den Stand des Gaszählers bereit.

Diese Community-Vorlage stellt sechs Geräte bereit: **Energy Import** (Netzbezug), **Energy Export** (Einspeisung), **Phase L1 Power**, **Phase L2 Power**, **Phase L3 Power** (Leistung je Phase) und **Gas Meter** (Gaszähler).

## Hardwareanschluss

Der P1 Meter wird in den P1-Port (RJ12-Stecker) des Smart Meters des Netzbetreibers gesteckt und funktioniert mit einphasigen und dreiphasigen Zählern.

- **Stromversorgung** — Smart Meter ab SMR 5.0 versorgen den P1 Meter direkt über den P1-Port. Ältere Smart Meter benötigen für den P1 Meter ein USB-C-Netzteil. Die Leistungsaufnahme liegt unter 1 W.
- **WLAN** — der Zähler verbindet sich mit einem 2,4-GHz-WLAN (802.11 b/g/n).
- **Umgebung** — IP51, für den Innenbereich.

> [!NOTE]
> Smart Meter mit HAN-Port statt P1-Port benötigen einen HomeWizard HAN-Konverter.

## Konfiguration

### P1 Meter mit dem WLAN verbinden

Die Ersteinrichtung erfolgt in der App HomeWizard Energy (iOS 13 oder Android 8 oder neuer). Für die Einrichtung benötigt der Zähler ein gesichertes WLAN mit Internetzugang.

1. Stecken Sie den P1 Meter in den P1-Port des Smart Meters (und in ein USB-C-Netzteil, wenn das Smart Meter älter als SMR 5.0 ist).
2. Halten Sie die Taste am P1 Meter gedrückt, bis die LED blau leuchtet.
3. Verbinden Sie das Telefon in der App HomeWizard Energy mit dem eigenen WLAN-Zugangspunkt des Zählers und geben Sie das Passwort Ihres Heim-WLANs ein.
4. Verwenden Sie ein 2,4-GHz-WLAN, das im selben Netzwerk (LAN) liegt wie der TapHome Core.

### Lokale API aktivieren

Die lokale API ist ab Werk deaktiviert und muss einmalig in der App HomeWizard Energy aktiviert werden:

1. Öffnen Sie in der App **Settings → Meters → *Ihr Zähler*** und schalten Sie **Local API** ein.
2. Notieren Sie die IP-Adresse des Zählers — sie wird in den Zählereinstellungen der App angezeigt und lässt sich auch im Router finden.
3. Prüfen Sie, ob die API funktioniert: Öffnen Sie `http://<IP ADDRESS>/api/v1/data` in einem Browser im selben Netzwerk — es sollte ein JSON-Dokument mit der letzten Messung erscheinen.

> [!NOTE]
> API v1 hat keine Authentifizierung — es wird vorausgesetzt, dass der Zähler und der TapHome Core in einem gemeinsamen, vertrauenswürdigen lokalen Netzwerk liegen.

### IP-Adresse

Reservieren Sie in den DHCP-Einstellungen Ihres Routers eine feste IP-Adresse für den Zähler, damit sich die Adresse nach einem Neustart des Routers nicht ändert. Geben Sie diese Adresse beim Import der Vorlage in TapHome als Parameter **IP-Adresse** ein.

### Aktualisierungsraten

Der Zähler aktualisiert die P1-Daten mit einem DSMR-5.0-Smart-Meter jede Sekunde, mit älteren DSMR-Versionen alle 10 Sekunden. Die Gaswerte werden alle 5 Minuten (DSMR 5.0) bzw. jede Stunde (ältere Zähler) aktualisiert. Die Vorlage fragt die Stromwerte alle 5 Sekunden und den Gaswert alle 60 Sekunden ab.

## Gerätefunktionen

### Netzleistung und Energie

Zwei Stromzählergeräte teilen die bidirektionale P1-Messung in die zwei Richtungen auf, die TapHome getrennt erfasst:

- **Energy Import** — momentane Leistung, die aus dem Netz bezogen wird (kW), und der kumulierte Zählerstand des Bezugs (kWh). Die Zählerstände für Bezug Tarif 1 und Tarif 2, die Netzfrequenz, die WLAN-Signalstärke und das Modell des Smart Meters sind als Service-Attribute verfügbar.
- **Energy Export** — momentane Leistung, die ins Netz eingespeist wird (kW), und der kumulierte Zählerstand der Einspeisung (kWh); Einspeisung Tarif 1 und Tarif 2 sind als Service-Attribute verfügbar.

Das Smart Meter meldet einen einzigen vorzeichenbehafteten Wert der Gesamtleistung (negativ = Einspeisung); jedes Gerät zeigt seine eigene Richtung und steht auf 0, solange die Leistung in die andere Richtung fließt. Meldet das Smart Meter keinen Gesamtzählerstand für Bezug oder Einspeisung, addiert die Vorlage Tarif 1 und Tarif 2.

### Überwachung je Phase

**Phase L1 Power**, **Phase L2 Power** und **Phase L3 Power** sind schreibgeschützte Variablen mit der Wirkleistung der jeweiligen Phase in Watt. Phasenspannung und Phasenstrom sind an jedem Phasengerät als Service-Attribute verfügbar. Einphasige Smart Meter melden nur L1 — die Geräte für L2 und L3 zeigen dann keinen Wert.

### Gaszähler

**Gas Meter** ist eine schreibgeschützte Variable mit dem kumulierten Gaszählerstand (m³), den das Smart Meter meldet. Ist am Smart Meter kein Gaszähler angeschlossen, zeigt das Gerät keinen Wert.

## Fehlerbehebung

- **Keine Daten / Verbindungsfehler** — prüfen Sie, ob der Schalter Local API in der App HomeWizard Energy noch aktiviert ist und ob `http://<IP ADDRESS>/api/v1/data` in einem Browser aus demselben Netzwerk wie der TapHome Core antwortet.
- **Werte werden nach einem Routerwechsel nicht mehr aktualisiert** — die IP-Adresse des Zählers hat sich wahrscheinlich geändert; reservieren Sie in den DHCP-Einstellungen des Routers eine feste Adresse und aktualisieren Sie die IP-Adresse des Moduls.
- **Zähler im Netzwerk finden** — der Zähler meldet sich per mDNS als `_hwenergy._tcp` mit einem Instanznamen wie `p1meter-<6 hex digits>`; der TXT-Eintrag `api_enabled` zeigt, ob die lokale API eingeschaltet (`1`) oder ausgeschaltet (`0`) ist.
- **Phasen- oder Gasgeräte zeigen keinen Wert** — einphasige Zähler melden keine Daten für L2/L3, und der Gaswert erscheint nur, wenn am Smart Meter ein Gaszähler angeschlossen ist. Das ist erwartetes Verhalten, kein Fehler.
- **Einige Werte fehlen** — die API sendet nur die Felder, die das angeschlossene Smart Meter liefert; welche Werte sichtbar sind, hängt daher vom Modell des Smart Meters ab, nicht vom P1 Meter selbst.

## Verfügbare Geräte 6

Diese Geräte erscheinen nach dem Import in TapHome.

HomeWizard Wi-Fi P1 Meter Modul

Benutzerdefinierte Variablen

|                       |
|-----------------------|
| `P1Data` (string) = 0 |

Lesen (Modul)

```taphome
VAR response := SENDHTTPREQUEST("/api/v1/data");
IF response.IsSuccess
    P1Data := response.Content;
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
```

Energy Import Stromzähler

Serviceattribute

|                   |
|-------------------|
| Import tariff 1   |
| Import tariff 2   |
| Line frequency    |
| Wi-Fi signal      |
| Smart meter model |

Gesamtverbrauch lesen

```taphome
var total := parsejson(P1Data, "total_power_import_kwh", true);
IF ISNULL(total)
    var t1 := parsejson(P1Data, "total_power_import_t1_kwh", true);
    var t2 := parsejson(P1Data, "total_power_import_t2_kwh", true);
    return(IF(ISNULL(t1), 0, todouble(t1)) + IF(ISNULL(t2), 0, todouble(t2)));
END
return(todouble(total));
```

Bedarf lesen

```taphome
var p := parsejson(P1Data, "active_power_w", true);
IF ISNULL(p)
    return(0);
END
return(MAX(0, todouble(p)) / 1000);
```

Serviceattribute

Import tariff 1

```taphome
IF(ISNULL(parsejson(P1Data, "total_power_import_t1_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_import_t1_kwh", true)), "F3") + " kWh")
```

Import tariff 2

```taphome
IF(ISNULL(parsejson(P1Data, "total_power_import_t2_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_import_t2_kwh", true)), "F3") + " kWh")
```

Line frequency

```taphome
IF(ISNULL(parsejson(P1Data, "active_frequency_hz", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_frequency_hz", true)), "F2") + " Hz")
```

Wi-Fi signal

```taphome
IF(ISNULL(parsejson(P1Data, "wifi_strength", true)), "-", TOSTRING(todouble(parsejson(P1Data, "wifi_strength", true)), "F0") + " %")
```

Smart meter model

```taphome
IF(ISNULL(parsejson(P1Data, "meter_model", true)), "-", parsejson(P1Data, "meter_model", true))
```

Energy Export Stromzähler

Serviceattribute

|                 |
|-----------------|
| Export tariff 1 |
| Export tariff 2 |

Gesamtverbrauch lesen

```taphome
var total := parsejson(P1Data, "total_power_export_kwh", true);
IF ISNULL(total)
    var t1 := parsejson(P1Data, "total_power_export_t1_kwh", true);
    var t2 := parsejson(P1Data, "total_power_export_t2_kwh", true);
    return(IF(ISNULL(t1), 0, todouble(t1)) + IF(ISNULL(t2), 0, todouble(t2)));
END
return(todouble(total));
```

Bedarf lesen

```taphome
var p := parsejson(P1Data, "active_power_w", true);
IF ISNULL(p)
    return(0);
END
return(MAX(0, 0 - todouble(p)) / 1000);
```

Serviceattribute

Export tariff 1

```taphome
IF(ISNULL(parsejson(P1Data, "total_power_export_t1_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_export_t1_kwh", true)), "F3") + " kWh")
```

Export tariff 2

```taphome
IF(ISNULL(parsejson(P1Data, "total_power_export_t2_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_export_t2_kwh", true)), "F3") + " kWh")
```

Phase L1 Power Variable

Serviceattribute

|         |
|---------|
| Voltage |
| Current |

Lesen

```taphome
var p := parsejson(P1Data, "active_power_l1_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
```

Serviceattribute

Voltage

```taphome
IF(ISNULL(parsejson(P1Data, "active_voltage_l1_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l1_v", true)), "F1") + " V")
```

Current

```taphome
IF(ISNULL(parsejson(P1Data, "active_current_l1_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l1_a", true)), "F2") + " A")
```

Phase L2 Power Variable

Serviceattribute

|         |
|---------|
| Voltage |
| Current |

Lesen

```taphome
var p := parsejson(P1Data, "active_power_l2_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
```

Serviceattribute

Voltage

```taphome
IF(ISNULL(parsejson(P1Data, "active_voltage_l2_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l2_v", true)), "F1") + " V")
```

Current

```taphome
IF(ISNULL(parsejson(P1Data, "active_current_l2_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l2_a", true)), "F2") + " A")
```

Phase L3 Power Variable

Serviceattribute

|         |
|---------|
| Voltage |
| Current |

Lesen

```taphome
var p := parsejson(P1Data, "active_power_l3_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
```

Serviceattribute

Voltage

```taphome
IF(ISNULL(parsejson(P1Data, "active_voltage_l3_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l3_v", true)), "F1") + " V")
```

Current

```taphome
IF(ISNULL(parsejson(P1Data, "active_current_l3_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l3_a", true)), "F2") + " A")
```

Gas Meter Variable

Lesen

```taphome
var v := parsejson(P1Data, "total_gas_m3", true);
IF ISNULL(v)
    return(NaN);
END
return(todouble(v));
```

**Verbindung:** Packet Parser → HTTP

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard             |
|----------------------|----------------------|
| IP address           | Beim Import eingeben |

## Verwandte Dokumentation

- [Packet-Parser-Integration](https://taphome.com/de/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/de/docs/integration/packet-parser/)
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/)
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/)

