# P2000Dashboard — handleiding (v1.0.0-beta)

Dit is de eerste versie die door anderen dan de maker getest wordt. Dit document is bedoeld om
je op weg te helpen: installeren, de belangrijkste functies, wat er nog ruw is, en hoe je iets
terugmeldt. Het groeit mee met de app — onvolledig of onduidelijk? Meld dat gerust, dat is
precies waar een bètafase voor is.

## Wat is dit

Een Windows-desktopapplicatie die live P2000-hulpdiensten-pagerberichten (ambulance/brandweer/
politie/KNRM) ontvangt, verrijkt en overzichtelijk toont: voertuignummers worden herkend en
omgezet naar leesbare namen, afkortingen in de meldingtekst worden uitgeschreven, de regio wordt
automatisch bepaald, en meldingen verschijnen — waar mogelijk — automatisch op een kaart. Klik je
een melding aan, dan zie je in het "Tijdlijn incident"-tabblad de eerdere/latere submeldingen van
hetzelfde incident (bijv. een brand die opschaalt van klein naar zeer grote brand).

## Status: bèta

De basis (ontvangen, verrijken, tonen, filteren, tijdlijn, kaart) werkt en wordt dagelijks door
de maker zelf gebruikt. "Bèta" betekent hier vooral: nog niet door anderen op andere machines,
andere PDW-configuraties en andere gebruikspatronen getest. Zie "Bekende beperkingen" hieronder
voor wat al bekend is; de rest moeten we samen ontdekken.

## Wat heb je nodig

- **Windows.** Deze release is self-contained (de .NET-runtime zit al in de zip) — je hoeft dus
  zelf **niets** te installeren om de app te kunnen draaien.
- Een **PDW-pagerdecoder** die al P2000-verkeer voor je decodeert (bv. gevoed door een RTL-SDR
  of Airspy op 169.500 MHz). Zonder PDW komt er niets binnen — deze app decodeert zelf geen
  radiosignaal, alleen de PDW-output.
- Optioneel: [edge-tts](https://github.com/rany2/edge-tts) als je gesproken meldingen wilt
  (`pip install edge-tts`, moet op PATH staan). Zonder edge-tts blijft de app stil, ook als je
  het in de wizard aanzet.
- Optioneel: een MQTT-broker, als je incidenten wilt doorpublicaten (bijv. naar Home Assistant).
- Optioneel: SFTP-toegang tot een eigen website, als je de nieuwe publieke live-feed wilt
  gebruiken (zie hieronder).

## Installatie

1. **Uitpakken.** Pak de zip uit in een map naar keuze. Je krijgt twee submappen:
   - `P2000Dashboard/` — de hoofdapplicatie.
   - `PdwBridge/` — een companion-tool die PDW-output doorstuurt naar P2000Dashboard (via TCP of
     seriële poort) en tot 5000 berichten buffert als P2000Dashboard even niet draait (herstart,
     update, reboot) — zo gaat er niets verloren.
2. **PDW koppelen.**
   - **TCP (aanbevolen):** configureer PDW's command-file-filter om `PdwBridge/PdwBridge.exe`
     aan te roepen met het juiste argument. `PdwBridge` start zichzelf vanzelf op zodra het
     eerste gefilterde bericht binnenkomt — je hoeft het dus niet zelf handmatig te starten.
   - **Seriële poort (rechtstreeks):** sla `PdwBridge` over en kies in de eerste-keer-wizard
     (hieronder) voor de seriële-poort-optie.
3. **`P2000Dashboard/P2000Dashboard.exe` starten.** De eerste keer verschijnt een
   setup-schermpje:
   - Verbinding: TCP (naar `PdwBridge`) of rechtstreeks seriële poort.
   - MQTT (optioneel, uit door standaard).
   - Gesproken meldingen (optioneel, uit door standaard).
   - **Nieuw:** publieke live-feed naar je eigen website (optioneel, uit door standaard) — zie
     hieronder.
   - "Later instellen" mag ook; de wizard komt dan gewoon bij de volgende start terug.
   - Er wordt meteen een basisvulling meegeleverd (capcodes, plaatsnamen, termenlijst,
     voertuigendatabase), dus je hoeft niet eerst zelf een database te vullen.
4. **Filters/regels instellen** (optioneel, kan ook later). Zonder regels zie je gewoon alles.

Volledige configuratie-referentie (elke instelling los uitgelegd): zie `README.md` in de repo.

## Nieuw in deze release

- **Kustwacht/KNRM/Reddingsbrigade-meldingen.** Deze gebruiken een heel andere opbouw dan
  brandweer/ambulance/politie (stationscodes + materieelcodes in vrije tekst i.p.v. genummerde
  voertuigcodes) — worden nu herkend, uitgeschreven en als voertuig in het overzicht gezet, en
  ook gegeocodeerd (op de stationsnaam, want deze meldingen hebben geen straatadres).
- **Publieke live-feed voor je eigen website.** Optioneel (uit door standaard): de app kan
  periodiek een samenvatting van recente meldingen + kaart naar je eigen website exporteren via
  SFTP, met een kant-en-klare pagina (`PublicWeb/index.html`) die je er zelf één keer bij
  uploadt. Zie de `PublicFeed*`-instellingen in de wizard of `README.md`.

## Bekende beperkingen (bèta)

- **Tijdlijn kan bij stad-niveau-geocoding twee losse incidenten ten onrechte koppelen.** Als een
  melding niet tot een straat/POI herleid kan worden (sommige ambulancemeldingen), valt de
  geocoder terug op alleen de plaatsnaam. Twee ongerelateerde incidenten in dezelfde stad kunnen
  dan als "hetzelfde incident" in de tijdlijn verschijnen.
- **Een klein aantal Kustwacht/KNRM-stationscodes wordt nog niet herkend** (bekende gevallen:
  BRD, DBG, KDN, MAA, SLS, WSC, TXO) — deze vallen terug op de kale code i.p.v. de volledige
  plaatsnaam. Kom je er een tegen die je wél kunt duiden: graag melden.
- **Publieke live-feed toont nu een platte chronologische lijst**, nog geen escalatie-clustering
  (meerdere updates van hetzelfde incident samen groeperen) zoals de tijdlijn-tab in de app zelf
  dat wel doet — mogelijke vervolgstap.

## Updaten

Een nieuwe versie uitpakken over je bestaande map is voldoende. De release bevat
`defaultP2000Dashboard.db` (alleen de basisvulling), nooit `P2000Dashboard.db` zelf — je eigen
database met opgebouwde geschiedenis en regels wordt dus nooit overschreven.

## Feedback en bugs melden

Dit is een vroege bètafase — vrijwel alles is nuttige feedback: dingen die niet werken, dingen
die verwarrend zijn, meldingen die verkeerd herkend worden, functies die je mist. Meld het via
de kanalen die de maker met je gedeeld heeft toen je toegang tot deze (nog private) repository
kreeg.
