// Copyright (C) 2020-2022 Fredrik Öhrström (gpl-3.0-or-later)
driver {
name = lansensm
meter_type = SmokeDetector
default_fields = name,id,status,minutes_since_last_manual_test_counter,timestamp
detect {
mvt = LAS,03,1a
}
fields {
field {
name = status
quantity = Text
info = 'Meter status.'
attributes = STATUS,INCLUDE_TPL_STATUS
match {
measurement_type = Instantaneous
vif_range = ErrorFlags
add_combinable = StandardConformantDataContent
}
lookup {
name = ERROR_FLAGS
map_type = BitToString
mask_bits = 0xffff
default_message = OK
map {
name = LOW_BATTERY
value = 0x0002
test = Set
}
map {
name = SMOKE
value = 0x0004
test = Set
}
map {
name = MANUAL_TEST
value = 0x0008
test = Set
}
map {
name = MALFUNCTION
value = 0x0010
test = Set
}
map {
name = NO_CONNECTION_TO_SMOKE_DETECTOR
value = 0x0020
test = Set
}
map {
name = SMOKE_SENSOR_END_OF_LIFE
value = 0x0100
test = Set
}
}
}
field {
name = async_msg_id
quantity = Dimensionless
info = 'Unique asynchronous message number.'
vif_scaling = None
match {
measurement_type = Instantaneous
vif_range = AccessNumber
}
}
field {
name = minutes_since_last_manual_test
quantity = Dimensionless
info = 'Minutes since last manual test.'
vif_scaling = None
match {
measurement_type = Instantaneous
vif_range = Dimensionless
}
}
}
tests {
test {
args = 'SMOKEA lansensm 00010204 NOKEY'
telegram = 2E44333004020100031A7AC40020052F2F_02FD971D000004FD084C02000004FD3A467500002F2F2F2F2F2F2F2F2F2F
json = '{"_":"telegram","media":"smoke detector","meter":"lansensm","name":"SMOKEA","id":"00010204","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'SMOKEA;00010204;OK;30022;1111-11-11 11:11.11'
}
test {
args = 'SMOKEA lansensm 00010204 NOKEY'
telegram = 2E44333004020100031A7ADE0020052F2F_02FD971D040004FD086502000004FD3A010000002F2F2F2F2F2F2F2F2F2F
json = '{"_":"telegram","media":"smoke detector","meter":"lansensm","name":"SMOKEA","id":"00010204","status":"SMOKE","async_msg_id_counter":613,"minutes_since_last_manual_test_counter":1,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'SMOKEA;00010204;SMOKE;1;1111-11-11 11:11.11'
}
}
}