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); } } } }
$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);