Witam
Proszę o podpowiedź w jaki sposób można przestawić daną encje typu switch za pomocą linky http://192.168.x.x/…
Miałem taką funkcjonalność w domoticzu lecz w HA nie potrafię sobie z tym poradzić
Witam
Proszę o podpowiedź w jaki sposób można przestawić daną encje typu switch za pomocą linky http://192.168.x.x/…
Miałem taką funkcjonalność w domoticzu lecz w HA nie potrafię sobie z tym poradzić
Chodzi ci o switch po http:// ?
# przekazniki anita espswitch1
- platform: command_line
switches:
espswitch0:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,0,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,0,0'"
#command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch0"]["state"] == "on" }}'
#friendly_name: espswitch0
espswitch1:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,1,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,1,0'"
# command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch1"]["state"] == "on" }}'
#friendly_name: espswitch1
Opcji jest kilka, nie przedstawiłeś szczegółów więc musisz sam wybrać, np.
Wydaje mi się, że autorowi chodziło o wywołanie encji po http, ale mogę się mylić
Dla przykładu wywołanie z innego hosta:
curl -X POST -H ‘Authorization: Bearer twoj_token’ -H ‘Content-Type: application/json’ -d ‘{“entity_id”: “switch.lampka”}’ http://192.168.1.77:8123/api/services/switch/toggle
Dziękuje za zainteresowanie
Chodzi mi dokładnie o to by na urządzeniu shelly po wciśnięciu “long push” została przełączona jedna z encji. Mogę to zrobić jedynie za pomocą “switched url”.
Próbowałem uruchomić “long push” w samym NR ale nie poradziłem sobie bo mam jednak za małą wiedzę, więc pomyślałem, że wykonam to w ten sposób.
A gdzie jest ta “encja”? Źle opisałeś co chcesz zrobić i w jakich systemach. Spróbuj jeszcze raz, będzie prościej.
No to tak, chce aby po dłuższym naciśnięciu na wyłączniku podłączonym do shelly przełączyć switch w HA
Więc w samym interfejsie SHELLY mogę wpisać w polu “long push” url jaki ma być odpalony by włączyć tryb “home office”
innymi słowy w dowolnej przeglądarce jak wpisze w pasku adresu:
http://192.168.5.3/xxxxxx/turnON
to załączy mi przełącznik w HA
Aby to zrobić musisz podać token do autentykacji w HA, w ten sposób:
curl -k -X POST -H "Authorization: Bearer myVeryLoooo0ooOOOngAndSecretToken" -H "Content-Type: application/json" -d '{"entity_id": "switch.door_light"}' https://hass.example.org:8123/api/services/switch/turn_on
Szczegóły w dokumentacji HA - REST API | Home Assistant Developer Docs
A nie prościej skorzystać z integracji Shelly MQTT i automatyzacji HA - naciśnięcie “long push” generuje wiadomość mqtt (zakładam, że Shelly na oryginalnym oprogramowaniu publikuje takie zdarzenie), na podstawie której uruchamia się automatyzacja, która to załącza przełacznik w HA.
MQTT + NodeRED zadziałało, dzięki za podpowiedź
edit
tak to teraz wygląda (automat ON/OFF to pomocnik typu switch):
swiatlo z blokada longpush.json (7,7 KB)
Hmm można i tak zakończyć opisywany na początku problem ale to niczego nie wnosi.
Odświeżam temat, potrzebuję zrobić pilot z HA po http. Jedna encja - jedna komenda http. Fajnie by było gdyby po włączeniu drugiej encji ta wcześniej włączona się wyłączyła tak abym widział aktualny stan zadania na urządzeniu. Czy ktoś pomoże?
Rozwiń temat lub podaj więcej szczegółów.
Za pomocą http uruchamiam poszczególne funkcje klimatyzatora i chciałbym aby w HA były dostępne te “przyciski” Chciałem to zrobić przez pomocnika - pole wyboru ale nie wiem jak dodać http
przykład:
21°C → http://192.168.3.102/cm?cmnd=…
22°C → http://192.168.3.102/cm?cmnd=…
off → http://192.168.3.102/cm?cmnd=…
Musisz sobie zrobić switch coś na wzór tego
- platform: command_line
switches:
espswitch0:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,0,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,0,0'"
#command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch0"]["state"] == "on" }}'
#friendly_name: espswitch0
espswitch1:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,1,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,1,0'"
# command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch1"]["state"] == "on" }}'
#friendly_name: espswitch1
espswitch2:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,2,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,2,0'"
# command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch2"]["state"] == "on" }}'
#friendly_name: espswitch2
espswitch3:
command_on: "curl -X GET 'http://192.168.1.58/control?cmd=relay,3,1'"
command_off: "curl -X GET 'http://192.168.1.58/control?cmd=relay,3,0'"
# command_state: "curl -X GET 'http://192.168.1.58/control?cmd=relay/'"
value_template: "{{ value_json.status == '1' }}"
#value_template: '{{ value_json["espswitch3"]["state"] == "on" }}'
#friendly_name: espswitch3
po wpisaniu jak wyżej mam taki błąd:
Integration error: switches - Integration ‘switches’ not found.
Może zrób kartę pilota i dobierz pod przyciskiem usługę
Pewnie zmienił się zapis,
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
kitchen_light:
command_on: switch_command on kitchen
command_off: switch_command off kitchen
Ok, błędu się pozbyłem- literówka
Ale mam problem ponieważ moje http wykrywa jako błąd:
Error loading /config/configuration.yaml: while parsing a block mapping
in “/config/switches.yaml”, line 4, column 7
expected , but found ‘’
in “/config/switches.yaml”, line 4, column 71
Natomiast jeśli przerobie link np. w tiny.pl to HA nie wywala błędu i switch działa lecz komenda jest nie wykonywana
To wklej tu swój kod.
- platform: command_line
switches:
switch0:
command_on: "curl -X GET 'http://192.168.3.102/cm?cmnd=IRHVAC:{"Vendor":"HAIER_AC_YRW02","Model":-1,"Mode":"Heat","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Low","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}'"
command_off: "curl -X GET 'http://192.168.3.102/cm?cmnd=IRHVAC:{"Vendor":"HAIER_AC_YRW02","Model":-1,"Mode":"Heat","Power":"Off","Celsius":"On","Temp":20,"FanSpeed":"Auto","SwingV":"Low","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}'"
value_template: "{{ value_json.status == '1' }}"