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}")
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()
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()
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")
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}")
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")
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")