Добрый день,
Я создал рецепт IFTTT о том, что, если охранная система «myfox» активирована, на моем NAS выполняется скрипт php (192.165.x.x). Сценарий php должен запускать хранимую процедуру в моей базе данных mysql.
Следующий скрипт PHP был протестирован другими способами, и я уверен, что он работает:
<?php
/*
php_update_mode_armed.php
*****************************************************************************************
* This script updates the value of the components in the table tbl_eedomus_current_mode
* It calls the stored procedure 'sp_tbl_eedomus_current_mode_armed'
*****************************************************************************************
Version 1.00, 09.06.2017, Initial version of the script
*/mainProcess();
function mainProcess()
{
$ServerIP = "192.165.x.x";
$sqlUser = "domoos";
$sqlDatabase = "domoos";
$pw = "myPass";
// Connect
$mysqli = new mysqli($ServerIP, $sqlUser, $pw, $sqlDatabase);
if(!$mysqli) {[![enter image description here][1]][1]
header('Location: error.php?error=DbConnectionFailure');
die();
}
// Call stored procedure sp_tbl_eedomus_current_mode_armed
if(!$mysqli->query("CALL sp_tbl_eedomus_current_mode_armed ()"))
{
echo "OK";
if($mysqli) $mysqli->close(); // Close DB connection
//header('Location: error.php?error=QueryFailure');
die();
}
if($mysqli) $mysqli->close(); // Close DB connection
}?>
Ниже, также, снимок экрана моей «тогда» части рецепта IFTTT.
Я делаю что-то здесь не так или использование IFTTT не подходит для цели, которую я пытаюсь достичь здесь?
Большое спасибо за вашу помощь в этом вопросе и хорошего дня.
Скорее всего, IFTTT не может получить доступ к вашему NAS из Интернета из-за брандмауэра домашнего маршрутизатора и т. Д. Кроме того, IP-адрес, используемый в IFTTT, должен быть не локальным, как 192.168. *, А вашим публичным IP-адресом. Вы можете понять это, погуглил «что мой ip».
Лучший способ проверить свои настройки с помощью ноутбука — это отключиться от локальной сети Wi-Fi, подключить телефон к ноутбуку и попробовать зайти на IP-адрес NAS, чтобы убедиться, что он все еще работает. Вы можете использовать приложение Chrome Postman для отправки POST-запросов.
Если все в порядке, заставьте PHP регистрировать входящие соединения, записывая в файл. file_put_contents("log.txt", print_r($_REQUESTS, true));
Я бы предложил сначала выполнить запрос GET с типом содержимого по умолчанию. Удачи!
Других решений пока нет …