Hilfe bei Regex / Classdef Brandmeldeanlage Ereignisse aufnehmen

Begonnen von e_brandt, 13 Dezember 2020, 12:00:38

Vorheriges Thema - Nächstes Thema

e_brandt

Hallo, wir probieren seit Tagen Meldungen meiner BMA per RS232 aufzunehmen. Mittlerer weile bekommen wir auch schon, was aber nicht alles. In der classdef steht folgendes:


reading Heartbeat match "^.+\r$"
reading Heartbeat postproc {fhem"setreading BMAnlages drei $_";}


so sieht der Datensatz z.B. aus.

HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>CAT 0<\r><\n>Rckstelltaste      Mgr  000       R021 DIG.IP              11:26:30  13-Dez-20<\r><\n>                                        System MGR          Brandrckstelltaste<\r><\n>CAT 0<\r><\n>Rckstelltaste      Mgr  000       R021 DIG.IP              11:26:30  13-Dez-20<\r><\n>                                        System MGR          Brandrckstelltaste<\r><\n>CAT 0<\r><\n>FSD verriegelt      Mgr  000       R021 DIG.IP              11:26:30  13-Dez-20<\r><\n>                                        System MGR          Brandrckstelltaste<\r><\n>CAT 0 RESET<\r><\n>Rckstellung        Mgr  000            DIG.IP              11:26:30  13-Dez-20<\r><\n>                                        System MGR                             <\r><\n>CAT 4<\r><\n>TEMP.-SENSOR        Mgr  000       R033 DIG.IP              11:27:04  13-Dez-20<\r><\n>                                        System MGR          Batt. Temp.-St"r.  <\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>HEARTBEAT<\r><\n>CAT 8<\r><\n>Brandalarm Handmld. Mgr  001   -002   A DIN820              11:42:07  13-Dez-20<\r><\n>                                        Feuer DKM Scheune   DKM im Heizraum    <\r><\n>CAT 0<\r><\n>šE Ausgel"st        Mgr  001   -002   A DIN820              11:42:07  13-Dez-20<\r><\n> 

Jetzt ist es leider so dieses cat gefolgt von Brandalarm nicht angezeigt wird da es offensichtlich zu schnell hintereinander kommt. Wobei das   "Feuer DKM Scheune   DKM im Heizraum"   sauber kommt da dort eine Verzögerung von 2000ms zwischen ist.
Desweiteren macht Fhem einen reboot wenn ich die BMA zurücksetze wenn CAT 0 RESET kommt. Das finde ich irgendwie auch nicht so toll.

Meine Frage: Da wir uns mit dem Regex nicht so gut auskennen, kann man das CAT irgendwie ausfiltern?

Wir haben wirklich schon viel probiert, vieleicht erbarmt sich mal  jemand uns zu helfen....


amenomade

Ich verstehe den Zusammenhang nicht ganz.
Ihr habt dieses ganze String mit vielen \r und wollt davon etwas extrahieren.

Mit welcher Regex Option wird dieses Match gemacht? g ? s ?

Rein aus was hier gezeigt wird matcht "^.+\r$" nix aus dem String, da ^ am Anfang und $ am Ende
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus