My goal is a motion sensor that is controlled via a webhook. The following scenario: a camera sends a webhook, e.g. “Motion Detected” at HA. Here I have a motion sensor with which I can create further automation.
I have solved it so far that a webhook triggers automation directly and thus my switch, which is turned off after 5s.
Now I want to solve it a little more elegantly and simulate the movement switch using webhook. In principle, this will probably be a binary sensor. I just don’t know how to link it to a webhook.
How could I do that? I would be grateful for a few ideas.
A webhook url to an automation is a road…
With motionOS you can also do a command, so you can do a curl to change the state of something…
thank you for your quick reply. Do you have an example for motionOS. I haven’t found any examples here yet. I am an absolute beginner. The solution with the webhook to automation was the easiest for me. Not the most practical, however. Unfortunately, the camera only delivers a webhook. And with that I want to drive a motion sensor in HA.
I found a simple example here:
binary_sensor:
- platform: template
sensors:
movement:
device_class: motion
value_template: "{{ is_state('switch.movement', 'on') }}"
Here the question arises how do I link the value_template with the webhook?
What do you want todo when there is motion detected? Why do you want to turn on a binary sensor?
The sensor should also be linked to HomeKit. I have proceed this successful with other switches. My idea is to use the motion sensor for HomeKit and HA automation.
you could make a rest command to change a state of something like a binary_sensor
then fire that rest command with a webhook , untested code below
rest_command:
sensor1:
url: https://yourip:8123/api/states/binary_sensor.xxxx
method: POST
headers:
authorization: Bearer (yourtoken here)
content-type: 'application/json'
payload: '{"state":"on"}'
verify_ssl: false
- alias: 'webhook' ## https://hooks.nabu.casa/xxxxxx ##
trigger:
- platform: webhook
webhook_id: your_webhook_id
action:
- service: rest_command.sensor1
not sure I follow the use case, but have a look at this.
another possibility for a camera derived sensor is motioneye and a sensor via mqtt.
Yeah, so many roads… But setting up mqtt only for this is an overkill
Yes, MQTT should not be the problem. Mosquito server is already installed and in action.
Unfortunately I haven’t found a solution yet. As a beginner, I studied a lot of instructions and still haven’t found the right solution.
In principle, it should be possible to change the status of a switch using an external command.
I have already created a token for this. Now I try to send a command with the Postman app to change the status of a switch. So far without success.
As a test, I used GET to display the current errors. That’s working.
http://myurl:8123/api/error/all
How can I now send a POST to set the status of a switch?
using mqtt you could do something like this:
mosquitto_pub -h 192.168.1.100 -t cameras/frontdoor/motion -u youruser -P password -m ON
It triggers this sensor:
- platform: mqtt
name: "Frontdoor Motion"
state_topic: "cameras/frontdoor/motion"
device_class: motion
payload_on: "ON"
off_delay: 5
unique_id: frontdoor_motion
You want to change the state? Or you you want to turn on/off a switch? There is a big difference…
Now you are talking about a switch, before a binary sensor… That’s also a big difference…
If you want to turn on a switch (light for example) then you can just use a service
At the developer site I can change the state of the binary switch manually.
Now what I am trying to do is to change the state via api.
I now have a workaround that works. First I set up a mqtt binary switch with the motion property. Then an automation with the event webhook and action the mqtt binary switch. So I have one more step but it works very well.