two stage matching

This commit is contained in:
Aart van Halteren
2025-07-17 12:42:13 +02:00
parent c165f24632
commit 968a5cea2f

View File

@@ -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,9 +81,8 @@ 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)
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