Simple snmp-plugin is not working yet

I implemented some of the actual checks with my very little checkmk-/python-knowledge and it seems to be working fine, although the implementation is probably not following best practices I guess. Only thing which is not working is the doorOpen OID.

from .agent_based_api.v1 import *

def check_fire_pre(section):
    fire_pre = int(section["fire_pre"])
    if(fire_pre != 1):
        yield Result(state=State.CRIT, summary="Brandfrüherkennung Voralarm hat ausgelöst")
    else:
        yield Result(state=State.OK, summary="Brandfrüherkennung Voralarm ist nicht aktiv")

def check_fire_main(section):
    fire_main = int(section["fire_main"])
    if(fire_main != 1):
        yield Result(state=State.CRIT, summary="Brandfrüherkennung Hauptalarm hat ausgelöst")
    else:
        yield Result(state=State.OK, summary="Brandfrüherkennung Hauptalarm ist nicht aktiv")

def check_ups(section):
    ups = int(section["ups"])
    if(ups != 1):
        yield Result(state=State.CRIT, summary="USV ist gestört")
    else:
        yield Result(state=State.OK, summary="USV ist nicht gestört")

def check_cool_left(section):
    cool_left = int(section["cool_left"])
    if(cool_left != 1):
        yield Result(state=State.CRIT, summary="Klimagerät 1 (links) ist gestört")
    else:
        yield Result(state=State.OK, summary="Klimagerät 1 (links) ist nicht gestört")

def check_cool_right(section):
    cool_right = int(section["cool_right"])
    if(cool_right != 1):
        yield Result(state=State.CRIT, summary="Klimagerät 2 (rechts) ist gestört")
    else:
        yield Result(state=State.OK, summary="Klimagerät 2 (rechts) ist nicht gestört")

def check_pump(section):
    pump = int(section["pump"])
    if(pump != 1):
        yield Result(state=State.CRIT, summary="Kondensatpumpe ist gestört")
    else:
        yield Result(state=State.OK, summary="Kondensatpumpe ist nicht gestört")

def check_power_a(section):
    power_a = int(section["power_a"])
    if(power_a != 1):
        yield Result(state=State.CRIT, summary="Netzteil A ist gestört")
    else:
        yield Result(state=State.OK, summary="Netzteil A ist nicht gestört")

def check_power_b(section):
    power_b = int(section["power_b"])
    if(power_b != 1):
        yield Result(state=State.CRIT, summary="Netzteil B ist gestört")
    else:
        yield Result(state=State.OK, summary="Netzteil B ist nicht gestört")

def check_temp(section):
    temp = float(section["temp"])

    minTemp = 1
    maxTemp = 50
    warnHigh = 29
    critHigh = 33
    warnLow = 19
    critLow = 15

    yield Metric("Temperatur", temp, levels=(warnHigh, critHigh), boundaries=(minTemp, maxTemp))

    if(temp >= critHigh):
        yield Result(state=State.CRIT, summary=f"Temperatur ist zu hoch: {temp}°C")
    elif(temp >= warnHigh):
        yield Result(state=State.WARN, summary=f"Temperatur ist leicht erhöht: {temp}°C")
    elif(temp <= critLow):
        yield Result(state=State.CRIT, summary=f"Temperatur ist zu niedrig: {temp}°C")
    elif(temp <= warnLow):
        yield Result(state=State.WARN, summary=f"Temperatur ist etwas zu niedrig: {temp}°C")
    else:
        yield Result(state=State.OK, summary=f"Temperatur ist normal: {temp}°C")

