+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 29
  1. #1
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,297

    Post Vistapool // Pool-Steuerung über IPS

    Hi!

    Hier findet ihr eine Pool-Steuerung, welche aktuell für diese beiden Systeme/Webseiten funktioniert:
    >> Vistapool | Domotic for swimmingpools | Accede a tu cuenta
    >> Naturally Salt | Pool-access | Accede a tu cuenta


    PHP-Code:
    <?
    /********************************************************************************/
    /***** VISTAPOOL CONTROL  v1.2 **************************************************/
    /*                                                                              */
    /*         by Bayaro   ( https://www.bayaro.net)                                */
    /*                                                                              */
    /* Release-Date: 2018-09-09                                                     */
    /********************************************************************************/


    $username 'email@domain.de';            // Benutzername zur Anmeldung bei vistapool.es oder anderen kompatiblen Webseiten
    $password '*************';            // Passwort zur Anmeldung bei vistapool.es oder anderen kompatiblen Webseiten
    $poolID '1234';        // Steht in der URL am Ende, wenn man sich die Daten eines Pool im Browser anschaut
    $ServerOS 'linux';    // Betriebssystem von IP-Symcon -- "windows" oder "linux"  (notwendig für korrekten Cookie-Pfad)
    $WebsiteURL "http://vistapool.es";    // URL der Webseite mit Vistapool-Steuerung (aktuell bekannte sind: "http://vistapool.es" und "http://www.naturally-salt-poolaccess.de" 
    /********************************************************************************/




    /***** BEGINN DER DATENABFRAGE **************************************************/

    $result Vistapool_ReadData();
    print_r($result); // Array mit ALLEN Daten die ein maximaler Ausbau enthalten kann - !!das können mehr sein als beim eigenen Pool verbaut!!
                    
    // Hier die ausgelesenen Daten in Variablen schreiben und/oder sonstiges damit anstellen
    //echo PHP_EOL.PHP_EOL.PHP_EOL."Einzelne Werte vom Pool:".PHP_EOL.PHP_EOL;
    //echo "Licht Status = ".$result["lightStat"]["status"]["status"];
    //echo PHP_EOL;
    //echo "Filter Status = ".$result["filtration_stat"];
    //echo PHP_EOL;
    //echo "Filter Mode = ".$result["filtration_mode"];
    //echo PHP_EOL;
    //echo "Temperatur = ".(float)$result["temp"];
    //echo PHP_EOL;
    //echo "pH Status = ".$result["PH_status"]["status"];
    //echo PHP_EOL;
    //echo "pH IST-Wert = ".(float)$result["PH"];
    //echo PHP_EOL;
    //echo "pH SOLL-Wert = ".(float)$result["PH_status"]["hi_value"];
    //echo PHP_EOL;

    //echo PHP_EOL.PHP_EOL.PHP_EOL."Status der AUX-Relais:".PHP_EOL.PHP_EOL;
    //echo "AUX 1 - Manuell/Auto/Tempo = ".$result["aux"][0]["manAutoTemp"]; // 0 = Manuell, 1 = Auto, 2 = Tempo
    //echo PHP_EOL;
    //echo "AUX 1 - On/Off = ".$result["aux"][0]["onoff"]; // 0 = Off, 1 = On
    //echo PHP_EOL;
    //echo "AUX 2 - Manuell/Auto/Tempo = ".$result["aux"][1]["manAutoTemp"]; // 0 = Manuell, 1 = Auto, 2 = Tempo
    //echo PHP_EOL;
    //echo "AUX 2 - On/Off = ".$result["aux"][1]["onoff"]; // 0 = Off, 1 = On
    //echo PHP_EOL;

    // SetValue(12345, (float)$result["temp"]);
    // SetValue(67890, (float)$result["PH"]);

    /***** ENDE DER DATENABFRAGE ****************************************************/






    /***** BEGINN DER STEUERUNG ****************************************************/

    //// DATUM + UHRZEIT ////
    //$CommandResult = Vistapool_Control("Datum-Uhrzeit", "25/06/2017 13:48");  // Setzt 25.06.2017 13:48 Uhr als aktuelles Datum/Uhrzeit


    //// LICHT ////
    //$CommandResult = Vistapool_Control("Licht", "ON");                               // Schaltet das Licht auf manuelle Steuerung und auf EIN
    //$CommandResult = Vistapool_Control("Licht", "OFF");                              // Schaltet das Licht auf manuelle Steuerung und auf AUS
    //$CommandResult = Vistapool_Control("Licht", "AUTO", "01:00", "14:45", 86400);    // Aktiviert die Licht-Automatik für jeden Tag von 1.00 Uhr bis 14.45 Uhr (Licht an in dieser Zeit)
    // freq=86400 >> jeden Tag // freq=172800 >> jeden 2. Tag // freq=259200 >> jeden 3. Tag // freq=345600 >> jeden 4. Tag // freq=432000 >> jeden 5. Tag // freq=604800 >> jede woche // freq=1209600 >> jede 2. woche // freq=1814400 >> jede 3. woche // freq=2419200 >> jede 4. woche


    //// CHLOR ////
    //$CommandResult = Vistapool_Control("SOLL-Chlor", 5); // Setzt den SOLL-Wert vom Chlor auf 0,05


    //// PH ////
    //$CommandResult = Vistapool_Control("SOLL-pH", 720);  // Setzt den SOLL-Wert vom pH auf 7,2
    //$CommandResult = Vistapool_Control("SOLL-pH", 30);   // Setzt den SOLL-Wert vom pH auf 0,3


    //// FILTERREINIGUNG ////
    //$CommandResult = Vistapool_Control("Filter-Reinigung", "MAN", "ON", 60);                // Filter-Reinigung manuell mit einem Intervall von 60 Sekunden einschalten
    //$CommandResult = Vistapool_Control("Filter-Reinigung", "MAN", "OFF");                   // Filter-Reinigung manuell ausschalten
    //$CommandResult = Vistapool_Control("Filter-Reinigung", "AUTO", "03:00", 120, 172800);   // Automatische Filter-Reinigung jeden 2. Tag, ab 3 Uhr, in einem Intervall von 120 Sekunden aktivieren 
    // freq=86400 >> jeden Tag // freq=172800 >> jeden 2. Tag // freq=259200 >> jeden 3. Tag  // freq=345600 >> jeden 4. Tag // freq=432000 >> jeden 5. Tag // freq=604800 >> jede woche // freq=1209600 >> jede 2. woche // freq=1814400 >> jede 3. woche // freq=2419200 >> jede 4. woche


    //// FILTER ////
    //$CommandResult = Vistapool_Control("Filter", "MAN", "ON");    // Filtration manuell einschalten
    //$CommandResult = Vistapool_Control("Filter", "MAN", "ON", 0);    // Filtration manuell einschalten, Geschwindigkeit langsam (0 = langsam, 1 = medium, 2 = hoch)
    //$CommandResult = Vistapool_Control("Filter", "MAN", "OFF");    // Filtration manuell ausschalten
    //$CommandResult = Vistapool_Control("Filter", "AUTO", "01:00", "02:00", "12:00", "13:00", "17:00", "18:00");                                        // Filtration-AUTO in 3 Zeiträumen aktivieren (Intervall1 von 1Uhr bis 2Uhr, Intervall2 von 12Uhr bis 13Uhr, Intervall3 von 17Uhr bis 18Uhr)
    //$CommandResult = Vistapool_Control("Filter", "AUTO", "01:00", "02:00", "12:00", "13:00", "17:00", "18:00", 0, 1, 2);                                // Filtration-AUTO in 3 Zeiträumen aktivieren (Intervall1 von 1Uhr bis 2Uhr, Intervall2 von 12Uhr bis 13Uhr, Intervall3 von 17Uhr bis 18Uhr, Intervall 1 Geschwindigkeit langsam, Intervall 2 Geschwindigkeit medium, Intervall 3 Geschwindigkeit hoch)
    //$CommandResult = Vistapool_Control("Filter", "HEAT", 25, "CLIMA-ON", "07:00", "10:00", "13:00", "15:00", "19:00", "21:00");                        // Filtration-HEAT in 3 Zeiträumen aktivieren (Temperatur auf 25 Grad mit Klima ON, Intervall1 von 7Uhr bis 10Uhr, Intervall2 von 13Uhr bis 15Uhr, Intervall3 von 19Uhr bis 21Uhr)
    //$CommandResult = Vistapool_Control("Filter", "HEAT", 25, "CLIMA-OFF", "07:00", "10:00", "13:00", "15:00", "19:00", "21:00");                        // Filtration-HEAT in 3 Zeiträumen aktivieren (Temperatur auf 25 Grad mit Klima OFF, Intervall1 von 7Uhr bis 10Uhr, Intervall2 von 13Uhr bis 15Uhr, Intervall3 von 19Uhr bis 21Uhr)
    //$CommandResult = Vistapool_Control("Filter", "SMART", 20, 25, "ANTIFROST-ON", "07:00", "10:00", "13:00", "15:00", "19:00", "21:00");                // Filtration-SMART in 3 Zeiträumen aktivieren (Temperatur auf min. 20 Grad und max. 25 Grad mit Antigefriermittel ON, Intervall1 von 7Uhr bis 10Uhr, Intervall2 von 13Uhr bis 15Uhr, Intervall3 von 19Uhr bis 21Uhr)
    //$CommandResult = Vistapool_Control("Filter", "SMART", 20, 25, "ANTIFROST-OFF", "07:00", "10:00", "13:00", "15:00", "19:00", "21:00");                // Filtration-SMART in 3 Zeiträumen aktivieren (Temperatur auf min. 20 Grad und max. 25 Grad mit Antigefriermittel OFF, Intervall1 von 7Uhr bis 10Uhr, Intervall2 von 13Uhr bis 15Uhr, Intervall3 von 19Uhr bis 21Uhr)
    //$CommandResult = Vistapool_Control("Filter", "SMART", 20, 25, "ANTIFROST-OFF", "07:00", "10:00", "13:00", "15:00", "19:00", "21:00", 0, 1 , 2);    // Filtration-SMART in 3 Zeiträumen aktivieren (Temperatur auf min. 20 Grad und max. 25 Grad mit Antigefriermittel OFF, Intervall1 von 7Uhr bis 10Uhr, Intervall2 von 13Uhr bis 15Uhr, Intervall3 von 19Uhr bis 21Uhr, Intervall 1 Geschwindigkeit langsam, Intervall 2 Geschwindigkeit medium, Intervall 3 Geschwindigkeit hoch)
    //$CommandResult = Vistapool_Control("Filter", "INTEL", 25, 13);    // Filtration-INTEL mit einer Wunschtemperatur von 25 Grad für 13 Stunden aktivieren


    //// HYDROLYSE ////
    //$CommandResult = Vistapool_Control("Hydrolyse", 29, "Cover-ON", 10, 0);    // Hydrolyse mit 29%, Abdeckung um 10% reduziert und Chlor-Schock OFF
    //$CommandResult = Vistapool_Control("Hydrolyse", 29, "Cover-ON", 10, 1);    // Hydrolyse mit 29%, Abdeckung um 10% reduziert und Chlor-Schock ON
    //$CommandResult = Vistapool_Control("Hydrolyse", 28, "Cover-OFF", 0, 0);    // Hydrolyse mit 28%, Abdeckung OFF und Chlor-Schock OFF
    //$CommandResult = Vistapool_Control("Hydrolyse", 28, "Cover-OFF", 0, 1);    // Hydrolyse mit 28%, Abdeckung OFF und Chlor-Schock ON

    //// AUX RELAIS ////
    //$CommandResult = Vistapool_Control("Relais", 1, "ON");                                // Schaltet Relais 1 auf manuelle Steuerung und auf EIN
    //$CommandResult = Vistapool_Control("Relais", 1, "OFF");                                // Schaltet Relais 1 auf manuelle Steuerung und auf AUS
    //$CommandResult = Vistapool_Control("Relais", 1, "AUTO", "21:00", "23:45", 86400);        // Aktiviert die Automatik von Relais 1 für jeden Tag von 21.00 Uhr bis 23.45 Uhr (Relais AN in dieser Zeit)
    // freq=86400 >> jeden Tag // freq=172800 >> jeden 2. Tag // freq=259200 >> jeden 3. Tag // freq=345600 >> jeden 4. Tag // freq=432000 >> jeden 5. Tag // freq=604800 >> jede woche // freq=1209600 >> jede 2. woche // freq=1814400 >> jede 3. woche // freq=2419200 >> jede 4. woche

    //echo PHP_EOL.PHP_EOL.PHP_EOL.PHP_EOL;
    //echo $CommandResult;  // $CommandResult kann jeweils "OK" oder "ERROR" zurückgeben.

    /***** ENDE DER STEUERUNG ******************************************************/







    /**** AB HIER NICHTS MEHR ÄNDERN ***********************************************/
    function Vistapool_Control($command$value1$value2 NULL$value3 NULL$value4 NULL$value5 NULL$value6 NULL$value7 NULL$value8 NULL$value9 NULL$value10 NULL$value11 NULL$value12 NULL$value13 NULL)
    {
        Global 
    $poolID;
        Global 
    $password;
        Global 
    $username;
        Global 
    $ServerOS;
        Global 
    $WebsiteURL;
        
        
        
    // Mapping der PHP-Befehle in eine Command-URL für die Poolsteuerung
        
    $command strtolower($command);
        switch (
    $command)
        {
            case 
    "datum-uhrzeit":
                if (
    is_string($value1) === true)
                {
                    
    $datetime urlencode($value1);
                    
    $CommandURL $WebsiteURL."/de/pool/settimevalue?id=".$poolID."&time=".$datetime;
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL"'Datum-Uhrzeit // Ungültiger Wert! Value muss String sein! --- Datum und Uhrzeit müssen im folgenden Format angegeben werden:  "23/07/2017 13:48"');
                    return 
    "ERROR";
                } 
            break;
            
            case 
    "licht":
                if (
    $value1 === "ON")
                {            
                    
    $CommandURL $WebsiteURL."/de/pool/setlightvalues?id=".$poolID."&type=0&status=1";
                }
                elseif (
    $value1 === "OFF")
                {
                    
    $CommandURL $WebsiteURL."/de/pool/setlightvalues?id=".$poolID."&type=0&status=0";
                }        
                elseif (
    $value1 === "AUTO")
                {
                    if ((
    is_string($value1) === true) AND (is_string($value2) === true) AND (is_string($value3) === true) AND (is_int($value4) === true))
                    {
                        
    $CommandURL $WebsiteURL."/de/pool/setlightvalues?id=".$poolID."&type=1&status=1&freq=".$value4."&start=".$value2."&end=".$value3;
                    }
                    else
                    {
                        
    IPS_LogMessage("VISTAPOOL"'Licht-Automatik // Ungültiger Wert! Value muss String sein! --- Datum und Uhrzeit müssen im folgenden Format angegeben werden:  "23/07/2017 13:48"');
                        return 
    "ERROR";
                    }
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""Licht // Irgendwas stimmt bei den verwendeten Values nicht!");
                    return 
    "ERROR";
                }   
            break;
            
            case 
    "soll-ph":
                if (
    is_int($value1) === true)
                {
                    
    $CommandURL $WebsiteURL."/de/pool/setphvalue?id=".$poolID."&acid=".$value1."&base=NaN&type=ACID";
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""SOLL-Chlor // Ungültiger Wert! Value muss Integer sein! --- Für einen Chlor-Wert von 0,05 muss als Value 5 verwendet werden!");
                    return 
    "ERROR";
                }
            break;
            
            case 
    "soll-chlor":
                if (
    is_int($value1) === true)
                {
                    
    $CommandURL $WebsiteURL."/de/pool/setclvalue?id=".$poolID."&val=".$value1;
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""SOLL-pH // Ungültiger Wert! Value muss Integer sein! --- Für einen pH-Wert von 7,2 muss als Value 720 verwendet werden!");
                    return 
    "ERROR";
                }
            break;
            
            case 
    "filter-reinigung":
                if (
    $value1 === "MAN")
                {            
                    if (
    $value2 === "ON")
                    {            
                        
    $CommandURL $WebsiteURL."/de/pool/setbackwashvalues?id=".$poolID."&mode=0&onoff=1&interval=".$value3;
                    }
                    elseif (
    $value2 === "OFF")
                    {
                        
    $CommandURL $WebsiteURL."/de/pool/setbackwashvalues?id=".$poolID."&mode=0&onoff=0&interval=".$value3;
                    }
                }
                elseif (
    $value1 === "AUTO")
                {
                    
    $CommandURL $WebsiteURL."/de/pool/setbackwashvalues?id=".$poolID."&mode=1&onoff=1&freq=".$value4."&start=".$value2."&interval=".$value3;
                }        
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""Filter-Reinigung // Irgendwas stimmt bei den verwendeten Values nicht!");
                    return 
    "ERROR";
                }   
            break;
            
            case 
    "hydrolyse":
                if (
    $value2 === "Cover-ON")
                {
                    
    $CommandURL $WebsiteURL."/de/pool/sethidrovalue?id=".$poolID."&level=".$value1."&cover=1&reduction=".$value3."&cloration=".$value4;
                }
                elseif (
    $value2 === "Cover-OFF")
                {
                    
    $CommandURL $WebsiteURL."/de/pool/sethidrovalue?id=".$poolID."&level=".$value1."&cover=0&reduction=".$value3."&cloration=".$value4;
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""Hydrolyse // Irgendwas stimmt bei den verwendeten Values nicht!");
                    return 
    "ERROR";
                }
            break;
            
            case 
    "filter":
                if (
    $value1 === "MAN")
                {            
                    if (
    $value2 === "ON")
                    {
                        if (
    $value3 !== NULL)
                        {
                            
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":0,"mode":1,"vel":'.$value3.'}';
                        }
                        else
                        {
                            
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":0,"mode":1}';
                        }
                    }
                    elseif (
    $value2 === "OFF")
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":0,"mode":0}';
                    }
                }
                elseif (
    $value1 === "AUTO")
                {
                    if ((
    $value8 !== NULL) AND ($value9 !== NULL) AND ($value10 !== NULL))
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":1}&int={"inter1":"'.$value2.'-'.$value3.'","inter2":"'.$value4.'-'.$value5.'","inter3":"'.$value6.'-'.$value7.'"}&vel={"vel1":"'.$value8.'","vel2":"'.$value9.'","vel3":"'.$value10.'"}';
                    }
                    else
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":1}&int={"inter1":"'.$value2.'-'.$value3.'","inter2":"'.$value4.'-'.$value5.'","inter3":"'.$value6.'-'.$value7.'"}&vel={}';
                    }
                }        
                elseif (
    $value1 === "HEAT")
                {
                    if (
    $value3 === "CLIMA-ON")
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":2,"temp":"'.$value2.'","clima":1}&int={"inter1":"'.$value4.'-'.$value5.'","inter2":"'.$value6.'-'.$value7.'","inter3":"'.$value8.'-'.$value9.'"}&vel={}';
                    }
                    elseif (
    $value3 === "CLIMA-OFF")
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":2,"temp":"'.$value2.'","clima":0}&int={"inter1":"'.$value4.'-'.$value5.'","inter2":"'.$value6.'-'.$value7.'","inter3":"'.$value8.'-'.$value9.'"}&vel={}';
                    }
                }
                elseif (
    $value1 === "SMART")
                {
                    if (
    $value4 === "ANTIFROST-ON")
                    {
                        
    $freeze "1";
                    }
                    elseif (
    $value4 === "ANTIFROST-OFF")
                    {
                        
    $freeze "0";
                    }
                    
                    if ((
    $value11 !== NULL) AND ($value12 !== NULL) AND ($value13 !== NULL))
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":3,"tempMin":'.$value2.',"tempMax":'.$value3.',"freeze":'.$freeze.'}&int={"inter1":"'.$value5.'-'.$value6.'","inter2":"'.$value7.'-'.$value8.'","inter3":"'.$value9.'-'.$value10.'"}&vel={"vel1":"'.$value11.'","vel2":"'.$value12.'","vel3":"'.$value13.'"}';
                    }
                    else
                    {
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":3,"tempMin":'.$value2.',"tempMax":'.$value3.',"freeze":'.$freeze.'}&int={"inter1":"'.$value5.'-'.$value6.'","inter2":"'.$value7.'-'.$value8.'","inter3":"'.$value9.'-'.$value10.'"}&vel={}';
                    }
                }
                elseif (
    $value1 === "INTEL")
                {
                    if ((
    $value3 2) OR ($value3 23))
                    {
                        
    IPS_LogMessage("VISTAPOOL""Filter - INTEL // Der Zeitraum kann minimal 2 und maximal 23 Stunden sein!");
                        return 
    "ERROR";
                    }
                    else
                    {
                        
    $inteltimeMIN $value3 60;
                        
    $CommandURL $WebsiteURL.'/de/pool/setfiltrationvalues?id='.$poolID.'&data={"type":4,"temp":"'.$value2.'","time":'.$inteltimeMIN.'}&int=[]&vel=[]';
                    }
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""Filter // Etwas stimmt bei den verwendeten Values nicht!");
                    return 
    "ERROR";
                }    
            break;
            
            case 
    "relais":
                if (
    $value2 === "ON")
                {            
                    
    $CommandURL $WebsiteURL."/de/pool/setauxvalues?id=".$poolID.'&rel='.$value1.'&data={"mode":0,"onoff":1}';
                }
                elseif (
    $value2 === "OFF")
                {
                    
    $CommandURL $WebsiteURL."/de/pool/setauxvalues?id=".$poolID.'&rel='.$value1.'&data={"mode":0,"onoff":0}';
                }        
                elseif (
    $value2 === "AUTO")
                {
                    if ((
    is_string($value3) === true) AND (is_string($value4) === true))
                    {
                        
    $CommandURL $WebsiteURL."/de/pool/setauxvalues?id=".$poolID.'&rel='.$value1.'&data={"mode":1,"from":"'.$value3.'","to":"'.$value4.'","freq":"'.$value5.'"}';
                    }
                    else
                    {
                        
    IPS_LogMessage("VISTAPOOL"'Relais-Automatik // Ungültiger Wert! Value muss String sein! --- Datum und Uhrzeit müssen im folgenden Format angegeben werden:  "23/07/2017 13:48"');
                        return 
    "ERROR";
                    }
                }
                else
                {
                    
    IPS_LogMessage("VISTAPOOL""Relais // Irgendwas stimmt bei den verwendeten Values nicht!");
                    return 
    "ERROR";
                }   
            break;
            
            default:
                
    IPS_LogMessage("VISTAPOOL""ERROR // Der Befehl '".$command."' konnte nicht verarbeitet werden!");
                return 
    "ERROR";
            break;
        }
        
        
        
        
    // Versuch sich mit Cookie an der Webseite anzumelden
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_HEADER0);
        
    curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        if (
    strtolower($ServerOS) == "windows")
        {
            
    curl_setopt($chCURLOPT_COOKIEFILE'C:\Windows\Temp\vistapool_cookie');
        }
        else
        {
            
    curl_setopt($chCURLOPT_COOKIEFILE'/tmp/vistapool_cookie');
        }
        
    curl_setopt($chCURLOPT_POST0);
        
    curl_setopt($chCURLOPT_POSTFIELDS"");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_URL$WebsiteURL.'/de/pool/list');
        
    $curlData curl_exec($ch);
        
        
        
    // Prüfen, ob die Anmeldung mit Cookie erfolgreich war, wenn nicht, dann wird ein normaler Login durchgeführt
        
    preg_match("|(Passwort wiederherstellen)|"$curlData$LoginFALSE);
        if (
    $LoginFALSE)
        {
            echo 
    "Anmeldung mit Cookie war nicht erfolgreich - normaler Login wird durchgeführt!".PHP_EOL;
            
            
    $fields = array(
                
    'user'=>urlencode($username),
                
    'pass'=>urlencode($password),
                
    'remember_password'=>'0',
                
    'entrar'=>'Eingabe',
            );
             
            
    $fields_string '';
            foreach(
    $fields as $key=>$value) { 
                
    $fields_string .= $key.'='.$value.'&'
            }
             
            
    $fields_string substr($fields_string,0,-1);
            
    $postfields $fields_string;
        
            
    ini_set("max_execution_time"60);    
            
    curl_setopt($chCURLOPT_HEADER0);
            
    curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            if (
    strtolower($ServerOS) == "windows")
            {
                
    curl_setopt($chCURLOPT_COOKIEFILE'C:\Windows\Temp\vistapool_cookie');
                
    curl_setopt($chCURLOPT_COOKIEJAR'C:\Windows\Temp\vistapool_cookie');
            }
            else
            {
                
    curl_setopt($chCURLOPT_COOKIEFILE'/tmp/vistapool_cookie');
                
    curl_setopt($chCURLOPT_COOKIEJAR'/tmp/vistapool_cookie');
            }
            
    curl_setopt($chCURLOPT_COOKIEsession_name().'='.session_id());
            
    curl_setopt($chCURLOPT_COOKIESESSIONtrue);
            
    curl_setopt($chCURLOPT_URL$WebsiteURL.'/de/login/login');
            
    curl_setopt($chCURLOPT_POST1);
            
    curl_setopt($chCURLOPT_POSTFIELDS"$postfields");
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    $curlData curl_exec($ch);
        }
        
        
    // Befehl an Poolsteuerung senden
        
    curl_setopt($chCURLOPT_POST0);
        
    curl_setopt($chCURLOPT_POSTFIELDS"");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_URL$CommandURL);
        
    $curlData curl_exec($ch);
        
        
        if (
    $curlData == '"not connected"')
        {
            
    // Poolsteuerung ist offline - Befehl kann nicht gesendet werden
            
    echo "POOLSTEUERUNG IST NICHT VERBUNDEN! - Steuerung nicht möglich!".PHP_EOL;
            
    IPS_LogMessage("VISTAPOOL""POOLSTEUERUNG IST NICHT VERBUNDEN! - Steuerung nicht möglich!");
        }
        else
        {
            
    // Poolsteuerung ist online - Befehl kann gesendet werden
            
    $result json_decode($curlData);
            if (
    $result == true)
                return 
    "OK";
            else
                return 
    "ERROR";
        }
        
        
    // cURL Sitzung beenden
        
    curl_close($ch);
    }



    function 
    Vistapool_ReadData()
    {
        Global 
    $poolID;
        Global 
    $password;
        Global 
    $username;
        Global 
    $ServerOS;
        Global 
    $WebsiteURL;
        
        
    // Versuch sich mit Cookie an der Webseite anzumelden
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_HEADER0);
        
    curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        if (
    strtolower($ServerOS) == "windows")
        {
            
    curl_setopt($chCURLOPT_COOKIEFILE'C:\Windows\Temp\vistapool_cookie');
        }
        else
        {
            
    curl_setopt($chCURLOPT_COOKIEFILE'/tmp/vistapool_cookie');
        }
        
    curl_setopt($chCURLOPT_POST0);
        
    curl_setopt($chCURLOPT_POSTFIELDS"");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_URL$WebsiteURL.'/de/pool/list');
        
    $curlData curl_exec($ch);
        
        
        
    // Prüfen, ob die Anmeldung mit Cookie erfolgreich war, wenn nicht, dann wird ein normaler Login durchgeführt
        
    preg_match("|(Passwort wiederherstellen)|"$curlData$LoginFALSE);
        if (
    $LoginFALSE)
        {
            echo 
    "Anmeldung mit Cookie war nicht erfolgreich - normaler Login wird durchgeführt!".PHP_EOL;
            
            
    $fields = array(
                
    'user'=>urlencode($username),
                
    'pass'=>urlencode($password),
                
    'remember_password'=>'0',
                
    'entrar'=>'Eingabe',
            );
             
            
    $fields_string '';
            foreach(
    $fields as $key=>$value) { 
                
    $fields_string .= $key.'='.$value.'&'
            }
             
            
    $fields_string substr($fields_string,0,-1);
            
    $postfields $fields_string;
        
            
    ini_set("max_execution_time"60);    
            
    curl_setopt($chCURLOPT_HEADER0);
            
    curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            if (
    strtolower($ServerOS) == "windows")
            {
                
    curl_setopt($chCURLOPT_COOKIEFILE'C:\Windows\Temp\vistapool_cookie');
                
    curl_setopt($chCURLOPT_COOKIEJAR'C:\Windows\Temp\vistapool_cookie');
            }
            else
            {
                
    curl_setopt($chCURLOPT_COOKIEFILE'/tmp/vistapool_cookie');
                
    curl_setopt($chCURLOPT_COOKIEJAR'/tmp/vistapool_cookie');
            }
            
    curl_setopt($chCURLOPT_COOKIEsession_name().'='.session_id());
            
    curl_setopt($chCURLOPT_COOKIESESSIONtrue);
            
    curl_setopt($chCURLOPT_URL$WebsiteURL.'/de/login/login');
            
    curl_setopt($chCURLOPT_POST1);
            
    curl_setopt($chCURLOPT_POSTFIELDS"$postfields");
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    $curlData curl_exec($ch);
        }
        
        
        
    // Abfragen der Pool-Daten
        
    curl_setopt($chCURLOPT_POST0);
        
    curl_setopt($chCURLOPT_POSTFIELDS"");
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_URL$WebsiteURL.'/de/pool/getmainvalues?id='.$poolID.'&hasPH=true&hasRX=true&hasCL=true&hasCD=true&config=1&hasHidro=true&hasLight=true&hasRelays=true&numRelays=1%2C2%2C3%2C4&hasFiltration=true&hasBackwash=true&hasIO=true&hasUV=true&needsTimeBesgoRemaining=false');
        
    $curlData curl_exec($ch);
        
        
        
    // Ausgabe der ausgelesenen Daten
        
    if ($curlData == '"not connected"')
        {
            
    // Poolsteuerung ist offline - Daten können nicht ausgelesen werden
            
    echo "POOLSTEUERUNG IST NICHT VERBUNDEN!".PHP_EOL;
            
    IPS_LogMessage("VISTAPOOL""POOLSTEUERUNG IST NICHT VERBUNDEN!");
        }
        else
        {
            
    // Poolsteuerung ist online - Daten können ausgelesen werden
            
    $PoolData_Array json_decode($curlDatatrue);
            return 
    $PoolData_Array;        
        }
        
        
        
    // cURL Sitzung beenden
        
    curl_close($ch);
    }

    ?>
    Im Skript enthalten ist auch eine Anmeldung bei einer Webseite mittels Cookie...kann man immer mal brauchen


    Leider unterstützen sowohl vistapool.es als auch naturally-salt-poolaccess.de nach wie vor keine Anmeldung über HTTPS
    Eventuell kann sich ja mal ein Besitzer einer solchen Steuerung mal mit denen in Verbindung setzen und um Aktivierung von HTTPS bitten.


    Falls ihr euch auch so eine Pool-Steuerung kaufen wollt >> Keine Ahnung wie der verwendete Kram heißt Ich habe nur das Script dazu geschrieben...
    Auch habe ich selbst keinen Zugriff auf eine solche Pool-Steuerung. Solltet ihr also eine Erweiterung/Ergänzung wünschen, benötige ich einen temporären Zugang zu eurer Pool-Steuerung.

    Viel Spaß damit und beste Grüße,
    Chris


    CHANGELOG:
    Version 1.2
    >> Datenabfrage erweitert, so dass ALLE Informationen ausgelesen werden die ein mir bekannter maximaler Ausbau hat (kann deshalb mehr anzeigen als der eigene Pool kann bzw. verbaut hat)
    >> Webseite der Pool-Steuerung anpassbar gemacht - Variable $WebsiteURL
    >> Steuerung der AUX-Relais
    >> Filter-Geschwindigkeit kann jetzt auch in den Funktionen verwendet werden (0 = langsam, 1 = medium, 2 = hoch)

    Version 1.1
    >> Schockchlorung als Parameter hinzugefügt (siehe Beispiele unter "HYDROLYSE")
    >> Cookie Anmeldung für Linux und Windows über Variable $ServerOS anpassbar

    Version 1.0
    >> Erster Release
    Geändert von Bayaro (09.09.18 um 00:54 Uhr) Grund: Script v1.2
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  2. #2

    Der link läuft nur auf eine passwortgeschütze Webseite...Das ist wohl deren "Cloud"...
    Hier ist ein link zum Handbuch des (vermutlichen) Geräts: http://www.vandous.de/out/media/Hand...lektrolyse.pdf
    Geändert von wupperi (03.07.17 um 07:43 Uhr)
    IPS Ninja \\ Webfront auf 15" ELO Touch \\ z-wave \\ IPS-868 \\ FS20 \\ 1-wire \\ Oregon WMRS200 \\ Mediaportal \\ 4x Squeezebox \\ SONOS \\ Denon AVR1912 \\ Kostal Piko 5.5 \\ 7x Vivotek \\ 1x INStar \\ Gardena R40Li mit Robonect HX30
    Mehr auf www.diewuppers.de

  3. #3
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,297

    Moin!

    Wie gesagt, ich habe keine Ahnung welche Technik dahinter steckt. Aber wer es bereits hat, der kennt den Namen "Vistapool" und hat jetzt auch ein passendes Skript...und wer es will, der findet es schon irgendwie

    Und alle anderen "klauen" sich einfach nur die Anmeldung an einer Webseite mit einem Cookie

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  4. #4
    Registriert seit
    Dec 2008
    Ort
    Degmarn (BaWü)
    Beiträge
    549

    Hallo zusammen,
    Es gibt mehrere Geräte die sich mit "Vistapool.es" verbinden und ihre Daten abgleichen.
    Vistapool stellt dann eine Webseite und eine App zur Verfügung.
    Mit dem Skript werden die Daten von Vistapool.es ausgetauscht, was bedeutet, dass es HW-Unabhängig ist.
    Jede HW die sich mit Vistapool verbinden lässt kann auf diese Art angesteuert werden.
    (Je nach Geräteart könnten noch andere Daten zur Verfügung stehen)
    In meinem Fall ist es ein Elektrolysegerät mit Branding von Dryden Aqua (Da-Gen).

    Danke Chris für die super Arbeit!

    Isi
    IPS auf Symbox / DigitalStrom / Homematic / Mobotix T24 / UBNT-Netzwerk / Enigma GigaBlue / Apple iPad als Visu mit IPSView / iPhone mit IPS Mobil / Vistapool Poolsteuerung / IPS-868 für LED und Garagentor und Energieerfassung / Vitodens über optische Schnittstelle / Poolscheinwerfer-RGB über WLAN-RS485 Koppler ...und viel Spaß am Testen

  5. #5
    Registriert seit
    Nov 2014
    Ort
    Wien
    Beiträge
    200

    Standard VistaPool -> Infinity Hidrolife

    Hallo!

    Ich habe eine Infinity Hidrolife und die kommt auch aus dem Hause Vistapool.
    Ich habe auch bereits das WLan modul installiert und das PHPSkript am laufen, die Werte kommen zwar hinein aber ich bekomme dauernt fehler, woran kann das Liegen?

    HTML-Code:
    Fatal error:  Call to undefined function IPS_SetValue() in C:\IP-Symcon\scripts\30417.ips.php on line 42
    Abort Processing during Fatal-Error: Call to undefined function IPS_SetValue()
       Error in Script C:\IP-Symcon\scripts\30417.ips.php on Line 42
    Name:  Vista.jpg
