Comandare Shelly da remoto

Richieste varie sugli SHELLY.
emattiolo
Messaggi: 4
Iscritto il: lunedì 30 gennaio 2023, 10:00

lunedì 30 gennaio 2023, 10:07

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
ciao, sono alle prime armi e non sono riuscito a capire come formulare correttamente la chiamata da remoto. ad esempio https://shelly-##-eu.shelly.cloud/device/status-d"id=##########&auth_key=#####......" restituisce l'errore {"isok":false,"errors":{"invalid_header":"Unauthorized! Wrong authorization header provided!","invalid_token":"The login information is invalid! Please login again!"}}
potresti per favore postare un url d'esempio funzionante? sai se questo metodo potrebbe funzionare con macrodroid? stavo cercando un'alternativa a IFTTT.
grazie
dedey91
Messaggi: 2
Iscritto il: giovedì 1 febbraio 2024, 15:07

venerdì 9 febbraio 2024, 17:31

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

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

cosa vuol dire mettere i parametri con -d???

puoi spiegarlo?

Grazie
Rispondi