Auteur Topic: Interesse in nieuwe PDW (3.2b01) versie?  (gelezen 37461 keer)

e60, PD7AC (en 2 gasten) bekijken dit topic.

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #165 Gepost op: 30 mei 2026, 13:19:33 »
Het klin kt wellicht een beetje gek, maar is het ook mogelijk een soort vertraging in de mail-functie te maken waarin PDW meerdere berichten verzameld en in 1 keer verzend. Ik zal uitleggen waarom;
Ik gebruik PDW voor NAT 3 en dan met name voor Prorail. Deze versturen een bericht naar meerdere RIC's, maar met dezelfde tekst. Nu krijg ik bij elke RIC een mail, maar van mij zou dat ook in één keer mogen mits het bericht hetzelfde is. Zeker als je een RIC in je filter ??????? aanmaakt met als filter tekst "ICB Zwolle" dan krijg je voor 1 bericht soms wel 10 mailtjes.  Een fijne (maar niet broodnodige) optie zou zijn om een vertraging in te bouwen en dan één mail met 1 tekst en meerdere RIC's.

De uitdaging zit hem hier in wat is "hetzelfde" als er 1 spatie of komma tussen zit dan matched de logica niet en heb je netto hetzelfde resultaat. Heb je een 3 tal verschillende voorbeeld meldingen?

Mijn eerste ingeving zou zijn laat mail los en maak een stap met MQTT of Webhook export naar homeassistent + node-red daar heb je zeker weten "blokkeer bericht als het niet gewijzigd is". Die koppel je weer aan push berichten naar mobiel of een mail functie en je bent volledig in control.


  • Block Duplicate: AAN, optie 2 "Message is the same as previous"   Tweede RIC met zelfde tekst → compleet geblokkeerd (geen scherm, geen mail)
  • Filter: 1 entry, capcode *, tekst ICB Zwolle -> Één filter matcht alles, eerste bericht telt

Dit geeft 1 mail in plaats van 10, maar je ziet ook maar 1 regel op scherm, de andere 9 RICs verdwijnen compleet. Optie 2 vergelijkt met het vorige bericht in de monitor-pane. Als er één ander bericht tussendoor komt (van een andere groep), wordt het volgende "ICB Zwolle" weer als nieuw gezien en triggert opnieuw een mail.

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #166 Gepost op: 30 mei 2026, 13:36:40 »
Er is iets mis met MQTT in deze laatste versie (3.5).
In 3.4.3a was het nog in orde.
Er worden namelijk heel vaak lege labels doorgestuurd in de JSON.

{"message":"bericht weggehaald","address":"0753158","label":"","time":"14:28:48","date":"30-05-26","timestamp":1780144128}

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #167 Gepost op: 30 mei 2026, 13:39:03 »
Er is iets mis met MQTT in deze laatste versie (3.5).
In 3.4.3a was het nog in orde.
Er worden namelijk heel vaak lege labels doorgestuurd in de JSON.

{"message":"bericht weggehaald","address":"0753158","label":"","time":"14:28:48","date":"30-05-26","timestamp":1780144128}

Tnx en welke instellingen gebruik je in MQTT?

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #168 Gepost op: 30 mei 2026, 13:43:33 »
[MQTT]
Enabled=1
Broker=hier staat een ip-adres :-)
Port=1883
ClientId=PDW-01
User=
Password=
Topic=pdw/messages
QoS=0
Retain=0
LogToFile=0
PadCapcodes=0
FlatJson=1
TopicSuffix=0
SendIn=0
Fields=142

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #169 Gepost op: 30 mei 2026, 17:33:00 »
Intussen uitgeklaard.
Duplicate messages worden nu ook verzonden via MQTT, ook al zie je ze niet op je scherm doordat 'block duplicates' aan staat.
Het eerste bericht krijgt een label via MQTT, het volgende/de volgende berichten krijgen geen label mee via MQTT.
Deze laatste zag ik dus plots verschijnen.
Is aan te passen door 'Filtered + monitor only messages' aan te zetten in het MQTT-menu.

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #170 Gepost op: 30 mei 2026, 21:45:55 »
Intussen uitgeklaard.
Duplicate messages worden nu ook verzonden via MQTT, ook al zie je ze niet op je scherm doordat 'block duplicates' aan staat.
Het eerste bericht krijgt een label via MQTT, het volgende/de volgende berichten krijgen geen label mee via MQTT.
Deze laatste zag ik dus plots verschijnen.
Is aan te passen door 'Filtered + monitor only messages' aan te zetten in het MQTT-menu.

Klopt it was not a bug, it was a feature ;-) Er was behoefte aan een raw feed, zonder reject/duplicate detectie -> pure info uit de ether. Ik had daar all-messages voor gebruikt, dat heb ik nu in 3.5.1 teruggedraaid. Dan werkt het voor jou weer als vanouds, en is er een 4e optie bij gekomen raw-feed.

De mail instellingen zijn aangepast, betere error meldingen en een log to disk optie. Je kan nu onafhankelijk van elkaar de subject of body checkboxes aanvinken voor de gewenste velden. Hiermee kan je het naar eigen hand zetten zonder dat ik een hele pushover.net API implementatie hoef te schrijven. Wil je de meldingen in de titel van je pushbericht of juist de tijd, of wil je daar het capcode label laten zien etc.

EDIT: ik deel zo een losse link

Zomaar wat voorbeelden www.pushover.net pusht op basis van een PDW email:



Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #171 Gepost op: 30 mei 2026, 22:02:04 »

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #172 Gepost op: Gisteren om 07:02:59 »
Ik heb nog een suggestie/leuke toevoeging:
Op een of andere manier een melding kunnen uitsturen als het ontvangstmetertje minder dan een bepaald percentage aangeeft.
Kan bijvoorbeeld zoals bij de filters, een command file laten aanroepen en een aantal argumenten kunnen meegeven ofzo.

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #173 Gepost op: Gisteren om 07:05:34 »
Wat zullen we als drempel waarde aanhouden? Daar kunnen we wel een mail alert aan koppelen schat ik in.

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #174 Gepost op: Gisteren om 07:33:15 »
Geen idee, instelbaar maken?
Ik zit normaal altijd op 100%, tenzij  er op de een of andere manier iets aan de hand is: mast die uit ligt, storing van bij de buren (elektromagnetisch veronderstel ik), zelf een ontvanger/antenneprobleem.
Vooral voor dat laatste is het interessant, dan kan je actie ondernemen.
Mail vind ik persoonlijk minder interessant, ik stuur alles naar een database en verwerk van daaruit richting Telegram.
Ik weet niet wat nu de grenswaarden van dat metertje zijn, dat is soms rood en soms staat er een uitroepteken bij ook...

Offline SeaSparks

  • Gevorderd Lid
  • ***
  • Berichten: 192
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #175 Gepost op: Vandaag om 09:19:59 »
Is er behoefte aan push berichten naar mobiel?

Pushover.net heeft een dienst van eenmalig 5dollar.

Dan krijg je meldingen op je mobiel binnen vanuit PDW?


Verzonden vanaf mijn iPhone met Tapatalk

Wat dat betreft ben ik echt een leek. Werking MQTT ben ik nog aan het uitzoeken, maar hoe werkt dit? Iemand tips?

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #176 Gepost op: Vandaag om 10:14:16 »
MQTT stuur je naar een MQTT broker, waar ook een website data uit kan lezen oid. Je hebt met MQTT een gestandaardiseerde databus.

Offline dajero

  • Beginnend Lid
  • **
  • Berichten: 67
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #177 Gepost op: Vandaag om 13:06:44 »
Het klin kt wellicht een beetje gek, maar is het ook mogelijk een soort vertraging in de mail-functie te maken waarin PDW meerdere berichten verzameld en in 1 keer verzend. Ik zal uitleggen waarom;
Ik gebruik PDW voor NAT 3 en dan met name voor Prorail. Deze versturen een bericht naar meerdere RIC's, maar met dezelfde tekst. Nu krijg ik bij elke RIC een mail, maar van mij zou dat ook in één keer mogen mits het bericht hetzelfde is. Zeker als je een RIC in je filter ??????? aanmaakt met als filter tekst "ICB Zwolle" dan krijg je voor 1 bericht soms wel 10 mailtjes.  Een fijne (maar niet broodnodige) optie zou zijn om een vertraging in te bouwen en dan één mail met 1 tekst en meerdere RIC's.

Om dit op te vangen heb ik iets gelijkaardigs in eigen beheer genomen.
Eerst de meldingen wegschrijven naar een database en dan de meldingen om de x-aantal tijd ophalen en bundelen.

Offline Wopper

  • Gevorderd Lid
  • ***
  • Berichten: 911
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #178 Gepost op: Vandaag om 15:42:45 »
Versie 3.5.3a https://www.dropbox.com/scl/fi/xid18hiaguo4kzr2k5sv4/pdw3.5.3a.exe?rlkey=je85cjidjmzkslnjjysdyjhl0&dl=0


Met MySQL ondersteuning, je kan native naar een DB communiceren in 3 database schemas. In dit topic ging het eerder over een DB koppeling gemaakt door @Hans013 . Hans heeft zijn bron informatie gedeeld (dankjewel!) en ik heb deze in PDW opgenomen, degene die nu nog meld2mysql zouden gebruiken kunnen dit ook zonder de koppel applicatie doen.

Er zijn drie schema-varianten. Welke je kiest hangt af van wat je ermee doet.

Classic is de originele tabel die iedereen al heeft uit het bovenstaande topic. Sla je capcode, de meldingstekst en je eigen label op, meer niet. Werkt gewoon, maar de timestamp wordt overschreven als je ooit een rij aanpast, en zoeken op capcode sorteert als tekst dus 9 komt vóór 10.

Extended is een iets nieuwere variant van Hans voegt alle PDW-velden toe: protocol, berichttype, bitrate, aparte datum en tijd. Handig als je wilt weten of iets via FLEX of POCSAG binnenkwam. Nadeel: datum en tijd staan als losse tekstvelden opgeslagen, dus je kunt niet makkelijk filteren op een tijdsbereik.

Optimized is de aanbevolen variant voor nieuwe installaties. Capcode staat als getal opgeslagen zodat je kunt zoeken op capcodegroepen (BETWEEN 1200000 AND 1299999). Datum en tijd zijn samengevoegd tot één veld zodat tijdsbereiken gewoon werken. Er zit een zoekindex op de meldingstekst zodat LIKE '%zoekwoord%' snel blijft, ook bij tienduizenden rijen. De labels en kleuren worden in de DB gezet, en er is ondersteuning voor FLEX groepsoproepen.

https://www.scannerforum.nl/index.php?topic=23420.0

Ook wat aanpassingen op de mail logica, die zorgde in uitzonderlijke gevallen voor een crash.


Hieronder uitleg van het optimized schema.
# PDW Alarmeringen - Database Schema

PDW's MySQL feed ("Optimized" schema) writes **one row per message** into a single
flat table. It is built for read-heavy websites: typed columns, one DATETIME,
FULLTEXT search, and group calls kept self-contained in a JSON column.

Host / database / table are configured inside PDW (this project assumes table
`alarmeringen`).

## CREATE TABLE

```sql
CREATE TABLE IF NOT EXISTS `alarmeringen` (
  `id`          BIGINT UNSIGNED   NOT NULL AUTO_INCREMENT,
  `ontvangen`   DATETIME          NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `capcode`     INT UNSIGNED      NOT NULL DEFAULT 0,
  `mode`        VARCHAR(15)       NOT NULL DEFAULT '',
  `msg_type`    VARCHAR(10)       NOT NULL DEFAULT '',
  `bitrate`     SMALLINT UNSIGNED NOT NULL DEFAULT 0,
  `message`     TEXT              NOT NULL,
  `label`       VARCHAR(256)      NOT NULL DEFAULT '',
  `subscribers` TEXT              NOT NULL DEFAULT '',
  `match_type`  TINYINT UNSIGNED  NOT NULL DEFAULT 0,
  `label_color` VARCHAR(7)        NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  INDEX `idx_capcode`   (`capcode`),
  INDEX `idx_ontvangen` (`ontvangen`),
  INDEX `idx_match`     (`match_type`),
  INDEX `idx_label`     (`label`(64)),
  FULLTEXT `ft_message` (`message`,`label`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
```

