internal void UpdateFromXMLAPI(XMLAPI.StateList.Datapoint dp) { SetInternalValue(dp.Value); _InternalTimestamp = String.IsNullOrWhiteSpace(dp.Timestamp) ? 0 : Convert.ToInt64(dp.Timestamp); Timestamp = new DateTime(1970, 1, 1, 0, 0, 0, 0); Timestamp = Timestamp.AddSeconds(_InternalTimestamp); }
public static string MapDatapointType(XMLAPI.StateList.Datapoint dp, Channel c) { //rename switching devices internal temperature, so that it does not conflic with heating systems temperatures naming. Channel index logic should suffice. if (dp.Type == "ACTUAL_TEMPERATURE" && c.ChannelIndex == 0) { return("ACTUATOR_ACTUAL_TEMPERATURE"); } if (dp.Type == "ACTUAL_TEMPERATURE_STATUS" && c.ChannelIndex == 0) { return("ACTUATOR_ACTUAL_TEMPERATURE_STATUS"); } //HmIP-HEATING virtual device heating conflicting names if (c.Device.DeviceType == "HmIP-HEATING" && dp.Type == "STATE") { if (c.ChannelIndex == 3) { return("HANDLE_STATE"); } if (c.ChannelIndex == 4) { return("RELAY_STATE"); } } return(dp.Type); }
public Datapoint(XMLAPI.StateList.Datapoint dp, Channel c) { Channel = c; Name = c.Name + "." + dp.Type; ISEID = dp.Ise_id; Type = MapDatapointType(dp, c); ValueUnit = dp.Valueunit; _InternalTimestamp = String.IsNullOrWhiteSpace(dp.Timestamp) ? 0 : Convert.ToInt64(dp.Timestamp); Timestamp = new DateTime(1970, 1, 1, 0, 0, 0, 0); Timestamp = Timestamp.AddSeconds(_InternalTimestamp); _InternalValueType = dp.Valuetype; Init_ValueType(); SetInternalValue(dp.Value); }