WO2024036043A1 - Method and apparatus for controlling electronic devices - Google Patents

Method and apparatus for controlling electronic devices Download PDF

Info

Publication number
WO2024036043A1
WO2024036043A1 PCT/US2023/071082 US2023071082W WO2024036043A1 WO 2024036043 A1 WO2024036043 A1 WO 2024036043A1 US 2023071082 W US2023071082 W US 2023071082W WO 2024036043 A1 WO2024036043 A1 WO 2024036043A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
reboot
data
pcc
processor
Prior art date
Application number
PCT/US2023/071082
Other languages
French (fr)
Inventor
Brian O'connor
Adam Weiner
Original Assignee
Granite Telecommunications, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US18/079,560 external-priority patent/US11962458B2/en
Application filed by Granite Telecommunications, Llc filed Critical Granite Telecommunications, Llc
Publication of WO2024036043A1 publication Critical patent/WO2024036043A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/10Current supply arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements

Definitions

  • a power cycle controller colocated with one or more customer devices, under the control of a remote cloud-based management system, monitors internet connectivity and, upon a determination that connectivity is lost, automatically reboots the one or more customer devices.
  • the automated reboot can operate in scenarios that include loss of internet connectivity, extreme packet loss, and scheduled reboots. In the event that the power cycle controller itself fails, power continues to pass through the power cycle controller to keep power to customer devices.
  • the power cycle controller includes remote cellular connectivity, as well as the ability to utilize a wireline connection, to ensure high availability and out-of-band access to monitor devices.
  • An example embodiment is directed to an apparatus for rebooting an electronic device.
  • the apparatus includes a data interface, a first power port, a second power port, a switch, and a processor.
  • the data interface is configured to connect to the electronic device.
  • the first power port is configured to receive power from a power source and the second power port is configured to deliver power to the electronic device.
  • the switch is configured to connect the first power port to the second power port.
  • the processor conducts data communications monitoring of the electronic device via the data interface and reboots the electronic device responsive to the data communications monitoring.
  • the data interface is configured to connect to the electronic device via at least one of an Ethernet connection and a WiFi connection.
  • the electronic device can be a first electronic device and the apparatus may further include a communication interface configured to connect the apparatus to a controldevice communicatively coupled to a second electronic device.
  • the processor may be further configured to send a command to the control -device and receive data from the control-device.
  • the control-device is configured to perform one or more control operations of the second electronic device.
  • the processor is configured to reboot the electronic device by opening the switch connecting the first power port to the second power port and closing the switch following a backoff period.
  • the monitored and rebooted electronic device may be any electronic device known in the art.
  • the electronic device may be a modem, a router, a switch, a point-of-sale (POS) system, a server, an environment monitoring system (EMS), a network interface device (NID), a computing device, a software-defined wide area network (SDWAN) appliance, or an antenna, among other examples.
  • the router may be a wireless router or a wired router, or any other router known in the art.
  • the NID may be a carrier NID.
  • the antenna may be an external antenna.
  • the data communications monitoring can include testing at least one of access to an Internet server, access to a Domain Name System (DNS) server, accessing a Uniform Resource Locator (URL), making an application programming interface (API) call, receiving an API call, sending data via an Internet protocol, and receiving data via an Internet protocol.
  • DNS Domain Name System
  • API application programming interface
  • the data communications monitoring may include testing connectivity through the electronic device to a network point.
  • the processor is configured to reboot the electronic device responsive to the data communications monitoring detecting a failure condition in the connectivity through the electronic device to the network point.
  • the data communications monitoring is configurable.
  • the processor is further configured to reboot the electronic device in accordance with a user specified condition. Thus, such an embodiment may reboot the electronic device without considering data communications monitoring.
  • such an embodiment may reboot the electronic device in accordance with a schedule or responsive to a user command, among other examples.
  • the processor may be configured to reboot the electronic device responsive to the data communications monitoring identifying existence of a user specified condition, e.g., a data communications condition or other such condition.
  • the apparatus may further include a cellular interface configured to connect the apparatus to a cloud management system.
  • the processor is further configured to track reboot information for reporting via the cellular interface to the cloud management system.
  • the cellular interface is configured to enable Long-Term Evolution (LTE) communications between the apparatus and the cloud management system.
  • LTE Long-Term Evolution
  • the electronic device is a first electronic device, the data interface is a first data interface, and the switch is a first switch.
  • the apparatus further includes a second data interface, a third power port, and a second switch.
  • the second data interface is configured to connect to a second electronic device and the third power port is configured to deliver power to the second electronic device.
  • the second switch is configured to connect the first power port to the third power port.
  • the processor is configured to (i) conduct data communications monitoring of the second electronic device via the second data interface and (ii) reboot the second electronic device responsive to the data communications monitoring of the second electronic device.
  • the reboot of the second electronic device is independent of the reboot of the first electronic device.
  • Another example embodiment is directed to an apparatus for controlling an electronic device.
  • the apparatus includes a cellular interface, a data interface, and a processor.
  • the cellular interface is configured to connect the apparatus to a cloud management system and the data interface is configured to connect to the electronic device.
  • the processor is configured to perform one or more control operations of the electronic device.
  • the cellular interface can establish any cellular connection known in the art, such as a LTE connection.
  • the one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system, taking any preprogrammed action, and sending an impulse to the electronic device.
  • the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions.
  • the processor is further configured to receive an indication of the one or more control operations via the cloud management system. In response to the received indication, the processor performs the one or more control operations. According to another embodiment, the indication of the one or more control operations is provided by a user via the cloud management system. In yet another embodiment, the processor is further configured to monitor the electronic device via the data interface and perform the one or more control operations responsive to the monitoring.
  • An example embodiment is directed to a method for rebooting an electronic device.
  • the method establishes a communication connection to the electronic device and conducts data communications monitoring of the electronic device via the established communication connection. Responsive to the data communications monitoring, the method reboots the electronic device.
  • Another example embodiment is directed to a method for controlling an electronic device.
  • a cellular communication connection to a cloud management system is established. The method then communicates with the electronic device and performs one or more control operations of the electronic device.
  • FIG. l is a simplified block diagram of a system for controlling an electronic device, according to an example embodiment.
  • FIG. 2A is a flow diagram of a method for rebooting an electronic device.
  • FIG. 2B is a flow diagram of a method for implementing steady state logic in relation to a method for rebooting an electronic device.
  • FIG. 2C is a flow diagram of a method for implementing reboot/backoff logic in relation to a method for rebooting an electronic device.
  • FIG. 3 is a simplified block diagram of an exemplary system for controlling multiple electronic devices.
  • FIG. 4 is a flow diagram of a method for rebooting an electronic device, according to an embodiment.
  • FIG. 5 is a simplified block diagram of a system for controlling an electronic device, according to an embodiment.
  • FIG. 6 is a flow diagram of an example method for controlling an electronic device.
  • FIG. 7A is a system block diagram illustrating a remote cloud-based management system in communication with a power cycle controller having a single alternating current (AC) output port and co-located with a customer device, according to an example embodiment.
  • AC alternating current
  • FIG. 7B is a system block diagram illustrating a remote cloud-based management system in communication with a power cycle controller having three AC output ports and colocated with multiple customer devices, according to another example embodiment.
  • FIG. 8 is a block diagram illustrating a power cycle controller, according to an example embodiment.
  • FIG. 9 is a flow diagram illustrating processes operating at a power cycle controller in relation to power control of a customer device, according to an example embodiment.
  • FIG. 10 illustrates a watchdog service according to an example embodiment.
  • FIG. 11 illustrates a computer network or similar digital processing environment in which embodiments may be implemented.
  • FIG. 12 is a diagram illustrating an example internal structure of a computer in the environment of FIG. 11.
  • an “out- of-band” (OOB) connection is provided for communicating with electronic devices.
  • the OOB connection may be a cellular connection, such as a LTE connection, or any other connection known in the art. Using the OOB connection allows for communications with and control of electronic devices even when other data connectivity to the devices is disrupted.
  • FIG. 1 is a simplified block diagram of one such example system 100 for controlling an electronic device according to an embodiment.
  • the system 100 includes a power cycle controller (PCC) 108 that is configured to cycle power to a modem 105.
  • the PCC 108 can implement the methods 220, 230, 240, 400, and/or 600, described hereinbelow in relation to FIGs. 2A, 2B, 2C, 4, and 6, respectively, to perform control operations, e.g., reboots, of the modem 105.
  • the PCC 108 includes (not shown) a data interface, a first power port, a second power port, a switch, and a processor.
  • the data interface is configured to establish communication connection 106 to the modem 105.
  • the first power port is configured to receive power from a utility power source 109 via an AC connection 110 and the second power port is configured to deliver power to the modem 105 via an AC connection 107.
  • the switch is configured to connect the first power port to the second power port.
  • the processor (i) conducts data communications monitoring of the modem 105 via the communication connection 106, which may be any communication connection known in the art, such as an Ethernet or WiFi connection, and (ii) reboots the modem 105 responsive to the data communications monitoring.
  • the PCC 108 uses the communication connection 106 and the modem 105 to connect to an Internet 104 and points accessible via the Internet 104, e.g., a DNS server 101, a website URL 102, and an API 103.
  • FIG. 1 illustrates the modem 105 as an example of an electronic device
  • electronic devices monitored and controlled using the functionality described herein are not limited to modems.
  • the electronic device may be a router, a switch, a point-of-sale (POS) system, a server, an environment monitoring system (EMS), a network interface device (NID), a computing device, a software-defined wide area network (SDWAN) appliance, and an antenna, or any other device known in the art.
  • POS point-of-sale
  • EMS environment monitoring system
  • NID network interface device
  • SDWAN software-defined wide area network
  • the processor of PCC 108 is further configured to reboot the electronic device 105 in accordance with a user specified condition.
  • a user specified condition may reboot the electronic device 105 without considering data communications monitoring.
  • such an embodiment may reboot the electronic device 105 in accordance with a schedule or responsive to a user command, among other examples.
  • the processor may be configured to reboot the electronic device 105 responsive to the data communications monitoring identifying existence of a user specified condition. In other words, such an embodiment allows a user to indicate conditions/characteristics identified by the data communications monitoring that warrant rebooting the device 105.
  • the system 100 also includes an exemplary cloud management system PCC Web Graphical User Interface (GUI) 112 and a cellular connection tunnel 111.
  • the PCC 108 may further include a cellular interface (not shown) that is configured to connect the PCC Web GUI 112 via the cellular connection 111.
  • the cellular interface can establish any cellular connection known in the art, such as a LTE connection.
  • the processor of PCC 108 is further configured to track reboot and other information for reporting via the cellular interface to the cloud management system PCC Web GUI 112.
  • the tracked information may include status information about an apparatus, e.g., PCC 108, as well as status information about network(s), interface(s), port(s), connect!
  • examples of tracked information may include any or all of the following: a) Information about the number of reboots over the lifetime of the apparatus. b) Information about the number of reboots in a user-configurable timeframe, e.g., in the last three hours. c) Information about the number of reboots since the last system restart. i. According to an implementation, a system restart may be prompted by a “watchDogService” function (described in more detail hereinbelow with respect to FIG.
  • determining that no activity is occurring on a cellular connection e.g., cellular connection 111.
  • CPU Central processing unit
  • CPU temperature of the apparatus e.g., CPU temperature of the apparatus.
  • Memory usage of the apparatus which may be expressed as a percentage value.
  • IOPS Input/output operations per second
  • m Information about a cellular connection, e.g., cellular connection 111, such as received signal strength indicator (RSSI), reference signal received quality (RSRQ), and/or signal -to-noise ratio (SNR).
  • RSSI received signal strength indicator
  • RSRQ reference signal received quality
  • SNR signal -to-noise ratio
  • reboot information such as in items a)-c) described above, may be stored as a key/value pair data structure, where each key is associated with a particular reboot, and each value includes detailed information about that reboot.
  • a particular reboot may correspond to an action taken on an individual port, and detailed information about the reboot may include the reason for the reboot, e.g., the apparatus or a device was unresponsive, or the reboot was requested remotely.
  • the tracked information described in the examples above may be obtained using a monitoring application locally installed on the apparatus, e.g., PCC 108.
  • the monitoring application is a “watchdog” service, such as the “watchDogService” function described hereinbelow with respect to FIG. 10.
  • the monitoring application evaluates the overall “health” of a system, which may include the status of daemons and binaries, etc., running on the apparatus, as well as the status of individual services, e.g., a network or modem manager.
  • the monitoring application determines the status of a steady state/reboot logic, such as logic 221 (FIG. 2A), 232 (FIG.
  • the monitoring application may individually restart any of the daemons, binaries, or individual services, etc., as well as any other application or program running on the apparatus. According to an embodiment, the monitoring application may also restart an entire system or apparatus, e.g., the PCC 108, if one or more conditions are met, such as when CPU and/or memory usage exceed a threshold.
  • the PCC Web GUI 112 provides out-of-band (OOB) access to and management of the device 105 via PCC 108 even when it cannot otherwise be reached through Internet 104.
  • OOB out-of-band
  • the PCC Web GUI 112 allows a user to configure the data communications monitoring and other aspects of PCC 108 operation remotely, such as by adding, removing, or modifying configuration data.
  • the PCC 108 may include a default configuration provided for standard users. The default configuration may facilitate “plug & play” installation of the PCC 108. In one such example, the default configuration indicates settings and/or behavior for the data communications monitoring performed by the PCC 108.
  • the PCC 108 is configured to periodically (e.g., every 30s) poll DNS server(s) reachable via a public network, such as the global internet, or any other network known in the art.
  • the DNS server(s) may be specified by Internet Protocol (IP) address(es), e.g., 8.8.8.8, 8.8.4.4, 1.1.1.1, and 1.0.0.1.
  • the polling may include transmitting 64 kilobyte (K) packets to the server(s).
  • a specialized configuration may be used. The specialized configuration may be developed based on user input.
  • FIG. 2A is a flow diagram of a method 220 for rebooting an electronic device.
  • the method 220 starts at step 221 by entering a steady state logic phase.
  • different types of devices and/or network endpoints may be organized or grouped according to priority (P) “buckets” or tiers.
  • P priority
  • the steady state logic may be separately defined or specified for each different bucket or tier.
  • Such logic may be included as part of a default configuration for, e.g., the PCC 108 (FIG. 1), or may be user- configured.
  • an exemplary grouping of priority buckets P1/P2/P3, including types and categories of devices and/or endpoints belonging to each bucket, is described below: a) Pl : point of sale (POS — i.e., payment processor), DNS (e.g., up/down, packet loss, latency /jitter); b) P2: critical (e.g., datacenters), applications; c) P3 : general internet, scheduled reboots.
  • the priority buckets may be user-configured.
  • the user configuration may include modifying any variable or value in a bucket or tier, as well as assigning a network endpoint to a particular bucket or tier.
  • the separate logic for each bucket or tier may be evaluated in a systematic fashion, such as by using a dynamic decision tree, or any other technique known to those of skill in the art.
  • the step 221 steady state logic phase functionality performs the FIG. 2B method 230.
  • the method 230 starts at step 231 by reading configuration data.
  • the configuration data may be read from a database or any other suitable storage system known in the art.
  • Example configuration data include the following: a) Details of “remote endpoints” (REs), i.e., network destinations used in conjunction with the data communications monitoring described herein, including failure coefficients for each RE. b) Sample failure conditions. c) Definitions of failure conditions, which may be user-specified. d) Backoff logic, which may be user-configured.
  • REs remote endpoints
  • the step 232 data communications monitoring may include testing at least one of access to an Internet server, such as via Internet 104 (FIG. 1), access to a DNS server, e.g., DNS server 101 (FIG. 1), accessing a URL, such as a website URL 102 (FIG. 1), making an API call, such as via API 103 (FIG. 1), receiving an API call, sending data via an Internet protocol, such as Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), and any other protocols known in the art, and receiving data via an Internet protocol.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • ICMP Internet Control Message Protocol
  • the data communications monitoring at step 232 may also include testing connectivity through an electronic device, e.g., modem 105 (FIG. 1), to a network point, e.g., a RE.
  • a RE may include a destination on the public Internet or a private intranet.
  • An RE may further be specified by a website URL, e.g., URL 102 (FIG. 1), such as: a) Google.com b) Cloudflare.com c) Akamai.com d) YouTube.com e) Facebook.com f) Twitter.com g) Amazon.com h) Yahoo.com i) Chase.com
  • the URL when a RE is specified by a URL, the URL may first be translated into a corresponding Internet Protocol (IP) address before attempting a connection.
  • IP Internet Protocol
  • the translation may be performed via a DNS server, e.g., DNS 101 (FIG. 1), according to techniques known in the art.
  • a RE may also be a user-specific server on a user network, e.g., a private intranet.
  • the user-specific server may be a DNS server, a Dynamic Host Configuration Protocol (DHCP) server, a data inventory server, a resource server, or any other server known in the art.
  • DHCP Dynamic Host Configuration Protocol
  • a RE may correspond to a DNS server, e.g., DNS 101 (FIG. 1), and may be further indicated directly with an IP address, such as: a) 8.8.8.8 (Google) b) 1.1.1.1 (Cloudflare) c) 208.67.222.222 (OpenDNS) d) lO.x.x.x (a user internal IP address, e.g., on a private intranet)
  • a RE may also be an API, e.g., API 103 (FIG. 1).
  • the API may further provide custom input from a user.
  • an API is not a RE, but rather an electronic device connected to a PCC, e.g., PCC 108 (FIG. 1).
  • the PCC may communicate with an API endpoint on the electronic device and retrieve the results of an API call performed on the device. Depending on whether the retrieved results correspond to a predetermined value, the PCC may control the electronic device such as by rebooting the device, or performing some other action with respect to the device. Examples of other actions include executing a script that restarts the API on the electronic device.
  • connection monitoring to a RE may be performed at step 232 via assorted protocols known in the art, including high-level transport protocols such as TCP and UDP, as well as low-level network layer protocols such as ICMP.
  • TCP is more reliable (as compared to UDP) and includes a three-step process for verifying that data is transferred correctly.
  • UDP may be used for applications such as Voice over Internet Protocol (VoIP) and other real-time applications.
  • ICMP may be used to send a “ping” message to a RE.
  • a port number when connecting to a RE via protocols such as TCP or UDP, a port number may be further specified for the RE, according to techniques known in the art. For example, when a RE corresponds to a DNS server, e.g., DNS 101 (FIG. 1), the port number may be specified as 443.
  • additional types of data may be collected at step 232.
  • data may include the amount of traffic sent to or received from a RE, which may be expressed as, e.g., kilobits or megabits per second (Kbps or Mbps).
  • Kbps or Mbps megabits per second
  • Other types of data may include the maximum, minimum, average, and/or total amount of traffic sent or received.
  • additional types of data may be collected.
  • data may include the number of “ping” messages successfully transmitted to a RE, which may be expressed as a percentage value.
  • Other types of data may include the elapsed time (i.e., latency) between sending a “ping” message and receiving an acknowledgement, which may be expressed as, e.g., milliseconds (ms).
  • the method 230 determines whether the data communications steady state monitoring 232 has detected a failure condition 234, or has not detected a failure condition 233. If a failure condition is not identified 233, the method 230 continues the steady state monitoring 232, and if a failure condition is identified 234, the method 230 moves to step 235 and triggers reboot/backoff logic.
  • the reb oot/backoff logic 235 may include the method 240 described hereinbelow in relation to FIG. 2C.
  • failure condition 234 may include disruption in connectivity as identified by an inability of the PCC 108 to connect to a network point, e.g., a RE.
  • the data communications monitoring (step 232) and conditions of failure (step 234) is configurable.
  • failure conditions identified through steady state monitoring 232 and evaluated at step 234 and 233 may be defined in various ways.
  • a failure condition and its corresponding reboot action(s) may be defined according to one or more of the exemplary categories below: a) Modem Metrics i. Downstream power outside +8db to -8db: reboot ii. Upstream power outside 40-50db: reboot iii. Signal/Noise Ratio (SNR) ⁇ 25db or > 40db: reboot iv. Uptime > 60 days: reboot b) CPU Usage i. CPU usage > 70%: reboot at designated “off hours” time; alert Network Operations Center (NOC) via ticket ii.
  • NOC Network Operations Center
  • failure conditions associated with network points may be grouped or categorized according to various priority “buckets” or tiers.
  • each of the above network point failure conditions i-iv is assigned to a numbered tier, with, e.g., Tier 1 corresponding to a critical priority and Tier 4 corresponding to a lowest priority.
  • failure conditions may be included as part of a default configuration for, e.g., the PCC 108; failure conditions may also be user- configured. According to an aspect, users may configure the following values associated with failure conditions: a) Information about a RE. b) Number of REs. c) RE priority bucket/tier. d) Frequency of RE checks/connection attempts. e) Information about action(s) to take. f) Number of action(s) to take.
  • step 233 if no failure condition is detected at step 233, the method 230 returns to step 232.
  • step 234 if a failure condition is detected, the method 230 continues to a reboot/backoff logic phase at step 235.
  • the method 220 compares the failure condition to a baseline configuration at step 223.
  • the comparison may include a logical comparison. For example, where a configured range for a given parameter is 8-17, comparing a value of 14 will result in a determination that the value falls within the range, while comparing a value of 19 will result in a determination that the value falls outside the range. According to some embodiments, different comparison results will trigger different types of logic. If the comparison 223 indicates that a failure condition exists at step 224, the method 220 then moves to step 225 and reboots the device. The method 220 reboots the electronic device, e.g., modem 105 (FIG. 1), at step 225 by sending a general-purpose input/output (GPIO) signal to an electrical relay.
  • GPIO general-purpose input/output
  • the GPIO signal may be sent via, e.g., GPIO port 892 (FIG. 8), to an electrical relay, e.g., relay 887 (FIG. 8).
  • the method 220 After the reboot 225, the method 220 performs a backoff at step 226 and after the backoff 226, the method 220 returns to the steady state monitoring 221.
  • the method 220 may implement the reboot/backoff method 240, described hereinbelow in relation to FIG. 2C, at steps 225/226 according to an embodiment. Alternately, if the comparison 223 indicates that a failure condition is not present at step 227, the method 220 returns to the steady state monitoring 221.
  • FIG. 2C is a flow diagram of a method 240 for implementing reboot/backoff logic that may be implemented at steps 225 and 226 of the method 220 (FIG. 2A) and/or step 235 of the method 230 (FIG. 2B).
  • the method 240 of FIG. 2C reads configuration data at step 241 and enters a steady state/auto-r eboot phase at step 242.
  • the steady state/auto-reboot phase 242 then moves to step 243 where the backoff logic is checked.
  • the backoff logic may be included in the configuration data and may be partly or wholly user-configured.
  • a ticket is opened for corrective action at step 249.
  • the ticket for corrective action may be opened with, e.g., an internet service provider (ISP).
  • ISP internet service provider
  • the ticket may also be for external corrective action.
  • the processor of, e.g., PCC 108 is configured to reboot the electronic device, e.g., modem 105 (FIG. 1), by opening the switch, e.g., relay 887 (FIG. 8), that connects the first power port to the second power port and closing the switch following a backoff period.
  • the backoff period may be specified as described above with respect to step 243 of method 240 (FIG. 2C).
  • the method 240 may determine whether a manual reboot is requested at step 250. If a manual reboot is requested, at step 251, the method 240 triggers a reboot of the electronic device, e.g., modem 105 (FIG. 1). An informational ticket is then generated at step 252. According to yet another aspect, the method 240 may determine whether a scheduled reboot is required at step 253. If a scheduled reboot is required, at step 254, the method 240 triggers a reboot of the electronic device, e.g., modem 105 (FIG. 1). An informational ticket is then generated at step 255.
  • watchdog monitoring is performed with respect to every step of the method 240.
  • the watchdog monitoring may be performed by a “watchDogService” function such as described hereinbelow with respect to FIG. 10.
  • FIG. 3 is a simplified block diagram of an exemplary system 330 for controlling multiple electronic devices.
  • the system 330 includes a PCC 338 that is configured to cycle power to a modem 335.
  • the PCC 338 receives power from a utility power source 339 via an AC connection 340 and delivers power to the modem 335 via an AC connection 337. Further, the PCC 338 (i) conducts data communications monitoring of the modem 335 via a communication connection 336 and (ii) reboots the modem 335 responsive to the data communications monitoring.
  • the data communications monitoring includes the PCC 338 using the communication connection 336 and the modem 335 to connect to an Internet 334 and points accessible via the Internet 334, e.g., a DNS server 331, a website URL 332, and an API 333.
  • an Internet 334 e.g., a DNS server 331, a website URL 332, and an API 333.
  • the system 330 additionally includes an exemplary cloud management system PCC Web GUI 347 and a cellular connection tunnel 341.
  • the PCC 338 may also connect to the PCC Web GUI 347 via the cellular connection 341.
  • the system 330 further includes one or more secondary power distribution units (PDUs) 342a-c.
  • each of the secondary PDUs 342a-c connects to one or more electronic devices, such as network switch 343, cash wrap 344, smart sign 345, and wireless access points 346a-b.
  • the modem 335 can be a first electronic device and the PCC 338 may further include a communication interface (not shown) configured to connect to a control-device, e.g., the secondary PDU 342a, communicatively coupled to a second electronic device, e.g., the network switch 343 or cash wrap 344.
  • the processor (not shown) of PCC 338 may be further configured to send a command to the control-device, e.g., the secondary PDU 342a, and receive data from the control -device 342a.
  • control-device e.g., the secondary PDU 342a
  • the control-device is configured to perform one or more control operations of the second electronic device, e.g., the network switch 343 or cash wrap 344.
  • the secondary PDUs 342a-c may be configured to perform the functionalities of the PCC 338.
  • the secondary PDUs 342a-c can implement the methods 220, 230, 240, 400, and/or 600, described herein in relation to FIGs. 2A, 2B, 2C, 4, and 6, respectively, to perform control operations, e.g., reboots, of the electronic devices 343, 344, 345, and 346a-b.
  • the secondary PDUs 342a-c are also communicatively coupled with the PCC Web GUI 347 via the cellular connection 341 of the PCC 338.
  • the PDUs 342a-c communicate with the PCC 338 to facilitate data communication to and from the PCC Web GUI 347 utilizing the PCC 338’s cellular connection 341.
  • the secondary PDUs 342a-c may be functionally equivalent to the PCC 338, with the exception being that the secondary PDUs 342a-c do not have a cellular interface and, instead, rely on the PCC 338’s cellular interface to communicate with the PCC Web GUI 347.
  • FIG. 4 is a flow diagram of a method 400 for rebooting an electronic device, according to an embodiment.
  • the method 400 may be implemented by a power cycle controller as described herein, e.g., PCC 108 (FIG. 1), PCC 338 (FIG. 3), and/or PDUs 342a- c (FIG. 3).
  • PCC 108 FIG. 1
  • PCC 338 FIG. 3
  • PDUs 342a- c FIG. 3
  • the method 400 starts at step 401 by establishing a communication connection with an electronic device.
  • the PCC 108 may establish communication connection 106 with the modem 105.
  • the communication connection 106 may be any communication connection known in the art, such as an Ethernet or WiFi connection.
  • the PCC 338 may establish Ethernet connection 336 to the modem 335, and/or one or more of the secondary PDUs 342a-c may establish a communication connection to one or more of the network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b, respectively.
  • the method 400 conducts data communications monitoring of the electronic device.
  • the PCC 108, PCC 338, and/or PDUs 342a-c may conduct data communications monitoring of one or more electronic devices such as modem 105, modem 335, network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b.
  • the data communications monitoring may be conducted in the manner described above with respect to step 232 of the method 230 (FIG. 2B).
  • the method 400 reboots the electronic device responsive to the data communications monitoring.
  • the PCC 108, PCC 338, and/or PDUs 342a-c may reboot one or more electronic devices such as modem 105, modem 335, network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b. Rebooting the one or more electronic devices may be performed according to reb oot/backoff logic as described above with respect to the method 240 (FIG. 2C).
  • FIG. 5 is a simplified block diagram of a system 550 for controlling an electronic device, according to an embodiment.
  • the system 550 includes a PCC 551 and a cloud management system 552.
  • the PCC 551 includes (not shown) a cellular interface, a data interface, and a processor.
  • the cellular interface is configured to connect via a LTE or other wireless connection 558 to the cloud management system 552, which may be, e.g., PCC Web GUI 112 (FIG. 1).
  • the data interface is configured to connect to the electronic device (not shown), which may be, e.g., modem 105 (FIG. 1).
  • the processor is configured to perform one or more control operations of the electronic device.
  • the one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system 552, taking any preprogrammed action, and sending an impulse to the electronic device.
  • the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions, such as the failure conditions described hereinabove.
  • the PCC 551 may include a memory database 563.
  • the memory database 563 may include one or more database systems such as SQLite, Prometheus, Redis, or InfluxDB, and/or any other suitable database or storage system known to those in the art.
  • the PCC 551 may include an operating system (OS) 559.
  • the OS 559 may be a Linux-based OS, e.g., a version of a Debian Linux distribution, or any other OS known to those of skill in the art.
  • the OS 559 may include watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562.
  • the watchdog daemon 560 may include a service that observes the steady state daemon 561 and controls it by, for example, restarting the steady state daemon 561 if an unrecoverable issue occurs.
  • the reboot/backoff daemon 562 may be invoked by the steady state daemon 561 when reboot and/or backoff services are required.
  • the watchdog daemon 560 may be implemented via, e.g., a “watchDogService” function 1010, described in more detail hereinbelow with respect to FIG. 10.
  • the steady state daemon 561 and reboot/backoff daemon 562 may be implemented variously by the methods 220, 230, and/or 240, described in more detail hereinabove with respect to FIGs. 2A, 2B, and 2C, respectively.
  • one or more of the watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562 may communicate with the memory database 563.
  • the watchdog daemon 560, steady state daemon 561, and/or reboot/backoff daemon 562 may retrieve data from or store data to the memory database 563.
  • the PCC 551 may include agents 556.
  • the agents 556 may include binaries, processes, and/or services running or executing on the PCC 551.
  • the agents 556 may perform tasks such as data collection, data aggregation, and data output concerning various aspects of the system 550, including the PCC 551, one or more electronic devices, e.g., the modem 105 (FIG. 1), connected to the PCC 551, and/or one or more communications networks.
  • the agents 556 may communicate with the memory database 563.
  • the agents 556 may retrieve data from or store data to the memory database 563.
  • the cloud management system 552 may include a time series database 555 and a relational database 564.
  • the time series database 555 may be used to store information concerning data communications monitoring performed by the PCC 551.
  • the relational database 564 may be a PostgreSQL database, or any other suitable database or storage system known in the art.
  • the relational database 564 may be used, for example, to store “static” information, such information regarding customers, locations, etc.
  • the cloud management system 552 may include a front end/ API backend 553 and a cloud Internet-of-Things (loT) service 565, and the PCC 551 may include an loT notify component 554.
  • the front end 553 may be implemented using React or any other suitable system known to those of skill in the art.
  • the loT notify component 554 may run or execute on the PCC 551 and may adjust or modify various parameters associated with one or more of the watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562. According to such an implementation, parameters may be “posted” to the loT notify component 554 by the cloud management system 552.
  • the loT notify component 554 may also retrieve information concerning the operating status of the agents 556 indirectly by querying such information from the memory database 563.
  • the processor of PCC 551 is further configured to receive an indication of the one or more control operations via the cloud management system 552 and in response to the received indication, perform the one or more control operations.
  • the indication may be received from front end 553 by the cloud loT service 565, and then relayed by the cloud loT service 565 to the loT notify component 554.
  • the indication of the one or more control operations is provided by a user via the cloud management system 552.
  • the processor is further configured to monitor the electronic device, e.g., modem 105 (FIG. 1), via the data interface and perform the one or more control operations responsive to the monitoring.
  • the cloud management system 552 may include a real-time processing/alerting component 557, which may be implemented using the Apache Kafka system or any other suitable system known in the art.
  • the PCC 551 collects data, such as via the agents 556, and sends the data for storage in the time series database 555, for example via the real-time processing component 557.
  • the data is collected periodically (e.g., every 10s), analyzed, and used to generate aggregate information.
  • the real-time processing component 557 may also take various action(s) in response to data received from the PCC 551. Examples of such actions include opening tickets and generating alerts.
  • the data may also or alternatively be sent to an Amazon Web Services (AWS) or other known database or storage system.
  • AWS Amazon Web Services
  • ELK Elastic Search, Logstash, Kibana
  • Grafana Grafana
  • CRUD Create, Read, Update, Delete
  • the PCC 551 may include an loT shadow service 566.
  • the cloud loT service 565 of PCC Web GUI 552 may also include compute and/or storage functionality provided at one or more locations.
  • the cloud loT service 565 may be used to store various configuration and/or state data, etc.
  • the cloud loT service 565 may include functionality such as a software repository and/or package hosting, as well as versioning for software and/or source code.
  • the loT shadow service 566 and the cloud loT service 565 communicate in various ways to allow for updating and/or modifying of various packages, binaries, scripts, and/or software versions on the PCC 551.
  • the cloud loT service 565 may connect to the loT shadow service 566 via the Secure Shell Protocol (SSH) or other known techniques and may transfer differential data.
  • SSH Secure Shell Protocol
  • the loT shadow service 566 may poll the cloud loT service 565 using an API, or any other suitable technique known in the art.
  • the cloud management system 552 may include a secure connection API 567 and a “Who am I?” (identity) API 568.
  • the PCC 551 may correspondingly include an init/reset process 569, a setup process 570, a certificate process 571, a consumer process 572, and a secure connection process 573.
  • the aforementioned components/processes may interact in the following sequence. First, the init process 569 invokes the setup process 570, which includes the serial number of the PCC 551. The serial number may be associated with a customer location in the relational database 564. Next, the setup process 570 communicates with the identity API 568.
  • the identity API 568 then transmits an initial “Day 0” configuration for the PCC 551, which is received by the consumer process 572.
  • the initial configuration may include a network address, such as an IP address, as well as a client certificate.
  • the client certificate may be used by the certificate process 571 to facilitate creating a secure connection, such as cellular communication connection 558.
  • the secure connection process 573 may then communicate with the secure connection API 567. In this way, configuration of the PCC 551 may be performed automatically in a “zero touch” fashion without requiring effort or input by a user.
  • the system 550 also includes a ticketing system 574 and a billing platform 575.
  • the ticketing system 575 may communicate with the time series database 555 and may provide features including opening a ticket with a NOC.
  • the billing platform 576 may communicate with the relational database 564 and may provide features including checking activation for an apparatus, e.g., the PCC 551, as well as customer billing.
  • the cloud management system 552 may include a monitor/admin user interface (UI) 576.
  • the monitor UI 576 may include one or more built-in frontends provided by, e.g., Apache and other known systems, and may be used to access data stored in the time series database 555.
  • FIG. 6 is a flow diagram of a method 600 for controlling an electronic device, according to an embodiment.
  • the method 600 may be implemented by a power cycle controller as described herein, e.g., PCC 108 (FIG. 1), PCC 338 (FIG. 3), and/or PCC 551 (FIG. 5).
  • PCC 108 FIG. 1
  • PCC 338 FIG. 3
  • PCC 551 FIG. 5
  • the method 600 starts at step 601 by establishing a cellular communication connection to a cloud management system.
  • the PCC 551 may establish cellular communication connection 558 to the cloud management system PCC Web GUI 552.
  • the PCC 338 or 108 may establish cellular communication connection 341 or 111 to PCC Web GUI 347 or 112, respectively.
  • the cellular communication connection 558, 341, or 111 may be any cellular connection known in the art, such as a LTE connection.
  • the method 600 communicates with an electronic device.
  • the PCC 551 may communicate with an electronic device such as a modem.
  • the electronic device may also be a router, network switch, cash wrap, smart sign, wireless access point, or any other electronic device known in the art.
  • the PCC 338 or 108 may communicate with e.g., modem 335 or 105, respectively.
  • the communication may be performed via an Ethernet or WiFi connection, such as connection 336 (FIG. 3) or 106 (FIG. 1), or any other connection known in the art.
  • the method 600 performs one or more control operations of the electronic device.
  • the PCC 551 may perform the one or more control operations of the electronic device.
  • the PCC 338 or 108 may perform the one or more control operations of e.g., modem 335 or 105.
  • the one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system 552, taking any preprogrammed action, and sending an impulse to the electronic device.
  • the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions, such as the failure conditions described hereinabove.
  • a cloud management system 774 communicates with a PCC 771 having one AC output port 781 for controlling power to a customer device, such as modem 772.
  • the PCC 771 is shown with front view 771 A and rear view 771B. Looking at the front view 771 A, the PCC 771 has one AC power inlet 782 that connects to a source of AC power 780 and an outlet 781 that delivers AC power out to power the modem 772. In other embodiments, there can be additional AC outputs to power additional devices.
  • the PCC 771 has an Ethernet port 783 that has a cable connection 776 to the modem 772 or a cable connection 777 to a customer router 773.
  • the customer router 773 has a cable connection 778 to the modem 772.
  • the cloud management system 774 is in communication with the PCC 771 via a LTE or other such wireless connection 775.
  • the cloud management system 774 communicates with the PCC 771, handles transferring data in time slices, and provides a capability to remotely manage a plurality of PCCs and customer devices.
  • Time slices of data from the local device, i.e., the device 772 being monitored, are transferred to the cloud management system 774 over the LTE connection 775 for visibility so that the customer can receive feedback including 1) the customer device 772 was rebooted and resolved the communications issue; 2) the customer device is functioning nominally; and/or the customer device was rebooted, the issue was not resolved and other action is required to correct the issue.
  • the serviced, i.e., monitored, controlled, etc., devices can be any devices known in the art.
  • serviced devices are not limited to devices that rely on IP communication.
  • the PCC 771 can cycle power based on a user command or in accordance with a schedule.
  • devices that rely on IP communication can likewise be rebooted or otherwise controlled based on a user command or in accordance with a schedule.
  • FIG. 7B illustrates another example embodiment in which a PCC 784 has three AC output ports 791a-c for controlling power to three customer devices: modem 785, customer router 786, and software-defined wide area network (SDWAN) appliance 787.
  • the PCC 784 receives power 790 via input power port 794.
  • the PCC 784 provides, via the respective output power ports 791a-c, modem/network interface device (NID) power 788 to modem 785, customer router power 792 to router 786, and SDWAN appliance power 793 to SDWAN appliance 787.
  • the customer router 786 further has a cable connection 789 to the modem 785.
  • the PCC 784 communicates with a cloud management system 795.
  • the modem 785 is a first electronic device
  • an Ethernet port (not shown) of the PCC 784 is a first data interface
  • the input power port 794 is a first power port
  • the output power port 791c is a second power port
  • a switch (not shown) of the PCC 784 is a first switch.
  • the PCC 784 further includes a second data interface (not shown), a third power port 791a, and a second switch (not shown).
  • the second data interface is configured to connect to a second electronic device, e.g., the customer router 786
  • the third power port 791a is configured to deliver power 792 to the second electronic device 786.
  • the second switch is configured to connect the first power port 794 to the third power port 791a.
  • a processor (not shown) of the PCC 784 is configured to (i) conduct data communications monitoring of the second electronic device 786 via the second data interface and (ii) reboot the second electronic device 786 responsive to the data communications monitoring of the second electronic device 786.
  • the reboot of the second electronic device 786 is independent of the reboot of the first electronic device, e.g., modem 785.
  • FIG. 8 is a block diagram showing an example embodiment of a PCC 880.
  • the PCC 880 includes a processor 881, such as an ARM microcontroller.
  • the processor 881 performs data communication monitoring and power control functions as described herein.
  • wireless connectivity is provided through a LTE module 882 which connects to a SIM card 893.
  • the LTE module 882 features an embedded LTE Cat-M global radio to provide a connection to a Remote Administrator via a remote cloud management system, e.g., 774 (FIG. 7A).
  • Two external SubMiniature version A (SMA) connectors are provided for LTE data 894 and optional global navigation satellite system (GNSS) position/location 895.
  • SMA SubMiniature version A
  • the power control function is provided by a relay 887 controlled through a GPIO port 892 of the microcontroller 881.
  • the relay 887 is operated between closed and open positions to connect or disconnect, respectively, AC power received via input 896 to a customer device via output port 897.
  • Voltage regulators 886 connected to holdup capacitors 898 provide a “dying gasp” holdup circuit for use when power to the PCC 880 is interrupted.
  • the holdup time of the holdup circuit is designed to keep mainboard components powered long enough for multiple dying gasp notification packets to be sent out on the Ethernet and LTE networks to a Remote Administrator, e.g., located at the PCC Web GUI.
  • Ethernet port 888 provides for wireline connectivity to a customer device for the PCC 880 to monitor the data connectivity of the device.
  • USB Universal Serial Bus
  • RS-232 port 886 provides a terminal server connection to support Serial over
  • SoL SoL
  • External GPIO port 891 can be connected to an external terminal block 885 to provide for external control of other customer devices.
  • An onboard electrically erasable programmable read-only memory (EEPROM) 883 is used to record a rolling system event log (SEL) of software-configurable, timestamped system events including AC power loss.
  • EEPROM electrically erasable programmable read-only memory
  • An internal battery 884 provides power for a real-time clock (RTC) function embedded in the microcontroller 881.
  • RTC real-time clock
  • Remote management of the PCC 880 may include the following functions:
  • FIG. 9 is a flow diagram illustrating a process 990, and sub-processes thereof 991- 994 operating at a PCC (e.g., the PCC 771 of FIG. 7A) to provide power control of a device, according to an example embodiment.
  • the “rebootService” process 991 monitors data connectivity of a device, e.g., modem 772.
  • the process 991 may monitor ICMP/UDP/TCP connectivity.
  • the reboot service 991 calls the GPIO off relay function 992 (“offRelay”) to open the power circuit (e.g., relay 887 controlled through GPIO port 892 of microcontroller 881 in FIG. 8), thereby inducing a reboot.
  • offRelay GPIO off relay function 992
  • the offRelay function 992 sets the GPIO pin connected to a relay to off (binary 0) which opens the relay to remove utility power to the device.
  • offRelay 992 calls onRelay 993.
  • the onRelay function 993 sets the GPIO pin connected to the relay to on (binary 1) which closes the relay to deliver the utility power to the device.
  • the delay function 994 is called immediately after onRelay 993 executes. This delay function 994 provides a user-configurable delay period (e.g., 240 seconds) before continuing to monitor remote connectivity via the rebootService 991.
  • FIG. 10 illustrates a “watchDogService” function 1010 that monitors the reboot service, e.g., process 990 and/or sub-processes 991-994 thereof, to ensure that the reboot service is functioning properly. If the watchDogService function 1010 detects that the system or the reboot service is unresponsive (i.e., “hung”), the watchDogService function 1010 executes a repair script to attempt to correct the issue and a test script to verify that the repair function succeeded. If, after repair, the system or reboot service is still unresponsive, the watchdog 1010 will reboot the entire system or service.
  • the relay is locked in the closed position to ensure devices remain powered. The relay is closed by default. The relay is opened by issuing a signal from the attached GPIO pin. During failure the GPIO will not communicate to the relay to issue a binary open command and this ensures that the device fails closed/all devices remain powered.
  • FIG. 11 illustrates a computer network or similar digital processing environment in which embodiments of the present disclosure may be implemented.
  • Client computer(s)/device(s) 50 and server computer(s) 60 provide processing, storage, and input/output devices executing application programs and the like.
  • the client computer(s)/devices 50 can also be linked through communications network 70 to other computing devices, including other client computer(s)/device(s) 50 and server computer(s) 60.
  • the communications network 70 can be part of a remote access network, a global network (e.g., the Internet), a worldwide collection of computers, local area or wide area networks, and gateways that currently use respective protocols (TCP/IP, Bluetooth®, etc.) to communicate with one another.
  • Other electronic device/computer network architectures are suitable.
  • Client computer(s)/device(s) 50 and/or server computer(s) 60 may be configured, alone or in combination, to implement the embodiments described herein, e.g., the methods 400 and 600, among other examples.
  • the server computer(s) 60 may not be separate server computers but part of communications network 70.
  • FIG. 12 is a diagram of an example internal structure of a computer (e.g., client computer(s)/device(s) 50 or server computer(s) 60) in the computer system of FIG. 11.
  • a computer e.g., client computer(s)/device(s) 50 or server computer(s) 60
  • Each computer/device 50 and server computer 60 contains a system bus 79, where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system.
  • the system bus 79 is essentially a shared conduit that connects different elements of a computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) and enables the transfer of information between the elements.
  • Attached to the system bus 79 is an input/output (VO) device interface 82 for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to the computer/device 50 or server computer 60.
  • a network interface 86 allows the computer/device 50 or server computer 60 to connect to various other devices attached to a network (e.g., communications network 70 of FIG. 11).
  • Memory 90 provides volatile storage for computer software instructions 92 and data 94 used to implement an embodiment of the present disclosure (e.g., the methods 400 and 600, among others).
  • Disk storage 95 provides non-volatile storage for computer software instructions 92 and data 94 used to implement an embodiment of the present disclosure.
  • a central processor unit 84 is also attached to the system bus 79 and provides for the execution of computer instructions.
  • Embodiments or aspects thereof may be implemented in the form of hardware including but not limited to hardware circuitry, firmware, or software. If implemented in software, the software may be stored on any non-transient computer readable medium that is configured to enable a processor to load the software or subsets of instructions thereof. The processor then executes the instructions and is configured to operate or cause an apparatus to operate in a manner as described herein.

