+ Antworten
Seite 3 von 3 ErsteErste 1 2 3
Ergebnis 21 bis 22 von 22
  1. #21
    Registriert seit
    Feb 2015
    Beiträge
    60

    Welche shelly hast du denn im Einsatz. Ist es richtig, dass die Shelly2 die Last messrn und schicken bzw. Sich diese Abfragen lässt?

  2. #22
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    5,078

    Zitat Zitat von dharmainitiative Beitrag anzeigen
    Welche shelly hast du denn im Einsatz. Ist es richtig, dass die Shelly2 die Last messrn und schicken bzw. Sich diese Abfragen lässt?
    Ich habe Shelly 2 im Produktiv Betrieb. Ja Du kannst die Werte des Gerätes ganz normal auslesen als auch aus IP-Symcon ein/ausschalten.

    Get Info
    PHP-Code:
    $payload GetShellyInfo();
    $http_code $payload["http_code"];
    if(
    $http_code == 200)
    {
    $info $payload["body"];
    var_dump($info);
    $shelly_data json_decode($info);
    $type $shelly_data->type;
    var_dump($type);
    $mac $shelly_data->mac;
    var_dump($mac);
    $auth $shelly_data->auth;
    var_dump($auth);
    $firmware $shelly_data->fw;
    var_dump($firmware);
    $num_outputs $shelly_data->num_outputs;
    var_dump($num_outputs);
    $num_meters $shelly_data->num_meters;
    var_dump($num_meters);
    $num_rollers $shelly_data->num_rollers;
    var_dump($num_rollers);
    }

    function 
    GetShellyInfo()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/shelly";
        
    $url "http://".$shelly_ip.$command;
        
    $header = [];
        
    $info SendShellyData($url$header);
        return 
    $info;
    }

     function 
    SendShellyData(string $url, array $header, array $postfields null)
        {
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_1);
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    curl_setopt($chCURLOPT_HEADERtrue);
            
            
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);

            if (!
    is_null($postfields)) {
                
    $postdata http_build_query($postfields);
                
    curl_setopt($chCURLOPT_HTTPHEADER$header);
                
    curl_setopt($chCURLOPT_POST1);
                
    curl_setopt($chCURLOPT_POSTFIELDS$postdata);
            }

            
    curl_setopt($chCURLOPT_URL$url);

            
    $result curl_exec($ch);
            if (
    curl_errno($ch)) {
                
    trigger_error('Error:' curl_error($ch));
            }
            
    $info curl_getinfo($ch);
            
    curl_close($ch);

          
        return 
    getReturnValues($info$result);
        }

    function 
    getReturnValues(array $infostring $result)
        {
            
    $HeaderSize $info['header_size'];

            
    $http_code $info['http_code'];
            
            
    $header explode("\n"substr($result0$HeaderSize));

            
    $body substr($result$HeaderSize);
          
            return [
    'http_code' => $http_code'header' => $header'body' => $body];
        } 
    Ein/Ausschalten
    PHP-Code:
    function PowerOn_1()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/0";
        
    $url "http://".$shelly_ip.$command;
        
    $postfields = ['turn'    => 'on'];
        
    $header = ['Content-Type: application/x-www-form-urlencoded'];
        
    $info SendShellyData($url$header$postfields);
        return 
    $info;
    }

    function 
    PowerOff_1()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/0";
        
    $url "http://".$shelly_ip.$command;
        
    $postfields = ['turn'    => 'off'];
        
    $header = ['Content-Type: application/x-www-form-urlencoded'];
        
    $info SendShellyData($url$header$postfields);
        return 
    $info;
    }

    function 
    PowerOn_2()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/1";
        
    $url "http://".$shelly_ip.$command;
        
    $postfields = ['turn'    => 'on'];
        
    $header = ['Content-Type: application/x-www-form-urlencoded'];
        
    $info SendShellyData($url$header$postfields);
        return 
    $info;
    }

    function 
    PowerOff_2()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/1";
        
    $url "http://".$shelly_ip.$command;
        
    $postfields = ['turn'    => 'off'];
        
    $header = ['Content-Type: application/x-www-form-urlencoded'];
        
    $info SendShellyData($url$header$postfields);
        return 
    $info;

    Musst nur die IP Adresse des Shelly austauschen. Wenn Du willst kann man dann die Daten in eine Variable schreiben bzw. auch aus dem Webfront schalten.

    Status auslesen
    PHP-Code:
    $payload GetShellyState();
    $http_code $payload["http_code"];
    if(
    $http_code == 200)
    {
    $info $payload["body"];
    var_dump($info);
    $shelly_data json_decode($info);
    //var_dump($shelly_data);
    $wifi_connection $shelly_data->wifi_sta->connected;
    var_dump($wifi_connection);
    $ssid $shelly_data->wifi_sta->ssid;
    var_dump($ssid);
    $cloud_enabled $shelly_data->cloud->enabled;
    var_dump($cloud_enabled);
    $cloud_connected $shelly_data->cloud->connected;
    var_dump($cloud_connected);
    $time $shelly_data->time;
    var_dump($time);
    $serial $shelly_data->serial;
    var_dump($serial);
    $update $shelly_data->has_update;
    var_dump($update);
    $mac $shelly_data->mac;
    var_dump($mac);
    $relays $shelly_data->relays;
    //var_dump($relays);
    $relay_1 $relays[0];
    //var_dump($relay_1);
    $relay_2 $relays[1];
    //var_dump($relay_2);
    $rollers $shelly_data->rollers;
    //var_dump($rollers);
    $roller $rollers[0];
    //var_dump($roller);
    $meters $shelly_data->meters[0];
    //var_dump($meters);
    $power $meters->power;
    var_dump($power);
    $is_valid $meters->is_valid;
    var_dump($is_valid);
    $counter $meters->counter;
    var_dump($counter);
    $ram_total $shelly_data->ram_total;
    var_dump($ram_total);
    $ram_free $shelly_data->ram_free;
    var_dump($ram_free);
    $uptime $shelly_data->uptime;
    var_dump($uptime);
    }

    $payload GetShellyState1();
    $http_code $payload["http_code"];
    if(
    $http_code == 200)
    {
    $info $payload["body"];
    var_dump($info);
    $shelly_data json_decode($info);
    //var_dump($shelly_data);
    $ison $shelly_data->ison;
    var_dump($ison);
    $has_timer $shelly_data->has_timer;
    var_dump($has_timer);
    $overpower $shelly_data->overpower;
    var_dump($overpower);
    $is_valid $shelly_data->is_valid;
    var_dump($is_valid);
    }



    $payload GetShellyState2();
    //var_dump($payload);
    $http_code $payload["http_code"];
    if(
    $http_code == 200)
    {
    $info $payload["body"];
    var_dump($info);
    $shelly_data json_decode($info);
    //var_dump($shelly_data);
    $ison $shelly_data->ison;
    var_dump($ison);
    $has_timer $shelly_data->has_timer;
    var_dump($has_timer);
    $overpower $shelly_data->overpower;
    var_dump($overpower);
    $is_valid $shelly_data->is_valid;
    var_dump($is_valid);
    }


    function 
    GetShellyState()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/status";
        
    $url "http://".$shelly_ip.$command;
        
    $header = [];
        
    $info SendShellyData($url$header);
        return 
    $info;
    }

    function 
    GetShellyState1()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/0";
        
    $url "http://".$shelly_ip.$command;
        
    $header = [];
        
    $info SendShellyData($url$header);
        return 
    $info;
    }

    function 
    GetShellyState2()
    {
        
    $shelly_ip "192.168.55.111";
        
    $command "/relay/1";
        
    $url "http://".$shelly_ip.$command;
        
    $header = [];
        
    $info SendShellyData($url$header);
        return 
    $info;

    Geändert von Fonzo (23.09.18 um 12:40 Uhr)

Ähnliche Themen

  1. Sonoff mit Tasmota einrichten
    Von jagu im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 22
    Letzter Beitrag: 02.02.18, 19:46
  2. [Modul] Sonoff
    Von KaiS im Forum PHP-Module
    Antworten: 98
    Letzter Beitrag: 27.11.17, 20:46
  3. Sonoff
    Von raypancel im Forum Schaufenster
    Antworten: 3
    Letzter Beitrag: 23.12.16, 08:49
  4. Antworten: 10
    Letzter Beitrag: 21.05.13, 19:37