def check_humid(section):
    humid = float(section["humid"])

    minHumid = 1
    maxHumid = 100
    warnHigh = 55
    critHigh = 65
    warnLow = 24
    critLow = 19

    yield Metric("Luftfeuchtigkeit", humid, levels=(warnHigh, critHigh), boundaries=(minHumid, maxHumid))

    if(humid >= critHigh):
        yield Result(state=State.CRIT, summary=f"Luftfeuchtigkeit ist zu hoch: {humid}%")
    elif(humid >= warnHigh):
        yield Result(state=State.WARN, summary=f"Luftfeuchtigkeit ist leicht erhöht: {humid}%")
    elif(humid <= critLow):
        yield Result(state=State.CRIT, summary=f"Luftfeuchtigkeit ist zu niedrig: {humid}%")
    elif(humid <= warnLow):
        yield Result(state=State.WARN, summary=f"Luftfeuchtigkeit ist etwas zu niedrig: {humid}%")
    else:
        yield Result(state=State.OK, summary=f"Luftfeuchtigkeit ist normal: {humid}%")

def discover_generic(section):
    yield Service()

register.check_plugin(
    name = "rzp_fire_pre",
    sections = ['rzp_data'],
    service_name = "Brandfrüherkennung Voralarm",
    discovery_function = discover_generic,
    check_function = check_fire_pre,
)

register.check_plugin(
    name = "rzp_fire_main",
    sections = ['rzp_data'],
    service_name = "Brandfrüherkennung Hauptalarm",
    discovery_function = discover_generic,
    check_function = check_fire_main,
)

register.check_plugin(
    name = "rzp_ups",
    sections = ['rzp_data'],
    service_name = "USV",
    discovery_function = discover_generic,
    check_function = check_ups,
)

register.check_plugin(
    name = "rzp_cool_left",
    sections = ['rzp_data'],
    service_name = "Klimagerät 1 (links)",
    discovery_function = discover_generic,
    check_function = check_cool_left,
)

register.check_plugin(
    name = "rzp_cool_right",
    sections = ['rzp_data'],
    service_name = "Klimagerät 2 (rechts)",
    discovery_function = discover_generic,
    check_function = check_cool_right,
)

register.check_plugin(
    name = "rzp_pump",
    sections = ['rzp_data'],
    service_name = "Kondensatpumpe",
    discovery_function = discover_generic,
    check_function = check_pump,
)

register.check_plugin(
    name = "rzp_power_a",
    sections = ['rzp_data'],
    service_name = "Netzteil A",
    discovery_function = discover_generic,
    check_function = check_power_a,
)

register.check_plugin(
    name = "rzp_power_b",
    sections = ['rzp_data'],
    service_name = "Netzteil B",
    discovery_function = discover_generic,
    check_function = check_power_b,
)

register.check_plugin(
    name = "rzp_temp",
    sections = ['rzp_data'],
    service_name = "Temperatur",
    discovery_function = discover_generic,
    check_function = check_temp,
)

register.check_plugin(
    name = "rzp_humid",
    sections = ['rzp_data'],
    service_name = "rel. Luftfeuchtigkeit",
    discovery_function = discover_generic,
    check_function = check_humid,
)

def parse_rzp_data(string_table):
    section = {}
#    section["doorOpen"] = string_table[0][0]
    section["fire_pre"] = string_table[0][0]
    section["fire_main"] = string_table[0][1]
    section["ups"] = string_table[0][2]
    section["cool_left"] = string_table[0][3]
    section["cool_right"] = string_table[0][4]
    section["pump"] = string_table[0][5]
    section["power_a"] = string_table[0][6]
    section["power_b"] = string_table[0][7]
    section["temp"] = string_table[0][8]
    section["humid"] = string_table[0][9]
    return section

register.snmp_section(
    name = "rzp_data",
    detect = contains(".1.3.6.1.2.1.1.1.0", "RZ-Products GmbH, DCM Agent"), # sysDescr
    fetch = SNMPTree(
        base = '.1.3.6.1.3.1.0',
        oids = [
#            '0', # doorOpen
            '2', # firePre
            '3', # fireMain
            '4', # ups
            '5', # coolLeft
            '6', # coolRight
            '7', # pump
            '16', # powerA
            '17', # powerB
            '20', # temp
            '21', # humid
        ],
    ),
    parse_function = parse_rzp_data,
)