Abstract

Embodiments include apparatuses for rebooting an electronic device. In an embodiment, an apparatus includes a data interface, a first power port, a second power port, a switch, and a processor. The data interface is configured to connect to the electronic device. The first power port is configured to receive power from a power source and the second power port is configured to deliver power to the electronic device. The switch is configured to connect the first power port to the second power port. The processor conducts data communications monitoring of the electronic device via the data interface and reboots the electronic device responsive to the data communications monitoring.

Description

METHOD AND APPARATUS FOR CONTROLLING ELECTRONIC DEVICES
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. Application No. 18/079,560, filed on December 12, 2022, which claims the benefit of U.S. Provisional Application No. 63/371,181, filed on August 11, 2022. The entire teachings of the above applications are incorporated herein by reference.
BACKGROUND
[0002] Customers of telecommunications service providers have come to expect nearly 100% uptime, even with high-speed data circuits. Half of the issues reported for broadband circuits are resolved by rebooting a device, e.g., a modem. About 20% of the support time provided by a telecommunications service provider is spent working with on-site customer resources trying to reboot a device, which interrupts the customer and their business. If the customer is unavailable, this can lead to escalations and trouble tickets pending, dramatically increasing mean time to repair (MTTR).
SUMMARY
[0003] The present disclosure describes an approach that addresses the problems noted above by providing for automated reboot of customer devices. A power cycle controller, colocated with one or more customer devices, under the control of a remote cloud-based management system, monitors internet connectivity and, upon a determination that connectivity is lost, automatically reboots the one or more customer devices. The automated reboot can operate in scenarios that include loss of internet connectivity, extreme packet loss, and scheduled reboots. In the event that the power cycle controller itself fails, power continues to pass through the power cycle controller to keep power to customer devices.
[0004] The power cycle controller includes remote cellular connectivity, as well as the ability to utilize a wireline connection, to ensure high availability and out-of-band access to monitor devices.
[0005] An example embodiment is directed to an apparatus for rebooting an electronic device. The apparatus includes a data interface, a first power port, a second power port, a switch, and a processor. The data interface is configured to connect to the electronic device. The first power port is configured to receive power from a power source and the second power port is configured to deliver power to the electronic device. The switch is configured to connect the first power port to the second power port. The processor conducts data communications monitoring of the electronic device via the data interface and reboots the electronic device responsive to the data communications monitoring.
[0006] According to an aspect, the data interface is configured to connect to the electronic device via at least one of an Ethernet connection and a WiFi connection.
[0007] The electronic device can be a first electronic device and the apparatus may further include a communication interface configured to connect the apparatus to a controldevice communicatively coupled to a second electronic device. The processor may be further configured to send a command to the control -device and receive data from the control-device. Further, according to yet another embodiment, the control-device is configured to perform one or more control operations of the second electronic device.
[0008] In an example embodiment, the processor is configured to reboot the electronic device by opening the switch connecting the first power port to the second power port and closing the switch following a backoff period.
[0009] The monitored and rebooted electronic device may be any electronic device known in the art. For instance, the electronic device may be a modem, a router, a switch, a point-of-sale (POS) system, a server, an environment monitoring system (EMS), a network interface device (NID), a computing device, a software-defined wide area network (SDWAN) appliance, or an antenna, among other examples. According to an aspect, the router may be a wireless router or a wired router, or any other router known in the art. In an implementation, the NID may be a carrier NID. According to an embodiment, the antenna may be an external antenna.
[0010] The data communications monitoring can include testing at least one of access to an Internet server, access to a Domain Name System (DNS) server, accessing a Uniform Resource Locator (URL), making an application programming interface (API) call, receiving an API call, sending data via an Internet protocol, and receiving data via an Internet protocol. [0011] The data communications monitoring may include testing connectivity through the electronic device to a network point. In an embodiment, the processor is configured to reboot the electronic device responsive to the data communications monitoring detecting a failure condition in the connectivity through the electronic device to the network point. According to an example embodiment, the data communications monitoring is configurable. In yet another embodiment, the processor is further configured to reboot the electronic device in accordance with a user specified condition. Thus, such an embodiment may reboot the electronic device without considering data communications monitoring. For example, such an embodiment may reboot the electronic device in accordance with a schedule or responsive to a user command, among other examples. Moreover, the processor may be configured to reboot the electronic device responsive to the data communications monitoring identifying existence of a user specified condition, e.g., a data communications condition or other such condition.
[0012] The apparatus may further include a cellular interface configured to connect the apparatus to a cloud management system. In an implementation, the processor is further configured to track reboot information for reporting via the cellular interface to the cloud management system. Further, according to another aspect, the cellular interface is configured to enable Long-Term Evolution (LTE) communications between the apparatus and the cloud management system.
[0013] Further, according to yet another embodiment, the electronic device is a first electronic device, the data interface is a first data interface, and the switch is a first switch. In one such embodiment, the apparatus further includes a second data interface, a third power port, and a second switch. The second data interface is configured to connect to a second electronic device and the third power port is configured to deliver power to the second electronic device. The second switch is configured to connect the first power port to the third power port. According to one such embodiment, the processor is configured to (i) conduct data communications monitoring of the second electronic device via the second data interface and (ii) reboot the second electronic device responsive to the data communications monitoring of the second electronic device. In an example embodiment, the reboot of the second electronic device is independent of the reboot of the first electronic device.
[0014] Another example embodiment is directed to an apparatus for controlling an electronic device. The apparatus includes a cellular interface, a data interface, and a processor. The cellular interface is configured to connect the apparatus to a cloud management system and the data interface is configured to connect to the electronic device. The processor is configured to perform one or more control operations of the electronic device. In an implementation, the cellular interface can establish any cellular connection known in the art, such as a LTE connection. [0015] Further, according to yet another example embodiment, the one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system, taking any preprogrammed action, and sending an impulse to the electronic device. According to an aspect, the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions.
[0016] In an embodiment, the processor is further configured to receive an indication of the one or more control operations via the cloud management system. In response to the received indication, the processor performs the one or more control operations. According to another embodiment, the indication of the one or more control operations is provided by a user via the cloud management system. In yet another embodiment, the processor is further configured to monitor the electronic device via the data interface and perform the one or more control operations responsive to the monitoring.
[0017] An example embodiment is directed to a method for rebooting an electronic device. The method establishes a communication connection to the electronic device and conducts data communications monitoring of the electronic device via the established communication connection. Responsive to the data communications monitoring, the method reboots the electronic device.
[0018] Another example embodiment is directed to a method for controlling an electronic device. A cellular communication connection to a cloud management system is established. The method then communicates with the electronic device and performs one or more control operations of the electronic device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.
[0020] FIG. l is a simplified block diagram of a system for controlling an electronic device, according to an example embodiment.
[0021] FIG. 2A is a flow diagram of a method for rebooting an electronic device.
[0022] FIG. 2B is a flow diagram of a method for implementing steady state logic in relation to a method for rebooting an electronic device. [0023] FIG. 2C is a flow diagram of a method for implementing reboot/backoff logic in relation to a method for rebooting an electronic device.
[0024] FIG. 3 is a simplified block diagram of an exemplary system for controlling multiple electronic devices.
[0025] FIG. 4 is a flow diagram of a method for rebooting an electronic device, according to an embodiment.
[0026] FIG. 5 is a simplified block diagram of a system for controlling an electronic device, according to an embodiment.
[0027] FIG. 6 is a flow diagram of an example method for controlling an electronic device.
[0028] FIG. 7A is a system block diagram illustrating a remote cloud-based management system in communication with a power cycle controller having a single alternating current (AC) output port and co-located with a customer device, according to an example embodiment.
[0029] FIG. 7B is a system block diagram illustrating a remote cloud-based management system in communication with a power cycle controller having three AC output ports and colocated with multiple customer devices, according to another example embodiment.
[0030] FIG. 8 is a block diagram illustrating a power cycle controller, according to an example embodiment.
[0031] FIG. 9 is a flow diagram illustrating processes operating at a power cycle controller in relation to power control of a customer device, according to an example embodiment.
[0032] FIG. 10 illustrates a watchdog service according to an example embodiment.
[0033] FIG. 11 illustrates a computer network or similar digital processing environment in which embodiments may be implemented.
[0034] FIG. 12 is a diagram illustrating an example internal structure of a computer in the environment of FIG. 11.
DETAILED DESCRIPTION
[0035] A description of example embodiments follows.
[0036] As described above, telecommunications users expect nearly 100% uptime, even with high-speed data circuits. Despite the desire for 100% uptime, various issues often occur that disrupt connectivity. These issues can frequently be remedied by rebooting a device, e.g., a modem. However, existing technology typically requires user intervention to perform reboots and this user intervention is often accompanied by provider service calls and intervention. Embodiments solve these problems and provide functionality to automatically reboot and perform control operations on electronic devices. In some embodiments, an “out- of-band” (OOB) connection is provided for communicating with electronic devices. The OOB connection may be a cellular connection, such as a LTE connection, or any other connection known in the art. Using the OOB connection allows for communications with and control of electronic devices even when other data connectivity to the devices is disrupted.
[0037] FIG. 1 is a simplified block diagram of one such example system 100 for controlling an electronic device according to an embodiment. Specifically, the system 100 includes a power cycle controller (PCC) 108 that is configured to cycle power to a modem 105. In implementations, the PCC 108 can implement the methods 220, 230, 240, 400, and/or 600, described hereinbelow in relation to FIGs. 2A, 2B, 2C, 4, and 6, respectively, to perform control operations, e.g., reboots, of the modem 105.
[0038] To provide such functionality, the PCC 108 includes (not shown) a data interface, a first power port, a second power port, a switch, and a processor. The data interface is configured to establish communication connection 106 to the modem 105. The first power port is configured to receive power from a utility power source 109 via an AC connection 110 and the second power port is configured to deliver power to the modem 105 via an AC connection 107. The switch is configured to connect the first power port to the second power port. The processor (i) conducts data communications monitoring of the modem 105 via the communication connection 106, which may be any communication connection known in the art, such as an Ethernet or WiFi connection, and (ii) reboots the modem 105 responsive to the data communications monitoring. The PCC 108 uses the communication connection 106 and the modem 105 to connect to an Internet 104 and points accessible via the Internet 104, e.g., a DNS server 101, a website URL 102, and an API 103.
[0039] It is noted that although FIG. 1 illustrates the modem 105 as an example of an electronic device, electronic devices monitored and controlled using the functionality described herein are not limited to modems. For example, in other embodiments, the electronic device may be a router, a switch, a point-of-sale (POS) system, a server, an environment monitoring system (EMS), a network interface device (NID), a computing device, a software-defined wide area network (SDWAN) appliance, and an antenna, or any other device known in the art.
[0040] In yet another embodiment, the processor of PCC 108 is further configured to reboot the electronic device 105 in accordance with a user specified condition. Thus, such an embodiment may reboot the electronic device 105 without considering data communications monitoring. For example, such an embodiment may reboot the electronic device 105 in accordance with a schedule or responsive to a user command, among other examples. Moreover, the processor may be configured to reboot the electronic device 105 responsive to the data communications monitoring identifying existence of a user specified condition. In other words, such an embodiment allows a user to indicate conditions/characteristics identified by the data communications monitoring that warrant rebooting the device 105. [0041] According to an embodiment, the system 100 also includes an exemplary cloud management system PCC Web Graphical User Interface (GUI) 112 and a cellular connection tunnel 111. The PCC 108 may further include a cellular interface (not shown) that is configured to connect the PCC Web GUI 112 via the cellular connection 111. The cellular interface can establish any cellular connection known in the art, such as a LTE connection. In an implementation, the processor of PCC 108 is further configured to track reboot and other information for reporting via the cellular interface to the cloud management system PCC Web GUI 112. According to an embodiment, the tracked information may include status information about an apparatus, e.g., PCC 108, as well as status information about network(s), interface(s), port(s), connect! on(s) (e.g., communication connection 106 or cellular connection 111), and/or device(s) (e.g., modem 105) monitored by the apparatus. In an aspect, examples of tracked information may include any or all of the following: a) Information about the number of reboots over the lifetime of the apparatus. b) Information about the number of reboots in a user-configurable timeframe, e.g., in the last three hours. c) Information about the number of reboots since the last system restart. i. According to an implementation, a system restart may be prompted by a “watchDogService” function (described in more detail hereinbelow with respect to FIG. 10) determining that no activity is occurring on a cellular connection, e.g., cellular connection 111. d) Central processing unit (CPU) usage of the apparatus, which may be expressed as a percentage value. e) CPU temperature of the apparatus. f) Memory usage of the apparatus, which may be expressed as a percentage value. g) Input/output operations per second (IOPS). h) Uptime of the apparatus. i) Latency between applications. j) Jitter. k) Version(s) of package(s) installed on the apparatus. l) Information about a cellular connection, e.g., cellular connection 111, such as received signal strength indicator (RSSI), reference signal received quality (RSRQ), and/or signal -to-noise ratio (SNR). m) Data throughput.
[0042] In an embodiment, reboot information, such as in items a)-c) described above, may be stored as a key/value pair data structure, where each key is associated with a particular reboot, and each value includes detailed information about that reboot. For example, a particular reboot may correspond to an action taken on an individual port, and detailed information about the reboot may include the reason for the reboot, e.g., the apparatus or a device was unresponsive, or the reboot was requested remotely.
[0043] According to an aspect, the tracked information described in the examples above may be obtained using a monitoring application locally installed on the apparatus, e.g., PCC 108. In an implementation, the monitoring application is a “watchdog” service, such as the “watchDogService” function described hereinbelow with respect to FIG. 10. According to an embodiment, the monitoring application evaluates the overall “health” of a system, which may include the status of daemons and binaries, etc., running on the apparatus, as well as the status of individual services, e.g., a network or modem manager. Furthermore, in some embodiments, the monitoring application determines the status of a steady state/reboot logic, such as logic 221 (FIG. 2A), 232 (FIG. 2B), or 242 (FIG. 2C). In an aspect, the monitoring application may individually restart any of the daemons, binaries, or individual services, etc., as well as any other application or program running on the apparatus. According to an embodiment, the monitoring application may also restart an entire system or apparatus, e.g., the PCC 108, if one or more conditions are met, such as when CPU and/or memory usage exceed a threshold. [0044] Continuing with FIG. 1, by using the cellular connection 111 instead of relying on a connection via the Internet 104, the PCC Web GUI 112 provides out-of-band (OOB) access to and management of the device 105 via PCC 108 even when it cannot otherwise be reached through Internet 104. Moreover, the PCC Web GUI 112 allows a user to configure the data communications monitoring and other aspects of PCC 108 operation remotely, such as by adding, removing, or modifying configuration data. According to an example embodiment, the PCC 108 may include a default configuration provided for standard users. The default configuration may facilitate “plug & play” installation of the PCC 108. In one such example, the default configuration indicates settings and/or behavior for the data communications monitoring performed by the PCC 108. According to an example embodiment, the PCC 108 is configured to periodically (e.g., every 30s) poll DNS server(s) reachable via a public network, such as the global internet, or any other network known in the art. The DNS server(s) may be specified by Internet Protocol (IP) address(es), e.g., 8.8.8.8, 8.8.4.4, 1.1.1.1, and 1.0.0.1. In one such example embodiment, the polling may include transmitting 64 kilobyte (K) packets to the server(s). According to an aspect, the default configuration may include logic such that, if polling of the DNS server(s) fails repeatedly, e.g., after ten consecutive attempts over a span of five minutes (10 x 30s = 300s, i.e., 5m), then a reboot is triggered via a power output port, e.g., AC connection 107, followed by a backoff period, e.g., 10m. In another example embodiment, a specialized configuration may be used. The specialized configuration may be developed based on user input.
[0045] FIG. 2A is a flow diagram of a method 220 for rebooting an electronic device.
[0046] The method 220 starts at step 221 by entering a steady state logic phase.
According to an embodiment, different types of devices and/or network endpoints may be organized or grouped according to priority (P) “buckets” or tiers. In turn, the steady state logic may be separately defined or specified for each different bucket or tier. Such logic may be included as part of a default configuration for, e.g., the PCC 108 (FIG. 1), or may be user- configured. According to an implementation, an exemplary grouping of priority buckets P1/P2/P3, including types and categories of devices and/or endpoints belonging to each bucket, is described below: a) Pl : point of sale (POS — i.e., payment processor), DNS (e.g., up/down, packet loss, latency /jitter); b) P2: critical (e.g., datacenters), applications; c) P3 : general internet, scheduled reboots. [0047] In an aspect, the separate logic for each of the above exemplary priority buckets P1/P2/P3 may be specified as follows: a) Pl : Reboot if unable to access any network endpoints for Im. b) P2: Reboot if >=50% of network endpoints are inaccessible for 5m. c) P3: Reboot if all network endpoints are inaccessible for 10m.
[0048] As stated hereinabove, and according to an embodiment, the priority buckets may be user-configured. In an implementation, the user configuration may include modifying any variable or value in a bucket or tier, as well as assigning a network endpoint to a particular bucket or tier. According to some aspects, the separate logic for each bucket or tier may be evaluated in a systematic fashion, such as by using a dynamic decision tree, or any other technique known to those of skill in the art.
[0049] Continuing with FIG. 2 A, in an embodiment, the step 221 steady state logic phase functionality performs the FIG. 2B method 230. Turning to FIG. 2B, the method 230 starts at step 231 by reading configuration data. The configuration data may be read from a database or any other suitable storage system known in the art. Example configuration data include the following: a) Details of “remote endpoints” (REs), i.e., network destinations used in conjunction with the data communications monitoring described herein, including failure coefficients for each RE. b) Sample failure conditions. c) Definitions of failure conditions, which may be user-specified. d) Backoff logic, which may be user-configured.
[0050] Next, at step 232, the method 230 conducts steady state data communications monitoring. The step 232 data communications monitoring may include testing at least one of access to an Internet server, such as via Internet 104 (FIG. 1), access to a DNS server, e.g., DNS server 101 (FIG. 1), accessing a URL, such as a website URL 102 (FIG. 1), making an API call, such as via API 103 (FIG. 1), receiving an API call, sending data via an Internet protocol, such as Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), and any other protocols known in the art, and receiving data via an Internet protocol.
[0051] In an implementation, the data communications monitoring at step 232 may also include testing connectivity through an electronic device, e.g., modem 105 (FIG. 1), to a network point, e.g., a RE. In an aspect, a RE may include a destination on the public Internet or a private intranet. An RE may further be specified by a website URL, e.g., URL 102 (FIG. 1), such as: a) Google.com b) Cloudflare.com c) Akamai.com d) YouTube.com e) Facebook.com f) Twitter.com g) Amazon.com h) Yahoo.com i) Chase.com
[0052] According to an embodiment, when a RE is specified by a URL, the URL may first be translated into a corresponding Internet Protocol (IP) address before attempting a connection. The translation may be performed via a DNS server, e.g., DNS 101 (FIG. 1), according to techniques known in the art.
[0053] In an implementation, a RE may also be a user-specific server on a user network, e.g., a private intranet. For example, the user-specific server may be a DNS server, a Dynamic Host Configuration Protocol (DHCP) server, a data inventory server, a resource server, or any other server known in the art.
[0054] According to an example embodiment, a RE may correspond to a DNS server, e.g., DNS 101 (FIG. 1), and may be further indicated directly with an IP address, such as: a) 8.8.8.8 (Google) b) 1.1.1.1 (Cloudflare) c) 208.67.222.222 (OpenDNS) d) lO.x.x.x (a user internal IP address, e.g., on a private intranet)
[0055] In another embodiment, a RE may also be an API, e.g., API 103 (FIG. 1). The API may further provide custom input from a user. According to some embodiments, an API is not a RE, but rather an electronic device connected to a PCC, e.g., PCC 108 (FIG. 1). In such embodiments, the PCC may communicate with an API endpoint on the electronic device and retrieve the results of an API call performed on the device. Depending on whether the retrieved results correspond to a predetermined value, the PCC may control the electronic device such as by rebooting the device, or performing some other action with respect to the device. Examples of other actions include executing a script that restarts the API on the electronic device.
[0056] Further, according to yet another aspect, the connection monitoring to a RE may be performed at step 232 via assorted protocols known in the art, including high-level transport protocols such as TCP and UDP, as well as low-level network layer protocols such as ICMP. TCP is more reliable (as compared to UDP) and includes a three-step process for verifying that data is transferred correctly. UDP may be used for applications such as Voice over Internet Protocol (VoIP) and other real-time applications. ICMP may be used to send a “ping” message to a RE.
[0057] In an implementation of step 232, when connecting to a RE via protocols such as TCP or UDP, a port number may be further specified for the RE, according to techniques known in the art. For example, when a RE corresponds to a DNS server, e.g., DNS 101 (FIG. 1), the port number may be specified as 443.
[0058] According to an example embodiment, when connecting to a RE via protocols such as TCP or UDP, additional types of data may be collected at step 232. Such data may include the amount of traffic sent to or received from a RE, which may be expressed as, e.g., kilobits or megabits per second (Kbps or Mbps). Other types of data may include the maximum, minimum, average, and/or total amount of traffic sent or received.
[0059] Similarly, when connecting to a RE, at step 232, via protocols such as ICMP, additional types of data may be collected. Such data may include the number of “ping” messages successfully transmitted to a RE, which may be expressed as a percentage value. Other types of data may include the elapsed time (i.e., latency) between sending a “ping” message and receiving an acknowledgement, which may be expressed as, e.g., milliseconds (ms).
[0060] To continue, the method 230 determines whether the data communications steady state monitoring 232 has detected a failure condition 234, or has not detected a failure condition 233. If a failure condition is not identified 233, the method 230 continues the steady state monitoring 232, and if a failure condition is identified 234, the method 230 moves to step 235 and triggers reboot/backoff logic. The reb oot/backoff logic 235 may include the method 240 described hereinbelow in relation to FIG. 2C.
[0061] In embodiments, failure condition 234 may include disruption in connectivity as identified by an inability of the PCC 108 to connect to a network point, e.g., a RE.
According to an implementation, and as described above with respect to configuration data, the data communications monitoring (step 232) and conditions of failure (step 234) is configurable.
[0062] In an aspect, failure conditions identified through steady state monitoring 232 and evaluated at step 234 and 233, including user specified conditions as described above, may be defined in various ways. For example, a failure condition and its corresponding reboot action(s) may be defined according to one or more of the exemplary categories below: a) Modem Metrics i. Downstream power outside +8db to -8db: reboot ii. Upstream power outside 40-50db: reboot iii. Signal/Noise Ratio (SNR) < 25db or > 40db: reboot iv. Uptime > 60 days: reboot b) CPU Usage i. CPU usage > 70%: reboot at designated “off hours” time; alert Network Operations Center (NOC) via ticket ii. Average CPU usage from previous 7 days > 20%: reboot at designated “off hours” time c) Memory Usage i. Memory usage > 80%: reboot at designated “off hours” time ii. Average memory usage from previous 7 days > 20%: reboot at designated “off hours” time d) Network Points (e.g., Remote Endpoints) i. URL via UDP [Tier 1]
1) URLs — Google.com, Cloudflare.com, Akamai.com, name server on customer network
2) Failure to connect to all four REs after 10 attempts over 5 minutes (i.e., retry connection every 30 seconds): reboot ii. DNS Servers via TCP [Tier 2]
1) Servers — 8.8.8.8:443 (Google), 1.1.1.1 :443 (Cloudflare), 208.67.222.222:443 (OpenDNS), lO.x.x.x (customer internal IP address)
2) Failure to connect to all four REs after 10 attempts over 5 minutes (i.e., retry connection every 30 seconds): reboot iii. DNS Servers via UDP [Tier 3] 1) Servers — 8.8.8.8 (Google), 1.1.1.1 (Cloudflare), 208.67.222.222 (OpenDNS), 10.x. x.x (customer internal IP address)
2) Failure to connect to all four REs after 10 attempts over 5 minutes (i.e., retry connection every 30 seconds): reboot iv. ICMP/ API [Tier 4]
1) Servers — 8.8.8.8 (Google), 1.1.1.1 (Cloudflare), 208.67.222.222 (OpenDNS)
2) Failure to connect following a second attempt after 30 seconds: reboot
[0063] As described hereinabove, and according to an embodiment, failure conditions associated with network points may be grouped or categorized according to various priority “buckets” or tiers. For example, each of the above network point failure conditions i-iv is assigned to a numbered tier, with, e.g., Tier 1 corresponding to a critical priority and Tier 4 corresponding to a lowest priority.
[0064] It should be noted that any failure conditions described herein are exemplary only. Moreover, as stated hereinabove, in some embodiments, failure conditions may be included as part of a default configuration for, e.g., the PCC 108; failure conditions may also be user- configured. According to an aspect, users may configure the following values associated with failure conditions: a) Information about a RE. b) Number of REs. c) RE priority bucket/tier. d) Frequency of RE checks/connection attempts. e) Information about action(s) to take. f) Number of action(s) to take.
[0065] Continuing with the method 230 of FIG. 2B, if no failure condition is detected at step 233, the method 230 returns to step 232. At step 234, if a failure condition is detected, the method 230 continues to a reboot/backoff logic phase at step 235.
[0066] Referring again to FIG. 2 A, if a failure condition is detected at step 222, the method 220 compares the failure condition to a baseline configuration at step 223.
According to an aspect, the comparison may include a logical comparison. For example, where a configured range for a given parameter is 8-17, comparing a value of 14 will result in a determination that the value falls within the range, while comparing a value of 19 will result in a determination that the value falls outside the range. According to some embodiments, different comparison results will trigger different types of logic. If the comparison 223 indicates that a failure condition exists at step 224, the method 220 then moves to step 225 and reboots the device. The method 220 reboots the electronic device, e.g., modem 105 (FIG. 1), at step 225 by sending a general-purpose input/output (GPIO) signal to an electrical relay. In an embodiment, the GPIO signal may be sent via, e.g., GPIO port 892 (FIG. 8), to an electrical relay, e.g., relay 887 (FIG. 8). After the reboot 225, the method 220 performs a backoff at step 226 and after the backoff 226, the method 220 returns to the steady state monitoring 221. The method 220 may implement the reboot/backoff method 240, described hereinbelow in relation to FIG. 2C, at steps 225/226 according to an embodiment. Alternately, if the comparison 223 indicates that a failure condition is not present at step 227, the method 220 returns to the steady state monitoring 221.
[0067] FIG. 2C is a flow diagram of a method 240 for implementing reboot/backoff logic that may be implemented at steps 225 and 226 of the method 220 (FIG. 2A) and/or step 235 of the method 230 (FIG. 2B). According to an embodiment, and as described above with respect to steps 231 and 232 of the method 230 (FIG. 2B), the method 240 of FIG. 2C reads configuration data at step 241 and enters a steady state/auto-r eboot phase at step 242.
[0068] The steady state/auto-reboot phase 242 then moves to step 243 where the backoff logic is checked. In an aspect, the backoff logic — including a backoff period, expressed in, e.g., seconds (s) — may be specified according to one or more of the below examples: a) If number of reboots of the electronic device, e.g., modem 105 (FIG. 1), in last three hours = 0: reboot, backoff 180s (i.e., 3 min.). b) If number of reboots of the electronic device in last 180s (i.e., 3 min.) = 1 : no action. i. Else: reboot, backoff 300s (i.e., 5 min.). c) If number of reboots of the electronic device in last 300s (i.e., 5 min.) = 2: no action. i. Else: reboot, backoff 600s (i.e., 10 min.). d) If number of reboots of the electronic device in last 600s (i.e., 10 min.) = 3: no action. i. Else: reboot, backoff 18,000s (i.e., five hours), open ticket for corrective action. [0069] As described above with respect to step 231 of method 230 (FIG. 2B), the backoff logic may be included in the configuration data and may be partly or wholly user-configured. [0070] Continuing with the flow of the method 240 of FIG. 2C, if the backoff logic check fails at step 248, a ticket is opened for corrective action at step 249. According to an aspect, the ticket for corrective action may be opened with, e.g., an internet service provider (ISP). The ticket may also be for external corrective action. If the backoff logic check passes at step 244, a reboot is triggered at step 245. Following the reboot 245, an informational ticket is generated at step 246. The method 240 then initiates backoff at step 247. Finally, the method 240 returns to the steady state 242.
[0071] According to another embodiment, the processor of, e.g., PCC 108 (FIG. 1), is configured to reboot the electronic device, e.g., modem 105 (FIG. 1), by opening the switch, e.g., relay 887 (FIG. 8), that connects the first power port to the second power port and closing the switch following a backoff period. In an implementation, the backoff period may be specified as described above with respect to step 243 of method 240 (FIG. 2C).
[0072] Referring again to FIG. 2C, in another aspect, the method 240 may determine whether a manual reboot is requested at step 250. If a manual reboot is requested, at step 251, the method 240 triggers a reboot of the electronic device, e.g., modem 105 (FIG. 1). An informational ticket is then generated at step 252. According to yet another aspect, the method 240 may determine whether a scheduled reboot is required at step 253. If a scheduled reboot is required, at step 254, the method 240 triggers a reboot of the electronic device, e.g., modem 105 (FIG. 1). An informational ticket is then generated at step 255.
[0073] In an embodiment, watchdog monitoring is performed with respect to every step of the method 240. According to an aspect, the watchdog monitoring may be performed by a “watchDogService” function such as described hereinbelow with respect to FIG. 10.
[0074] FIG. 3 is a simplified block diagram of an exemplary system 330 for controlling multiple electronic devices. Like the system 100 (FIG. 1), the system 330 includes a PCC 338 that is configured to cycle power to a modem 335. The PCC 338 receives power from a utility power source 339 via an AC connection 340 and delivers power to the modem 335 via an AC connection 337. Further, the PCC 338 (i) conducts data communications monitoring of the modem 335 via a communication connection 336 and (ii) reboots the modem 335 responsive to the data communications monitoring. The data communications monitoring, according to an embodiment, includes the PCC 338 using the communication connection 336 and the modem 335 to connect to an Internet 334 and points accessible via the Internet 334, e.g., a DNS server 331, a website URL 332, and an API 333.
[0075] Again similar to the system 100, in an aspect, the system 330 additionally includes an exemplary cloud management system PCC Web GUI 347 and a cellular connection tunnel 341. The PCC 338 may also connect to the PCC Web GUI 347 via the cellular connection 341.
[0076] In an implementation, the system 330 further includes one or more secondary power distribution units (PDUs) 342a-c. According to one such implementation, each of the secondary PDUs 342a-c connects to one or more electronic devices, such as network switch 343, cash wrap 344, smart sign 345, and wireless access points 346a-b.
[0077] According to an aspect, the modem 335 can be a first electronic device and the PCC 338 may further include a communication interface (not shown) configured to connect to a control-device, e.g., the secondary PDU 342a, communicatively coupled to a second electronic device, e.g., the network switch 343 or cash wrap 344. In an embodiment, the processor (not shown) of PCC 338 may be further configured to send a command to the control-device, e.g., the secondary PDU 342a, and receive data from the control -device 342a. According to yet another embodiment, the control-device, e.g., the secondary PDU 342a, is configured to perform one or more control operations of the second electronic device, e.g., the network switch 343 or cash wrap 344. For instance, the secondary PDUs 342a-c may be configured to perform the functionalities of the PCC 338. In an example embodiment, the secondary PDUs 342a-c can implement the methods 220, 230, 240, 400, and/or 600, described herein in relation to FIGs. 2A, 2B, 2C, 4, and 6, respectively, to perform control operations, e.g., reboots, of the electronic devices 343, 344, 345, and 346a-b.
[0078] According to an embodiment, the secondary PDUs 342a-c are also communicatively coupled with the PCC Web GUI 347 via the cellular connection 341 of the PCC 338. In such an implementation, the PDUs 342a-c communicate with the PCC 338 to facilitate data communication to and from the PCC Web GUI 347 utilizing the PCC 338’s cellular connection 341. In this way, according to an embodiment, the secondary PDUs 342a-c may be functionally equivalent to the PCC 338, with the exception being that the secondary PDUs 342a-c do not have a cellular interface and, instead, rely on the PCC 338’s cellular interface to communicate with the PCC Web GUI 347.
[0079] FIG. 4 is a flow diagram of a method 400 for rebooting an electronic device, according to an embodiment. The method 400 may be implemented by a power cycle controller as described herein, e.g., PCC 108 (FIG. 1), PCC 338 (FIG. 3), and/or PDUs 342a- c (FIG. 3).
[0080] The method 400 starts at step 401 by establishing a communication connection with an electronic device. With reference to FIG. 1, according to an aspect, the PCC 108 may establish communication connection 106 with the modem 105. The communication connection 106 may be any communication connection known in the art, such as an Ethernet or WiFi connection. Similarly, referring to FIG. 3, in an implementation, the PCC 338 may establish Ethernet connection 336 to the modem 335, and/or one or more of the secondary PDUs 342a-c may establish a communication connection to one or more of the network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b, respectively.
[0081] Next, at step 402, the method 400 conducts data communications monitoring of the electronic device. In some embodiments, for example, the PCC 108, PCC 338, and/or PDUs 342a-c may conduct data communications monitoring of one or more electronic devices such as modem 105, modem 335, network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b. The data communications monitoring may be conducted in the manner described above with respect to step 232 of the method 230 (FIG. 2B).
[0082] Last, at step 403, the method 400 reboots the electronic device responsive to the data communications monitoring. In some implementations, for instance, the PCC 108, PCC 338, and/or PDUs 342a-c may reboot one or more electronic devices such as modem 105, modem 335, network switch 343, cash wrap 344, smart sign 345, and/or wireless access points 346a-b. Rebooting the one or more electronic devices may be performed according to reb oot/backoff logic as described above with respect to the method 240 (FIG. 2C).
[0083] FIG. 5 is a simplified block diagram of a system 550 for controlling an electronic device, according to an embodiment. Specifically, the system 550 includes a PCC 551 and a cloud management system 552. In an implementation, the PCC 551 includes (not shown) a cellular interface, a data interface, and a processor. The cellular interface is configured to connect via a LTE or other wireless connection 558 to the cloud management system 552, which may be, e.g., PCC Web GUI 112 (FIG. 1). The data interface is configured to connect to the electronic device (not shown), which may be, e.g., modem 105 (FIG. 1). The processor is configured to perform one or more control operations of the electronic device. Further, according to another embodiment, the one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system 552, taking any preprogrammed action, and sending an impulse to the electronic device. According to an aspect, the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions, such as the failure conditions described hereinabove. [0084] In an embodiment, the PCC 551 may include a memory database 563. According to some aspects, the memory database 563 may include one or more database systems such as SQLite, Prometheus, Redis, or InfluxDB, and/or any other suitable database or storage system known to those in the art.
[0085] In some implementations, the PCC 551 may include an operating system (OS) 559. According to such implementations, the OS 559 may be a Linux-based OS, e.g., a version of a Debian Linux distribution, or any other OS known to those of skill in the art. In an aspect, the OS 559 may include watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562. According to such an aspect, the watchdog daemon 560 may include a service that observes the steady state daemon 561 and controls it by, for example, restarting the steady state daemon 561 if an unrecoverable issue occurs. The reboot/backoff daemon 562 may be invoked by the steady state daemon 561 when reboot and/or backoff services are required. According to some embodiments, the watchdog daemon 560 may be implemented via, e.g., a “watchDogService” function 1010, described in more detail hereinbelow with respect to FIG. 10. The steady state daemon 561 and reboot/backoff daemon 562 may be implemented variously by the methods 220, 230, and/or 240, described in more detail hereinabove with respect to FIGs. 2A, 2B, and 2C, respectively. In some aspects, one or more of the watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562 may communicate with the memory database 563. For example, the watchdog daemon 560, steady state daemon 561, and/or reboot/backoff daemon 562 may retrieve data from or store data to the memory database 563.
[0086] According to an example embodiment, the PCC 551 may include agents 556. The agents 556 may include binaries, processes, and/or services running or executing on the PCC 551. For example, the agents 556 may perform tasks such as data collection, data aggregation, and data output concerning various aspects of the system 550, including the PCC 551, one or more electronic devices, e.g., the modem 105 (FIG. 1), connected to the PCC 551, and/or one or more communications networks. In some aspects, the agents 556 may communicate with the memory database 563. For example, the agents 556 may retrieve data from or store data to the memory database 563. [0087] In another example embodiment, the cloud management system 552 may include a time series database 555 and a relational database 564. According to an aspect, and as described in more detail hereinbelow with respect to FIG. 7, the time series database 555 may be used to store information concerning data communications monitoring performed by the PCC 551. In an implementation, the relational database 564 may be a PostgreSQL database, or any other suitable database or storage system known in the art. The relational database 564 may be used, for example, to store “static” information, such information regarding customers, locations, etc.
[0088] Further, in yet another example embodiment, the cloud management system 552 may include a front end/ API backend 553 and a cloud Internet-of-Things (loT) service 565, and the PCC 551 may include an loT notify component 554. According to such an embodiment, the front end 553 may be implemented using React or any other suitable system known to those of skill in the art. In an implementation, the loT notify component 554 may run or execute on the PCC 551 and may adjust or modify various parameters associated with one or more of the watchdog daemon 560, steady state daemon 561, and reboot/backoff daemon 562. According to such an implementation, parameters may be “posted” to the loT notify component 554 by the cloud management system 552. The loT notify component 554 may also retrieve information concerning the operating status of the agents 556 indirectly by querying such information from the memory database 563. In an aspect, the processor of PCC 551 is further configured to receive an indication of the one or more control operations via the cloud management system 552 and in response to the received indication, perform the one or more control operations. For example, the indication may be received from front end 553 by the cloud loT service 565, and then relayed by the cloud loT service 565 to the loT notify component 554. According to an embodiment, the indication of the one or more control operations is provided by a user via the cloud management system 552. Further, in yet another embodiment, the processor is further configured to monitor the electronic device, e.g., modem 105 (FIG. 1), via the data interface and perform the one or more control operations responsive to the monitoring.
[0089] In an embodiment, the cloud management system 552 may include a real-time processing/alerting component 557, which may be implemented using the Apache Kafka system or any other suitable system known in the art. According to an implementation, the PCC 551 collects data, such as via the agents 556, and sends the data for storage in the time series database 555, for example via the real-time processing component 557. In an embodiment, the data is collected periodically (e.g., every 10s), analyzed, and used to generate aggregate information. According to such an embodiment, the real-time processing component 557 may also take various action(s) in response to data received from the PCC 551. Examples of such actions include opening tickets and generating alerts. Further, in an aspect, the data may also or alternatively be sent to an Amazon Web Services (AWS) or other known database or storage system. This may be accomplished using suitable techniques known in the art, including ELK (Elastic Search, Logstash, Kibana), Grafana, and CRUD (Create, Read, Update, Delete).
[0090] According to an aspect, the PCC 551 may include an loT shadow service 566. In such an aspect, the cloud loT service 565 of PCC Web GUI 552 may also include compute and/or storage functionality provided at one or more locations. For example, the cloud loT service 565 may be used to store various configuration and/or state data, etc. According to an embodiment, the cloud loT service 565 may include functionality such as a software repository and/or package hosting, as well as versioning for software and/or source code. In such an embodiment, the loT shadow service 566 and the cloud loT service 565 communicate in various ways to allow for updating and/or modifying of various packages, binaries, scripts, and/or software versions on the PCC 551. For example, the cloud loT service 565 may connect to the loT shadow service 566 via the Secure Shell Protocol (SSH) or other known techniques and may transfer differential data. Alternately, the loT shadow service 566 may poll the cloud loT service 565 using an API, or any other suitable technique known in the art.
[0091] According to an implementation, the cloud management system 552 may include a secure connection API 567 and a “Who am I?” (identity) API 568. In such an implementation, the PCC 551 may correspondingly include an init/reset process 569, a setup process 570, a certificate process 571, a consumer process 572, and a secure connection process 573. According to an aspect, the aforementioned components/processes may interact in the following sequence. First, the init process 569 invokes the setup process 570, which includes the serial number of the PCC 551. The serial number may be associated with a customer location in the relational database 564. Next, the setup process 570 communicates with the identity API 568. The identity API 568 then transmits an initial “Day 0” configuration for the PCC 551, which is received by the consumer process 572. In an implementation, the initial configuration may include a network address, such as an IP address, as well as a client certificate. According to such an implementation, the client certificate may be used by the certificate process 571 to facilitate creating a secure connection, such as cellular communication connection 558. The secure connection process 573 may then communicate with the secure connection API 567. In this way, configuration of the PCC 551 may be performed automatically in a “zero touch” fashion without requiring effort or input by a user.
[0092] In an embodiment, the system 550 also includes a ticketing system 574 and a billing platform 575. According to such an embodiment, the ticketing system 575 may communicate with the time series database 555 and may provide features including opening a ticket with a NOC. Similarly, the billing platform 576 may communicate with the relational database 564 and may provide features including checking activation for an apparatus, e.g., the PCC 551, as well as customer billing.
[0093] According to an aspect, the cloud management system 552 may include a monitor/admin user interface (UI) 576. In such an aspect, the monitor UI 576 may include one or more built-in frontends provided by, e.g., Apache and other known systems, and may be used to access data stored in the time series database 555.
[0094] FIG. 6 is a flow diagram of a method 600 for controlling an electronic device, according to an embodiment. The method 600 may be implemented by a power cycle controller as described herein, e.g., PCC 108 (FIG. 1), PCC 338 (FIG. 3), and/or PCC 551 (FIG. 5).
[0095] The method 600 starts at step 601 by establishing a cellular communication connection to a cloud management system. With reference to FIG. 5, according to an aspect, the PCC 551 may establish cellular communication connection 558 to the cloud management system PCC Web GUI 552. Similarly, referring to FIGs. 3 and 1, in some implementations, the PCC 338 or 108 may establish cellular communication connection 341 or 111 to PCC Web GUI 347 or 112, respectively. The cellular communication connection 558, 341, or 111 may be any cellular connection known in the art, such as a LTE connection.
[0096] Next, at step 602, the method 600 communicates with an electronic device. According to an embodiment, for example, the PCC 551 may communicate with an electronic device such as a modem. The electronic device may also be a router, network switch, cash wrap, smart sign, wireless access point, or any other electronic device known in the art. In other embodiments, the PCC 338 or 108 may communicate with e.g., modem 335 or 105, respectively. The communication may be performed via an Ethernet or WiFi connection, such as connection 336 (FIG. 3) or 106 (FIG. 1), or any other connection known in the art.
[0097] In turn, at step 603, the method 600 performs one or more control operations of the electronic device. According to an aspect, the PCC 551 may perform the one or more control operations of the electronic device. In other aspects, the PCC 338 or 108 may perform the one or more control operations of e.g., modem 335 or 105. The one or more control operations may include at least one of executing a script, a reboot, reporting to the cloud management system 552, taking any preprogrammed action, and sending an impulse to the electronic device. According to an aspect, the impulse may be logical or electrical, and may further be based on a departure from one or more predetermined conditions, such as the failure conditions described hereinabove.
[0098] Referring to FIG. 7A, an example embodiment is shown in which a cloud management system 774 communicates with a PCC 771 having one AC output port 781 for controlling power to a customer device, such as modem 772.
[0099] The PCC 771 is shown with front view 771 A and rear view 771B. Looking at the front view 771 A, the PCC 771 has one AC power inlet 782 that connects to a source of AC power 780 and an outlet 781 that delivers AC power out to power the modem 772. In other embodiments, there can be additional AC outputs to power additional devices.
[00100] Looking at the rear view 77 IB, the PCC 771 has an Ethernet port 783 that has a cable connection 776 to the modem 772 or a cable connection 777 to a customer router 773. The customer router 773 has a cable connection 778 to the modem 772. The cloud management system 774 is in communication with the PCC 771 via a LTE or other such wireless connection 775. The cloud management system 774 communicates with the PCC 771, handles transferring data in time slices, and provides a capability to remotely manage a plurality of PCCs and customer devices. Time slices of data from the local device, i.e., the device 772 being monitored, are transferred to the cloud management system 774 over the LTE connection 775 for visibility so that the customer can receive feedback including 1) the customer device 772 was rebooted and resolved the communications issue; 2) the customer device is functioning nominally; and/or the customer device was rebooted, the issue was not resolved and other action is required to correct the issue.
[00101] In embodiments, the serviced, i.e., monitored, controlled, etc., devices (e.g., modem 772) can be any devices known in the art. Moreover, serviced devices are not limited to devices that rely on IP communication. In such an example embodiment, the PCC 771 can cycle power based on a user command or in accordance with a schedule. Moreover, it is noted that, devices that rely on IP communication can likewise be rebooted or otherwise controlled based on a user command or in accordance with a schedule.
[00102] FIG. 7B illustrates another example embodiment in which a PCC 784 has three AC output ports 791a-c for controlling power to three customer devices: modem 785, customer router 786, and software-defined wide area network (SDWAN) appliance 787. The PCC 784 receives power 790 via input power port 794. In turn, the PCC 784 provides, via the respective output power ports 791a-c, modem/network interface device (NID) power 788 to modem 785, customer router power 792 to router 786, and SDWAN appliance power 793 to SDWAN appliance 787. The customer router 786 further has a cable connection 789 to the modem 785. Via a LTE or other such cellular or wireless connection (not shown), the PCC 784 communicates with a cloud management system 795.
[00103] According to an embodiment, the modem 785 is a first electronic device, an Ethernet port (not shown) of the PCC 784 is a first data interface, the input power port 794 is a first power port, the output power port 791c is a second power port, and a switch (not shown) of the PCC 784 is a first switch. In one such embodiment, the PCC 784 further includes a second data interface (not shown), a third power port 791a, and a second switch (not shown). The second data interface is configured to connect to a second electronic device, e.g., the customer router 786, and the third power port 791a is configured to deliver power 792 to the second electronic device 786. The second switch is configured to connect the first power port 794 to the third power port 791a. According to one such embodiment, a processor (not shown) of the PCC 784 is configured to (i) conduct data communications monitoring of the second electronic device 786 via the second data interface and (ii) reboot the second electronic device 786 responsive to the data communications monitoring of the second electronic device 786. In an example embodiment, the reboot of the second electronic device 786 is independent of the reboot of the first electronic device, e.g., modem 785.
[00104] FIG. 8 is a block diagram showing an example embodiment of a PCC 880. The PCC 880 includes a processor 881, such as an ARM microcontroller. The processor 881 performs data communication monitoring and power control functions as described herein. [00105] In the PCC 880, wireless connectivity is provided through a LTE module 882 which connects to a SIM card 893. The LTE module 882 features an embedded LTE Cat-M global radio to provide a connection to a Remote Administrator via a remote cloud management system, e.g., 774 (FIG. 7A). Two external SubMiniature version A (SMA) connectors are provided for LTE data 894 and optional global navigation satellite system (GNSS) position/location 895.
[00106] The power control function is provided by a relay 887 controlled through a GPIO port 892 of the microcontroller 881. The relay 887 is operated between closed and open positions to connect or disconnect, respectively, AC power received via input 896 to a customer device via output port 897.
[00107] Voltage regulators 886 connected to holdup capacitors 898 provide a “dying gasp” holdup circuit for use when power to the PCC 880 is interrupted. The holdup time of the holdup circuit is designed to keep mainboard components powered long enough for multiple dying gasp notification packets to be sent out on the Ethernet and LTE networks to a Remote Administrator, e.g., located at the PCC Web GUI.
[00108] Ethernet port 888 provides for wireline connectivity to a customer device for the PCC 880 to monitor the data connectivity of the device.
[00109] Universal Serial Bus (USB) port 889 provides for console access to the microcontroller 881.
[00110] RS-232 port 886 provides a terminal server connection to support Serial over
LAN (SoL) connection to a Remote Administrator via Ethernet and/or LTE.
[00111] External GPIO port 891 can be connected to an external terminal block 885 to provide for external control of other customer devices.
[00112] An onboard electrically erasable programmable read-only memory (EEPROM) 883 is used to record a rolling system event log (SEL) of software-configurable, timestamped system events including AC power loss.
[00113] An internal battery 884 provides power for a real-time clock (RTC) function embedded in the microcontroller 881.
[00114] Remote management of the PCC 880 may include the following functions:
- Unit power/health monitoring;
- Remote AC output control;
Remote GPIO control and monitoring;
- Dying Gasp notification transmissions over wide area network (WAN); Terminal Server SoL to remote device console port.
[00115] FIG. 9 is a flow diagram illustrating a process 990, and sub-processes thereof 991- 994 operating at a PCC (e.g., the PCC 771 of FIG. 7A) to provide power control of a device, according to an example embodiment. [00116] The “rebootService” process 991 monitors data connectivity of a device, e.g., modem 772. For example, the process 991 may monitor ICMP/UDP/TCP connectivity. If such connectivity is lacking after Y attempts (configurable), spanning a time period of Z seconds (Y * interval of each attempt), the reboot service 991 calls the GPIO off relay function 992 (“offRelay”) to open the power circuit (e.g., relay 887 controlled through GPIO port 892 of microcontroller 881 in FIG. 8), thereby inducing a reboot.
[00117] The offRelay function 992 sets the GPIO pin connected to a relay to off (binary 0) which opens the relay to remove utility power to the device.
[00118] After a user-configurable waiting period (e.g., 30 seconds), offRelay 992 calls onRelay 993. The onRelay function 993 sets the GPIO pin connected to the relay to on (binary 1) which closes the relay to deliver the utility power to the device.
[00119] The delay function 994 is called immediately after onRelay 993 executes. This delay function 994 provides a user-configurable delay period (e.g., 240 seconds) before continuing to monitor remote connectivity via the rebootService 991.
[00120] FIG. 10 illustrates a “watchDogService” function 1010 that monitors the reboot service, e.g., process 990 and/or sub-processes 991-994 thereof, to ensure that the reboot service is functioning properly. If the watchDogService function 1010 detects that the system or the reboot service is unresponsive (i.e., “hung”), the watchDogService function 1010 executes a repair script to attempt to correct the issue and a test script to verify that the repair function succeeded. If, after repair, the system or reboot service is still unresponsive, the watchdog 1010 will reboot the entire system or service. According to an embodiment, during the reboot and all testing, the relay is locked in the closed position to ensure devices remain powered. The relay is closed by default. The relay is opened by issuing a signal from the attached GPIO pin. During failure the GPIO will not communicate to the relay to issue a binary open command and this ensures that the device fails closed/all devices remain powered.
[00121] FIG. 11 illustrates a computer network or similar digital processing environment in which embodiments of the present disclosure may be implemented.
[00122] Client computer(s)/device(s) 50 and server computer(s) 60 provide processing, storage, and input/output devices executing application programs and the like. The client computer(s)/devices 50 can also be linked through communications network 70 to other computing devices, including other client computer(s)/device(s) 50 and server computer(s) 60. The communications network 70 can be part of a remote access network, a global network (e.g., the Internet), a worldwide collection of computers, local area or wide area networks, and gateways that currently use respective protocols (TCP/IP, Bluetooth®, etc.) to communicate with one another. Other electronic device/computer network architectures are suitable.
[00123] Client computer(s)/device(s) 50 and/or server computer(s) 60 may be configured, alone or in combination, to implement the embodiments described herein, e.g., the methods 400 and 600, among other examples. The server computer(s) 60 may not be separate server computers but part of communications network 70.
[00124] FIG. 12 is a diagram of an example internal structure of a computer (e.g., client computer(s)/device(s) 50 or server computer(s) 60) in the computer system of FIG. 11. Each computer/device 50 and server computer 60 contains a system bus 79, where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system. The system bus 79 is essentially a shared conduit that connects different elements of a computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) and enables the transfer of information between the elements. Attached to the system bus 79 is an input/output (VO) device interface 82 for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to the computer/device 50 or server computer 60. A network interface 86 allows the computer/device 50 or server computer 60 to connect to various other devices attached to a network (e.g., communications network 70 of FIG. 11). Memory 90 provides volatile storage for computer software instructions 92 and data 94 used to implement an embodiment of the present disclosure (e.g., the methods 400 and 600, among others). Disk storage 95 provides non-volatile storage for computer software instructions 92 and data 94 used to implement an embodiment of the present disclosure. A central processor unit 84 is also attached to the system bus 79 and provides for the execution of computer instructions.
[00125] Embodiments or aspects thereof may be implemented in the form of hardware including but not limited to hardware circuitry, firmware, or software. If implemented in software, the software may be stored on any non-transient computer readable medium that is configured to enable a processor to load the software or subsets of instructions thereof. The processor then executes the instructions and is configured to operate or cause an apparatus to operate in a manner as described herein.
[00126] Further, hardware, firmware, software, routines, or instructions may be described herein as performing certain actions and/or functions of the data processors. However, it should be appreciated that such descriptions contained herein are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc.
[00127] It should be understood that the flow diagrams, block diagrams, and network diagrams may include more or fewer elements, be arranged differently, or be represented differently. But it further should be understood that certain implementations may dictate the block and network diagrams and the number of block and network diagrams illustrating the execution of the embodiments be implemented in a particular way.
[00128] Accordingly, further embodiments may also be implemented in a variety of computer architectures, physical, virtual, cloud computers, and/or some combination thereof, and, thus, the data processors described herein are intended for purposes of illustration only and not as a limitation of the embodiments.
[00129] The teachings of all patents, applications, and references cited herein are incorporated by reference in their entirety.
[00130] While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments encompassed by the appended claims.

