1. Who We Are
SoftPlex Inc. ("SoftPlex", "we", "our", or "us") is the developer and publisher of the Ampere Alarm Android application, distributed through Google Play. Our registered business address is in Halifax, Nova Scotia, Canada, with operations in Niigata, Japan, and technical leadership based in Poland, European Union.
SoftPlex Inc. is the data controller for personal information processed in connection with Ampere Alarm. We are committed to compliance with Canada's Personal Information Protection and Electronic Documents Act (PIPEDA), the EU General Data Protection Regulation (GDPR), Japan's Act on the Protection of Personal Information (APPI), and the Google Play Developer Program Policies.
For all privacy enquiries, you may reach us at support@softplex.io.
2. Scope of This Policy
This Privacy Policy applies solely to the Ampere Alarm mobile application for Android. It explains what information the app accesses on your device, what information is collected and shared, and the choices available to you. Use of the SoftPlex website (softplex.io) is governed by our separate website Privacy Policy.
Some features described below are optional, and some are released gradually: we can enable or disable individual features remotely (for example while a feature is in pre-release), so a feature described here may not yet be visible in your copy of the App. This policy describes everything the App is capable of doing, so that it is complete before a feature reaches you.
3. How the App Works & What It Accesses
Ampere Alarm monitors your device's battery and temperature and alerts you when they cross thresholds you set (for example, "charge reached 80%" or "temperature above 45 °C"). To do this, the app reads battery information from Android's battery service — such as charge level, voltage, temperature, electric current (mA), charge counter, estimated capacity, health, and battery technology — and reads your device's network throughput to display live speed. If you enable the optional companion-device feature, it also reads the reported battery level of Bluetooth accessories that are already paired (bonded) with your device, such as earbuds or a watch.
Your battery data stays on your device unless you enable linked-device sync. If you enable that optional feature, the App uploads the latest battery level, charging state, temperature (when available), and update time to Google Firebase so devices in your linked group can display the reading and support remote alarms. The App also stores an anonymous Firebase user ID, the device name and model you provide or confirm, a Firebase Cloud Messaging token, last-seen time, premium-status flag, and remote-alarm configuration for the linked group. We do not sell this information.
Your full battery history, voltage, current, charge counter, estimated capacity, battery health, network-throughput history, companion Bluetooth-accessory readings, settings, custom vibration patterns, and custom alarm sound files remain local to your device. Linked-device sync sends only the latest fields described above, not your full local battery history.
Two further optional features reach beyond your device, and each is described in its own section below: smart plugs, which let an alarm switch a Wi-Fi plug off to stop charging (§5), and, for the free ad-supported version, an on-device ad-blocker check (§7). The App also uses analytics and crash reporting (§9).
4. Information We Collect
Ampere Alarm does not require you to create an account or provide your name, email, or contact details to function. The information processed falls into the following categories:
| Category | Examples | Collected by | Leaves device? |
|---|---|---|---|
| Battery & device telemetry | Charge level, voltage, temperature, current (mA), charge counter, estimated capacity, battery health and technology, network throughput | The app (local) | Normally no. If linked-device sync is enabled, only the latest battery level, charging state, temperature, and update time are uploaded. |
| Linked-device data | Anonymous Firebase user ID, group membership, device name and model, FCM token, premium-status flag, last-seen time, latest synced battery reading, and remote-alarm configuration | Firebase Authentication, Cloud Firestore, Cloud Functions & Cloud Messaging (Google) | Yes — only when you enable linked-device sync |
| Companion Bluetooth battery | Name and battery level of accessories already paired with your device (optional feature) | The app (local) | No — stays on device |
| Smart plug configuration & credentials | Plug name, connection type, local IP address and port, the turn-on / turn-off web addresses you enter, and — for cloud-controlled plugs — the vendor API key and device identifier you provide | The app (local, stored in the app's private database) | Not to us. Commands go directly from your device to the plug on your Wi-Fi, to the web address you supplied, or to your plug vendor's cloud service — see §5. |
| Ad-blocker check signals | Whether your Private DNS hostname or HTTP proxy matches a known ad-blocking resolver, and whether one of a short list of ad-blocking apps is installed | The app (local) | No — evaluated on your device; the result is not sent to us or to anyone else (see §7) |
| Alarms, settings & preferences | Thresholds, alarm sound and volume, vibration patterns, theme, language, schedules | The app (local) | No — stays on device |
| Custom alarm sound | An audio file you pick from your device to use as an alarm tone | The app (local) | No — used on device only |
| Purchase & entitlement data | Product identifier and the Google Play purchase token for a subscription, used to verify the purchase and grant your entitlement | Google Play Billing; our Firebase Cloud Functions backend | Yes — see §8 |
| Analytics | Pseudonymous app-instance identifier, screens viewed, and product events such as onboarding completed, alarm created / fired / dismissed, ad shown, premium screen viewed; plus theme and ads-enabled properties | Firebase Analytics (Google) | Yes — see §9 |
| Diagnostics & crash logs | Crash stack traces, app version, device model, OS version | Firebase Crashlytics (Google) | Yes |
| Advertising identifiers | Google Advertising ID (AD_ID) and limited technical signals used to serve and measure ads | AppLovin MAX & mediation partners | Yes |
We do not knowingly collect precise location, contacts, photos, messages, call logs, microphone, or camera data. Where the app uses the usage-access permission, it is only to estimate on-device battery-usage statistics; Ampere Alarm does not read the contents of your other apps.
5. Smart Plugs & Your Local Network
The optional smart plug feature lets an alarm switch a Wi-Fi plug — most commonly to cut power to a charger when your battery reaches a threshold. You add plugs yourself; the App never contacts anything on your network until you do.
Three kinds of plug are supported, and each sends data to a different place:
- TP-Link Kasa (local). When you tap "Scan network", the App sends a discovery message to your local Wi-Fi network and lists the Kasa plugs that answer, along with their name and IP address. Switch commands then travel directly from your device to the plug over your own network. Nothing about these plugs is sent to SoftPlex or to TP-Link by the App.
- Webhook (HTTP). You supply a turn-on and a turn-off web address, and the App requests them when the alarm fires. Those addresses — and whatever the service behind them does with the request — are entirely under your control and are not chosen or operated by us. If you point a webhook at a third-party service, that service's own privacy policy applies to the request.
- Govee (cloud). If you pair a Govee device, you provide a Govee API key and the App sends it, together with the device identifier, to Govee's public API (
openapi.api.govee.com) to list your devices, read a plug's state, and switch it. This transfer goes from your device to Govee — it does not pass through SoftPlex — and is governed by Govee's own terms and privacy policy.
Plug names, connection details, webhook addresses, and any API key you enter are stored in the App's private, sandboxed database on your device. They are not uploaded to SoftPlex and are not included in linked-device sync. Removing a plug in the App deletes its stored configuration and credentials from your device.
The number of plugs you can pair is limited on the free version; see our Terms & Conditions.
6. How We Use Information
- To provide core functionality — monitoring battery level and temperature, firing the alarms you set, and powering the live readouts, statistics, and home-screen widgets.
- To support optional on-device features — showing the battery level of your paired Bluetooth accessories and measuring your battery's real capacity.
- To provide linked-device sync when enabled — pairing devices, showing their latest battery and temperature status, delivering refresh requests, and creating and delivering remote battery or temperature alarms.
- To switch smart plugs you have paired — sending on/off commands when an alarm with a plug action fires, and checking whether a plug is reachable.
- To verify purchases and unlock what you paid for — confirming a Premium subscription or ad-removal purchase and applying the entitlement.
- To understand how the app is used and keep it stable — aggregate product analytics and crash reports help us prioritise work and fix bugs.
- To display advertising — for users on the free version, to support ongoing development (see §7).
- To send alarm and service notifications — where you have permitted notifications.
We do not use your information for unsolicited marketing, and we do not sell personal information.
7. Advertising, Consent & Ad-Blocker Detection
The free version of Ampere Alarm displays advertising through AppLovin MAX, which mediates ads from partner ad networks. These networks may use your device's advertising identifier and limited technical signals to serve and measure ads, including personalized ads where permitted.
If you are in a region that requires it (such as the European Economic Area, the United Kingdom, or Switzerland), the app presents a consent request on first launch via AppLovin's consent-management platform. You can grant or refuse consent for personalized advertising, and you can revisit your choice later from the app's settings.
Ampere Alarm offers paid options that remove advertising — a one-time ad-removal purchase and the Ampere Premium subscription. These are described in §8 and in our Terms & Conditions. You can also limit ad tracking at any time through your device's settings (Settings → Privacy → Ads) to reset or delete your advertising ID.
Ad-blocker detection
Because the free version is funded by advertising, the App performs a check for ad blocking. The check runs entirely on your device and looks at three things:
- whether your system Private DNS hostname is one of a small number of resolvers whose sole purpose is ad blocking;
- whether an HTTP proxy is configured that matches the same short list; and
- whether one of a short, fixed list of well-known ad-blocking applications is installed on your device. Android requires apps to declare in advance which other packages they may ask about, and Ampere Alarm declares only that list — it cannot see, and does not request, an inventory of the other apps you have installed.
The outcome is a simple yes/no flag held on your device. We do not transmit it, log it to analytics, or share it with any third party, and the App does not inspect your browsing, your DNS queries, or your network traffic. Where the check finds active ad blocking, certain optional features may be unavailable until it is switched off for Ampere Alarm or you upgrade — see the Terms & Conditions. If you have Premium, or if advertising is switched off for other reasons, the check has no effect.
8. Purchases & Entitlement Verification
Purchases are processed by Google Play Billing. Google does not share your full payment details with us — we receive confirmation that a purchase occurred, the product identifier, and a Google Play purchase token.
For the Ampere Premium subscription, the App sends that product identifier and purchase token to our Firebase Cloud Functions backend, which verifies it against the Google Play Developer API and records your entitlement against your anonymous Firebase user ID. This server-side check exists so that entitlement-dependent limits can be applied — for example, raising the number of devices allowed in a linked group. No name, email address, or payment instrument is transmitted in this process.
The one-time ad-removal purchase is verified and applied on your device only; no purchase data is sent to our backend for it.
Your Premium status may also be stored as a flag alongside your linked-device record, so that other devices in your group can reflect the features available to you.
9. Analytics & Diagnostics
Ampere Alarm uses Firebase Analytics to understand how the app is used in aggregate, and Firebase Crashlytics to detect and fix crashes. It also uses Firebase Remote Config to enable, disable, and tune features without shipping an update.
Analytics events are limited to product usage — for example: onboarding started and completed; an alarm created, edited, deleted, toggled, fired, or dismissed; a companion device viewed; a vibration pattern saved; a setting changed; the premium screen viewed or a purchase started; and an ad shown or a reward granted. Along with these we record two properties: your selected theme mode and whether ads are enabled. Firebase Analytics also collects standard technical information such as a pseudonymous app-instance identifier, device model, operating-system version, app version, and coarse (country-level) region.
These events are not tied to your name or account — the App has no account of its own — and we do not use them to build advertising profiles. Clearing the app's data or uninstalling the App resets the app-instance identifier.
Crashlytics reports contain the technical state of the app at the moment of a crash: a stack trace, app version, device model, and OS version. They are not used for any purpose other than diagnosing faults.
10. Third-Party Services
Ampere Alarm relies on the following third-party services, each governed by its own privacy policy:
- Google Firebase Authentication, Cloud Firestore, Cloud Functions & Cloud Messaging (optional linked-device sign-in, storage, pairing, synchronization, push delivery, and subscription verification) — firebase.google.com/support/privacy
- Google Firebase Analytics, Crashlytics & Remote Config (product analytics, crash reporting, feature configuration) — firebase.google.com/support/privacy
- AppLovin MAX (ad mediation) — applovin.com/privacy
- Google AdMob (mediated ad network) — policies.google.com/privacy
- Meta Audience Network, Unity Ads, Liftoff/Vungle, and Pangle (ByteDance) — mediated ad networks, each with its own privacy policy.
- Google Play Billing (Premium subscription and ad-removal purchase) — handled by Google; we do not receive your full payment details.
- Govee — only if you choose to pair a Govee smart plug, in which case your API key and device commands are sent from your device to Govee's API under Govee's own privacy policy (see §5).
- Any web service you configure as a smart-plug webhook — chosen and controlled by you, and governed by that service's own policy (see §5).
We do not control how these third parties use information collected directly by their SDKs. We encourage you to review their respective policies.
11. Android Permissions
Ampere Alarm requests only the permissions needed for its features:
| Permission | Why it is used |
|---|---|
FOREGROUND_SERVICE, FOREGROUND_SERVICE_SPECIAL_USE | Running the always-on battery and temperature monitor that powers your alarms, with a persistent status notification. |
POST_NOTIFICATIONS | Showing alarm alerts and the ongoing monitoring notification. |
USE_FULL_SCREEN_INTENT | Showing a firing alarm full-screen, including over the lock screen, so you don't miss it. |
BLUETOOTH_CONNECT (and legacy BLUETOOTH/BLUETOOTH_ADMIN on Android 11 and below) | Reading the battery level of accessories already paired with your device (optional companion-device feature). |
PACKAGE_USAGE_STATS | Optional — estimating battery-usage and screen-on statistics on-device. Granted manually in system settings. |
VIBRATE | Playing vibration patterns when an alarm fires. |
RECEIVE_BOOT_COMPLETED | Resuming battery monitoring and scheduled alarms after the device restarts. |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Optional — keeping monitoring and alarms reliable on aggressive OEM battery managers. |
AD_ID | Access to the Google Advertising ID for serving and measuring ads (free version). |
INTERNET, network access | Delivering ads, sending analytics and crash reports, fetching remote configuration, providing optional linked-device pairing, synchronization, remote alarms and push messages, and — on your local Wi-Fi — discovering and switching smart plugs you have paired. |
Package visibility (<queries>) | Not a runtime permission and never prompted: the App declares a short, fixed list of well-known ad-blocking apps so it can tell whether one of them is installed (§7). It does not grant visibility of any other installed app. |
12. Legal Basis for Processing (GDPR)
If you are located in the European Economic Area or the United Kingdom, our legal bases are:
- Performance of a contract / legitimate interests — providing the core battery and temperature monitoring you requested, keeping the app stable and secure, verifying purchases so you receive what you paid for, and protecting the advertising that funds the free version.
- Your request to use an optional feature — processing linked-device data when you choose to pair devices and use synchronization or remote alarms, and contacting the smart plugs or webhooks you choose to add. You can stop sharing a device's current reading by unlinking that device, and stop plug communication by removing the plug.
- Consent — for personalized advertising, and, where required in your jurisdiction, for analytics. You may withdraw consent at any time (see §7 and §14).
- Legal obligation — where processing is required to comply with applicable law.
13. Data Retention
Battery samples stored on your device are kept for a rolling window of approximately 30 days and then automatically deleted; companion-device readings are pruned on a similar basis. Other local data (alarms, favorites, custom sounds and vibration patterns, smart-plug configuration and credentials, settings) remains on your device until you delete it, clear the app's data, or uninstall the app.
For linked-device sync, Cloud Firestore keeps the latest synced battery reading and device metadata until they are overwritten or the device is unlinked. Remote-alarm configurations remain until deleted in the App. Short-lived pairing codes expire after approximately five minutes. Purchase-verification records are kept for the life of the entitlement and for as long as needed to handle billing disputes. Firebase may retain authentication, operational, backup, and security records according to Google's retention practices. Contact us at support@softplex.io if you need help deleting linked-device information that remains associated with an anonymous installation.
Analytics data is retained by Firebase Analytics for the retention period configured in our Firebase project, after which event-level data is deleted. Crash data retained by Firebase Crashlytics is kept according to Google's default retention periods. Advertising data is retained by the respective ad networks per their policies.
14. Your Rights & Choices
Depending on your jurisdiction (GDPR, PIPEDA, APPI, and similar laws), you may have the right to access, correct, delete, restrict, or object to the processing of your personal information, and to data portability. You can exercise the following controls directly:
- Reset or delete your advertising ID via your device's Settings → Privacy → Ads.
- Withdraw advertising consent from within the app's settings.
- Revoke the Bluetooth or usage-access permissions at any time in system settings; the related optional features simply stop.
- Stop linked-device sharing by unlinking a device; this removes that device's linked record from the group. Delete remote alarms separately in the App.
- Remove a smart plug in the App; this deletes its stored address, webhook addresses, and any API key from your device and stops all communication with it.
- Remove all on-device data by clearing the app's data or uninstalling it. This also resets the analytics app-instance identifier.
- Disable notifications via system settings.
To make a formal request regarding personal information held by us, contact support@softplex.io. We will respond within the timeframes required by applicable law.
15. Children's Privacy
Ampere Alarm is a general-utility tool intended for a general audience and is not directed to children under the age of 13 (or the equivalent minimum age in your jurisdiction). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us so we can take appropriate action.
16. Security
We take reasonable technical and organizational measures to protect information. App data on your device — including smart-plug addresses, webhook addresses, and any vendor API key you enter — is held in the app's private, sandboxed storage, which other apps cannot read on a non-rooted device. Linked-device access uses anonymous Firebase Authentication and Firestore security rules that restrict group data to authenticated members; each device may update only its own device record. Network communications with Firebase and our other third-party services use industry-standard encryption in transit (TLS).
Communication with local smart plugs is a property of the plug's own protocol rather than something the App can strengthen: TP-Link's local Kasa protocol is obfuscated rather than encrypted, so treat it as you would any other device on your home network. Requests to a webhook you configure use whatever protection that address provides — we recommend an https address.
No method of transmission or storage is completely secure, and we cannot guarantee absolute security.
17. International Data Transfers
The third-party services we use (Google and the ad networks listed in §10, and Govee if you pair a Govee plug) may process data on servers located outside your country, including in the United States. Where required, these transfers rely on appropriate safeguards such as Standard Contractual Clauses.
18. Changes to This Policy
We may update this Privacy Policy from time to time to reflect changes in the app, the law, or our practices. When we make material changes, we will update the "Last updated" date at the top of this page and, where appropriate, provide notice within the app. Continued use of Ampere Alarm after changes take effect constitutes acceptance of the revised policy.
19. Contact Us
If you have questions, concerns, or requests regarding this Privacy Policy or your personal information, contact us at:
SoftPlex Inc.
Halifax, Nova Scotia, Canada
Email: support@softplex.io