lots of changes
diff --git a/bin/sensor_manager.py b/bin/sensor_manager.py
index cb0904e..bcf3fd8 100644
--- a/bin/sensor_manager.py
+++ b/bin/sensor_manager.py
@@ -13,12 +13,12 @@
 import Openbmc
 
 DBUS_NAME = 'org.openbmc.managers.Sensors'
-OBJ_NAME = '/org/openbmc/managers/Sensors/'+sys.argv[1]
+OBJ_NAME = '/org/openbmc/managers/Sensors'
 
 class SensorManager(dbus.service.Object):
 	def __init__(self,bus,name):
 		dbus.service.Object.__init__(self,bus,name)
-		bus.add_signal_receiver(self.UpdateSensor,
+		bus.add_signal_receiver(self.SensorChangedHandler,
 					dbus_interface = 'org.openbmc.SensorValue', 
 					signal_name = 'Changed', path_keyword='path')
 		bus.add_signal_receiver(self.NormalThreshold,
@@ -32,16 +32,46 @@
 					signal_name = 'Critical', path_keyword='path')
 
 		self.sensor_cache = {}
+
+	@dbus.service.method(DBUS_NAME,
+		in_signature='', out_signature='a{sv}')
+	def getSensorsAll(self):
+		return self.sensor_cache;
+	
+	@dbus.service.method(DBUS_NAME,
+		in_signature='y', out_signature='v')
+	def getSensorFromId(self,ipmi_id):
+		intf_sys = Openbmc.getManagerInterface(bus,"System")
+		obj_info = intf_sys.getObjFromIpmi(ipmi_id)
+		intf_name = str(obj_info[0])
+		obj_name = str(obj_info[1])
+		return self.getSensor(obj_name)
+
+	@dbus.service.method(DBUS_NAME,
+		in_signature='yv', out_signature='')
+	def setSensorFromId(self,ipmi_id,value):
+		intf_sys = Openbmc.getManagerInterface(bus,"System")
+		obj_info = intf_sys.getObjFromIpmi(ipmi_id)
 		
+		obj = bus.get_object(obj_info[0],obj_info[1])
+		intf = dbus.Interface(obj,"org.openbmc.SensorValue")
+		intf.setValue(value)
+		return None
+
+	
 	@dbus.service.method(DBUS_NAME,
 		in_signature='s', out_signature='v')
 	def getSensor(self,path):
-		val = None
+		val = 0
 		if (self.sensor_cache.has_key(path) == True):
 			val = self.sensor_cache[path]['value']
+		else:
+			# TODO: error handling
+			print "Unknown sensor at: "+path
 		return val
-		
-	def UpdateSensor(self,value,units,path = None):
+	
+	## Signal handlers	
+	def SensorChangedHandler(self,value,units,path = None):
 		self.initSensorEntry(path)
 		self.sensor_cache[path]['value'] = value
 		self.sensor_cache[path]['units'] = units