Einstieg in Shelly-Skripte - Hoffe auf Hilfe

  • 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:

    Testskript.PNG

    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:!:

  • Vielen Dank. :thumbup:

    Werde ich am Abend ausprobieren.

  • 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:

    Console.PNG

    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, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.