Pagina 1 di 2

Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 9:32
da linuxman74
Buongiorno.
sto cercando il modo per accendere e spegnere una lampada da remoto.
In sintesi vorrei fare questo: http://indirizzo_server_cloud/relay/0?turn=toggle&auth_key=xxxxx&id=xxxxxx
Ma ottengo questa risposta:

{"isok":false,"errors":{"wrong_channel":"Could not control this relay channel!"}}

Come mai?

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 9:40
da linuxman74
Eppure la documentazioen dice proprio così:

POST link: https://[server location link]/device/relay/control/
Keys:
channel=[channel number] - you can check the channel from Settings->Device informationkey
turn=[command]
id=[deviceID] - you can check the channel from Settings->Device informationkey
auth_key=[auth_key]

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 11:48
da Mala
A hai dimenticato di mettere :
...\device\...

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 12:22
da linuxman74
Non capisco... in che senso?

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 12:23
da linuxman74
Io lancio questo:

http://shelly-22-eu.shelly.cloud/device ... x&turn=off

E lui mi risponde

{"isok":false,"errors":{"wrong_channel":"Could not control this relay channel!"}}

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 13:13
da Mala
Ok si ma devi mettere l’IP di rete dello shelly non il nome.

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 13:15
da Mala
Non penso che tu riesca a farlo tramite il cloud shelly

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 15:04
da linuxman74
Ho scoperto il motivo.
Riporto dalla documentazione delle API di Shelly:
"Each resource may also accept a list of Parameters which should be supplied either as query-string in the URL or as application/x-www-form-urlencoded POST payload."

Quando lancio la URL da un browser sto facendo una richiesta GET e non POST. Quindi per funzionare devo fare una richista POST su https://shelly-<qualcosa>/device/relay/control
E tutti i parametri vanno passati nel body.

Infatti passando tutto sulla chiamata GET otteniamo subito dal server un bel HTTP/1.1 400 Bad Request semplicemente perchè non processa i dati che gli arrivano.

Risolto l'arcano. Quindi mi basta usare curl passando i parametri con -d ".." e funziona tutto alal perfezione.

p.s.
Per chi mi ha risposto che devo passare l'IP dello Shelly non ha capito che questa cosa non sto cercando di farla in locale, quindi niente IP, sto usando infatti il server cloud con auth_key

Re: Comandare Shelly da remoto

Inviato: venerdì 8 gennaio 2021, 18:30
da Mala
Ok ho capito dopo quello che volevi fare.
Io sono passato su Home Assistant e quindi li comando direttamente da lì eventualmente anche da esterno

Re: Comandare Shelly da remoto

Inviato: mercoledì 12 maggio 2021, 17:20
da rikypittiz07
linuxman74 ha scritto:
venerdì 8 gennaio 2021, 15:04
Ho scoperto il motivo.
Riporto dalla documentazione delle API di Shelly:
"Each resource may also accept a list of Parameters which should be supplied either as query-string in the URL or as application/x-www-form-urlencoded POST payload."

Quando lancio la URL da un browser sto facendo una richiesta GET e non POST. Quindi per funzionare devo fare una richista POST su https://shelly-<qualcosa>/device/relay/control
E tutti i parametri vanno passati nel body.

Infatti passando tutto sulla chiamata GET otteniamo subito dal server un bel HTTP/1.1 400 Bad Request semplicemente perchè non processa i dati che gli arrivano.

Risolto l'arcano. Quindi mi basta usare curl passando i parametri con -d ".." e funziona tutto alal perfezione.

p.s.
Per chi mi ha risposto che devo passare l'IP dello Shelly non ha capito che questa cosa non sto cercando di farla in locale, quindi niente IP, sto usando infatti il server cloud con auth_key
Quindi non è proprio possibile creare un url senza passare per un componente di multirichiesta?
grazie