Hallo....
Hab jetzt ein wenig gebastelt und einen funktionierenden Code geschrieben der Funktioniert. Bei Shelly habe ich auch eine Anfrage bezüglich Übermittlung des Ergebnisses in die Cloud abgesetzt. Leider funktioniert das nicht....
Hab auch ChatGPD heftig in der Hinterhand genutzt, die meint das das sehr wohl funktionieren sollte mit dem Befehls Shell.SendCloudEvent.... Hab aber da nirgends Infos darüber gefunden....
Hier also mein Code:
Code
// Dieses Script liest den Analogwert von V vom Shelly Addon und rechnet ihn in % um
// Der umgerechnete Wert wird dann in einem Web-Interface angezeigt
// Definiere die Variablen für die Umrechnung
var min_v = 1.8; // Der minimale Spannungswert in V, der 0% entspricht
var max_v = 4.5; // Der maximale Spannungswert in V, der 100% entspricht
var range_v = max_v - min_v; // Der Spannungsbereich in V
// Lese den aktuellen Analogwert von V vom Shelly Addon
Shelly.call(
"voltmeter.getstatus",
{
// for more than one input devices use the respective id
id: 100,
},
function (result, error_code, error_message) {
// Prüfe, ob die RPC-Methode erfolgreich war
if (error_code == 0) {
// Lese den Spannungswert aus dem Ergebnisobjekt
var analog_v = result.voltage;
// Rechne den Analogwert von V in % um
var percent = (analog_v - min_v) / range_v * 100;
// Begrenze den Prozentwert auf das Intervall [0, 100]
if (percent < 0) {
percent = 0;
} else if (percent > 100) {
percent = 100;
}
// Runde den Prozentwert auf eine Nachkommastelle
percent = Math.round(percent * 10) / 10;
// Zeige den Prozentwert in einem Web-Interface an
print('Der Fuellstand der Zisterne betraegt: ' + percent + '%');
} else {
// Ausgeben des Fehlers in der Konsole
print("RPC error: " + error_message);
}
}
);
Alles anzeigen
LG; Thomas