Good to hear, will update later.
Hm, I actually only own the shutter motors, since the other products are so expensive, I also manage groups via Home Assistant, the Homepilot for me is just responsible for sending out the commands to the actual motors.
As for sensors, you might want to take a look at Rest Sensors. Keep in mind that those will only update 2-3x a minute (you can specify a different scan_interval though) so I don’t know how well that would work with things like door sensors or other stuff where you’d normally want immediate feedback.
I can take a look into your sensors if you want to, but I’ll need the JSON of each device.
Taking a look at what you’ve posted - does the timestamp value of your contact sensor only change when you open/close the door?
But even then, you wouldn’t catch a scenario where the door is opened for a few seconds and then closed again
covers:
terrassentuere: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Terrassentüre" # Change this too
position_template: "{{ states('sensor.Terrassentüre') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 1 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 1 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 1 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 1 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
wohnzimmer: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Wohnzimmer" # Change this too
position_template: "{{ states('sensor.Terrassentüre') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 2 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 2 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 2 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 2 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
esszimmer_rechts: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Essazimmer rechts" # Change this too
position_template: "{{ states('sensor.Essazimmer rechts') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 3 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 3 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 3 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 3 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
esszimmer_links: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Essazimmer links" # Change this too
position_template: "{{ states('sensor.Essazimmer links') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 4 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 4 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 4 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 4 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
please use the example in the first post again. The mistake is the sensor name, go into Developer Tools - States and start typing to find “terassen…”
You’ll see that the sensor name is most likely sensor.terassenture instead of sensor.Terassentüre.
I think that should do the trick.
I changed now the sensor name to the correct name like in the developer Tools, but still the same issue:
- platform: template
covers:
terrassentuere: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Terrassentüre" # Change this too
position_template: "{{ states('cover.terrassentuere') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 1 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 1 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 1 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 1 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
wohnzimmer: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Wohnzimmer" # Change this too
position_template: "{{ states('cover.wohnzimmer') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 2 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 2 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 2 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 2 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
esszimmer_rechts: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Essazimmer rechts" # Change this too
position_template: "{{ states('cover.esszimmer_rechts') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 3 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 3 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 3 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 3 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
esszimmer_links: # Change this to sth. that matches your setup
device_class: shutter
friendly_name: "Rolladen Essazimmer links" # Change this too
position_template: "{{ states('cover.esszimmer_links') }}" # make sure to use the correct sensor name here
open_cover:
- service: rest_command.belt_winder_up
data:
did: 4 # This is the Device ID also used in sensor.yaml
close_cover:
- service: rest_command.belt_winder_down
data:
did: 4 # This is the Device ID also used in sensor.yaml
stop_cover:
- service: rest_command.belt_winder_stop
data:
did: 4 # This is the Device ID also used in sensor.yaml
set_cover_position:
- service: rest_command.belt_winder_set_position
data_template:
did: 4 # This is the Device ID also used in sensor.yaml
position: "{{position}}"
Oh sorry, my mistakte. sensor.yaml was not included. But now I include it, reboot, and the sensor “sensor.rolladen_terrassentuere” was shown and I include it in the cover.yaml. But unfortunately same issue. The down button is still grayed out. The other buttons works good. Also the slider works (I can open and close the covers). Only the up arrow is with no function. Strange…
In my lovelace I use the following:
What’s the state of the sensor?
Go to dev tools - States, check the sensor, then move the cover to any other position, reload after 1 minute and check again
The state of the sensor.rolladen_terrassentuere is unknown. cover.terrassentuere is open.
The slider works between 0 (closed) - 100 (open). The cover.terrassentuere state is always open.
The controls are working, that’s good. However the reason the arrow is greyed out is that the sensor is misconfigured - having the state “unknown” indicates that there’s something wrong.
Check out the Logs (Configuration - Logs), there’s probably a related error.
The sensor is using the REST API to extract the position from the Homepilot every 20s.
The Data you’ve pasted indicates that the sensor.yaml example I put up in the first post should be working - take a look at the value_template: Every pair of [ ] is telling HA to take a look a into the nested data deep enough so we get the position.
Go to your homepilots setup and enter a description for each shutter. Then, go to the /devices/1,2,3,… and find out which one contains the description/name you’ve assigned (you can use CTRL+F to search)
The URL of the correct one should be the one you put into the sensor.yaml
Again, looking at the json-ish data you’ve posted, this should work.
Is this possible with password secured Home Pilot as well? If I use http://[Homepilot IP]/devices/1 in a signed in browser I get the result, but not in another not logged in browser. So I wonder how and if HA is later able to send the commands and pull the states?
Tried a lot this afternoon. But I’m not that familiar with such things.
Homepilt is secured only with a PW, not with User/PW. In Homebride, I had to handover the hashed PW, so I did it this way as well via
If the Home Assistant instance in the resource variable is protected by an API password, you can append ?api_password=YOUR_PASSWORD to the resource URL to authenticate
and with plain pw. Both does not work. Same for
The REST sensor supports HTTP authentication and customized headers.
password: test1
hashed and plain.
Without pw set on hompilot it is working. Only to be on that safe side.
Thanks for the link!
Taking a look at it shows that you need to authenticate to get a cookie, then make the call with the cookie attached.
This should be possible to implement using shell commands for the hashing etc., however I’m not really keen on investing my free time into that. If you want to give it a shot go ahead though
I’ve done something similar to mute DECT phones with the Fritz!Box API.
For me it’s just not worth the added security. The only thing it prevents is someone else accessing your HomePilot locally.
You can make a few firewall rules within your router so that only Home Assistant can talk to the HomePilot when you’re done setting it up, block all other traffic to and from it.
I haven’t found the need to go into the UI for basically anything.
Another reason to lock down the device is that there’s an SSH server running on this thing listening on port 22 (Rademacher is holding the credentials to that, you don’t have any access there), so there’s that as well.