А если телефон ночью перешел в режим экономии и отключил блютуз вафлю и тд. МД - ага ставлю режим охраны.
Как следствие семья заик под утро, так как система начнет думать что произошло вторжение на частную собственность

Модератор: immortal
Можно проще, НАААААМНОГО прощеVlado писал(а):Главное что костыли вполне рабочие, не на выставку делаем а для себя.
Мне пришлось систему установить, началось с воды -в скважине вода с большим количеством железа fe, fe2, fe3 и в местности хоть 100м бей скважину железа тож много.
Как вариант свои очистные, а из этого выходит либо что то китай-подобное за150000р (насчитали в среднем в фирмах) на неизвестно каких реагентах.
Либо свои очистные и тут все включать вручную или автоматизироваться.
В итоге бочка для отстаивания+компрессор+ионизатор+медицинская перекись дозировано и пара тройка фильтров ватных по 50р всем мд рулит.
Вода вполне норм
так все и началось
МегаД подороже ардуинки и только на заказ, маяться с доставкой потому и исключил-по мне так mega2560 или due вполне достаточноМожно проще, НАААААМНОГО проще![]()
А лучше бы рулило что то типа МегаДна автомате, именно процессом очистки.
Фильтр ватный? Не проще три фильтра формата по моему SL ниточные для магистральных линий? Стоят копейки, фильтруют до состояния непропускания воды
Готов вам помочь безвоздмездно - то есть даромпросто мне интересно
))
п.с. железо он же в воде одновалентное желез, как помню может окислить кислород, тобишь компрессор для рыбок еще дабавить, нафиг перекись водорода? ионизотор? - как обеззараживание? да проще УФ трубку пропускную поставить. Да и не одну бочку а две, переливашки., в одной отстаивается, в другую на через верхний уровень первой поступает отстоявшеяся вода. Да еще плюсом сделать сброс жижи с первой бочки
Варианты:Vlado писал(а):МегаД подороже ардуинки и только на заказ, маяться с доставкой потому и исключил-по мне так mega2560 или due вполне достаточноМожно проще, НАААААМНОГО проще![]()
А лучше бы рулило что то типа МегаДна автомате, именно процессом очистки.
Фильтр ватный? Не проще три фильтра формата по моему SL ниточные для магистральных линий? Стоят копейки, фильтруют до состояния непропускания воды
Готов вам помочь безвоздмездно - то есть даромпросто мне интересно
))
п.с. железо он же в воде одновалентное желез, как помню может окислить кислород, тобишь компрессор для рыбок еще дабавить, нафиг перекись водорода? ионизотор? - как обеззараживание? да проще УФ трубку пропускную поставить. Да и не одну бочку а две, переливашки., в одной отстаивается, в другую на через верхний уровень первой поступает отстоявшеяся вода. Да еще плюсом сделать сброс жижи с первой бочки
Когда строил дом в стены засунул метров 600 витой пары-так же определил место для сервера в логическом центре дома.
Потому сразу планировал централизованное управление и возможность включения всех систем вручную.
Железо 1-2 валентное в том числе и бактериальное (3 валентное) так что систему тупо по простой схеме включить можно , но лучше что -бы параметры можно было менять...Так как и состав воды зима-лето меняется..
1.Емкость для отстаивания -это первый шаг(маловато рыжая вода все равно через какое то время)
2.Компрессор сильно не улучшил положение
3.ионизатор улучшил но все равно вода при отстаивании рыжела(3 валентное железо осталось)
4.дозированно медицинская перекись до конца улучшила установку вода чистая
фильтра пару больших моющихся и пару ватных(тупо дешевые по 27.50р беру в мерилене) перекись копейки ..раз в квартал чищу от осадка он как раз и скапливается в фильтрах...все это дело в подвале а там местане много сильно не разгуляешься и (планировал промывку под тип обратного осмоса, но заленился
итог работает около года-нареканий нет
Кстати выход из режима охрана по паролю бы сделать в идеале на сцене
Есть идеи как![]()
Код: Выделить всё
<form id="auth">
<input type="password" id="pass" autofocus /><br/>
<div id="err" style="display: none; color: red;">Кривой пароль</div>
<button>Войти</button>
</form>
<script>
auth.addEventListener('submit', function (evt){
evt.preventDefault(); // отменяем действие по умолчанию
var xhr = new XMLHttpRequest;
xhr.open('POST', '/ctrl.php', false); // отправляем синхронный запрос на сервер
xhr.send('pass='+pass.value);
if( xhr.responseText == 'invalid' ){ // проверяем ответ
err.style.display = ''; // выводим ошибку
} else {
location.href = xhr.responseText; // переходим на страницу
}
});
</script>
Код: Выделить всё
<?php
$pass = isset($_POST['pass']) ? trim($_POST['pass']) : '';
if($pass == $secret){
echo "/secret-page.html";
} else {
echo "invalid";
}
?>
Код: Выделить всё
/*
Define('HOME_NETWORK', '192.168.0.*');
Define('EXT_ACCESS_USERNAME', 'user');
Define('EXT_ACCESS_PASSWORD', 'password');
*/
куда его проще положить что бы и систему не грузил и регулярно отрабатывал быif (getGlobal('Wodonagr1'.'.'.'alive') == '1') {
if (getGlobal('Wodonagr1'.'.'.'status') > '10' && getGlobal('Wodonagr1'.'.'.'status') < '100') {
if (getGlobal("Wodonagr1.status") < '65') {
callMethod("boil1.turnOn");
}
if (getGlobal("Wodonagr1.status") > '75') {
callMethod("boil1.turnOff");
}
if (getGlobal("Wodonagr1.status") < '55') {
callMethod("boil2.turnOn");
}
if (getGlobal("Wodonagr1.status") > '65') {
callMethod("boil2.turnOff");
}
if (getGlobal("Wodonagr1.status") < '50') {
callMethod("boil3.turnOn");
}
if (getGlobal("Wodonagr1.status") > '60') {
callMethod("boil3.turnOff");
}
}
}
if (getGlobal('Wodonagr2'.'.'.'alive') == '1') {
if (getGlobal('Wodonagr2'.'.'.'status') > '10' && getGlobal('Wodonagr2'.'.'.'status') < '100') {
if (getGlobal("Wodonagr2.status") < '65') {
callMethod("boil1.turnOn");
}
if (getGlobal("Wodonagr2.status") > '75') {
callMethod("boil1.turnOff");
}
if (getGlobal("Wodonagr2.status") < '55') {
callMethod("boil2.turnOn");
}
if (getGlobal("Wodonagr2.status") > '65') {
callMethod("boil2.turnOff");
}
if (getGlobal("Wodonagr2.status") < '50') {
callMethod("boil3.turnOn");
}
if (getGlobal("Wodonagr2.status") > '60') {
callMethod("boil3.turnOff");
}
}
Wodonagr1- темп датчик
Wodonagr2 -темп датчик
boil -тены их 3
реализовал через код в простых устройствах
}
Код: Выделить всё
$temperatura = gg("Sensor_temp03.value");
$tempmin = 10;
$tempmax = 75;
if ($temperatura < $tempmin)
callMethod("Relay01.turnOn");
if ($temperatura > $tempmax)
callMethod("Relay01.turnOff");
Код: Выделить всё
if (getGlobal('Wodonagr1'.'.'.'alive') == '1') если жив
{
if (getGlobal('Wodonagr1'.'.'.'status') > '10' && если температура больше getGlobal('Wodonagr1'.'.'.'status') < '100') { и меньше
if (getGlobal("Wodonagr1.status") < '65') { условие в условие
callMethod("boil1.turnOn");
}
В mqtt приходят значения в свойства, как то сразу указал статус в качестве изменения(так было по умолчанию по моему)И значение лучше все таки в .value, статус .status должен иметь либо 1 - жив, либо 0 - не жив )) не жив а вкл или выкл ))
Это если один датчик выйдет из строя ( Wodonagr2.alive=0 к примеру )П.с. и зачем по двум датчикам условия для одних и тех же значений? Коллизия будет:
Пример:
Т1 - температура датчика 1
Т2 - температура датчика 2