App Status

From Hubitat Documentation
Revision as of 04:36, 4 June 2022 by RobertM (talk | contribs) (Add "Activate a Scene" note for clone/import)
Jump to: navigation, search
Go to the top of the page

The App Status page is where you will find detailed, read-only information about the internal data values of an app. This page is generally most useful for app developers or advanced users. The App Status page can be accessed by clicking the gear icon to the left of any app in the Apps list (under the "Info" column) or the same icon towards the upper right when inside the app.

Screenshot of "App Status" icon in Apps list
Location of "App Status" icon in Apps list

Export/Import/Clone

Most apps can be duplicated (cloned), exported (for later import to this hub or another hub), or imported (from a previous export) using the buttons at the top of the App Status page.

Screenshot of "Export/Import/Clone" button on App Status page

The Export/Import/Clone button will take you to a screen where you can export, import, or clone the app:

Screenshot of "Export/Import/Clone" page, accessed from App Status Page
  • Export <app name>: clicking this button will take you to another page with a Download <app name>.json button, which can be clicked to download the exported app. This can be used to import the app on the same or different hub later from either this screen on the corresponding app or the Restore Apps feature on the Settings page.
  • Import Apps: Click the Browse... button to locate and import a previously-exported .json file for any app. (Alternatively, this can be done from Settings > Restore Apps.)On the next screen, you will be given two options:
    • Restore <app name>: Recommended only if restoring a deleted app to the same hub with the same devices; will use same devices (by internal ID or name) as specified in export. This will fail if the app exists, whether because the original was never deleted or a restore has already been performed.
    • Import <app name>: Recommended for all other cases; will offer option to replace devices in export with new/different devices before importing.
  • Clone <app name>: clicking this button (and then Clone... on the next page) will create a second copy of this app and will offer the option to replace devices with new/different devices before creating the new copy. This is effectively the same result as an export and then import (without the need to download and upload the export file).

When you are finished doing the export/import/clone operation you want, hitting the Done button takes you to the Apps page. You can also use the back button in your browser to return you to whatever page you were on before opening the utility.

WARNING: Do not open Export/Import/Clone utility in more than a single browser window/tab at one time. There is a single instance of the utility for all apps, and it knows the context from which it was launched. If you launch multiple windows/tabs, an error may result.

Notes

  • This page will vary slightly depending on if you are viewing a parent or child app (e.g., the child App Status page allows cloning only that particular child app) or an app that allows only a single instance per hub (e..g, Lock Code Manager, where the app can be exported but not cloned).
  • Certain apps do not support cloning or exporting--namely, Button Controller 5.x "grandchild" apps (Button Rule); you must clone or export the "child" Button Controller instance.
  • The Import section on the App Status page is not specific to the app; you can import any exported app from here, the same as doing it from Settings > Restore Apps.
  • In Rule Machine and Button Rule imports or clones, the Activate Scenes action is a special case when dealing with device replacement--the original scene to activate will not be replaced, even if a different scene is chosen during import or cloning. This can be manually changed afterwards, or you can effectively activate the scene via another method (e.g., Push a Button on the scene activator device), in which case substitution during cloning or import will work as expected with device substitution.

Settings

These are the values for what is set inside the application--the inputs, checkboxes, enums (drop-downs), and device selections. This shows all specified settings for the app, but all settings may not always contain a value. These names and values provide a read-only view into one the app's internal data structures and may be most useful if you are developing this app or working with the developer to troubleshoot an issue.

  • App Title is shown at the top of the App Status page. It may also show the state for certain apps, "Armed" or "Disarmed" for Hubitat Safety Monitor or "Paused" for Rule Machine rules.
  • Name is a list of the setting/input name (as determined by the app code)
  • Type shows the type specified for the setting/input (as determined by the app code)
  • Value displays the currently selected value (generally from user input) for the specified setting/input. For example, if an app allows you to select a dimmer to turn on or off, the selected dimmer(s) should appear as the value for one or more settings in this list.
The Settings section of the apps status window displays the app capabilities by "name" in the first column, the capability "type" in the second column, and the app capability "Value" in the third column

Event Subscriptions

Apps can subscribe to events, which will cause the app to "wake" and execute the specified handler (a method name as determined internally by the app code; again, this is generally most useful if you are developing the app or troubleshooting with a developer).

  • Source for the Event Subscription might be a device, mode, location, etc.
  • Event is what has been subscribed to, for example, an event (attribute) name.
  • Handler is the method inside the code that will be called when the event is triggered.
  • Filter refers to whether the developer specified that events that do not result in a state change should be filtered out (true, the default value) or not (false).
The "Event Subscriptions" section of the App Status page lists the "Source" of the Event Subscription in the first column, the "Event" that has been subscribed to in the second column, the "Handler" method in the third column. This is the method inside the code that will be called when the event is triggered, and a "Filter" column that corresponds to "sendEvent" from the device driver, and whether or not it has true and false filter events.

Application State

This represents a location apps can use for internal data storage. Anything the developer writes to state or atomicState will show up here as a with values under the Name and Value columns. (Again, this information is generally most useful if you are developing an application and need a way to see this information or are troubleshooting with a developer who asks for this information.)

The "Application State" section of the App Status page displays anything written to "State". It will show up here as a pairing of Name and Value.

Scheduled Jobs

Apps can schedule jobs to run, and the App Status page is one place you can see those for a particular app. (All scheduled jobs are also available from a special tab on the Logs page.) For example, if you have an app or rule scheduled to perform something at 6:15 AM every day, you will likely see a scheduled job here representing that information. (Different app developers may handle scheduling in different ways, so again this information is most likely to be useful if you are developing an app and need to see this information or are working with someone who is.)

  • Handler is the name of the method (in the app code) that will execute when the scheduled job executes.
  • Next Run Time represents the next scheduled execution of this job (when the handler will run).
  • Prev Run Time will show the last time the scheduled job executed (when the handler last ran).
  • Status shows if the Job is PENDING or ACTIVE. Typically (as most wakes for scheduled jobs are short), this will show PENDING.
  • Schedule is the frequency of the job. Once, every x, or a cron schedule are possible values.
The "Scheduled Jobs" section of the App Status page shows the "Handler" in the first column. This is "what" will be triggered. In the second column is the "Next Run Time", which is when the "Handler" is scheduled to run. The "Previous Run Time" column shows when the handler last ran, and the Status column shows whether the job is "Pending" or "Active". Lastly, the "Schedule" column displays the frequency of the job.