# YachtMemory Kettenkraft-Historie v1.2

Vollständiges Datei-Set für die Kettenkraft-Historie nach dem YachtMemory History Widget Standard.

## Fachliche Korrektur gegenüber v1.1

Die Kettenkraft-Historie liest jetzt die vom Sensor bereits über 20 Sekunden gemittelte Datenbankkategorie:

```text
chainforceAVG20
```

Nach außen bleibt der stabile fachliche Schlüssel unverändert:

```text
chainforce
```

Damit gilt:

- Datenbankquelle: `ENVdata.category = chainforceAVG20`
- API-Serie: `chainforce`
- Anzeige: Kettenkraft
- Einheit: kg
- History-Aggregation: AVG oder MAX je Zeitfenster

Die zentrale History-Engine wurde nicht verändert. Ein kleiner Adapter in der API entkoppelt die physische Datenbankkategorie vom öffentlichen Messgrößenschlüssel.

## Darstellung

- 6 h / 24 h: Linienansicht
- 1 Monat / 1 Jahr: zusätzliche sichtbare Punkte für isolierte gültige Buckets
- `spanGaps = false`
- keine Interpolation
- fehlende Buckets bleiben `null`

Eine logarithmische Achse wurde nicht eingeführt. Die erwarteten Werte von ungefähr 10 bis 600 kg sind linear sinnvoll darstellbar; außerdem enthält die Messreihe legitime Nullwerte.

## Installation

```bash
cd /var/www/app.yachtmemory.net

cp api/public/chain_force_history.php \
   /var/www/app.yachtmemory.net/api/public/

mkdir -p /var/www/app.yachtmemory.net/public_widgets/chain-force-history

cp -a public_widgets/chain-force-history/. \
   /var/www/app.yachtmemory.net/public_widgets/chain-force-history/
```

## Syntaxprüfung

```bash
php -l api/public/chain_force_history.php
php -l public_widgets/chain-force-history/index.php
node --check public_widgets/chain-force-history/widget.js
```

## API-Prüfung

```bash
curl -sS \
'https://app.yachtmemory.net/api/public/chain_force_history.php?vessel=silent_sea&lang=de&range=1y&aggregation=max' \
| jq '{mapping: .metadata.source_mapping, statistics: .statistics, quality: .quality.coverage}'
```

Erwartetes Mapping:

```json
{
  "chainforce": "chainforceAVG20"
}
```

## Widget-Test

```text
https://app.yachtmemory.net/public_widgets/chain-force-history/?vessel=silent_sea&lang=de
```
