Patent Description:
<CIT> describes systems and methods that provide for a power outage lighting management within an environment, comprising a power outage detection device adapted to detect a power outage condition and to wirelessly transmit power outage indication data to a plurality of lighting systems within the environment, where at least one of the plurality of lighting systems include an LED light source that is powered by an internal power source.

<CIT> describes a method for controlling lighting devices and. Each lighting device includes two or more LEDs, an AC/DC or DC/DC power converter, a controller/processor electrically connected to the AC/DC or DC/DC power converter, a light emitting diode (LED) current control circuit communicably coupled to the controller/processor and electrically connected to the AC/DC or DC/DC power converter and the two or more LEDs. One or more control signals are generated using the controller/processor and sending the one or more control signals to the LED current control circuit. An on/off signal having a cycle time for each LED is generated using the LED current control circuit in response to the one or more control signals and sending the on/off signal to each LED.

<CIT> describes a lighting system, including: light emitting elements; a reset switch operable in a first and second state; non-volatile reset memory configured to record the state of the reset switch when power is provided to the system; a wireless communication system; non-volatile communication memory configured to store default settings and configuration settings; a control system operable, in response to initial power provision to the control system, between: a configured mode when an instantaneous reset switch state matches the recorded state, the configured mode including: connecting the wireless communication system to a remote device based on the configuration settings, receiving instructions from the remote device, and controlling light emitting element operation based on the instructions; and a reset mode when the instantaneous reset switch state differs from the recorded state, the reset mode including: erasing the configuration settings from the communication memory and operating the system based on the default settings. OFFERMANS S A ET AL: "User interaction with everyday lighting systems" describes a context-mapping study that was performed to gain insight into the aspects that play a part in the interaction with lighting, paying special attention to people's motivation for interaction.

According to a first aspect of the invention, there is provided a method for resetting a device or turning a computer program ON as defined in claim <NUM>. Optional and/or preferable features are set out in dependent claims <NUM>-<NUM>.

According to a second aspect of the invention, there is provided a device as defined in claim <NUM>.

These and other objects, advantages and features of this invention will be apparent from the following description taken with reference to the accompanying drawing, wherein is shown a preferred embodiment of the invention.

The above and further advantages of the invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which:.

While the making and using of various embodiments of the present invention are discussed in detail below, it should be appreciated that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed herein are merely illustrative of specific ways to make and use the invention and do not delimit the scope of the invention.

Now referring to <FIG>, a block diagram of a wireless control device <NUM> in accordance with one embodiment of the present invention is shown. Note that the wireless control device <NUM> may also be referred to as a switch device. The wireless control device <NUM> includes one or more sensors <NUM>, one or more switches <NUM>, a wireless transceiver circuit <NUM> with antenna <NUM>, and a processor <NUM> communicably coupled to the one or more sensors <NUM>, one or more switches <NUM>, and the wireless transceiver circuit <NUM>. The wireless control device <NUM> can be used for controlling wireless devices over a wireless protocol such as Bluetooth, Wi-Fi, etc. The controller or processor <NUM> processes the input data, such as from sensors <NUM>, switches <NUM>, and sends commands and data to output devices, such as display <NUM>, wireless transceiver circuit <NUM>, LED indicator(s) <NUM>, etc. For example, the processor <NUM> receives data from the one or more sensors <NUM> and/or the one or more switches <NUM>, determines a predefined action associated with the data that identifies one or more external devices and one or more tasks, and transmits one or more control signals via the wireless transceiver circuit <NUM> and the antenna <NUM> that instruct the identified external device(s) to perform the identified task(s). The display <NUM> can be used as an input and output device that gives readings, configuration, settings, etc. of the device and also interaction possibility to connect and communicate to the device, updating its software, changing the configuration and settings, etc. The display <NUM> can be an LCD display, LED display, or other desired display type, etc..

