Announcing MQTT/Android bridging app: Zanzito. Beta testers wanted!

So it doesn’t crash… it’s simply ignoring the call… This is the third weird behaviour we find in Xiami phones… In any case, I’m changing that bit of code for another problem, we’ll see if in the next release this problem will be fixed too, unfortunately I do not posses a Xiami phone to test it on.

It also ignores calls for custom topic subscription if message include payload.

Looking forward for new release.

I do not believe the issue is caused by it being a Xiaomi phone by itself, more the MIUI software on it.
The software and ROM is available fot more brands, see:
http://en.miui.com/download.html

Maybe you own a spare or old phone which is compatible, for testing purposes?

It worked for me:

If you are using Miui, go to Settings > Permissions > Autostart and add zanzito into the list

I don’t have problems with launching and keeping app running. The problem is that MIUI skips alarm and subscriptions to custom topics with payload

Hi all,
a new version on Zanzito (0.9.8b) is now available on the Play store. What’s new:

  • Added continuous Voice recognition (EXPERIMENTAL);
  • Added Text to speech;
  • Added payload parsing from vocal command;
  • Added placeholder %devicename% in custom topics;
  • Bug fixing;

Many many thanks to @masterkenobi for all his rich insights and extensive tests :slight_smile:

If you want to experiment with continuous voice recognition (keyword spotting) please read the manual first: there are a few things to be considered :wink:

EDIT: if you are using the custom notifier component, please download and install it again, now it supports the new “say” functionality (TTS)

gl

2 Likes

Can the app be launched on AndroidTV? If not, is there any such plans? Would the application be able to pass the name of the current foreground application?

Hi, I don’t have any current plan on porting Zanzito to Android TV, maybe in the future;
About your second request, detecting the current foreground app is doable, may I ask what would you use it for?

in the link is the new file?

Yes, it’s already the updated version.

My second question is related to the first one. I am looking for a way to monitor the activity of the AndroidTV box (watching Netflix, YouTube, games, etc). As I will have some time I will check that Zanzito works on AndroidTV (some apps not adapted to AndroidTV work).

1 Like

MrMep very cool stuff with the voice recognition and TTS. Haven’t tested it yet but nice features!

So now Tasker stuff :smiley: or like “proximity or vibration or tilting” tieing to MQTT publish :D.

1 Like

Installed and tested new version. Issue still exists. Posts to alarm/play topic or custom topic subscriptions with pay load ignored.

Early this week I decided to make the switch from OwnTracks and take Zanzito for a spin. I gotta say, I love the OwnTracks emulations simply for the fact that I didn’t need to change anything within HA. I just set my IDs to mirror what I had setup for OwnTracks and I was away. Great work so far!

Here is one possible bug I came across.

Under the MQTT connection settings there is the option for sending regular heartbeat updates and a field to specify the interval. It looks like even if I disable heartbeat, Zanzito was still sending heartbeats at the default 90s interval. So I then went and re-enabled heartbeat, set the interval to 900s, and then disabled heartbeat again. However, when I watch the MQTT feed I am still getting an update every 90s. I now have heartbeat enabled with a 900s interval and will see what happens.

Now for the inevitable; suggestions.

Allow the user to set notification priority (min, low, etc). This should allow the notification to stay in the notification drawer but not show the icon during normal phone use.

“Report Location” button when you expand notification. Just like the “Save Location” button, except it would manually publish your current location without having to actually go into the app. If you really wanted to get crazy, user definable buttons for the notification(s).

Remote Command ability. I’m sure there are quite a few use cases for this but I am specifically thinking about the ability to request a location update from the app itself. This is something Owntracks supposedly supported, however I have NEVER been able to get that to work.

Unfortunately I am a developers worst nightmare, an idea person. I come up with ideas without having the slightest clue or ability to make them happen. So if any of these are off base or pie-in-the-sky, feel free to tell me to pound sand. Like I said, I’m real happy with the app and have more-or-less made the decision to move on from OwnTracks for this.

1 Like

