Hi Leute,
endlich habe ich es geschafft, HTTPServer.registerEndpoint zum laufen zu bekommen!
Edit (Weil ich gerade gefragt wurde, was man damit machen kann):
Man kann damit über einen Browser-Call (also z.B. vom PC oder Handy aus) eine Funktion im Shelly starten. Finde ich ziemlich cool! Einfach Link auf den Desktop legen und beim Anklicken wird die gewünschte Funktion im Shelly ausgeführt.
Hier das Script:
Code
// 20220917, CH: got HTTPServer.registerEndpoint to run! :-)
//
// Verified on a Shelly Plus 2PM
// Firmware version: 0.10.3
// Firmware build ID: 20220617-113003/0.10.3-g7c89a05
// Web build ID: 1.5.5-b3d94f1
//
// Trigger a method (function) in a script via browser by
// - registering a name (endpoint) in a script
// - requesting the endpoint via web
//
// As of now I use this method to write debug outputs to the console when needed.
// I don't have my computer connected all the time so all debug output to the console is lost.
// This way I can see all data on demand.
//
// Trigger the callback method via http://SHELLY_IP/script/SCRIPT_ID/myTrigger
// replace
// - SHELLY_IP with the IP of your shelly
// - SCRIPT_ID with the ID of this script ->
// use http://SHELLY_IP/rpc/Shelly.GetConfig in your browser and search for your script name
//
// ** Don't forget to set the 'run on reboot' to enabled! **
// function triggered via web request
function myCallback(){
print("Endpoint request received!");
// put here whatever you want to do
// - debug outputs
// - call other scripts
// - reboot
// - etc.
}
//HTTPServer.registerEndpoint(endpoint_name, callback, callback_arg)
HTTPServer.registerEndpoint(
"myTrigger", // endpoint to be registered (and later called via browser)
myCallback, // method to be called when endpoint triggered via web
"callback_arg" // I don't get this to work but who cares?
// I have no idea what to pass to my own method on an external call... *gg*
);
// This script runs for ever and does nothing but to wait for the webbrowser to come in.
// I get an 504 error in the browser but the script does what it is supposed to!
// ** Don't forget to set the 'run on reboot' to enabled! **
Alles anzeigen
Viel Spaß damit! Vielleicht hilft es jemandem!
PS: Die neue IDE ist cool! Mir wurde jedoch die alte IDE während der Arbeit unter dem A...popo weggezogen! *lol*
Liebe Grüße aus Wien
Christian