Claims

CLAIMS What is claimed is:
1. An apparatus for rebooting an electronic device, the apparatus comprising: a data interface configured to connect to the electronic device; a first power port configured to receive power from a power source; a second power port configured to deliver power to the electronic device, the second power port being separate from the data interface; a built-in switch configured to connect the first power port to the second power port; and a processor configured to conduct data communications monitoring of the electronic device via the data interface and to reboot the electronic device responsive to the data communications monitoring.
2. The apparatus of claim 1 wherein the data interface is configured to connect to the electronic device via at least one of: an Ethernet connection and a WiFi connection.
3. The apparatus of claim 1 wherein the electronic device is a first electronic device and the apparatus further comprises: a communication interface configured to connect the apparatus to a controldevice communicatively coupled to a second electronic device.
4. The apparatus of claim 3 wherein the processor is further configured to: send a command to the control-device; and receive data from the control-device.
5. The apparatus of claim 3 wherein the control-device is configured to: perform one or more control operations of the second electronic device.
6. The apparatus of claim 1 wherein the processor is configured to reboot the electronic device by opening the built-in switch connecting the first power port to the second power port and closing the built-in switch following a backoff period.
7. The apparatus of claim 1 wherein the electronic device comprises at least one of: a modem, a router, a switch, a point-of-sale (POS) system, a server, an environment monitoring system (EMS), a network interface device (NID), a computing device, a software-defined wide area network (SDWAN) appliance, and an antenna. The apparatus of claim 1 wherein the data communications monitoring includes testing at least one of: access to an Internet server, access to a DNS server, accessing a URL, making an API call, receiving an API call, sending data via an Internet protocol, and receiving data via an Internet protocol. The apparatus of claim 1 wherein the data communications monitoring includes testing connectivity through the electronic device to a network point. The apparatus of claim 9 wherein the processor is configured to reboot the electronic device responsive to the data communications monitoring detecting a failure condition in the connectivity through the electronic device to the network point. The apparatus of claim 1 wherein the data communications monitoring is configurable. The apparatus of claim 1 further comprising a cellular interface configured to connect the apparatus to a cloud management system. The apparatus of claim 12 wherein the processor is further configured to track reboot information for reporting via the cellular interface to the cloud management system. The apparatus of claim 12 wherein the cellular interface is configured to enable Long- Term Evolution (LTE) communications between the apparatus and the cloud management system. The apparatus of claim 1 wherein the processor is further configured to reboot the electronic device in accordance with a user specified condition. The apparatus of claim 1 wherein the processor is configured to reboot the electronic device responsive to the data communications monitoring identifying existence of a user specified condition. The apparatus of claim 1 wherein the electronic device is a first electronic device, the data interface is a first data interface, and the built-in switch is a first built-in switch, the apparatus further comprising: a second data interface configured to connect to a second electronic device; a third power port configured to deliver power to the second electronic device; and a second built-in switch configured to connect the first power port to the third power port; wherein: the processor is configured to conduct data communications monitoring of the second electronic device via the second data interface and to reboot the second electronic device responsive to the data communications monitoring of the second electronic device. The apparatus of claim 17 wherein the reboot of the second electronic device is independent of the reboot of the first electronic device. An apparatus for controlling an electronic device, the apparatus comprising: a cellular interface configured to connect the apparatus to a cloud management system; a data interface configured to connect to the electronic device; and a processor configured to perform one or more control operations of the electronic device. The apparatus of Claim 19 wherein the one or more control operations include at least one of: executing a script, a reboot, reporting to the cloud management system, taking any preprogrammed action, and sending an impulse to the electronic device. The apparatus of Claim 19 wherein the processor is further configured to: receive an indication of the one or more control operations via the cloud management system; and in response to the received indication, perform the one or more control operations. The apparatus of Claim 21 wherein the indication of the one or more control operations is provided by a user via the cloud management system. The apparatus of Claim 19 wherein the processor is further configured to: monitor the electronic device via the data interface; and perform the one or more control operations responsive to the monitoring. A method for rebooting an electronic device, the method comprising: establishing, via a data interface, a communication connection to the electronic device; conducting data communications monitoring of the electronic device via the established communication connection; and rebooting, via a power port, the electronic device responsive to the data communications monitoring; wherein the power port is separate from the data interface. A method for controlling an electronic device, the method comprising: establishing a cellular communication connection to a cloud management system; communicating with the electronic device; and performing one or more control operations of the electronic device.
PCT/US2023/071082 2022-08-11 2023-07-27 Method and apparatus for controlling electronic devices WO2024036043A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263371181P 2022-08-11 2022-08-11
US63/371,181 2022-08-11
US18/079,560 US11962458B2 (en) 2022-08-11 2022-12-12 Method and apparatus for controlling electronic devices
US18/079,560 2022-12-12

