diff --git a/agent_based/cisco_asa_sensors.py b/agent_based/cisco_asa_sensors.py
index fb528a44e8d9dd447e183d1fd64a9cfb40ec3e6d..53cec87f623d0a73ff231a57f0028d2d17a91d2c 100644
--- a/agent_based/cisco_asa_sensors.py
+++ b/agent_based/cisco_asa_sensors.py
@@ -90,6 +90,8 @@
 #   ['Chassis Ambient Temperature Sensor 1', '8', '32', '1', 'celsius'],
 #   ['Chassis Ambient Temperature Sensor 2', '8', '30', '1', 'celsius'],
 #   ['Chassis Ambient Temperature Sensor 3', '8', '33', '1', 'celsius'],
+#   ['Power supply 1', '12', '', '3', ''],
+#   ['Power supply 2', '12', '', '1', ''],
 #   ['Gi0/0', '', '', '', ''],
 #   ['Gi0/1', '', '', '', ''],
 #   ['Gi0/2', '', '', '', ''],
@@ -104,30 +106,36 @@
 # ]
 #
 # sample section
-# {'fan': {
-#    'Chassis Sensor 1': CiscoAsaSensor(value=7680, status=<State.OK: 0>, state_readable='Ok', unit='rpm'),
-#    'Chassis Sensor 2': CiscoAsaSensor(value=7936, status=<State.OK: 0>, state_readable='Ok', unit='rpm'),
-#    'Chassis Sensor 3': CiscoAsaSensor(value=7680, status=<State.OK: 0>, state_readable='Ok', unit='rpm')
-#   },
-#  'temp': {
-#    'CPU Sensor 0/0': CiscoAsaSensor(value=34.0, status=<State.OK: 0>, state_readable='Ok', unit='celsius'),
-#    'Chassis Ambient Sensor 1': CiscoAsaSensor(value=32.0, status=<State.OK: 0>, state_readable='Ok', unit='celsius'),
-#    'Chassis Ambient Sensor 2': CiscoAsaSensor(value=30.0, status=<State.OK: 0>, state_readable='Ok', unit='celsius'),
-#    'Chassis Ambient Sensor 3': CiscoAsaSensor(value=33.0, status=<State.OK: 0>, state_readable='Ok', unit='celsius')
-#   },
-#  'power': {}}
+# CiscoAsaSensors(
+#     temp={
+#         'CPU Sensor 0/0': CiscoAsaTempSensor(value=34.0, state=State.OK, status=0, status_readable='Ok',
+#                                              unit='celsius'),
+#         'Chassis Ambient Sensor 1': CiscoAsaTempSensor(value=32.0, state=State.OK, status=0,
+#                                                        status_readable='Ok', unit='celsius'),
+#         'Chassis Ambient Sensor 2': CiscoAsaTempSensor(value=30.0, state=State.OK, status=0,
+#                                                        status_readable='Ok', unit='celsius'),
+#         'Chassis Ambient Sensor 3': CiscoAsaTempSensor(value=33.0, state=State.OK, status=0,
+#                                                        status_readable='Ok', unit='celsius')},
+#     fan={
+#         'Chassis Sensor 1': CiscoAsaFanSensor(value=7680, state=State.OK, status_readable='Ok', unit='rpm'),
+#         'Chassis Sensor 2': CiscoAsaFanSensor(value=7936, state=State.OK, status_readable='Ok', unit='rpm'),
+#         'Chassis Sensor 3': CiscoAsaFanSensor(value=7680, state=State.OK, status_readable='Ok',
+#                                               unit='rpm')},
+#     power={'supply 1': CiscoAsaPowerSensor(state=State.CRIT, status_readable='nonoperational'),
+#            'supply 2': CiscoAsaPowerSensor(state=State.OK, status_readable='Ok')
+#            })
 #
 
 
-from typing import Dict, List, NamedTuple, Mapping
+from typing import List, NamedTuple, Mapping
 
-from .agent_based_api.v1.type_defs import (
+from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
     DiscoveryResult,
     CheckResult,
     StringTable,
 )
 
