diff --git a/meshtastic/__main__.py b/meshtastic/__main__.py index 1598f9e..d08a9fd 100644 --- a/meshtastic/__main__.py +++ b/meshtastic/__main__.py @@ -281,6 +281,10 @@ def onConnected(interface): closeNow = True interface.getNode(args.dest).getMetadata() + if args.factory_reset: + closeNow = True + interface.getNode(args.dest).factoryReset() + if args.sendtext: closeNow = True channelIndex = 0 @@ -870,6 +874,9 @@ def initParser(): parser.add_argument( "--device-metadata", help="Get the device metadata from the node", action="store_true") + parser.add_argument( + "--factory-reset", help="Tell the destination node to install the default config", action="store_true") + parser.add_argument( "--reply", help="Reply to received messages", action="store_true") diff --git a/meshtastic/node.py b/meshtastic/node.py index 168c7d4..d48e572 100644 --- a/meshtastic/node.py +++ b/meshtastic/node.py @@ -474,6 +474,14 @@ class Node: return self._sendAdmin(p, wantResponse=True, onResponse=self.onRequestGetMetadata) + def factoryReset(self): + """Tell the node to factory reset.""" + p = admin_pb2.AdminMessage() + p.factory_reset = True + logging.info(f"Telling node to factory reset") + + return self._sendAdmin(p) + def _fixupChannels(self): """Fixup indexes and add disabled channels as needed"""