Guest User

CS - Shelly Script

a guest
Oct 23rd, 2025
23
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.47 KB | Software | 0 0
  1. // Definieren des API-Schlüssels für JSONBin.io. Dieser Schlüssel authentifiziert die Anfragen.
  2. // Hinweis: Sensible Daten wie API-Keys sollten niemals öffentlich zugänglich sein.
  3. const jsonbin_API_KEY = „Hier habe ich meinen API Key von jsonbin.io Eingegeben“;
  4. // Basis-URL für JSONBin.io-API-Endpunkte.
  5. const baseUrl = „https://api.jsonbin.io/v3/b/“;
  6. // Initialisieren eines Objekts, um die Messwerte des Shelly-Geräts zu speichern.
  7. let data = {
  8. voltage: 0, // Spannung in Volt
  9. current: 0, // Stromstärke in Ampere
  10. apower: 0, // Momentane Leistungsaufnahme in Watt
  11. timestamp: 0 // Zeitstempel der letzten Messung
  12. };
  13. // Abrufen der aktuellen Messwerte vom Shelly-Gerät für Switch:0.
  14. let result = Shelly.getComponentStatus(„Switch:0);
  15. data.voltage = result.voltage; // Spannung wird aktualisiert.
  16. data.current = result.current; // Stromstärke wird aktualisiert.
  17. data.apower = result.apower; // Momentane Leistungsaufnahme wird aktualisiert.
  18. data.timestamp = result.aenergy.minute_ts; // Zeitstempel wird aktualisiert.
  19. // Erstellen der Parameter für den HTTP-Request, um die Daten an JSONBin.io zu senden.
  20. let parameter = {
  21. method: „POST“, // Die HTTP-Methode ist POST, um neue Daten zu erstellen.
  22. url: baseUrl, // Ziel-URL für den API-Endpunkt.
  23. headers: { // Header-Informationen für den Request.
  24. „Content-Type“: „application/json“, // Gibt an, dass der Body JSON-Daten enthält.
  25. „X-Master-key“: jsonbin_API_KEY // API-Key zur Authentifizierung.
  26. },
  27. body: data // Das zu sendende JSON-Objekt mit den Messdaten.
  28. };
  29. // Funktion zum Auslesen der Bin-ID aus der JSONBin.io-API-Antwort.
  30. // Die Antwort wird als JSON-Objekt geparst und die Bin-ID aus der „metadata“ extrahiert.
  31. function readBinIDFromResult(result) {
  32. let json = JSON.parse(result); // Umwandeln der API-Antwort in ein JavaScript-Objekt.
  33. return json.metadata.id; // Rückgabe der Bin-ID aus den Metadaten.
  34. }
  35. // Senden der Daten an JSONBin.io mittels Shelly-HTTP-Aufruf.
  36. Shelly.call(
  37. „HTTP.Request, parameter, // HTTP-Anfrage mit den zuvor definierten Parametern.
  38. function(result, error_code, error_message) { // Callback-Funktion zur Verarbeitung der Antwort.
  39. if (error_code != 0) {
  40. // Ausgabe einer Fehlermeldung, falls die Anfrage fehlschlägt.
  41. print(error_message);
  42. } else {
  43. // Abrufen der Bin-ID aus der erfolgreichen Antwort und Ausgabe in der Konsole.
  44. let bin = readBinIDFromResult(result.body);
  45. print(„Daten wurden unter der BIN-ID gespeichert:+ bin);
  46. }
  47. }
  48. );
Advertisement
Comments
  • Christian2609
    8 days
    # text 0.13 KB | 0 0
    1. Ich musste für mein Shelly 2PM Pro folgendes ändern, damit das Skript passt: let result = Shelly.getComponentStatus("switch", 0);
Add Comment
Please, Sign In to add comment