KWL Pluggit
//
// @author Helge Klug
// @copyright Copyright (c) 2018 Helge Klug
// @version 1.10
//
// @see http://www.pluggit.com/fileserver/files/1413/609560454939420/21_10_2013_modbus_addresses.pdf
// Register : 40025 | prmFWVersion | UINT | Read | FW Version: Major(8bits) and Minor (8bits)
// Register : 40101 | prmHALTaho1 | Float | Read | Fan1 rpm
// Register : 40103 | prmHALTaho2 | Float | Read | Fan2 rpm
// Register : 40109 | prmDateTime | UINT | Read | Current Date/time in Unix time
// Register : 40109 | prmDateTimeSet | UINT | Write | New date/time in Unix time
// Register : 40133 | prmRamIdxT1 | Float | Read | Outdoor temperature T1, °C
// Register : 40135 | prmRamIdxT2 | Float | Read | Supply temperature T2, °C
// Register : 40137 | prmRamIdxT3 | Float | Read | Extract temperature T3, °C
// Register : 40139 | prmRamIdxT4 | Float | Read | Exhaust temperature T4, °C
// Register : 40161 | prmPreheaterDutyCycle | UINT | Read | Power of Preheater in %
// Register : 40169 | prmRamIdxUnitMode | UINT | Write | Active Unit mode:
// | Read | Demand Mode 0x0002 2
// Manual Mode 0x0004 4
// WeekProgram Mode 0x0008 8
//
// Away Mode Start 0x0010 16
// Away Mode End 0x8010 40169
//
// Fireplace Mode Start 0x0040 64
// Fireplace Mode End 0x8040 32832
//
// Summer Mode Start 0x0800 2048
// Summer Mode End 0x8800 34816
//
// Select manual bypass 0x0080 128
// Deselect Manual bypass 0x8080 32896
//
// Register : 40199 | prmRamIdxBypassActualState | UINT | Read | Bypass state:
// 0 Closed 0x0000
// 1 In process 0x0001
// 32 Closing 0x0020
// 64 Opening 0x0040
// 255 Opened 0x00FF
//
// Register : 40265 | prmRamIdxBypassManualTimeout | UINT | Read | Manual bypass duration in minutes
//
// Register : 40325 | prmRomIdxSpeedLevel | UINT | Write | Speed level of Fans -> Manual mode: Fan step can be set
// 40325 | prmRomIdxSpeedLevel | UINT | Read | Speed level of Fans -> Other modes: Fan step can be read.
// Register : 40445 | prmBypassTmin | Float | Read | Min temperature for outdoor air (T1)
// Register : 40447 | prmBypassTmax | Float | Read | Max temperature for extract air (T3)
// Register : 40473 | prmCurrentBLState | UINT | Read | Current unit mode:
// 0 Standby
// 1 Manual
// 2 Demand
// 3 Week program
// 4 Servo-flow
// 5 Away
// 6 Summer
// 7 DI Override
// 8 Hygrostat override
// 9 Fireplace
// 10 Installer
// 11 Fail Safe 1
// 12 Fail Safe 2
// 13 Fail Off
// 14 Defrost Off
// 15 Defrost
//
// Register : 40555 | prmFilterRemainingTime | UINT | Read | Remaining time of the Filter Lifetime (Days)
// Register : 40557 | prmFilterDefaultTime | UINT | Write | Filter Lifetime (Days)
// | Read |
// Register : 40559 | prmFilterReset | UINT | Write | Reset filter timer
// | Reset filter timer
// Register : 40625 | prmWorkTime | UINT | Read | Work time of system, in hours
// Register : 40669 | prmStartExploitationDateStamp | UINT | Read | Date Stamp of the system start time in Unix time
// Register : 40431 | prmVOC | UINT | Read | VOC sensor value (read from VOC); ppm. If VOC is not installed, then 0.
// Register : 40563 | prmPPM1Unit | UINT | Read | Low Treshold of VOC (ppm)
// Register : 40565 | prmPPM2Unit | UINT | Read | Low Treshold of VOC (ppm)
// Register : 40567 | prmPPM3Unit | UINT | Read | Low Treshold of VOC (ppm)
//
Bridge modbus:tcp:PluggitAP310 [ host="192.168.0.15", port=502, id=2 ] {
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmFWVersion [ start=25, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="25", readValueType="uint32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmHALTaho1 [ start=101, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="101", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmHALTaho2 [ start=103, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="103", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmDateTime [ start=108, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="108", readValueType="int64" ]
Thing data registerDateTime [ readStart="108", readValueType="int64", readTransform="JS(EpocheToDateTime.js)" ]
}
//-------------------------------------------------------------------------
// Status : ???
//
Bridge poller prmDateTimeSet [ start=108, length=4, refresh=5000, type="holding" ] {
Thing data register [ writeStart="108", writeValueType="int64", writeType="holding" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxT1 [ start=133, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="133", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxT2 [ start=135, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="135", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxT3 [ start=137, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="137", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxT4 [ start=139, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="139", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : ???
//
Bridge poller prmPreheaterDutyCycle [ start=160, length=2, refresh=5000, type="holding" ] {
Thing data register [ readStart="160", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
// Status : ???
//
Bridge poller prmRamIdxUnitMode [ start=168, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="168", readValueType="int64_swap", writeStart="169", writeValueType="int64_swap", writeType="holding" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxBypassActualState [ start=198, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="198", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmRamIdxBypassManualTimeout [ start=264, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="264", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
//
// Status : OK
//
Bridge poller prmRomIdxSpeedLevel [ start=324, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="324", readValueType="int64_swap", writeStart="324", writeValueType="int64_swap", writeType="holding" ] //uint32
}
//-------------------------------------------------------------------------
//Anpassung Christoph!
//Status: ???
Bridge poller prmVOC [ start=430, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="430", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
//
// Status : OK
//
Bridge poller prmBypassTmin [ start=445, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="445", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmBypassTmax [ start=447, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="447", readValueType="float32" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmCurrentBLState [ start=472, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="472", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmFilterRemainingTime [ start=554, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="554", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
// Status : OK
//
Bridge poller prmFilterDefaultTime [ start=556, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="556", readValueType="int64", writeStart="556", writeValueType="int64", writeType="holding" ]
}
//-------------------------------------------------------------------------
// Status :
//
Bridge poller prmFilterReset [ start=558, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="558", readValueType="int64", writeStart="558", writeValueType="int64", writeType="holding" ]
}
//-------------------------------------------------------------------------
//
// Status :
//
Bridge poller prmWorkTime [ start=624, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="624", readValueType="uint32_swap" ]
}
//-------------------------------------------------------------------------
//
// Status : OK
Bridge poller prmStartExploitationDateStamp [ start=668, length=4, refresh=5000, type="holding" ] {
Thing data register [ readStart="668", readValueType="uint32_swap" ]
Thing data registerDateTime [ readStart="668", readValueType="uint32_swap", readTransform="JS(EpocheToDateTime.js)" ]
}
}