Esempio n. 1
0
function getAllStatus($md5_only, $format)
{
    $ajax = array();
    $meta = array();
    $result = retAllStatus();
    //Doors
    foreach ($result["result"] as $i2 => $v2) {
        $statusType = $v2["Type"];
        $statusHardware = $v2["HardwareName"];
        $statusName = $v2["Name"];
        if (($statusType == "Lighting 1" or $statusType == "Lighting 2" or $statusType == "Light/Switch") and strpos($statusName, "Door") == true and $statusHardware == "MySensors") {
            $ajax["doors"][$v2["idx"]]["Status"] = $v2["Status"];
            $ajax["doors"][$v2["idx"]]["Type"] = $v2["Type"];
            $ajax["doors"][$v2["idx"]]["Name"] = $v2["Name"];
        }
    }
    //Comfort
    foreach ($result["result"] as $i2 => $v2) {
        $statusType = $v2["Type"];
        $statusHardware = $v2["HardwareName"];
        $statusName = $v2["Name"];
        if ($statusType == "Temp + Humidity") {
            $ajax["comfort"][$v2["idx"]]["Type"] = $v2["Type"];
            $ajax["comfort"][$v2["idx"]]["Name"] = $v2["Name"];
            $ajax["comfort"][$v2["idx"]]["Temperature"] = number_format((double) $v2["Temp"], 2, '.', '');
            $ajax["comfort"][$v2["idx"]]["Humidity"] = $v2["Humidity"];
            $ajax["comfort"][$v2["idx"]]["ComfortLevel"] = $v2["HumidityStatus"];
        }
    }
    //Dummy
    foreach ($result["result"] as $i2 => $v2) {
        $statusType = $v2["Type"];
        $statusHardware = $v2["HardwareName"];
        $statusName = $v2["Name"];
        if ($statusHardware == "Hardware Dummy") {
            if (strpos($v2["Status"], "Set") !== false) {
                $ajax["dummy"][$v2["idx"]]["Status"] = "Transition";
            } else {
                $ajax["dummy"][$v2["idx"]]["Status"] = $v2["Status"];
            }
            if ($v2["Status"] == "Off") {
                $ajax["dummy"][$v2["idx"]]["Level"] = "0";
            } else {
                $ajax["dummy"][$v2["idx"]]["Level"] = $v2["Level"];
            }
            $ajax["dummy"][$v2["idx"]]["Type"] = $v2["Type"];
            $ajax["dummy"][$v2["idx"]]["Name"] = $v2["Name"];
        }
    }
    //Security - must enable this
    if (defined('SECURITY_ENABLE')) {
        foreach ($result["result"] as $i2 => $v2) {
            $security_idx = $v2["idx"];
            if ($security_idx == SECURITY_ID) {
                $securityStatus = $v2["Status"];
                $ajax["security"]["Normal"]["Name"] = "Normal";
                $ajax["security"]["Normal"]["Status"] = "disabled";
                $ajax["security"]["ArmAway"]["Name"] = "Arm Away";
                $ajax["security"]["ArmAway"]["Status"] = "disabled";
                $ajax["security"]["ArmHome"]["Name"] = "Arm Home";
                $ajax["security"]["ArmHome"]["Status"] = "disabled";
                if ($securityStatus == "Normal") {
                    $ajax["security"]["Normal"]["Status"] = "enabled";
                } elseif ($securityStatus == "Arm Away") {
                    $ajax["security"]["ArmAway"]["Status"] = "enabled";
                } elseif ($securityStatus == "Arm Home") {
                    $ajax["security"]["ArmHome"]["Status"] = "enabled";
                }
            }
        }
    }
    //Lights
    foreach ($result["result"] as $i2 => $v2) {
        $statusType = $v2["Type"];
        $statusHardware = $v2["HardwareName"];
        $statusName = $v2["Name"];
        if (($statusType == "Lighting 1" or $statusType == "Lighting 2" or $statusType == "Light/Switch") and strpos($statusName, "Aux") == false and strpos($statusName, "Bath") == false and strpos($statusName, "Fan") == false and $statusHardware == "Z-Wave") {
            if (strpos($v2["Status"], "Set") !== false) {
                $ajax["lights"][$v2["idx"]]["Status"] = "Transition";
            } else {
                $ajax["lights"][$v2["idx"]]["Status"] = $v2["Status"];
            }
            if ($v2["Status"] == "Off") {
                $ajax["lights"][$v2["idx"]]["Level"] = "0";
            } else {
                $ajax["lights"][$v2["idx"]]["Level"] = $v2["Level"];
            }
            $ajax["lights"][$v2["idx"]]["Type"] = $v2["Type"];
            $ajax["lights"][$v2["idx"]]["Name"] = $v2["Name"];
        }
    }
    $md5Lights = md5(print_r($ajax["lights"], true));
    //Fans
    foreach ($result["result"] as $i2 => $v2) {
        $statusType = $v2["Type"];
        $statusHardware = $v2["HardwareName"];
        $statusName = $v2["Name"];
        if (strpos($statusName, "Fan") == true and strpos($statusName, "Bath") == false and $statusHardware == "Z-Wave") {
            if (strpos($v2["Status"], "Set") !== false) {
                $ajax["fans"][$v2["idx"]]["Status"] = "Transition";
            } else {
                $ajax["fans"][$v2["idx"]]["Status"] = $v2["Status"];
            }
            $ajax["fans"][$v2["idx"]]["Level"] = $v2["Level"];
            $ajax["fans"][$v2["idx"]]["Type"] = $v2["Type"];
            $ajax["fans"][$v2["idx"]]["Name"] = $v2["Name"];
        }
    }
    $curlScene = curl_init(DOMOTICZ_JSON_URL . "?type=scenes");
    curl_setopt($curlScene, CURLOPT_RETURNTRANSFER, 1);
    $sceneResult = json_decode(curl_exec($curlScene), true);
    curl_close($curlScene);
    foreach ($sceneResult["result"] as $i3 => $v3) {
        $ajax["scenes"][$v3["idx"]]["Name"] = $v3["Name"];
        $pos = strpos($v3["Description"], $md5Lights);
        if ($pos === false) {
            $ajax["scenes"][$v3["idx"]]["Status"] = "Deactivated";
        } else {
            $ajax["scenes"][$v3["idx"]]["Status"] = "Activated";
        }
    }
    $md5 = md5(print_r($ajax, true));
    if ($md5_only == "true") {
        return $md5;
    } else {
        $ajax["meta"]["md5"] = $md5;
        $meta["meta"]["md5"] = $md5;
        $ajax["meta"]["lightd5"] = $md5Lights;
        $meta["meta"]["lightd5"] = $md5Lights;
        $timestamp = timestamp();
        $ajax["meta"]["timestamp"] = $timestamp;
        $meta["meta"]["timestamp"] = $timestamp;
        $ret_md5 = $_GET["md5"];
        if ($ret_md5 == $md5) {
            if ($format == "array") {
                return $meta;
            } else {
                return json_encode($meta);
            }
        } else {
            if ($format == "array") {
                return $ajax;
            } else {
                return json_encode($ajax);
            }
        }
    }
}
Esempio n. 2
0
            $statusIdx = $v2["idx"];
            if ($statusIdx == "27") {
                $motionStatus = $v2["Status"];
            }
        }
        if ($motionStatus == "Off") {
            setDimmerStatus(9, "On");
        } elseif ($motionStatus == "On") {
            $timeisit = dayTime();
            if ($timeisit != "day") {
                setDimmerStatus(10, "On");
            }
        }
        //Garage Door
    } elseif ($idx == 29) {
        $statusResulted = retAllStatus();
        foreach ($statusResulted["result"] as $i2 => $v2) {
            $statusIdx = $v2["idx"];
            if ($statusIdx == "27") {
                $motionStatus = $v2["Status"];
            }
        }
        if ($motionStatus == "Off") {
            setDimmerStatus(7, "On");
        }
    }
}
if ($internalAction == "presence") {
    if ($action == "on") {
        $message = '{"Timestamp":"' . $timestamp . '","Host":"phpConnector","Event":"Presence Started","Sensor":' . $idx . ',"Sensor_Name":"' . $deviceName . '"}';
        logThis($message);