The one or more sensors <NUM> may include various sensors to measure air quality 102a, ambient light 102b, temperature 102b, humidity 102b, proximity 102c, motion 102d, sound/microphone, etc. The one or more sensors <NUM> obtain and provide environmental data as an input to the processor <NUM> for processing. A real time clock (RTC) <NUM> maintains the current date and time, and is useful to automate and program the device actions. LED indicators <NUM> indicate based on the input data, commands sent, actions taken by the processor <NUM>, success or failure of the action, etc. Switches <NUM> may include different types of switches. For example, push button switches 104a and 104b act as ON/OF triggers to the processor <NUM>, and rotary switch 104c acts as analog input to the analog to digital converter communicably coupled to the processor <NUM>. Memory <NUM> can be internal or external to the processor <NUM>, volatile or non-volatile, and used to save configurations and other programmable data, such as user defined programs apart from manufacturer defined programs. Wireless circuit <NUM> can be part of the processor circuit <NUM> or a separate component communicably coupled with the processor <NUM>. The wireless circuit <NUM> and antenna <NUM> are used to communicate to the external wireless devices. Power supply <NUM> can be a battery (internal or external, rechargeable or non-rechargeable), or an AC/DC or DC/DC converter that is taking power from external power source through a connector. Infra-Red (IR) LEDs and sensors 102d can be used for proximity detection or communication over IR.

Non-limiting examples of the applications, processes of configuring switches <NUM> for external device control, and the user interface for defining such configurations will be described. In addition, applications of other circuitry, such as the real time clock <NUM>, memory <NUM>, etc. will be described.

As previously stated, the wireless control device <NUM> can have one or multiple switches <NUM> (such as, but not limited to push pull switch, toggle switch, push button switch, rotary switch, resistive/capacitive switch, etc.). These switches <NUM> can be assigned an action for various permutations and combinations of turning ON/OFF or different positions. Actions can be turning ON light(s) at particular color/brightness level, connecting to phone or other wireless device, reading data from internal or external sensors, or sending commands to internal or external devices, etc..

An algorithm for configuring switches <NUM> using a software application may include the steps of:.

Referring now to <FIG>, a diagram of a user interface screen <NUM> for configuring the one or more switches <NUM> in accordance with one embodiment of the present invention is shown. In this example, a graphical representation of each switch 104a (S1), 104b (S2), 104c (R1) along with one or more program parameters (e.g., number of pushes 202a within a specified period of time 204a for switch 104a; number of pushes 202b within a specified period of time 204b for switch 104b; position at degree 202c for switch 104c) and an action 206a, 206b, 206c for each switch 104a, 104b, 104c are displayed on the user interface screen <NUM>. Note that more than two program parameters and more than one action can be provided. <FIG> is a diagram of the user interface screen <NUM> showing an example configuration of the one or more switches <NUM> in which switch 104a is programmed to turn on warm light (action 206a set to "Warm Light") whenever switch 104a is pushed twice (program parameter 202a set to "<NUM>") within two seconds (program parameter 204a set to "<NUM>"). Switch 104b is programmed to perform action two (action 206b set to "Action <NUM>") whenever switch 104b is pushed once (program parameter 202b set to "<NUM>") within five seconds (program parameter 204b set to "<NUM>"). Switch 104c is programmed to perform action three (action 206c set to "Action <NUM>") whenever switch 104c is turned to a position of sixty degrees (program parameter 202c set to "60deg").

Proximity Sensor Applications in the Switch Device: The wireless control device <NUM> can have one or multiple proximity sensors 102c such as capacitive, electric field, magnetic field and IR based. Consider an IR based near field proximity sensor 102c that activates or changes the output signal whenever someone places his/her hand close to proximity sensor 102c. Based on this change in the signal provided as input to a processor <NUM>, the processor <NUM> performs an action as defined internally, such as send a command to turn ON the light. When there are multiple such proximity sensors 102c on the device <NUM>, and someone moves his/her hand over them in a particular direction (e.g., from down to up, etc.), each sensor produces variable outputs at different times based on position of the hand. These sensor outputs would form a pattern which can be monitored by the processor <NUM> and compared with defined and stored patterns. Once the compared patterns are matched, a particular action can be taken. This can be called as gesture recognition based on inputs from multiple IR sensors as well. For example, increasing the brightness when hand moves in down - up direction for a given number of times, or dimming the light when hand moves in up - down position for a given number of times in given time period.

Similarly, the wireless control device <NUM> can include an air quality or chemical sensor 102a. Air sensor can senses the purity of the air by sensing such things as oxygen levels, carbon dixoide or carbon monoxide levels, particulate levels, pollen levels, various particles, compositions, gases and chemicals in the air, etc..

