Einstieg in Shelly-Skripte - Hoffe auf Hilfe

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

  • Hallo Shelly-Skripter,

    diesmal hoffe ich selbst auf Hilfe.

    Da mich das Gefühl beschleicht, dass zukünftige Homematic-Kopplungen mit Nutzung der Skriptmöglichkeiten deutlich leichter werden könnten, habe ich mal angefangen mich da einzulesen.

    Einen kleinen 1. Erfolg kann ich auch mit dem ShellyPro 4PM verbuchen:

    Wahrscheinlich nicht professionell, Korrekturen oder Verbesserungsvorschläge sind willkommen ;)

    Dieses Skripte erzeugt schon mal die richtige URL, um den Testwert "power" nach Homematic zu transferieren:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Doch nun wie weiter?

    2 1 Aufgaben weiß ich nicht umzusetzen:

    • Wie ersetze ich den Testwert durch den realen Powerwert zum Beispiel des Kanal 1 des ShellyPro 4PM?
    • Wie sende ich die URL ab?

    Ich baue auf Euch und bin für jeden Input dankbar.

  • Die Url erfolgreich zu versenden bekomme ich nun auch hin und der Wert wird korrekt gesetzt! :) :) :)

    Code
    // url versenden 
    
    Shelly.call("http.get", { url: "http://192.168.1.93:8181/66er.exe?answer=dom.GetObject(%22JS-Test-Zahl%22).State(10.0)" }, null, null);

    Bleibt noch

    Wie ersetze ich den Testwert durch den realen Powerwert zum Beispiel des Kanal 1 des ShellyPro 4PM?

    Lasst mich nicht hängen, bitte.


  • Auslesen solltest du den aktuellen Wert etwa so (ungetestet)

    wenn du ihn dann in einer URL übergeben willst muss er zunächst vom Datentyp float auf einen String geändert werden:

    Code
    // String aus power machen
    let spower = JSON.stringify(power);

    anschließend kann er Bestandteil einer Zeichenkette sein, nach dem Shema "fest_definierter_string" + variabler_string + "fest_definierter_string"

    Code
    let URL = "http://meineurl?power=" + spower + "&egal=on" ;

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • So, nun mal Zeit für eine Rückmeldung, Seven of Nine :

    Das Skript funktioniert soweit, dass der Wert richtig ausgelesen wird und die Url richtig zusammengesetzt wird.

    Nur wird statt des Wertes nur "0" als Wert in die Url geschrieben.

    führt zu folgender Ausgabe:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Warum steht zwischen den Klammern am Ende der url "0" statt 11,9 ?

    Warum ist die Zeilenausgabe (print) vertauscht?

    :/

    Viele :?: :?: :?:

    PS: Das Versenden will ich erst anhängen, wenn es bis hierhin funktioniert. ;)

  • Dieses Thema enthält 5 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.