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>Rckstelltaste Mgr 000 R021 DIG.IP 11:26:30 13-Dez-20<\r><\n> System MGR Brandrckstelltaste<\r><\n>CAT 0<\r><\n>Rckstelltaste Mgr 000 R021 DIG.IP 11:26:30 13-Dez-20<\r><\n> System MGR Brandrckstelltaste<\r><\n>CAT 0<\r><\n>FSD verriegelt Mgr 000 R021 DIG.IP 11:26:30 13-Dez-20<\r><\n> System MGR Brandrckstelltaste<\r><\n>CAT 0 RESET<\r><\n>Rckstellung 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....
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