Battery Energy Saving Mode by Time Multiplexing the Monitoring of the Sensors: The wireless control device <NUM> can have an energy saving mode that reduces power consumption and extends battery life by time multiplexing the monitoring of sensors <NUM>. Consider a wireless control device <NUM> having various sensors such as proximity, ambient light and color sensors, air quality sensor, sound sensor (microphone), etc. The processor <NUM> within the wireless control device <NUM> will read data from sensors <NUM> and perform various actions based on the data. In addition, such a wireless control device <NUM> could work on battery, solar power, wireless energy receiver, AC or DC input. In many cases, power consumption for such a wireless control device <NUM> could be critical especially while running on battery or solar power. The power consumption becomes more critical when the number of sensors and electrical circuits are higher as each requires power to run. However, many times, the sensors <NUM> need not be active all the time or the processor <NUM> need not fetch data from sensors <NUM> all the time. The processor <NUM> can perform time division multiplexing or use pulsed sensing mechanism to activate the sensors <NUM> and fetch the data from them. Otherwise the sensor <NUM> can be in a sleep mode.

For example, a light sensor 102b, instead of providing ambient light data continuously, can provide the data for <NUM> at an interval of <NUM> second, or some time interval and for amount of time that is enough to provide required accuracy of the input data to the processor <NUM>. This will save overall power consumption of up to <NUM>/<NUM> x <NUM>% = <NUM>% from the ambient light sensor 102b. In other words, <NUM>% of the time, the sensor 102b will be in standby mode or sleep mode consuming extremely low power. In addition, sensors such as proximity sensors 102c can be activated in a similar way, but the active time can be increased when there is change in the input above threshold level. Consider a proximity sensor 102c with a single proximity sensor. It can be activated to sense the input for a short duration in every defined time interval as explained above for light sensor. However, the time when it should be active can be increased when there is a change in the input above given threshold. For example, consider that to ensure the reading accuracy sensor needs to be active for more than <NUM>, however, to sense the input change it needs only <NUM>. Therefore, the processor <NUM> can be programmed to activate the sensor for <NUM> every <NUM> interval and read the input, and if the input crosses the defined threshold the processor <NUM> activates the sensor for more than <NUM> and reads the input for that amount of time and acts accordingly. This will help save the power by keeping the sensor on standby mode or sleep mode as much as required.

An example of an algorithm to save power with time multiplexing is as follows:.

An example of an algorithm to save power with time multiplexing and active time change based on the input is as follows:.

Real Time Clock Based Sensing: Most of the time, various sensors need not be active for longer duration. For example, the light sensor 102b could be defined to be active only from <NUM> pm to <NUM> am based on sunset and sunrise times. Similarly, proximity sensor 102c can be defined to be active on weekdays from <NUM> pm to <NUM> am on weekdays and all day during the weekend based on a presence of a person in the room where wireless control device <NUM> is installed. This allows conserving the power used by wireless control device <NUM>, which is important when it is running on limited power sources such as batteries, super capacitors, etc. The duration of sensor activeness could also be reduced in defined time period by increasing the interval duration (time) when sensor should become active for limited time period. An application on a controlling wireless device such as smartphone that is able to communicate with the sensor switch can help define such times when sensors need to be active. For example, interval time of <NUM> second at every <NUM> seconds as provided in the above examples could be <NUM> seconds or higher from 8am to 6pm at every <NUM> seconds and <NUM> second from 6pm to 8am at every <NUM> seconds saving additional power requirement. Such longer interval durations could be given specific names such as semi-sleep mode or low power or power saving mode. Various such power modes could be already part of the wireless device and wireless control device <NUM> system.

An example of an algorithm for real time clock based sensing is as follows:.

Wireless Communication, such as Bluetooth, Based Activeation of the Sensors: A user can also activate or bring the wireless control device <NUM> in the active mode from sleep mode through his/her wireless controlling device. For example, when the user opens the app (application software) on the controlling device, it tries to connect to the wireless control device <NUM> by sending commands. In such cases, as soon as wireless control device <NUM> gets the commands, it becomes active from sleep or other modes. Once the controlling device app is turned OFF and user has no intent to communicate with the wireless control device <NUM>, the wireless control device <NUM> can go in the sleep mode or other mode after defined period of time. An example of an algorithm is as follows:.

Button Based Activation of Sensors: The wireless control device <NUM> can go into a complete sleep mode (i.e., no sensors active at all or particular sensors are not active at all). Those sensors can be activated only when a button switch such as push button is pressed on the wireless control device <NUM>. When pushed, the processor <NUM> gets a signal from the button switch and it then activates required sensors for defined time period. After this time period, the sensors go back to other modes as per the program. An example of an algorithm is as follows:.

Proximity Sensor or Light Sensor Based Activation of the Sensor: One sensor can be activated based on inputs from other sensor(s) through processor. For example, when user waves hand around proximity sensor 102c so that there is a change in the proximity sensors output that is measured by processor <NUM>, the processor <NUM> can based on such input activate other sensors such as ambient light sensor 102b or additional IR proximity sensor used for recognizing gestures for defined time period.

Configuring Sensor Switch with Permutations and Combinations: The wireless control device <NUM> can be configured through a software on a computing device such as smartphone, laptop, etc. The configuration software has options to configure at least one switch or sensor input with respect to time, number of ON/OFF commands (push switch, toggle switch or wave hand across a proximity senor in particular direction at particular height, etc.) in a given time and interval of time for a specific trigger. The software can also configure the multiple switches in terms of a pattern when they are pressed with respect to each other in terms of time and no. of times, including they are pressed simultaneously for any time duration and at one or more interval of times to generate a trigger.

For example, configurations for various triggers could be defined as follows:.

The controller or processor <NUM> monitors the inputs (ON/OFF conditions) from the switches <NUM> and determines the configuration as per the pattern. The processor <NUM> then generates a trigger with a specific command or data. The command can in turn be sent to another device such as light, fan, etc. for their control. Each configuration can be associated with different set of commands such as setting a light scene of multiple lighting devices, setting a AC temperature to a particular predefined value, turning the wireless plug ON or OFF, and many more.

Configure Based on Time with Real Time Clock: The configuration can also be associated with respect to a day and particular time in that day. For example, if the configuration is received by a processor at <NUM> am on weekday, the command sent by the processor <NUM> could be to turn lights ON to a cool white light. If the same configuration is received at <NUM> pm on weekend, the command sent could be to turn light ON to a warmer white light. The processor <NUM> is getting date and time update from the real time clock <NUM> and take actions based on the time when the configuration is received.

Now referring to <FIG>, a diagram of a user interface screen <NUM> for defining an action for the one or more switches <NUM> in accordance with one embodiment of the present invention is shown. The process of configuring the switches <NUM> can be easier on the user interface of the input device, such as computer or smartphone. As previously described in reference to <FIG>, the application software will have various parameters such as switch input (ON/OFF), time interval, number of times a particular switch input is provided, duration when the switch input is provided, variations in the input from the proximity sensor, number of times a particular type of input is provided through a sensor, etc. These options will be available on the user screen. In addition, the options for triggers or commands to devices such as turn light ON to particular color at a particular time and for a particular duration, change the A/C temperature setting, or generate a particular scene will be provided. The user can create its own command based on the permutations and combinations possibilities of devices to be controlled. This command and the configuration can be assigned to each other. Once assigned, the user can save this into the sensor switch device's processor memory or external memory accessible to the processor. The processor then monitors the inputs from sensors and switches for a configuration to trigger a command created by the user also saved in the memory. A user interface is shown to define such actions with various switch/sensor combinations in <FIG>.

As shown in <FIG>, the user can create his/her own command or action <NUM> based on permutations and combinations possibilities of devices to be controlled. This command or action <NUM> and the configuration can be assigned to each other. Once assigned, the user can save this into the memory <NUM> of the wireless control device <NUM> or external memory accessible to the processor <NUM>. The processor <NUM> then monitors the inputs from sensors <NUM> and switches <NUM> for a configuration to trigger a command created by the user also saved in the memory <NUM>. Each command or action <NUM> can be defined by selecting one or more devices <NUM>, defining a start/end time for the action <NUM> and defining a task for the selected device using the user interface screen <NUM>. For example, <FIG> illustrates a user interface screen <NUM> in which a "Warm Light" action 206a is defined by selecting the living room lights <NUM>, having a start/end time of Monday to Friday <NUM> pm to <NUM> pm <NUM>, and a task of turning the living room lights to a warm light scene <NUM>. In another example, <FIG> illustrates a user interface screen <NUM> in which an "Action <NUM> (Brightness Control)" action 206c is defined by selecting the living room lights <NUM>, having a start/end time of always <NUM>, and a task of adjusting the brightness based on the rotary switch position (<NUM> degrees for full and <NUM> degrees for zero) <NUM>.

