Spaceport Alarmdepsche Ausdruck mit Verzögerung

Hallo zusammen,

Ich habe ein Problem mit der Alarmdepsche an unseren Spaceports. Zunächst lief der Ausdruck der Alarmdepesche reibungslos. Kurz nach Alarmeingang erfolgte der Ausdruck über unseren Drucker im Geräthaus.

Jetzt kommen die Ausdrucke mit über 10min Verzögerung aus dem Drucker.

Ein zweiter Spaceport zu Analysezwecken zeigt das gleich Verhalten. Merkwürdig ist, dass MQTT-Nachrichten sofort zugestellt werden, also klappt die Verbindung zwischen Spaceport und Server.

Auch mit der Testalarmfunktion kommt es zu der Verzögerung.

Testweise habe ich Server und Spaceports neugestarten. Erster Testalarm hat dann wieder einwandfrei funktioniert:

Korrektes Verhalten:

Server-Log: (Zeit in UTC)

2025-12-29T09:48:44.338Z [info] SPACEPORT [SPACEPORT] SPACEPORT | WEBSOCKET | SIGNAL | event_print_test_alarm
2025-12-29T09:48:44.347Z [debug] SPACEPORT [----------] MODELS-SPACEPORTCLIENTS | Reading clients list
2025-12-29T09:48:52.304Z [debug] SPACEPORT [SPACEPORT] Successfully generated pdf → sending pdf to client
2025-12-29T09:48:52.306Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Found client with token: xxxx
2025-12-29T09:48:52.309Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Client Job has been added to database
2025-12-29T09:48:52.320Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Client Job has been send via websocket
2025-12-29T09:48:52.400Z [error] SPACEPORT [SPACEPORT] Received job_ack [1] for job 210

→Ausdruck in 8s erzeugt

Spaceport-Log: (Zeitzone DE)

2025-12-29T10:48:52: event_new_print_job received
2025-12-29T10:48:52: CORE | PRINTING | Printjob dispatched: request id is PDF-10 (1 file(s))
2025-12-29T10:48:52:
2025-12-29T10:48:52: deleting pdf
2025-12-29T10:48:52: SOCKET | Sending job ack [1] for jobId [210]

Fehlerhaftes Verhalten

Ein Testalarm direkt danach hat über 10 min gebraucht:

Server-Log:

2025-12-29T09:52:45.107Z [info] SPACEPORT [SPACEPORT] SPACEPORT | WEBSOCKET | SIGNAL | event_print_test_alarm
2025-12-29T09:52:45.117Z [debug] SPACEPORT [----------] MODELS-SPACEPORTCLIENTS | Reading clients list
2025-12-29T10:03:24.165Z [debug] SPACEPORT [SPACEPORT] Successfully generated pdf → sending pdf to client
2025-12-29T10:03:24.238Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Found client with token: xxxx
2025-12-29T10:03:24.240Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Client Job has been added to database
2025-12-29T10:03:24.256Z [debug] SPACEPORT [SPACEPORT] SENDPDFTOPRINTER | Client Job has been send via websocket
2025-12-29T10:03:24.348Z [error] SPACEPORT [SPACEPORT] Received job_ack [1] for job 211

Spaceport-Log:

2025-12-29T11:03:24: event_new_print_job received
2025-12-29T11:03:24: CORE | PRINTING | Printjob dispatched: request id is PDF-11 (1 file(s))
2025-12-29T11:03:24:
2025-12-29T11:03:24: deleting pdf
2025-12-29T11:03:24: SOCKET | Sending job ack [1] for jobId [211]

Infos zum System:

-Alarmiator im Docker-Container (Beta-Version) → Problem trat auch mit dem normalen Release auf. Das ganze läuft auf einem VPS mit Debian 13

-2x Spaceport 2.02:

-Ein Raspberry Pi mit Raspberry Pi OS 13 → Drucker über WLAN angebunden

-Debian 13 VM zu Analysezwecken mit PDF-Drucker und MQTT-Anbindung

Woran könnte das liegen?

Vielen Dank und Viele Grüße

Oehrli

Als wir die Alarmdepesche in Betrieb genommen habe, musste ich auch feststellen, dass die Generierung des PDFs manchmal über 10 Minuten in Anspruch genommen hat. Ich habe dann in den Code einige zusätzliche Debugs eingebaut und konnte das Problem bis in die Funktion getMap in models/alarmPDF.js zurückverfolgen. Für die Alarmdepesche wird dort mittels des Moduls staticmaps die Grafik mit den Hydrantenmarkern gebaut. Es scheint, dass es manchmal bei der openfiremap zu erhöhten Zugriffszeiten kommt, welche die Generierung der Grafik erheblich verzögern.

Ich habe mich damit beholfen, einen tileRequestTimeout von 3s einzubauen. Damit haben wir bis jetzt die Alarmdepesche spätestens 2 Minuten nach Alarmeingang erhalten, was für uns ausreichend ist.

Hier die Änderung in models/alarmPDF.js:

        const options = {
            width: 1200,
            height: 800,
+            tileRequestTimeout: 3000,
            tileLayers: [
                {
                  tileSubdomains: ['a', 'b', 'c'],
                  tileUrl: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
                },
                {
                  // Need a public tile server with a transparent layer to truely test this
                  tileUrl: 'http://openfiremap.org/hytiles/{z}/{x}/{y}.png',
                },
              ],
        };
1 „Gefällt mir“

Vielen Dank für die Lösung!

Das Alarmfax druckt jetzt wieder zeitnah aus.