It’s weird, I don’t get this. For any preference change to take place, you need to go back to the main screen, so that the service is restarted with the new settings: maybe this is the problem?

Unfortunately Android doesn’t come with a built-in priority system or, to say it better, you can set a priority but it’s up to the system to decide what that means… It’s not unusual for Android to behave that way: a lot of stuff is obscurely managed by the system :wink:

It was there in the first releases, then Vocal command took its place: we only have three slots (and on some devices you only get two). A custom notification view is on its way, so that could be something I might be able to add, at that point.[quote=“oembob, post:320, topic:13885”]
Remote Command ability.
[/quote]

You mean something like “Where are you?” . Can you explain your use for such a feature? I had thought of this, but then it looked to me that we could well wait for the next heartbeat, unless you have something else in mind…[quote=“oembob, post:320, topic:13885”]
I am a developers worst nightmare, an idea person
[/quote]

Not my nightmare at all! I have been helped a lot by people like you: almost all new Zanzito’s features since the beginning of the beta testing are coming from suggestions like yours :wink:

Let me know about the heartbeat…

It’s nice feature. I currently use it for tracking my car (idia was taken from Bruh video). I have Automate (Tasker equivalent) installed on my phone. When I get in the car my phone connects to car bluetooth audio. This triggers Automate to change “My status” input_select in hass. Changing status of input_select triggers automations. One ping OwnTracks every 5 minutes with location update while I’m driving. And another pings Owntracks for location update when I finished my ride and assign this coordinates to my car (publish mqtt message in owntracks format for my car).

1 Like

Well it looks like the heartbeat issue may have had something to do with my MQTT instance. I had to restart my server for an unrelated issue and it now seems to be respecting my heartbeat settings. Maybe something with the lastprefs topic but I’m not sure.

For the notification priority, I know the system does it’s own black-magic in the background but I think there is a way around it. I have two examples on my phone right now that are able to keep their icon out of the status bar but they remain in the notification shade itself. Tasker seems to accomplish this by giving you the option to use a blank or clear icon in the status bar. I’m not sure how Weather Timeline does it, maybe the same, but in their settings they have an option to “Hide Notification in status bar”. Both of these apps remain running all the time, show up in the notification shade when you pull down, and do not appear in the status bar. It’s not really a huge deal. I’m already stuck with the constant Wifi Calling icon so my desire for a blank status bar is already out the window haha.

Thanks for the update to the “Report Location” button. I look forward to that possibly being added back in a future release.

My desire for the remote command ability comes my desire to maximize battery life on our phones. Ideally I would like to disable the heartbeat entirely or set the interval to relatively high amount of time (think hours+) and have Home-Assistant manage how often location updates are sent. This would allow me to have less frequent updates when a device is in a location/zone that I can assume will not need updates every 5 to 15 minutes (home, work, parents, etc). I could also use the other device tracking options like the router based or nmap to configure update periods (like disable update requests when my router reports the device on my home network and/or charging). Then when the device is not in a known zone or area increase the frequency of updates. I could also set an automation condition on it to reduce the update interval if the battery level is below X%. I’m also sure there are other use cases that I haven’t come up with yet.

That makes sense. Wouldn’t make it even more sense to have an heartbeat on demand, so that everything that is set to be reported gets reported? what do you think?

Take into account the fact that at the moment, if the service is running, all the selected sensors are active (thus consuming battery) as well as gps tracking and all the rest, and the connection has to be active in order to receive push notifications, so I don’t think the advantage in terms of battery life
would be that important. It would be possible to have an “energy saving mode”, where all the tracking is active only at specific interval, but that would require a major revision of the app. Added to the list, thogh :wink:

This is possible right away, with minor modifications. Added to the list :wink:

1 Like

I clicked start/reports a topic edit, click on TTS Read message

Now when the topic changes state I should hear something? (I hear no)

Is TTS enabled under Preferences->Advanced -Voice?
Is there a TTS engine installed and configured on your phone? (see Android settings)
Is the volume up? :wink:

gl