def METHOD_NAME(sock):
    next_graph = {}
    while True:
        line, _addr = sock.recvfrom(1024)
        try:
            line = parse_syslog(line)
            data = json.loads(line)
            now = int(time.time())
            label = sanitize(data["model"])
            if "channel" in data:
                label += ".CH" + str(data["channel"])
            elif "id" in data:
                label += ".ID" + str(data["id"])
            rrd_file = RRD_PATH + label + ".rrd"
            if "type" in data and data["type"] == "TPMS":
                continue
            if "temperature_C" not in data:
                continue
            temperature = data["temperature_C"]
            humidity = "U"
            if "humidity" in data:
                humidity = data["humidity"]
            try:
                rrdtool.info(rrd_file)
            except rrdtool.OperationalError:
                create_rrd(rrd_file)
            update_rrd(rrd_file, temperature, humidity)
            if label not in next_graph or next_graph[label] < now:
                graph_rrd(rrd_file, label, GRAPH_PATH)
                next_graph[label] = now + GRAPH_INTERVAL
        except KeyError:
            pass
        except ValueError:
            pass