diff --git a/geissonator/openbmc-events/openbmc-sensors b/geissonator/openbmc-events/openbmc-sensors
index c54dc97..4b6aa92 100755
--- a/geissonator/openbmc-events/openbmc-sensors
+++ b/geissonator/openbmc-events/openbmc-sensors
@@ -30,7 +30,19 @@
             raise Exception("Failed to query sensors: \n" + r.text)
 
         sensors = j['data']
-        #sensors.sort(key=lambda x: int(x.split("/")[-1]))
+        sensors = sorted(sensors,key=lambda x: x.split("/")[-1])
+
+        return sensors
+
+    def occ_all(self):
+        r = self.session.get(self.url + 'org/open_power/control/enumerate',
+                             verify=False)
+        j = r.json()
+        if j['status'] != 'ok':
+            raise Exception("Failed to query occ sensors: \n" + r.text)
+
+        sensors = j['data']
+        #sensors = sorted(sensors,key=lambda x: x.split("/")[-1])
 
         return sensors
 
@@ -41,12 +53,21 @@
         if j['status'] != 'ok':
             raise Exception("Failed to get sensor " + sensor + ": \n" + r.text)
 
-        return j['data']      
+        return j['data']
 
 def do_list_all(args):
     s = BMC(server=args.server)
     for e in s.list_all():
-        print(e)
+        if (args.value):
+            value = s.get_sensor(e)
+            print(e + ' : '+ str(value["Value"]))
+        else:
+            print(e)
+
+def do_occ_all(args):
+    s = BMC(server=args.server)
+    print json.dumps(s.occ_all(), indent=4)
+
 
 def do_view_sensor(args):
     s = BMC(server=args.server)
@@ -61,12 +82,21 @@
 
 list_all_sensors = subparsers.add_parser('list', help='List all sensors on BMC')
 list_all_sensors.set_defaults(func=do_list_all)
+list_all_sensors.add_argument(
+    '--value',
+    action='store_true',
+    default=False,
+    help='Provide current value of sensor')
 
 view_sensor = subparsers.add_parser(
     'view', help='View all data for an individual sensor')
 view_sensor.add_argument('sensor', help='The sensor to view')
 view_sensor.set_defaults(func=do_view_sensor)
 
+# occ has some 'special' sensors not in the sensor namespace
+occ_sensors = subparsers.add_parser('occ', help='List the special occ sensors')
+occ_sensors.set_defaults(func=do_occ_all)
+
 args = parser.parse_args()
 
 if 'func' in args:
