REST API to control the app

I’m using Imperihome at the moment but hey seem to have disapeared from the face of the earth…
Home Remote seems like the best option for me in terms of compatibility.
What I am using a lot is the REST API of the app that they have to activate the tablets and perform certain actions like the following:

  • Wake up the tablet
  • Reset the sleep timer
  • Go to sleep
  • Activate a certain page in the app
  • Open a camera stream
  • Play a sound (like the doorbell)
  • tts

Any chance you could add this? :slight_smile:

These 2 items will be possible with the Designer in the 3.10.0 release. I’m still working on finishing that up. I hope to have it published sometime today.

1 Like

Having a REST API to make the app respond to external webhooks would be huge. :+1:

My first goal would be to have a Call Display Popup for phonecalls.

So, how does one access this new feature?
I’m assuming you mean 3.10.1?

It’s not really a REST API but you can now perform automated page navigation. With Scenes you can monitor a certain condition & when that evaluates to True, it’ll execute the Actions of that Scene. An example use-case would be monitoring a doorbell & when it is pressed, open the doorbell camera page.

More details about Scenes & page navigation are available in the posts below.

Oh I see, cool but unfortunately I need the REST API. :slight_smile:
I have my camera system that triggers tablets when motion is detected, not something I can check with a scene in home remote to my knowledge.
Still, nice work on that.

Are you saying I can monitor a Doorbird doorbell? I don’t see this in the supported devices.

Why don’t you just add your motion sensor to the Home Remote?

If that’s accessible then that’s all you need. I mentioned a doorbell for that earlier use-case but a motion sensor can just as easily activate a Scene. I don’t know what type of home automation controller you have, but the status of motion sensors is supported for most systems.

I’m actually working on a Doorbird integration this week. The camera streams are already supported by the IP Camera device. What this integration will add is motion sensor & doorbell pressed events.

Motion detection by the camera system (Blue Iris), not a motion sensor.
Yes, if have rooms with motion sensors, but not outside.
So I hope you still consider adding the REST API. :slight_smile:

So “doorbell pressed events” that means direct action when the doorbell is pressed or only the history?
The motion sensor on the Doorbird is terrible in my situation so I can’t use that either.
I don’t know how you are integrating Doorbird but I know there is a limit of devices you can link with it, and it’s not that many. I’m working with 6 tablets and I think the limit is 5, so that’s not even with the smartphones included. :frowning:

EDIT: oh and none of my motion sensors are showing up in Home remote so, there’s that :frowning:
Fibaro home center 3 with Aeotec & Fibaro motion sensors, I haven’t looked into it yet though.

Direct action. When monitoring doorbell & motionsensor, the docs say “There are up to 8 concurrent Streams allowed”. So 6 of your tablets could listen for changes.

I’m not sure why your Fibaro motion sensors aren’t showing up. Can you please email me the JSON from the request below?
http://IPADDRESS/api/devices

Replace IPADDRESS with the IP of your HC3 controller. My email is support@thehomeremote.com

Is there a way to trigger a Scene by a webhook call generated by an external system?

All I can think of is using a separate server, where the webhook modifies a flag, and that flag is continuously monitored by an HR device plugin (generating lots of traffic)

Why not use MQTT or a WebSocket?

You aren’t limited to only HTTP REST calls in a plugin. You can use a protocol that doesn’t require polling.

Ha! will need to expand my knowledge for that. Have an example project using a websocket that I could study?
Thanks!

Yes. There’s a simple Echo example in the docs you can study.

1 Like

I’m trying to figure out how MQTT works but it’s very difficult to find explanations or examples for me.
Help links don’t actually give help about the topic…
Any scripting for that matter, just a reference page of all the things you can use, but not how to use them.
Unless I’m an idiot and not finding it?
So I searched around and found the Homie MQTT plugin.
After some trial and error I created a plugin which receives the MQTT messages.
So now I want to use OpenDeviceDetails, but as was the case with MQTT, I can’t find anything about it how to use it except in a forum thread about a button…
Can you link me the explanation on how to use this function / method? (or any function / method really)

thanks!

You won’t be able to call OpenDeviceDetails directly in the Plugin. You will need to have your Plugin update a Device object & then have that Device object trigger a Scene. Take a look at the Scene in this DoorBird example. Your Scene will look very similar to that.

As for the page navigation functions, I posted a write up here on how they work & how they differ from one another.

You don’t necessarily have to use a Plugin either for MQTT. There is this other MQTT Client you can also use. The main benefit to the plugin is that you can automate your device object generation & use the XAML templating features. If you’ve only got a few topics you are monitoring this could be an easier option for you.
https://groups.google.com/g/thehomeremote/c/3M9XLKJ7kv8/m/ItyIvOTdEQAJ

What you need to focus on first is verify the Home Remote can read your MQTT device. Configure a Label on a simple XAML page that shows the current value of your MQTT topic. Make sure it shows the value you expect.

I don’t understand why this must be a scene?
From what I can tell this seems to require its own tile & details xaml file when the device I want to control already has one.
I’m sorry but this is all too vague for me.

I already saw your MQTT example but it’s for switches, not just listening and doing something.
I just want something to happen when a certain payload has been sent to a specific topic.
I tried using it but I could not get it to do what I want it to do.
When I added the MQTT “device” I set the topic and configured the ValueChanged script but nothing happened.
Not even the console.log on the first line when something was posted on the topic.
But I don’t even know if I’m correctly configuring the topic / subscription, the example gives me more questions that answers.
Clicking help gives me no explanation of what I’m witnessing or how it actually should be configured.

The page navigation page you link is only informing me of something that exists I could use but not how I can use it. I expected I could change the homey plugin (since the MQTT device didn’t do anything) to do what I want to do.
The plugin does everything except the command you link, so back to square one for me.

Don’t get me wrong, I know it’s all possible with your software and much more.
I’m just having a hard time trying to find documentation and examples of what I’m trying to do.
All the video’s that are linked are about remotes, but I don’t want (tv / home theater /…) remotes, I want simple wall tablets.

The plugin show’s me that the topic can be subscribed to and that the payload is correctly received.
Ideally I would add an MQTT device source, subscribe to the payload and do something simple when that payload is received with the ValueChanged script.
Is this at all possible?
Or do I really have to jump through hoops like custom devices, pages and screens to control a device with one command that’s already there?

Thank you for your patience.

The Tile is optional. That’s only necessary if you want to manually trigger the scene. You can leave that blank for an automated scene.

+1 for a HTTP API.

Imperihome is easy to send HTTP commands to from another system.

I have my Vera controller send HTTP commands to the Imperihome tablets to perform certain actions, like having Imperihome nativigate to a certain dashboard page or bring up an IP cameras image.

Vera is my controller. I wouldn’t really want Home Remote to be doing any monitoring or logic, can it even do that when the Android tablet is asleep?

How does this work? Is ImperiHome running a webserver on the tablet? Do you give Vera the IP address of your Android tablet?

My guess is that ImperiHome managed this in the cloud. The Home Remote does not host or run anything in the cloud. It’s only running when the app is open on your device.

No its not cloud.

Imperihome app you can turn on a local HTTP API.

All my Imperihome tablets I have set a static LAN IP address for them.

Vera sends HTTP commands directly to the Imperihome tablets on my LAN.