Pretty print driver.

pull/868/head^2
Fredrik Öhrström 2024-06-19 20:21:38 +02:00
rodzic 353bc3fc0d
commit 3c5b520ac7
1 zmienionych plików z 40 dodań i 43 usunięć

Wyświetl plik

@ -1,19 +1,17 @@
/* Copyright (C) 2024 Fredrik Öhrström (gpl-3.0-or-later)
Copyright (C) 2024 Arthur van Dorp (gpl-3.0-or-later)
spdx: GPL-3.0-or-later
/* Copyright (C) 2024 Fredrik Öhrström (gpl-3.0-or-later)
Copyright (C) 2024 Arthur van Dorp (gpl-3.0-or-later)
spdx: GPL-3.0-or-later
Ista sensonic 3 heat meter sending on c1, product number 4030020.
(Can also be used for cold metering, I don't think the device I own is configured for that use case.)
(Attention device owners: Do not click randomly on the single button of the meter. If you are in the
wireless service loop and click wrongly, you will activate istas proprietary wireless protocol. Only ista
will be able to reset the device and activate the wireless m-bus. To activate the wireless m-bus you have
to long click until 2A is shown, then wait shortly, click *once", wait until 2B is shown, wait again,
single click until 2C is shown, then double click. Do not double click in 2A or 2B.)
The device measures every 8s, but sends wireless m-bus telegrams every 4 minutes.
AES key has to be obtained from your contractor or directly from ista.
*/
Ista sensonic 3 heat meter sending on c1, product number 4030020.
(Can also be used for cold metering, I don't think the device I own is configured for that use case.)
(Attention device owners: Do not click randomly on the single button of the meter. If you are in the
wireless service loop and click wrongly, you will activate istas proprietary wireless protocol. Only ista
will be able to reset the device and activate the wireless m-bus. To activate the wireless m-bus you have
to long click until 2A is shown, then wait shortly, click *once", wait until 2B is shown, wait again,
single click until 2C is shown, then double click. Do not double click in 2A or 2B.)
The device measures every 8s, but sends wireless m-bus telegrams every 4 minutes.
AES key has to be obtained from your contractor or directly from ista. */
driver {
name = istaheat
meter_type = HeatMeter
@ -21,14 +19,14 @@ driver {
detect {
mvt = IST,a9,04
}
field {
name = status
quantity = Text
info = 'Meter status from tpl field.'
field {
name = status
quantity = Text
info = 'Meter status from tpl field.'
attributes = INCLUDE_TPL_STATUS
}
field {
name = 'total'
name = total
quantity = Energy
info = 'The total heat energy consumption recorded by this meter.'
match {
@ -37,68 +35,67 @@ driver {
}
}
field {
name = target
quantity = PointInTime
info = 'Last day of previous billing month.'
name = target
quantity = PointInTime
info = 'Last day of previous billing month.'
display_unit = date
match {
measurement_type = Instantaneous
vif_range = Date
storage_nr = 2
storage_nr = 2
}
}
field {
name = target
name = target
quantity = Energy
info = 'The total heat energy for the previous month period.'
info = 'The total heat energy for the previous month period.'
match {
measurement_type = Instantaneous
vif_range = AnyEnergyVIF
storage_nr = 2
storage_nr = 2
}
}
field {
name = target
name = target
quantity = Volume
info = 'The total heating media volume recorded by this meter at the end of last month.'
info = 'The total heating media volume recorded by this meter at the end of last month.'
match {
measurement_type = Instantaneous
vif_range = Volume
storage_nr = 2
storage_nr = 2
}
}
field {
name = last_year
quantity = PointInTime
info = 'Last day of previous billing year.'
name = last_year
quantity = PointInTime
info = 'Last day of previous billing year.'
display_unit = date
match {
measurement_type = Instantaneous
vif_range = Date
storage_nr = 1
storage_nr = 1
}
}
field {
name = last_year
name = last_year
quantity = Energy
info = 'The total heat energy for the previous year period.'
info = 'The total heat energy for the previous year period.'
match {
measurement_type = Instantaneous
vif_range = AnyEnergyVIF
storage_nr = 1
storage_nr = 1
}
}
test {
args = 'HeatItUp istaheat 33503169 NOKEY'
args = 'HeatItUp istaheat 33503169 NOKEY'
telegram = 5344742669315033A9048C2070900F002C25961200009D6949E80EB1E2707A96003007102F2F_0C0500000000426C00004C050000000082016CFE298C0105000000008C0115000000002F2F2F2F2F2F2F2F2F2F2F
json = '{"id": "33503169","last_year_date": "1999-11-30","last_year_kwh": 0,"media": "heat","meter": "istaheat","name": "HeatItUp","status": "OK","target_date": "2023-09-30","target_kwh": 0,"target_m3": 0,"timestamp": "1111-11-11T11:11:11Z","total_kwh": 0}'
fields = 'HeatItUp;33503169;OK;0;0;1111-11-11 11:11.11'
json = '{"id": "33503169","last_year_date": "1999-11-30","last_year_kwh": 0,"media": "heat","meter": "istaheat","name": "HeatItUp","status": "OK","target_date": "2023-09-30","target_kwh": 0,"target_m3": 0,"timestamp": "1111-11-11T11:11:11Z","total_kwh": 0}'
fields = 'HeatItUp;33503169;OK;0;0;1111-11-11 11:11.11'
}
test {
args = 'FeelTheHeat istaheat 44503169 NOKEY'
args = 'FeelTheHeat istaheat 44503169 NOKEY'
telegram = 5344742669315044A9048C2017900F002C253DCD0000CE827C98B4346AB67A3D003007102F2F_0C0514980400426CFF2C4C052061020082016C1F318C0105581604008C0115142800002F2F2F2F2F2F2F2F2F2F2F
json = '{"status":"OK","media":"heat","meter":"istaheat","name":"FeelTheHeat","id":"44503169","last_year_kwh":2612,"last_year_date":"2023-12-31","target_kwh":4165.8,"target_date":"2024-01-31","target_m3":281.4,"total_kwh":4981.4,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'FeelTheHeat;44503169;OK;4981.4;4165.8;1111-11-11 11:11.11'
json = '{"status":"OK","media":"heat","meter":"istaheat","name":"FeelTheHeat","id":"44503169","last_year_kwh":2612,"last_year_date":"2023-12-31","target_kwh":4165.8,"target_date":"2024-01-31","target_m3":281.4,"total_kwh":4981.4,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'FeelTheHeat;44503169;OK;4981.4;4165.8;1111-11-11 11:11.11'
}
}