-from .agent_based_api.v1 import (
+from cmk.base.plugins.agent_based.agent_based_api.v1 import (
     register,
     Service,
     Result,
@@ -137,7 +145,7 @@ from .agent_based_api.v1 import (
     startswith,
 )
 
-from .utils.temperature import (
+from cmk.base.plugins.agent_based.utils.temperature import (
     check_temperature,
     TempParamType,
     to_celsius,
@@ -151,25 +159,33 @@ from .utils.temperature import (
 # ##################################################################################################
 
 
-class CiscoAsaSensor(NamedTuple):
+class CiscoAsaTempSensor(NamedTuple):
     value: float
     state: State
-    state_readable: str
+    status: int
+    status_readable: str
+    unit: str
+
+
+class CiscoAsaFanSensor(NamedTuple):
+    value: int
+    state: State
+    status_readable: str
     unit: str
 
 
 class CiscoAsaPowerSensor(NamedTuple):
     state: State
-    state_readable: str
+    status_readable: str
 
 
-class CiscoasaSensors(NamedTuple):
-    fan: Mapping[str, CiscoAsaSensor]
-    temp: Mapping[str, CiscoAsaSensor]
+class CiscoAsaSensors(NamedTuple):
+    fan: Mapping[str, CiscoAsaFanSensor]
+    temp: Mapping[str, CiscoAsaTempSensor]
     power: Mapping[str, CiscoAsaPowerSensor]
 
 
-def get_state_readable(st: str) -> str:
+def get_status_readable(st: str) -> str:
     states = {
         '1': 'Ok',
         '2': 'unavailable',
@@ -187,7 +203,7 @@ def get_sensor_state(st: str) -> State:
     return states.get(st, State.CRIT)
 
 
-def parse_cisco_asa_sensors(string_table: List[StringTable]) -> CiscoasaSensors:
+def parse_cisco_asa_sensors(string_table: List[StringTable]) -> CiscoAsaSensors:
     temp = {}
     fan = {}
     power = {}
@@ -195,28 +211,29 @@ def parse_cisco_asa_sensors(string_table: List[StringTable]) -> CiscoasaSensors:
     for sensorname, sensortype, sensorvalue, sensorstatus, sensorunits in string_table[0]:
         if sensorname != '':  # for asa context, there are no real sensors.
             if sensortype == '8':  # Temperature
-                temp.update({sensorname.replace('Temperature ', ''): CiscoAsaSensor(
+                temp.update({sensorname.replace('Temperature ', ''): CiscoAsaTempSensor(
                     value=to_celsius(float(sensorvalue), sensorunits),
                     unit=sensorunits,
                     state=get_sensor_state(sensorstatus),
-                    state_readable=get_state_readable(sensorstatus),
+                    status=int(sensorstatus) - 1,
+                    status_readable=get_status_readable(sensorstatus),
                 )})
 
             if sensortype == '10':  # Fan
-                fan.update({sensorname.replace('Fan ', ''): CiscoAsaSensor(
+                fan.update({sensorname.replace('Fan ', ''): CiscoAsaFanSensor(
                     value=int(sensorvalue),
                     unit=sensorunits,
                     state=get_sensor_state(sensorstatus),
-                    state_readable=get_state_readable(sensorstatus),
+                    status_readable=get_status_readable(sensorstatus),
                 )})
 
             if sensortype == '12':  # Power supply
                 power.update({sensorname.replace('Power ', ''): CiscoAsaPowerSensor(
                     state=get_sensor_state(sensorstatus),
-                    state_readable=get_state_readable(sensorstatus),
+                    status_readable=get_status_readable(sensorstatus),
                 )})
 
-    return CiscoasaSensors(temp=temp, fan=fan, power=power)
+    return CiscoAsaSensors(temp=temp, fan=fan, power=power)
 
 
 register.snmp_section(
@@ -245,23 +262,23 @@ register.snmp_section(
 # ##################################################################################################
 
 
-def discovery_cisco_asa_temp(section: CiscoasaSensors) -> DiscoveryResult:
+def discovery_cisco_asa_temp(section: CiscoAsaSensors) -> DiscoveryResult:
     yield from (Service(item=item) for item in section.temp.keys())
 
 
-def check_cisco_asa_temp(item, params: TempParamType, section: CiscoasaSensors) -> CheckResult:
+def check_cisco_asa_temp(item, params: TempParamType, section: CiscoAsaSensors) -> CheckResult:
     try:
         sensor = section.temp[item]
     except KeyError:
         return
 
-    yield Result(state=sensor.state, summary='Status: %s' % sensor.state_readable)
+    yield Result(state=sensor.state, summary='Status: %s' % sensor.status_readable)
 
     yield from check_temperature(
         sensor.value,
         dev_unit=sensor.unit,
-        dev_status=sensor.state,
-        dev_status_name=sensor.state_readable,
+        dev_status=sensor.status,
+        dev_status_name=sensor.status_readable,
         params=params,
         unique_name='check_cisco_asa_temp.%s' % item,
     )
@@ -285,17 +302,17 @@ register.check_plugin(
 # ##################################################################################################
 
 
-def discovery_cisco_asa_fan(section: CiscoasaSensors) -> DiscoveryResult:
+def discovery_cisco_asa_fan(section: CiscoAsaSensors) -> DiscoveryResult:
     yield from (Service(item=item) for item in section.fan.keys())
 
 
-def check_cisco_asa_fan(item, params, section: CiscoasaSensors) -> CheckResult:
+def check_cisco_asa_fan(item, params, section: CiscoAsaSensors) -> CheckResult:
     try:
         sensor = section.fan[item]
     except KeyError:
         return
 
-    yield Result(state=sensor.state, summary='Status: %s' % sensor.state_readable)
+    yield Result(state=sensor.state, summary='Status: %s' % sensor.status_readable)
 
     yield from check_levels(
         sensor.value,
@@ -324,17 +341,17 @@ register.check_plugin(
 #
 # ##################################################################################################
 
-def discovery_cisco_asa_power(section: CiscoasaSensors) -> DiscoveryResult:
+def discovery_cisco_asa_power(section: CiscoAsaSensors) -> DiscoveryResult:
     yield from (Service(item=item) for item in section.power.keys())
 
 
-def check_cisco_asa_power(item, section: CiscoasaSensors) -> CheckResult:
+def check_cisco_asa_power(item, section: CiscoAsaSensors) -> CheckResult:
     try:
         sensor = section.power[item]
     except KeyError:
         return
 
-    yield Result(state=sensor.state, summary='Status: %s' % sensor.state_readable)
+    yield Result(state=sensor.state, summary='Status: %s' % sensor.status_readable)
 
 
 register.check_plugin(
diff --git a/cisco_asa_sensors.mkp b/cisco_asa_sensors.mkp
index 58899b6953a29e18fb52a3e31257d12667aeab09..c1fdca6f88fcccbf81d9b509ec00c438193ad343 100644
Binary files a/cisco_asa_sensors.mkp and b/cisco_asa_sensors.mkp differ