From 968a5cea2f5a0294c1ee0faf0dfa7ff85b345ca5 Mon Sep 17 00:00:00 2001 From: Aart van Halteren Date: Thu, 17 Jul 2025 12:42:13 +0200 Subject: [PATCH] two stage matching --- app/helpers/InSyncState.rb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/helpers/InSyncState.rb b/app/helpers/InSyncState.rb index 52cfd04..bfda5f2 100644 --- a/app/helpers/InSyncState.rb +++ b/app/helpers/InSyncState.rb @@ -47,7 +47,6 @@ class InSyncState < StatePattern::State end def handle_frame(frame_lines) - gas_pattern = /^([0-1:24\.2\.1]+)\((\d{12}[SW])\)\((\d{5}\.\d{3})\*m3\)$/ # prepare DB record last_reading = Reading.last @@ -82,11 +81,10 @@ class InSyncState < StatePattern::State end if line.match(/0-1:24.2.1/) p "Gas reading found." - p "Reading time: #{line.split(/0-1:24.2.1\(|\)/).join}" - end - if match = line.match(gas_pattern) # Gas verbruik (1x per uur een nieuwe stand) - p "Gas reading: #{match[1]} (#{match[2]})" - reading.total_m3_gas_consumed = match[3].to_f + + match = line.match(/^([0-1:24\.2\.1]+)\(([^)]+)\)\(([\d.]+)\*m3\)$/) # Gas verbruik (1x per uur een nieuwe stand) + p "Gas reading: #{match[1]} (#{match[2]})" + reading.total_m3_gas_consumed = match[3].to_f end }