This Privacy Policy explains how the Ecowitt application ("the App") collects, uses, stores, shares, and protects your personal information. The App is used to provision, bind, and view Ecowitt IoT weather stations, sensors, and gateway devices ("your devices").
This Policy applies to users of the App worldwide. Where this Policy conflicts with mandatory provisions of applicable law, the applicable law prevails.
Nothing in this Policy excludes or limits any statutory right you may have. Please read this Policy in full before using the App. For processing based on consent — such as push notifications or the reading of advertising identifiers — you may decline; declining affects only that specific feature and does not prevent you from using core functionality such as provisioning and viewing devices.
The controller of your personal data is:
The App is built on the DCloud uni-app framework and integrates third-party push services to deliver notifications. The following information is collected automatically in order to deliver push messages:
| Category | Fields | Purpose |
|---|---|---|
| Device identifiers | Android: Android ID, OAID, GAID (where the system permits, app functionality only, not for tracking), CID; iOS: IDFV, APNs device token, CID, IDFA (where the system permits, app functionality only, not for tracking) | Generate a unique push target so messages reach the correct device |
| Network information | IP address, network type, carrier | Determine connectivity and select an available push channel |
| Device information | Platform (Android / iOS), OS version, device model, brand | Compatibility and troubleshooting |
| Usage and diagnostics | App launch count, crash logs | Identify defects and improve stability |
On iOS devices, the push service SDK may read the advertising identifier (IDFA); on Android devices, it may read the Google Advertising ID (GAID). They are used solely to generate a device identifier and to de-duplicate and measure the reachability of push messages. We do not use them for tracking across apps or websites owned by other companies, do not use them for personalised advertising, do not share them with advertising networks or data brokers, and do not use them to infer your interests or build a profile of you.
iOS: the App does not initiate the App Tracking Transparency request. On iOS 14.5 and later, without that authorisation the system returns only an all-zero value, so we do not obtain a usable IDFA; the push identifier is determined by IDFV and the APNs device token, and functionality is unaffected.
Android: you can reset or delete your advertising ID, or opt out of personalised ads, under Settings → Google → Ads. Push delivery still functions through the CID.
Each permission below is requested on demand when you use the corresponding feature. Declining does not prevent the App from launching; only that feature becomes unavailable. You can change these at any time in your system settings.
Android
| Permission | Purpose | If declined |
|---|---|---|
| Location (ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION) | Read the Wi-Fi list to provision a device; show the weather for the device's location | Enter the network name and location manually |
| Nearby Wi-Fi Devices (NEARBY_WIFI_DEVICES, Android 13+) | Read the list of available Wi-Fi networks to select the one to join | Enter the network name manually |
| Wi-Fi state (ACCESS_WIFI_STATE / CHANGE_WIFI_STATE) | Read and switch the current Wi-Fi connection during provisioning | Provisioning cannot be completed in the App |
| Bluetooth (BLUETOOTH / BLUETOOTH_ADMIN, Android 11 and below) | Connect to a device awaiting provisioning over Bluetooth | Use Wi-Fi or QR-code provisioning instead |
| Nearby devices (BLUETOOTH_SCAN / BLUETOOTH_CONNECT, Android 12+) | Discover and connect to a device awaiting provisioning | Use Wi-Fi or QR-code provisioning instead |
| Camera (CAMERA) | Scan the device QR code; take a profile photo | Enter device details manually |
| Flashlight (FLASHLIGHT) | Illuminate when scanning a QR code | The code may not scan in low light |
| Notifications (POST_NOTIFICATIONS) | Push device alerts and messages | No alert notifications; alerts remain visible in the App |
| Network state (ACCESS_NETWORK_STATE / CHANGE_NETWORK_STATE) | Determine connectivity and maintain the push channel | Notifications may be delayed |
| Vibration and wake lock (VIBRATE / WAKE_LOCK) | Alert cues and background sync | Alerts are less noticeable; sync may be delayed |
| Storage (READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE) | Export data files; save images | Cannot export or save files |
iOS
| Privacy string | Purpose | If declined |
|---|---|---|
| Location (While Using the App) NSLocationWhenInUseUsageDescription | Read Wi-Fi information to provision a device; show local weather | Enter the network name and location manually |
| Local Network NSLocalNetworkUsageDescription | Discover and connect to devices awaiting provisioning via local network broadcast; read data from the weather receiver | Devices on the local network cannot be discovered; this can be enabled under Settings → Privacy & Security → Local Network |
| Bluetooth NSBluetoothAlwaysUsageDescription | Connect to a device awaiting provisioning over Bluetooth | Use Wi-Fi or QR-code provisioning instead |
| Camera NSCameraUsageDescription | Scan the device QR code; take a profile photo | Enter device details manually |
| Photo Library read NSPhotoLibraryUsageDescription | Select a profile photo | Cannot upload a profile photo |
| Photo Library add NSPhotoLibraryAddUsageDescription | Save images or videos from the camera page | Cannot save to the photo library |
| Processing activity | Purpose |
|---|---|
| Account registration and login | Create and maintain your account |
| Push notifications | Deliver notifications you have enabled |
| Device identifier generation (including IDFA / GAID, where applicable) | Push de-duplication, reachability measurement, and security verification; never for tracking or advertising |
| Crash logging and stability analysis | Fix defects and improve usability |
| Account and system security, fraud prevention | Prevent unauthorised access and abuse |
| Responding to judicial or regulatory requests | Compliance with legal obligations |
We do not sell your personal information and we do not share it for cross-context behavioural advertising. We disclose personal information only to the processors listed below, in the minimum scope necessary, and require them to process it on our instructions and at a level of protection no lower than this Policy.
| Item | Details |
|---|---|
| SDK | GeTui Push Notification SDK (package: com.igexin) |
| Provider | GeTui / Daily Interaction Co., Ltd. (每日互动股份有限公司), Hangzhou, China |
| Role | Processor |
| Purpose | Delivering in-app messages and device alert notifications; generating and maintaining the push identifier |
| Method | Embedded as an SDK; it collects and transmits the data |
| Data collected | iOS: device platform, model, OS version, IDFV, APNs device token, IDFA (where the system permits, used only to generate a device identifier, not for tracking), IP address, carrier information (no location information) Android: device platform, model, OS version, Android ID, OAID, GAID (used only to generate a device identifier, not for tracking), IP address, carrier information (no Wi-Fi identifiers, no location information) |
| Android permissions | ACCESS_NETWORK_STATE, VIBRATE, WAKE_LOCK, POST_NOTIFICATIONS |
| Privacy policy | https://docs.getui.com/privacy/ |
| Item | Details |
|---|---|
| SDK | Zhuoxin ID SDK (package: com.zx) — integrated on Android only; not integrated on iOS |
| Role | Processor |
| Purpose | Provides device identifier generation and security verification for the push service above |
| Data collected | Device manufacturer, model, system information, OAID, network information |
| Privacy policy | https://docs.getui.com/privacy/ |
| Item | Details |
|---|---|
| Provider | DCloud (数字天堂(北京)网络技术有限公司), Beijing, China |
| Role | Processor |
| Purpose | App runtime framework and error reporting |
| Data collected | Device ID, crash logs, app launch data |
| Privacy policy | https://dcloud.io/license/appprivacy.html |
| Item | Details |
|---|---|
| Service | Firebase Cloud Messaging (FCM) |
| Provider | Google LLC / Google Ireland Limited |
| Role | Processor |
| Purpose | Delivering push notifications on devices with Google Mobile Services |
| Data collected | FCM registration token, instance ID, device platform and model, OS version, IP address, app package name and version |
| Privacy policy | https://firebase.google.com/support/privacy |
| Item | Details |
|---|---|
| Service | Apple Push Notification Service (APNs) |
| Provider | Apple Inc. / Apple Distribution International |
| Role | Processor |
| Purpose | Delivering push notifications on iOS devices |
| Data collected | Device push token, app package name and version, OS version |
| Privacy policy | https://www.apple.com/legal/privacy/ |
The App integrates two push channels. Our servers select one of them based on your device's network environment and region. A single message is never delivered through both channels.
| Platform | Google Mobile Services | Push channel used |
|---|---|---|
| Android (global, with GMS) | Yes | Firebase Cloud Messaging (FCM) |
| Android (without GMS) | No | GeTui proprietary channel + manufacturer push (Huawei, Xiaomi, OPPO, vivo, etc.) |
| iOS | — | Apple Push Notification Service (APNs) |
The web version and embedded pages of the App use cookies and local storage, and the client uses local storage to keep your login state and interface preferences. We distinguish them by purpose as follows:
| Category | Purpose | Consent required |
|---|---|---|
| Strictly necessary | Maintaining your login session, security checks, language and unit preferences | No (necessary to provide the service) |
| Functional | Remembering interface settings and preferences | Yes |
| Analytics | Visit and error statistics to improve usability | Yes |
| Advertising / cross-site tracking | Not used by the App | — |
For categories that require consent, we do not set or read the relevant cookies until we have obtained your explicit consent. You can select categories individually in the prompt shown on your first visit, and you can change or withdraw your choices at any time under "Privacy Settings" in the App. You may also clear or refuse cookies through your browser settings; refusing strictly necessary cookies may prevent login-dependent features from working.
a. We protect your information with transport encryption (TLS), encrypted credential storage, access isolation between devices and accounts, least-privilege access controls, and internal audits. Nonetheless, no method of transmission or storage over the internet is completely secure. Please keep your account credentials safe, and contact us immediately at support@ecowitt.com if you believe they have been compromised.
b. Breach notification: if a personal data breach occurs that is likely to result in a risk to your rights and freedoms, we will notify the competent supervisory authority within 72 hours of becoming aware of it (where required by applicable law), and where the risk is high we will notify you without undue delay, describing the nature of the breach, its likely consequences, the measures we have taken, and any steps you can take to protect yourself.
c. Our servers and processors maintain access logs and anomaly monitoring, and personal information is accessed only by authorised personnel who need it to perform their duties.
| Data type | Retention period |
|---|---|
| Account data (email, username, profile) | For the life of the account; deleted or anonymised within 30 days of account cancellation |
| Device binding data (MAC, serial number, model) | While the device is bound; deleted within 30 days of unbinding or account cancellation |
| Push identifiers (CID / FCM token) | Deleted after 90 days of inactivity |
| Crash logs and diagnostics | 90 days |
| Support and feedback records | 2 years from the last interaction |
| Information we are legally required to retain | For the period required by applicable law; deleted or anonymised afterwards |
When the retention period expires or the purpose of processing has been achieved, we delete or anonymise your personal information, except where mandatory retention is required by law.
Response times: you may submit requests relating to your personal information using the details in section 13. To protect your information, we may first need to verify your identity (usually by sending a verification link to your registered email address). We will respond within the period required by applicable law; where a request is complex, we may extend that period and will inform you of the reasons in advance.
You can request account deletion yourself under "Account Management → Delete Account" in the App, or by emailing support@ecowitt.com. Please unbind your devices first, or we will unbind them as part of the deletion process. We will complete the request within 30 days of receiving a valid request and will confirm the outcome to you.
After deletion we stop providing the service and delete or anonymise your personal information, except for what we are legally required to retain. Deletion means you will no longer be able to view your historical data, and it is irreversible.
If you only wish to remove a single device and its history, you can delete that device under "Device Settings". We will delete the corresponding data within 30 days; your account is unaffected.
The App is not designed for or directed at children. We do not knowingly collect personal information from children under the following ages:
If you are a parent or guardian and believe we have collected a child's personal information without your consent, please contact us at support@ecowitt.com and we will delete the information after verification.
We may update this Privacy Policy from time to time. When we do, we will revise the version number and last-updated date at the top of this page. If a change materially affects the purposes or means of processing or the categories of personal information processed, we will notify you in advance via an in-app pop-up or push notification and, where required by applicable law, seek your consent again. If you do not agree with the revised Policy, you may stop using the App and request deletion of your account.
If you believe our processing of your personal information infringes applicable law, we would prefer that you contact us first so that we have the opportunity to resolve the matter.
This Policy is governed by the laws of the People's Republic of China. That choice of law does not exclude or limit the protection afforded to you by mandatory consumer protection or data protection laws of your country of habitual residence. Any dispute arising from this Policy shall first be resolved through negotiation; failing that, either party may bring an action in a court of competent jurisdiction.
© 2026 FINE OFFSET ELECTRONICS Co., Ltd. All rights reserved.