Hits: 927
Größe:  154.0 KB

    Danke für die Hilfe

  6. #6
    Registriert seit
    Nov 2014
    Ort
    Wien
    Beiträge
    200

    OK die Ersten Fehler hab ich gelöst .... nur der Fehler Zeile99 den verstehe ich nicht

  7. #7
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,297

    Welche Fehler hast du denn noch?

    Viele Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  8. #8
    Registriert seit
    Nov 2014
    Ort
    Wien
    Beiträge
    200

    Notice: Undefined variable: CommandResult in C:\IP-Symcon\scripts\30417.ips.php on line 104
    dies ist die Zeile
    echo $CommandResult; // $CommandResult kann jeweils "OK" oder "ERROR" zurückgeben.

  9. #9
    Registriert seit
    Nov 2014
    Ort
    Wien
    Beiträge
    200

    noch eine andere Frage

    meine Abdeckung hängt an der Homematic, kann ich die mit dem IPS zusammenschalten sprich wenn meine Abdeckung geschlossen ist das dann die Hydrolyse auf z.b. 29 geht anhand der Variable und wenn Sie offen ist auf einen gewünschten werden umgestellt wird?

    //// HYDROLYSE ////
    //$CommandResult = Vistapool_Control("Hydrolyse", 29, "Cover-ON", 10); // Hydrolyse mit 29%, Abdeckung um 10% reduziert und Chlor-Schock OFF
    //$CommandResult = Vistapool_Control("Hydrolyse", 28, "Cover-OFF"); // Hydrolyse mit 28%, Abdeckung OFF und Chlor-Schock OFF

  10. #10
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,297

    Die Zeile mit "echo $CommandResult; // $CommandResult kann jeweils "OK" oder "ERROR" zurückgeben." kannst du einfach mit "//" davor auskommentieren.
    Darin steht ja nur ein Wert, wenn du eine der oberen Funktionen ausführst. Da aber wohl alle auskommentiert sind bei dir, kann da in der Variable $CommandResult nichts stehen und deshalb die Fehlermeldung



    Wenn du den HomeMatic Aktor mit im IP-Symcon eingebunden hast, dann kannst du natürlich, abhängig von der Variable vom HomeMatic Aktor, das Verhalten der Pool-Steuerung beeinflussen/steuern.

    Beispiel:
    PHP-Code:
    if (GetValue($VariableHomeMaticAktor) == true)  // wenn das eine Bool-Variable ist bei deinem HM-Aktor
    {
        
    $CommandResult Vistapool_Control("Hydrolyse"29"Cover-ON"10); // Hydrolyse mit 29%, Abdeckung um 10% reduziert und Chlor-Schock OFF
    }
    else
    {
        
    $CommandResult Vistapool_Control("Hydrolyse"28"Cover-OFF"); // Hydrolyse mit 28%, Abdeckung OFF und Chlor-Schock OFF

    Viele Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

Ähnliche Themen

  1. Secvest IP steuerung über widget
    Von androiduser im Forum Haustechnik
    Antworten: 0
    Letzter Beitrag: 27.06.13, 16:51
  2. Pool-Steuerung
    Von wiesmchr im Forum HomeMatic
    Antworten: 13
    Letzter Beitrag: 12.04.11, 21:46
  3. Steuerung KeyMatic (r) über IPS
    Von DIVERMARIO im Forum Bastel-Ecke
    Antworten: 37
    Letzter Beitrag: 15.08.10, 10:54
  4. IPS Steuerung über Internet
    Von superflip im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 51
    Letzter Beitrag: 04.02.10, 13:49
  5. Steuerung von X-10 Komponenten über IPS
    Von daniel1005 im Forum Allgemeine Diskussion
    Antworten: 6
    Letzter Beitrag: 27.09.05, 12:28

Stichworte