Configuring the Light Adjustment through a Light Sensor and Real Time Clock: A user can also create a rule with respect to the light sensor that measures ambient light intensity and/or ambient light color and real time clock. The user can create this rule in an application software with user interface on the computing device such as computer or smartphone. The interface will have options to create a trigger to change the light output from a lighting device in the vicinity or adjust the electrically controllable shade (such as on windows) based on the ambient light measured at particular time of the day. The user can select the number/amount in terms of lumens or other light measurement unit at which the trigger should get generated and the time interval for particular days using RTC when trigger should be delivered as a command to a lighting device or controllable shade device.

Updating the Time in the Connected Devices through a Sensor Switch; The sensor switch can have RTC which retains the real time and day information with the help of a power from the battery. This sensor switch can update the day/time info in real time of the other connected devices which don't have battery to retain the time information or synchronise their clocks. The sensor switch can monitor the day and time information of the devices directly or through a mesh network and update it in case of discrepancy.

The clock (Real Time Clock) could be a part of the smart devices as well as controlling devices. In addition, the various sensors such as GPS location, proximity, occupancy, sound (mic), etc. are also part of smart devices and controlling devices.

New controlling applications of the clock such as Real Time Clock in various smart devices such as smart lighting product, smart thermostat, etc. and the controlling devices such as smartphone, tablets, computers, remotes, etc. will be presented below with respect to <FIG>.

Now referring to <FIG>, various views of a wireless control device <NUM> in accordance with one embodiment of the present invention are shown. The control device <NUM> has a substantially square-shaped footprint <NUM> with rounded corners <NUM>, sloped sides <NUM> and a top <NUM> with rounded edges <NUM>. The top <NUM> may include one or more sensors <NUM>, indicator light <NUM> and switch indicators <NUM>. The control device <NUM> includes a base plate <NUM>, an outer ring <NUM> attached to the base plate <NUM>, and electronic board <NUM> disposed within the outer ring <NUM> and attached to the base plate <NUM>, and a top cover <NUM> that mates with the outer ring <NUM>. The electronic board <NUM> can include any or all of the components described in reference to <FIG>. For example, this embodiment includes four switches 430a, 430b, 430c, 430d mounted proximate to the corners <NUM> of the device <NUM>, one or more sensors <NUM> and an indicator light <NUM> proximate to a center of the top cover <NUM>, and one or more batteries <NUM>.

The base plate <NUM> is where the electronic board <NUM> rests. The top cover <NUM> can be aligned such that it meets the base plate <NUM> at the edges giving smooth finish on all sides, or the top cover <NUM> can accommodate the base plate <NUM>. The base plate <NUM> and the top cover <NUM> can be assembled by glue, snap fit structure, screws or any other desired fastener.

The outer ring <NUM> can be a rigid part that is plastic or metal. The outer ring <NUM> provides better look and rigidity to the wireless control device <NUM>.

The electronic board <NUM> has all the electronics including a battery <NUM> with a battery holder, sensor(s) <NUM>, switches <NUM>, power converters, real time clock circuitry, LED <NUM> with the light pipe assembly, reset switch, controller with wireless circuit and antenna. Typically, the sensor is tiny so it needs to be elevated so that the front side of the sensor (sensing part) is open to the environment to receive the signal. It is possible by assembling a sensor <NUM> on top of a small printed circuit board (PCB) and elevating the PCB by a connector between actual electronic board PCB and the sensor PCB. The small PCB along with the connector will provide the required electrical connections between the sensor <NUM> and the processor circuitry. Also, the LED <NUM> on the PCB could be very small. In that case, a light pipe can be put on top of it so that the light is transmitted out of the top cover hole.