Publications (1)

Publication Number Publication Date
WO2024036043A1 true WO2024036043A1 (en) 2024-02-15

Family

ID=87845549

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/071082 WO2024036043A1 (en) 2022-08-11 2023-07-27 Method and apparatus for controlling electronic devices

Country Status (1)

Country Link
WO (1) WO2024036043A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962458B2 (en) 2022-08-11 2024-04-16 Granite Telecommunications, Llc Method and apparatus for controlling electronic devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006339955A (en) * 2005-06-01 2006-12-14 Nec Tokin Corp LOCAL xDLS MODEM COMPATIBLE REBOOTING SYSTEM
US20090013210A1 (en) * 2007-06-19 2009-01-08 Mcintosh P Stuckey Systems, devices, agents and methods for monitoring and automatic reboot and restoration of computers, local area networks, wireless access points, modems and other hardware
US20110035624A1 (en) * 2009-08-07 2011-02-10 Green Networks, Inc. Intelligent power control
US20190123955A1 (en) * 2016-12-29 2019-04-25 Pismo Labs Technology Limited Methods and systems for restarting one or more components of a network device based on conditions
US20210377101A1 (en) * 2017-12-06 2021-12-02 Dish Network L.L.C. Broadband watchdog

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006339955A (en) * 2005-06-01 2006-12-14 Nec Tokin Corp LOCAL xDLS MODEM COMPATIBLE REBOOTING SYSTEM
US20090013210A1 (en) * 2007-06-19 2009-01-08 Mcintosh P Stuckey Systems, devices, agents and methods for monitoring and automatic reboot and restoration of computers, local area networks, wireless access points, modems and other hardware
US20110035624A1 (en) * 2009-08-07 2011-02-10 Green Networks, Inc. Intelligent power control
US20190123955A1 (en) * 2016-12-29 2019-04-25 Pismo Labs Technology Limited Methods and systems for restarting one or more components of a network device based on conditions
US20210377101A1 (en) * 2017-12-06 2021-12-02 Dish Network L.L.C. Broadband watchdog

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962458B2 (en) 2022-08-11 2024-04-16 Granite Telecommunications, Llc Method and apparatus for controlling electronic devices

Similar Documents

Publication Publication Date Title
US10425316B2 (en) Heart beat monitoring for broadband access devices and enterprise devices
US10270644B1 (en) Framework for intelligent automated operations for network, service and customer experience management
US11695642B2 (en) Virtualized network service management and diagnostics
US8997092B2 (en) Method, system, and computer readable medium for provisioning and remote distribution
US11405280B2 (en) AI-driven capacity forecasting and planning for microservices apps
US20220147402A1 (en) System and method of a managing multiple data centers
WO2017019684A1 (en) Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data
US20190097872A1 (en) System and method for remote maintenance
US10848839B2 (en) Out-of-band telemetry data collection
CN113726607B (en) Network detection method and device, electronic equipment and storage medium
CN103607296A (en) Virtual machine fault processing method and equipment thereof
US8332690B1 (en) Method and apparatus for managing failures in a datacenter
CN109245966A (en) The monitoring method and device of the service state of cloud platform
US10931513B2 (en) Event-triggered distributed data collection in a distributed transaction monitoring system
WO2024036043A1 (en) Method and apparatus for controlling electronic devices
US20160277265A1 (en) Distributed stability and quality monitoring, testing, and trending of data communications networks
US10644947B2 (en) Non-invasive diagnosis of configuration errors in distributed system
WO2019089256A1 (en) Auto discovery of network proxies
US20230214229A1 (en) Multi-tenant java agent instrumentation system
US20220345371A1 (en) Control configuration for a plurality of endpoint devices
US11962458B2 (en) Method and apparatus for controlling electronic devices
EP3252995B1 (en) Method for detecting network failures
CN114253799A (en) Fault processing system, method, server and readable storage medium
WO2021014418A1 (en) Automatically scaling a number of deployed application delivery controllers (adcs) in a digital network
US11743108B1 (en) Dynamic customization of network controller data path based on controller internal state awareness

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23761692

Country of ref document: EP

Kind code of ref document: A1