## Columns

| Column | Type | Notes |
|--------|------|-------|
| `id` | BIGINT | Monotonic auto-increment. Use for paging / live polling (`WHERE id > :since`). |
| `ontvangen` | DATETIME | Message time, `YYYY-MM-DD HH:MM:SS`, in the PDW machine's local timezone (no offset stored). |
| `capcode` | INT | Pager address. FLEX group capcodes are `2029568`-`2029583`. |
| `mode` | VARCHAR | Protocol + rate, e.g. `FLEX-1600`, `POCSAG-1200`, `ACARS-2400`. Protocol = `mode` up to the `-`. |
| `msg_type` | VARCHAR | `ALPHA` / `NUMERIC` / `TONE` / `GROUP` / `TRANSP`. |
| `bitrate` | SMALLINT | 512 / 1200 / 2400 (POCSAG/ACARS) or 1600 / 3200 / 6400 (FLEX). |
| `message` | TEXT | Up to ~5120 bytes. `>>` (byte `0xBB`) marks a line break - render as a newline. |
| `label` | VARCHAR | Filter label assigned to this capcode; empty when no rule matched. |
| `subscribers` | TEXT | JSON array of group members (see below); empty for non-group messages. |
| `match_type` | TINYINT | `0` no match - `1` filtered - `2` monitor-only. |
| `label_color` | VARCHAR(7) | `#RRGGBB` of the label; empty when none. |

**Field selection:** `mode`, `msg_type`, `bitrate`, `message` and `label` are only
written when enabled in PDW's MySQL field settings. Enable all of them for a
website. `ontvangen`, `capcode` and `match_type` are always written;
`subscribers` and `label_color` are written only when non-empty.

## Group calls (`subscribers`)

Filled for FLEX group calls. JSON array of the individual addresses that were paged:

```json
[
  {"capcode": 1234567, "label": "Ambulance 1", "color": "#1565c0"},
  {"capcode": 1234568, "label": "Ambulance 2"}
]
```

- `capcode` int, `label` string (may be empty), `color` optional `#RRGGBB`.
- `color` was added recently - **older rows have no `color`**; fall back to a neutral chip.

Detect a group call: `capcode BETWEEN 2029568 AND 2029583` **or** `subscribers <> ''`.

## Common queries

```sql
-- Latest 100, newest first
SELECT * FROM alarmeringen ORDER BY id DESC LIMIT 100;

-- Live polling (only newer than the last seen id)
SELECT * FROM alarmeringen WHERE id > :since ORDER BY id DESC LIMIT 50;

-- One capcode (own messages)
SELECT * FROM alarmeringen WHERE capcode = :cc ORDER BY id DESC;
-- ...also as a group member (simple, indexless):
--   WHERE capcode = :cc OR subscribers LIKE CONCAT('%"capcode":', :cc, '%')

-- Only matched messages
SELECT * FROM alarmeringen WHERE match_type >= 1;

-- Full-text search in message + label
SELECT * FROM alarmeringen
WHERE MATCH(message,label) AGAINST (:q IN BOOLEAN MODE)
ORDER BY id DESC LIMIT 50;
```

## PHP (PDO)

```php
$pdo = new PDO('mysql:host=HOST;port=3306;dbname=DB;charset=utf8mb4',
               'USER', 'PASS', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

$rows = $pdo->query('SELECT * FROM alarmeringen ORDER BY id DESC LIMIT 100')
            ->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $r) {
    $subs    = $r['subscribers'] !== '' ? (json_decode($r['subscribers'], true) ?: []) : [];
    $isGroup = $subs !== [];
    // render $r['message'] (replace 0xBB with newline), $r['label']/$r['label_color'],
    // and for groups each $subs[i] capcode/label/color
}
```

Offline Hans013

  • PD2HSB
  • Gevorderd Lid
  • ***
  • Berichten: 924
Re: Interesse in nieuwe PDW (3.2b01) versie?
« Reactie #179 Gepost op: Vandaag om 17:36:48 »
Goed bezig