The top cover <NUM> can be plastic, silicone, elastomer or other material with holes open or with transparent cover on them to allow sensor input and LED light output. The top cover <NUM> covers the assembly including the electronic board <NUM> from the top and the sides. The top cover <NUM> is such that when pressed at the top of the switches <NUM>, the switches <NUM> (e.g., push button and reset switches, etc.) on the electronic board <NUM> are pressed. The top cover <NUM> can also have side doors to insert and take out the batteries <NUM>.

Referring now to <FIG>, there are two types of devices. First one, a smart device <NUM> which consists of at least one of wireless protocol such as Wi-Fi, Bluetooth, ZigBee, RF, etc., circuit <NUM>, controller/processor <NUM>, wireless circuit with antenna <NUM>, Clock such as RTC (Real Time Clock) circuit <NUM>, and a sensor (one or multiple) <NUM> such as occupancy, proximity, ambient light, ambient light color, temperature, humidity, sound, etc. sensor, and additional functional circuitry such as required for LED lighting, running a fan, running a motor, camera device, thermostat, etc. <NUM>, power supply <NUM> such as battery, solar device, or any other AC or DC voltage and current providing circuitry. Please note that wireless circuit <NUM> and controller/processor can be one circuit also known as On-System-Chip solution. Similarly, second type is controlling device <NUM> that interacts and controls the smart device. The controlling device may consist of similar components as on smart device. It can also consist of GPS technology as part of wireless protocols <NUM>. Both, smart device and controlling device may consist of display or other input/output <NUM> circuits as well. The examples of controlling device are smart phones, tablets, computers, remote controls, etc. The controlling device can interact, configure and control the smart device with a required software application running onto it. Applications of the clock in smart or controlling device will now be explained.

Referring now to <FIG>, a flow chart of a GPS location and/or time controlled process in accordance with one embodiment of the present invention is shown. In various systems, the smart devices using Bluetooth or other wireless signals, are controlled through wireless controllers with GPS protocol such as Smartphones. There is a need to initiate a wireless control to control the smart device(s) based on the wireless controller's location to utilize the available power/energy (such as battery) in the wireless controllers effectively and to activate the smart devices having specific functionalities as a function of the controlling device's location. For example, wireless controller would initiate the application and the Bluetooth protocol to turn the smart lights with Bluetooth protocol ON when it is at a particular location or within a defined periphery or a wireless range of the smart lights. Or a smart security gate controller by Bluetooth opens when wireless controller reaches at a particular location or within a defined periphery or a wireless range of the smart gate. This functionality can also be a function of time such that the event triggers only when wireless controller is at particular location at certain times. The algorithm would be:.

More specifically, the defined GPS location and/or based program <NUM> is launched in block <NUM>. The wireless controller monitors the GPS location and/or time in block <NUM>. If the wireless controller is at a defined location and/or at a defined time as per the program, as determined in decision block <NUM>, the wireless controller activates the wireless protocol in it and connects and controls the smart device as per the program in block <NUM>, and the process stops in block <NUM>. If, however, the wireless controller is not at a defined location and not at a defined time as per the program, as determined in decision block <NUM>, the process repeats in block <NUM> by looping back to monitor the GPS location and/or time in block <NUM>.

The user interface on the software application running on a controlling device can be used to define such clock and GPS (location based service) based algorithm. Referring the <FIG>, the user interface <NUM> will have on a single screen or multiple screens, options to select the time, date or days of the week <NUM> and select location or chose current location in case the user with the controlling device <NUM> is at the location of the smart device(s). The user interface will also have options so that the user can define the action the smart device should take <NUM> such as turn ON with a specific state. This way, the location and time based triggers can be defined saved using save button on the user interface <NUM> and executed. The clock used in this application can be of either smart device <NUM> or controlling device <NUM>.

Now referring to <FIG>, a flow chart of an occupancy sensor <NUM> and clock <NUM> process <NUM> in accordance with one embodiment of the present invention is shown. Occupancy sensor <NUM> senses the occupant in the vicinity and can trigger the event such as turn the light ON or open the gate. It can also be a function of time with the use of RTC <NUM>. The occupancy sensor and clock application is launched to create a program in block <NUM>. The user through application in the controller device such as smartphone defines time when the occupancy sensor can trigger the event in block <NUM>. The user also defines an event such as turn a particular smart lighting device(s) in the network ON at a particular color and brightness in block <NUM>. When the occupancy sensor senses the occupant in a defined time, as determined in decision block <NUM>, it triggers the defined event in the smartlight in block <NUM>. If, however, the occupancy sensor does not sense the occupant in a defined time, as determined in decision block <NUM>, monitoring is continued during the defined time in block <NUM> and the process loops back to decision block <NUM>.

