npm package: @isky04/node-red-xgzp6859d
Description: Node-RED node for XGZP6859D digital pressure sensor (0-40kPa)
Author: Alexander
Latest version: 0.0.3

# Node-RED XGZP6859D Pressure Sensor Node

Ein Node-RED Node für den XGZP6859D digitalen Drucksensor mit einem Messbereich von 0-40kPa.

## Features

- **Druckmessung**: Präzise Druckmessung im Bereich 0-40kPa
- **Temperaturmessung**: Integrierte Temperaturkompensation
- **Mehrere Einheiten**: Unterstützung für kPa, Pa, bar und psi
- **I2C Kommunikation**: Einfache Anbindung über I2C-Bus
- **Kontinuierliche Messung**: Einstellbare Messintervalle
- **Statusüberwachung**: Überwachung der Sensordatenvalidität

## Hardware Anforderungen

- XGZP6859D Drucksensor
- Raspberry Pi oder kompatibles Board mit I2C-Unterstützung
- I2C-Bus im System aktiviert

## Installation

### 1. I2C-Bus aktivieren (Raspberry Pi)

```bash
# I2C aktivieren
sudo raspi-config

# Oder über die Kommandozeile
sudo apt-get install i2c-tools
sudo modprobe i2c-dev
```

### 2. Node installieren

```bash
# In das Node-RED Verzeichnis wechseln
cd ~/.node-red

# Node installieren
npm install node-red-contrib-xgzp6859d-pressure-sensor

# Node-RED neu starten
node-red-stop
node-red-start
```

### 3. Hardware verkabeln

| Sensor Pin | Raspberry Pi Pin |
|------------|------------------|
| VCC        | 3.3V (Pin 1)     |
| GND        | Ground (Pin 6)   |
| SDA        | GPIO 2 (Pin 3)   |
| SCL        | GPIO 3 (Pin 5)   |

## Verwendung

### Node-Konfiguration

1. **Name**: Bezeichnung für den Node
2. **I2C Bus Number**: I2C-Bus Nummer (meist 1 für Raspberry Pi)
3. **I2C Address**: I2C-Adresse in Hex (Standard: 6D)
4. **Measurement Interval**: Messintervall in ms (100-60000)
5. **Output Unit**: Ausgabeeinheit (kPa, Pa, bar, psi)
6. **Auto Start**: Automatischer Start der Messung

### Eingabe-Nachrichten

- `true` oder `"start"` - Kontinuierliche Messung starten
- `false` oder `"stop"` - Kontinuierliche Messung stoppen
- `"read"` - Einmalige Messung
- Beliebiger anderer Wert - Einmalige Messung

### Ausgabe-Format

```json
{
  "payload": {
    "pressure": 25.123,
    "pressurePa": 25123,
    "temperature": 23.45,
    "unit": "kPa",
    "timestamp": "2024-01-15T10:30:00.000Z",
    "status": 1
  },
  "topic": "XGZP6859D"
}
```

### Beispiel-Flow

```json
[
  {
    "id": "xgzp6859d",
    "type": "xgzp6859d",
    "name": "Drucksensor",
    "busNumber": 1,
    "i2cAddress": "6D",
    "measurementInterval": 1000,
    "outputUnit": "kPa",
    "autoStart": true
  },
  {
    "id": "debug",
    "type": "debug",
    "name": "Debug Output"
  }
]
```

## Technische Details

### Sensor-Spezifikationen

- **Messbereich**: 0-40kPa
- **Genauigkeit**: ±1% FSO
- **Auflösung**: 24-bit
- **Betriebsspannung**: 1.8V-3.6V
- **I2C-Adresse**: 0x6D (Standard)
- **Temperaturbereich**: -40°C bis +125°C

### I2C-Register

- **0x00**: Product ID
- **0x01**: Revision ID
- **0x06-0x08**: Pressure Data (24-bit)
- **0x09-0x0A**: Temperature Data (16-bit)
- **0x0A**: Status Register
- **0x0B**: Control Register

### Datenkonvertierung

- **Druck**: Raw-Wert / 4096 = Pascal
- **Temperatur**: Raw-Wert / 256 = Celsius

## Fehlerbehebung

### Sensor nicht gefunden

1. I2C-Bus überprüfen:
   ```bash
   sudo i2cdetect -y 1
   ```

2. Verkabelung prüfen
3. Spannung am Sensor messen (sollte 3.3V sein)

### Ungültige Daten

- Status-Register überprüfen
- Sensor neu initialisieren
- I2C-Adresse verifizieren

### Performance-Probleme

- Messintervall erhöhen
- I2C-Bus-Geschwindigkeit reduzieren
- Andere I2C-Geräte überprüfen

## Lizenz

MIT License - siehe LICENSE-Datei für Details.

## Support

Bei Problemen oder Fragen:
1. GitHub Issues verwenden
2. Node-RED Forum konsultieren
3. Dokumentation des XGZP6859D Sensors lesen

## Changelog

### Version 1.0.0
- Erste Version
- Grundlegende Druck- und Temperaturmessung
- I2C-Kommunikation
- Mehrere Ausgabeeinheiten
- Kontinuierliche Messung