Presence Publisher
org.ostrya.presencepublisher
Zapstore _@zapstore.dev Regularly publish to an MQTT topic
Republished from GitHub / F-Droid by the Zapstore main account.
This free open-source app regularly publishes to a configurable MQTT topic whenever connected to a given Wi-Fi network or in proximity to a Bluetooth beacon. It can be used to integrate the presence of your phone in home automation. The app uses the AndroidX WorkManager library, so notifications are sent even if the phone is in stand-by. In addition to regularly scheduled checks, the app also reacts to changes in the network connection. The MQTT client supports anonymous and username / password authentication as well as client certificate authentication. For more details on how to configure certificate-based authentication, please have a look at [https://github.com/ostrya/PresencePublisher/blob/main/README.md](https://github.com/ostrya/PresencePublisher/blob/main/README.md). Note that the data you choose to publish is sent only to the server of your choice. The app does not send any data to me or any other third party. If you want to know more about how this app processes your location data, please have a look at the privacy policy at [https://ostrya.github.io/PresencePublisher/en/PRIVACY_POLICY.html](https://ostrya.github.io/PresencePublisher/en/PRIVACY_POLICY.html). **Permissions** • ACCESS_BACKGROUND_LOCATION: on Android 10+, necessary to retrieve name of connected Wi-Fi while running in background • ACCESS_FINE_LOCATION: necessary to discover beacons; on Android 9+, necessary to retrieve name of connected Wi-Fi • ACCESS_NETWORK_STATE: necessary to register network change listener • ACCESS_WIFI_STATE: necessary to retrieve SSID of connected Wi-Fi • BLUETOOTH: necessary up to Android 11 to communicate with beacons • BLUETOOTH_ADMIN: necessary up to Android 11 to discover beacons • BLUETOOTH_CONNECT: on Android 12+, necessary to read beacon names • BLUETOOTH_SCAN: on Android 12+, necessary to discover beacons • FOREGROUND_SERVICE: on Android 9+, necessary to run the app reliably • FOREGROUND_SERVICE_DATA_SYNC: on Android 14+, necessary to send MQTT messages • INTERNET: only necessary if your MQTT server is not running locally • POST_NOTIFICATIONS: on Android 13+, necessary to create notifications • RECEIVE_BOOT_COMPLETED: necessary to start service on start-up • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: on Android 6+, necessary to request disabling battery optimization
First release: Nov 25, 2025, 2 total releases.
Most recent release: Oct 31, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Oct 31, 2026 2.8.1bugfix to v2.8.0 - turns out Android does not allow DNS resolution in the main thread
- Nov 25, 2025 2.7.0The main reason for this release was a bug I encountered in my own setup, where I have multiple Wi-Fi networks all connected to the same home network. I sometimes saw disconnect events and then the devices reported being disconnected for hours, even though it was clearly connected. It took some time (and debug logs) to figure out that a new Android feature was to blame. More recent Android devices can be connected to several Wi-Fi networks at the same time. What happened was that one network got connected, the previous network got disconnected, and since I only tracked "connected" or "not connected", I got stuck on being disconnected. The solution is that devices with SDK 31+ (i.e. Android 12) now track all connected networks at once. This leads to a :warning: breaking change :warning: : the `connectedWifi` message now returns a list instead of a string. Otherwise only minor changes: * update to target SDK 36 * support for insets in the UI * (expected) better logging performance by formatting strings only if the log level is active
More…
* changes in message context providers to avoid SecurityException due to missing permissions