In addition, a light and/or color sensor <NUM> can sense the light in the vicinity and can trigger the function to control the light output of particular smart device such a smart lighting device in terms of color and brightness as a function of time. The clock of one smart device can be used to trigger the function of other smart device(s) in the network as well.

Similarly, a sound sensor (detector) such as a microphone and related circuitry <NUM> in the smart device <NUM> can be used in association with the clock to generate triggers for specific function of the Smart Device <NUM>. The algorithm <NUM> is shown in <FIG>. The user defines an event, a pattern of sounds for triggering the action and programs the smart device with such desired programs in block <NUM>. For example, the sound generated by <NUM> claps within <NUM> seconds at particular day(s) within specific time period, such as from <NUM> pm to <NUM> pm Monday through Wednesday. When such a pattern is detected by controller/processor <NUM> through a sound sensor <NUM>, as determined in decision block <NUM>, a specific trigger is generated for smart device for a specific action in block <NUM>. For example, turning the smart lighting device ON at particular brightness and color or turn off smart thermostat. The trigger can be generated and passed on by controller/processor <NUM> through wireless protocol chip <NUM> in turn, through antenna <NUM> of a smart device to another smart device(s) for specific action(s). If, however, the pattern is not detected by controller/processor <NUM> through a sound sensor <NUM>, as determined in decision block <NUM>, monitoring is continued during the defined time in block <NUM> and the process loops back to decision block <NUM>.

Now referring to <FIG>, a flow chart of a clock/timer synchronization process <NUM> in accordance with one embodiment of the present invention is shown. Controlling device <NUM>, such as smartphone, sends various programs to smart device <NUM> with such as smart lighting device, smart thermostat, smart lock, etc. that can be stored inside the smart device <NUM> and turned ON at a very specific time. Various programs require smart device(s) <NUM> to be turned ON or run a specific application at the same time or in a defined time interval and time synchronization is required in such cases. The clock/timer synchronization is launched in block <NUM>. The controlling device sends updates to the clocks or timer of at least on smart device in its network and/or at least one smart device updates the timer/clock of at least one other smart device in the network at a defined interval of time in block <NUM>. The process is repeated periodically as indicated by block <NUM>.

For example, consider a lighting and temperature program of simulated sunrise. A user will send such program with defined specific time such as 7am every weekday to each smart lighting device bulb to turn ON at specific color and brightness and thermostat to control temperature to a specific level. Similarly, a program with blue ocean wave pattern through smart lighting device, where each smart lighting device produces certain type of light output at defined specific interval. Once programmed the smart lighting device and thermostat will monitor the clock <NUM> that could be real time clock powered by battery or super capacitor or input mains, or a processor timer defined for various programs inside the bulb. Once the specific defined time is reached the program will get triggered to turn ON. In such cases, issues could arise if the clocks or timers inside each smart device are not synchronized due to various reasons such as drift in the clock or interruptions in the power to the clock, i.e. not showing the same time. Clocks can be synchronized in following two ways:.

Referring now to <FIG>, a flow chart of a process <NUM> to reset the hardware or programming using the processor timer in accordance with one embodiment of the present invention is shown. For any embedded device with controller or processor, the reset function is must. Most of the times, the device uses external reset switch. In addition, when the devices is reset is comes to a state of one defined program, which limits how the number of states the device can be turned ON. In any case, the Reset switch is also additional hardware cost in the device. The system can be reset or initiated for various programs through turn ON/OFF sequences using the timer and memory functions of the controller or processor. For that consider that any of the below steps can be used.

