Index: dialin/dg/valves.py =================================================================== diff -u -r9137980f90228eb23f4b3616c5c83867489c35d8 -rfd1abe428b6e8a06f87fe6918adbdbdd0f78ef22 --- dialin/dg/valves.py (.../valves.py) (revision 9137980f90228eb23f4b3616c5c83867489c35d8) +++ dialin/dg/valves.py (.../valves.py) (revision fd1abe428b6e8a06f87fe6918adbdbdd0f78ef22) @@ -84,6 +84,12 @@ self.valve_state_VR2 = DEENERGIZED self.valve_state_VPD = DEENERGIZED + def binary_to_valve_state(self, binary): + if binary == 1: + return ENERGIZED + else: + return DEENERGIZED + def handler_valves_sync(self, message): """ Handles published valves states message. @@ -95,19 +101,19 @@ vst = struct.unpack('H', bytearray(message['message'][self.START_POS_VALVES_STATES:self.END_POS_VALVES_STATES])) # Extract each valve state from U16 valves states using bit-masking - self.valve_state_VRF = vst[0] & 0x0001 - self.valve_state_VRI = vst[0] & 0x0002 - self.valve_state_VRD = vst[0] & 0x0003 - self.valve_state_VRO = vst[0] & 0x0004 - self.valve_state_VPO = vst[0] & 0x0005 - self.valve_state_VBF = vst[0] & 0x0006 - self.valve_state_VRC = vst[0] & 0x0007 - self.valve_state_VDR = vst[0] & 0x0008 - self.valve_state_VPI = vst[0] & 0x0009 - self.valve_state_VSP = vst[0] & 0x0010 - self.valve_state_VR1 = vst[0] & 0x0011 - self.valve_state_VR2 = vst[0] & 0x0012 - self.valve_state_VPD = vst[0] & 0x0013 + self.valve_state_VRF = self.binary_to_valve_state(vst[0] & 0x0001) + self.valve_state_VRI = self.binary_to_valve_state(vst[0] & 0x0002) + self.valve_state_VRD = self.binary_to_valve_state(vst[0] & 0x0003) + self.valve_state_VRO = self.binary_to_valve_state(vst[0] & 0x0004) + self.valve_state_VPO = self.binary_to_valve_state(vst[0] & 0x0005) + self.valve_state_VBF = self.binary_to_valve_state(vst[0] & 0x0006) + self.valve_state_VRC = self.binary_to_valve_state(vst[0] & 0x0007) + self.valve_state_VDR = self.binary_to_valve_state(vst[0] & 0x0008) + self.valve_state_VPI = self.binary_to_valve_state(vst[0] & 0x0009) + self.valve_state_VSP = self.binary_to_valve_state(vst[0] & 0x0010) + self.valve_state_VR1 = self.binary_to_valve_state(vst[0] & 0x0011) + self.valve_state_VR2 = self.binary_to_valve_state(vst[0] & 0x0012) + self.valve_state_VPD = self.binary_to_valve_state(vst[0] & 0x0013) def cmd_valve_override(self, state, valve, reset=NO_RESET): """