Beiträge von AndyKL

    warum plötzlich Python? Sorry, aber da kann ich nicht wirklich helfen..

    Ich steuere mit dem Shelly 1 die Gartenbewässerung. Über eine Webseite sage ich, ob das Beregnungsprogramm um 5.30 Uhr laufen soll oder nicht. Den Zustand schreibe ich per mySQL weg. Mit Python lese ich es aus und hab es bisher über GPIO geschaltet. Nun hab ich den Shelly und würde gerne an dieser Stelle den Shelly 1 schalten.

    Hallo,

    nach über 1 Jahr bin ich etwas weiter und würde den oben beschriebenen curl Befehl, von Python aus starten.

    Seven of Nine: Kannst du mir Tipp geben, wie das geht?

    Den Hintergrund beschreibe ich lieber nicht :P

    So sieht übrigens der PHP Befehl aus, den ich erfolgreich einsetze:

    <?php

    if (isset($_GET['ip']) && isset($_GET['type']) && isset($_GET['id']) && isset($_GET['action']) ) {

    //$url = 'http://'. $_GET['ip']. '/'. $_GET['type'] . '/' . $_GET['id'] . '?turn=toggle';

    $url = 'http://'. $_GET['ip']. '/'. $_GET['type'] . '/' . $_GET['id'] . '?'.$_GET['action'];

    echo("<script>alert("+ $url +");</script>");

    echo($url);

    //so sieht $url aus: http://192.168.178.73/relay/0?turn=toggle

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_USERAGENT, 'curl');

    curl_setopt($ch, CURLOPT_TIMEOUT, 5);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_URL, $url);

    $result = curl_exec ($ch);

    header('Content-Type: application/json');

    echo $result;

    } else {

    echo 'Missing Parameters';

    }

    //http://192.168.178.73/relay/0?turn=off

    ?>

    Hallo,

    das hilft mir sehr, vielen Dank.

    Ich hab mich irgendwie versteift, alles in einer Funktion machen zu wollen. Ich habe zu Hause 2x 2 Rolläden mit Shelly automatisiert, die unabhänging voneinander laufen sollen.

    Jede der "Doppelrollos" bekommt: hoch, stopp und runter. Also mache ich hierzu 3 JS Funktionen und fertig.

    Für die anderen Rollos noch mal 3 Funktionen, ist ja egal.

    Damit hast du mir sehr geholfen.

    Es ist sehr schade, dass der Befehl über Laptop Browser Firefox nicht geht. Meinst du, du könntest da mal nachschauen? Das wäre spitze.

    Hallo,

    ja der Code ist von Dir, wofür ich Dir danke. Leider lässt der sich nicht über Computer Browser ausführen, daher dachte ich, vielleicht kommt jemand mit einer anderen Idee, wie man den Aufruf machen könnte.

    Ich programmiere mit PHP und JS, wobei mein Schwerpunkt in SQL liegt. Ich war auf der Suche nach einer Idee und die Übergabe eines arrays greife ich von Dir auf, ist eine gute Idee.

    Meine Idee wäre, über den Button an JS ein Array mit den Shellies zu übergeben und den Rest, vor allem aber die action, ob rauf oder runter oder stopp.

    So in die Richtung würde ich in JS gehen:

    Code
    const IParray= ["192.168.178.22", "192.168.178.23", "192.168.178.24"];
    let i = 0;
    let text = "";
    while (IParray[i]) {
        fetch('Shellyproxy2021.php?ip=' + IParray[i] +'&type='+ type +'&id=' + id+'&action=' + action, {
        })
        .then()
        .catch(err => alert('Toggle failed'));
    i++;
    }

    Ich brauche leider noch einen kleinen Stupser:

    - wie übergebe ich das Array von dem Button?

    - wie übergebe ich den Rest, damit die 3 Shellies nacheinnader (while) angesteuert werden

    Hallo, meine Frage betrifft Shelly Programmierung mit HTML, JS und letztendlich Curl.

    Ich steuere mein Licht&Rolladen per Javascript und übergebe den Befehl mit den Parametern an Curl. Das funktioniert ganz gut soweit.

    Nun zu meiner Frage: wie kann ich mehrere Befehle, z.B. Rolläden gleichzeitig fahren, übergeben? Habt ihr da Idee?

    Hier der Code, dies ist der Button in HTML:

    Code
    <button type="button" class="buttonHD" onclick="ToggleShelly('192.168.178.91','roller',0,'go=open' )">
        Rollo hoch
    </button>

    JavaScript Funktion, die das ganze an die php Seite danach übergibt:

    Code
    function ToggleShelly(ip, type, id, action) {
        fetch('Shellyproxy2021.php?ip=' + ip +'&type='+ type +'&id=' + id+'&action=' + action, {
    })
    .then()
    .catch(err => alert('Toggle failed'));
    window.location.reload("Start.php")
    }

    Hier wird der Befehl für Licht (Shelly 1) und Rolladen (Shelly 2.5) ausgeführt:

    Generell kann ich den Befehl leider nur auf dem Handy ausführen, nicht in Firefox auf dem PC. Wenn mir jemand auch bei der Lösung helfen könnte, wäre es echt super.

    Hallo,

    das schalten von Licht über den Curl Befehl funktioniert super.

    Dabei wird zuvor JavaScript aufgerufen wie z.B. ToggleShelly('192.168.178.73','relay', 0 ),

    der dann eine weitere php Seite aufruft, in der Curl Aufruf stattindet.

    Frage:

    Wie spreche ich einen Shelly Plug S an? Ich habe es mir geholt, den Status bekomme ich bereits in http angezeigt.

    Hallo, nein ;)

    Ich habe Dein Script umgesetzt und habe einen Button. Wenn per Hand gedrückt wird, wird per onclick über Javascript php Datei angestuert. So weit so gut für diese Funktion.

    Ich würde folgendes gerne umsetzten:

    Das Garagentor wird per PHP geöffnet, Alarm per php ausgeschlatet und nun würde ich gerne auch das Licht per PHP einschalten. Bekomme es leider nicht hin, aus PHP Javascript anzusteuern, obwohl es mit echo einfach sein sollte.

    Sehr schön erklärt mit dem Shellyproxy :thumbup:

    Damit kann man von außen auf die interne Funktionen (über 192.x.x.x IP) zugreifen. Hab es bei mir umgesetzt, um das Licht mit einem HTML Button ein und auszuschalten. Kann man super übernehmen, funktioniert einwandfrei - danke dafür.

    Eine Frage:

    Gibt es eine Möglichkeit, direkt aus PHP raus, den Befehl ohne Javascript zu starten? Ich habe eine Abfrage, ob es dunkel ist, dann würde das Licht angehen.