An example of reset function can be a program defined such that when the device is turned ON and OFF thrice in a row, each time within <NUM> second and <NUM> seconds, the device resets itself to default settings. The algorithm "Resetting the device through timer and memory function" <NUM> begins in block <NUM> when the device is turned ON (when the device is ON, the processor is ON and a timer is also ON). The counter or time of the timer is counted in block <NUM>. When the count reaches the first milestone, the first defined memory location is flagged in block <NUM>. When the count reaches the second milestone, the first defined memory location is unflagged in block <NUM>. The device/processor is turned OFF and then ON in block <NUM>. If the first defined memory location is not flagged, as determined in decision block <NUM>, the process loops back to block <NUM> where the counter or time of the timer is counted. If, however, the first defined memory location is flagged, as determined in decision block <NUM>, the counter or time of the timer is counted in block <NUM>. When the count reaches the first milestone, the second defined memory location is flagged in block <NUM>. When the count reaches the second milestone, the second defined memory location is unflagged in block <NUM>. The device/processor is turned OFF and then ON in block <NUM>. If the first defined memory location is not flagged or the second defined memory location is not flagged, as determined in decision block <NUM>, the process loops back to block <NUM> where the counter or time of the timer is counted. If, however, the first defined memory location is flagged and the second defined memory location is flagged, as determined in decision block <NUM>, the counter or time of the timer is counted in block <NUM>. When the count reaches the first milestone, the third defined memory location is flagged in block <NUM>. When the count reaches the second milestone, the third defined memory location is unflagged in block <NUM>. The device/processor is turned OFF and then ON in block <NUM>. If the first defined memory location is not flagged or the second defined memory location is not flagged or the third defined memory location is not flagged, as determined in decision block <NUM>, the process loops back to block <NUM> where the counter or time of the timer is counted. If, however, the first defined memory location is flagged and the second defined memory location is flagged and the third defined memory location is flagged, as determined in decision block <NUM>, the device is reset in block <NUM>.

Similarly and referring to <FIG>, a flow chart of a process <NUM> to turn the program ON using the processor timer in accordance with one embodiment of the present invention is shown. An example of turning the device with the a specific program can be defined such that when the device is turned ON and OFF twice in a within <NUM> seconds and <NUM> seconds for the first time, and again within <NUM> seconds and <NUM> seconds for the second time. The algorithm "Turning program on through timer and memory function" <NUM> begins in block <NUM> when the device is turned ON (when the device is ON, the processor is ON and a timer is also ON). The counter or time of the timer is counted in block <NUM>. When the count reaches the first milestone, the first defined memory location is flagged in block <NUM>. When the count reaches the second milestone, the first defined memory location is unflagged in block <NUM>. The device/processor is turned OFF and then ON in block <NUM>. If the first defined memory location is not flagged, as determined in decision block <NUM>, the process loops back to block <NUM> where the counter or time of the timer is counted. If, however, the first defined memory location is flagged, as determined in decision block <NUM>, the counter or time of the timer is counted in block <NUM>. When the count reaches the first milestone, the second defined memory location is flagged in block <NUM>. When the count reaches the second milestone, the second defined memory location is unflagged in block <NUM>. The device/processor is turned OFF and then ON in block <NUM>. If the first defined memory location is not flagged or the second defined memory location is not flagged, as determined in decision block <NUM>, the process loops back to block <NUM> where the counter or time of the timer is counted. If, however, the first defined memory location is flagged and the second defined memory location is flagged, as determined in decision block <NUM>, the defined program is turned ON in block <NUM>.

Claim 1:
A method for resetting a device or turning a computer program ON, the computer program executed by the device and comprising:
turning the device ON (<NUM>, <NUM>);
for a set of defined memory locations, select a first defined memory location out of the set of defined memory locations as a selected defined memory location;
for a set of defined milestones, select a first defined milestone out of the set of defined milestones as a selected defined milestone;
(a) counting a cycle count measuring a number of clock cycles since the device was last turned ON using a counter or an elapsed time since the device was last turned ON using a timer (<NUM>, <NUM>) of the device;
(b) flagging the selected defined memory location when the cycle count or elapsed time reaches the selected defined milestone for the counter or timer (<NUM>, <NUM>);
(c) turning the device OFF and then ON again (<NUM>, <NUM>);
(d) if the selected defined memory location is flagged, selecting another defined memory location out of the set of defined memory locations as the selected defined memory location, and selecting another defined milestone out of the set of defined milestones as the selected defined milestone;
(e) repeating steps (a) through (d) a specified number of times;
(f) resetting the device or turning the computer program ON (<NUM>, <NUM>) when all the selected defined memory locations are flagged (<NUM>, <NUM>).