kopia lustrzana https://github.com/weetmuts/wmbusmeters
				
				
				
			Pretty print driver.
							rodzic
							
								
									353bc3fc0d
								
							
						
					
					
						commit
						3c5b520ac7
					
				| 
						 | 
				
			
			@ -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'
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue