Пример #1
0
    def delete(self, node_id, index):
        #grp = zwave[node_id].groups.get(index)
        grp = zwave.get_node(node_id).groups.get(index)
        if grp is None:
            return ret_err(
                404,
                f"group at index: {index} in node_id: {node_id}, not found")

        target_node_id = group_parse.parse_args(strict=True).target_node_id

        if target_node_id is None:
            print(f"no or bad data provided: {target_node_id}")
            abort(404)

        if target_node_id not in grp.associations:
            return ret_err(
                404,
                f"target_node_id: {target_node_id} not found in grp: {index}")

        #zwave[node_id].groups[index].remove_association(target_node_id)
        zwave.get_node(node_id).groups.get(index).remove_association(
            target_node_id)

        return ret_msg(
            msg=f"removed node_id: {target_node_id} from group: {index}")
Пример #2
0
    def post(self):
        try:
            zwave.update_options(opt_parse.parse_args(strict=True))
        except ZWaveException as e:
            return Ajax(msg="ZWaveException thrown: {}".format(str(e))) \
                .set_state("options", OptionState.failed).render()

        p = zwave.raw_opts.device
        try:
            msg = "Could not open zwave serial device: {} [permissions?]".format(
                p)
            if p is None or not os.path.exists(p) or \
                (not open(p, "rb").readable()) or \
                (not open(p, "wb").writable()):
                print("bad device path: {}".format(p))
                return ret_err(404, msg)
        except PermissionError as e:
            return ret_err(404, msg + " Exception: " + str(e))

        try:
            zwave.set_options()
        except ZWaveException as e:
            return Ajax(msg="ZWaveException thrown: {}".format(str(e))) \
                .set_state("options", OptionState.failed).render()

        return Ajax(data=dict(zwave.raw_opts.items())) \
            .set_state("options", OptionState.locked).render()
Пример #3
0
 def delete(self):
     try:
         zwave.clear_options()
     except ZWaveException as e:
         return ret_err(404, msg="ZWaveException thrown: {}".format(str(e)))
     return Ajax(data=dict(zwave.raw_opts.items())) \
        .set_state("options", OptionState.empty).render()
Пример #4
0
    def post(self, node_id, value_id):
        print("NODE VALUE SET:", node_id, " VALID: ", value_id)
        data = value_parse.parse_args(strict=True).data
        if data is None:
            print("no or bad data provided: {}".format(data))
            abort(404)

        #_node_id, val = zwave.get_value_by_uid(uid)

        #try:
        #  print (node_id, uid)
        #  obj = zwave[node_id].values[uid]
        #except KeyError as e:
        #  print ("\n".join(["{1}: {0}".format(zwave[node_id].values[k], k) for k in zwave[node_id].values.keys()]))
        #if node_id is None or value_id is None:

        node_vals = zwave[node_id].values
        if value_id not in node_vals:
            return ret_err(404,
                           msg="ValueID not found: {} node_id: {}".format(
                               value_id, node_id))

        data = node_vals[value_id].check_data(data)
        #print ("SEETTTING", val, val.data, "TOOOO:", data)
        if data is None:
            print("data contents are crap: {}, check_data() failed...".format(
                data))
            abort(405)
        node_vals[value_id].data = data
        #from IPython import embed
        #embed()
        #val.data = data

        return ret_msg(msg="data for value set successfully")
Пример #5
0
    def put(self, node_id, index):
        grp = zwave.get_node(node_id).groups.get(index)
        if grp is None:
            return ret_err(
                404,
                f"group at index: {index} in node_id: {node_id}, not found")

        target_node_id = group_parse.parse_args(strict=True).target_node_id
        if target_node_id is None:
            print(f"no or bad data provided: {target_node_id}")
            abort(404)

        zwave.get_node(node_id).groups.get(index).add_association(
            target_node_id)
        #zwave[node_id].groups[index].add_association(target_node_id)
        return ret_msg(
            msg=f"added node_id: {target_node_id} to group: {index}")
Пример #6
0
    def post(self, node_id, value_id):
        print("NODE VALUE SET:", node_id, " VALID: ", value_id)
        data = value_parse.parse_args(strict=True).data
        if data is None:
            print("no or bad data provided: {}".format(data))
            abort(404)

        node_vals = zwave.get_node(node_id).values  #[node_id].values
        if value_id not in node_vals:
            return ret_err(
                404, msg=f"ValueID not found: {value_id} node_id: {node_id}")

        data = node_vals[value_id].check_data(data)
        if data is None:
            print(f"data contents are crap: {data}, check_data() failed...")
            abort(405)
        node_vals[value_id].data = data

        return ret_msg(msg="data for value set successfully")
Пример #7
0
 def get(self, node_id, index):
     grp = zwave.get_node(node_id).groups.get(index).to_dict()
     if grp is not None:
         return ret_ajax(grp)
     return ret_err(
         404, f"group at index: {index} in node_id: {node_id}, not found")