Arduino, ESP8266 Lua, Raspberry Pi 2 && OpenHab. Умный дом: азы управления.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 12 май 2015.

  1. ИгорьК

    ИгорьК Гуру

    Предполагаю, что солнце крутится вокруг земли равномерно со скоростью 360/24*60 угла в минуту. :cool:

    Поэтому, если хватать углы после перехода солнца через горизонт то это тоже время :)
     
  2. SergeiL

    SergeiL Оракул Модератор

    Главное, чтобы дух Коперника не услышал:).

    Это более справедливо к широтам, близким экватору. :)

    Там продолжительность сумерек практически одинаковая, круглый год, 20-24 минуты.
    Гражданские сумерки это от 0 до -6 градусов.

    Есть же еще наклон оси земли, и чем ближе к полюсам тем больше разница в угле захода
    солнца за горизонт, в период равноденствий и летнего или зимнего солнцестояния.:)

    Для Москвы длительность гражданских сумерек уже 35-60 минут.
    Для Питера еще больше. В дни летнего солнцестояния гражданские сумерки длятся от заката до рассвета.
    А в Мурманске, солнце совсем не заходит за горизонт летом.;)
     
    Последнее редактирование: 3 июл 2018
    Egony нравится это.
  3. Dgoneee

    Dgoneee Нуб

    Здравствуйте, я новичёк в сложном деле освоения OpenHab, работал с жпио малинки по этой инструкции, https://www.mksmarthouse.com/gpio-binding , получилось всё как и должно было... upload_2018-8-1_17-51-16.png

    при нажатии кнопки Button интерфейс показывает "закрыто",
    1) Вопрос как сделать чтобы при нажатии кнопки включался или выключался (изменял положение ) канал один, подозреваю что делается это в правилах, но как писать правила не представляю, если не сложно покажите как их можно писать?
    2) значки отображаются как кружёчки с палочкой как можно поменять менять, например на лампочку...
    зарание большое спасибо....
     
  4. Arkad_snz

    Arkad_snz Гик

    Не понятно - чего вы добиваетесь? - Индикации восхода/заката, или комфорта в помещении?
    Если комфорта, то и регистрируте его уровень, и корректируйте лампами.
    Давайте еще включать свет по "соседка Маня пошла корову доить"

    У чукчи спрашивают:
    - Какая будет зима - теплая/холодная?
    - Однако - все люди с метеостанции в лес ушли - дрова на зиму заготавливают - холодная будет зима!
    ----- Продолжение:
    Чукча отправляется в лес за дровами на зиму.
    На следующий день метеорологи - "Видать, зима будет холодная - вон - чукча дрова запасает!"

    А, все потому, что все ориентируются не на первичные признаки (показания приборов, приметы...), а на побочные (никак не связанные с зимой)., а это уже шаманизм!
    При таком способе детектирования "темно, пора свет включать" впору не включатель дергать, а в бубен стучать!
     
    Последнее редактирование: 2 авг 2018
  5. SergeiL

    SergeiL Оракул Модератор

    То, чего я добивался - в этом вопросе достигнуто.;)

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

    Критерий того, что все работает как надо - домочадцы не задумываются, что что-то не так.
    На мой вопрос, как со светом в коридорах я слышу ответ: "А что, там что то не так ? не замечали?"
    То есть человек не должен задумываться, что что-то нужно делать дополнительно, или что-то не так работает.

    А как Ваша Bluetooth-гарнитура для мобилы поживает? Закончили, уже прочти год прошел?;)
     
  6. Arkad_snz

    Arkad_snz Гик

    Ну, вот - вы все конкретно расписали без заката/рассвета.
    Вот и ставьте датчики освещенности и присутствия в комнатах и коридоре. Логику - см. выше ваше же описание.

    Супергарнитура (если вы про телефон-перчатку) - медленно ворочается в голове - эти полгода провел в больнице - только и имел возможность подумать, да порисовать немного. Массу идей накопил.
     
  7. SergeiL

    SergeiL Оракул Модератор

    Сочувствую:(.
    У меня как раз, все прекрасно работает по расчету угла на солнце, если Вы не поняли. ;)
    Поэтому, датчики освещенности не нужны :)
     
  8. Arkad_snz

    Arkad_snz Гик

    Рад за вас.
    А, как вы пользуетесь освещением без Ардуино!?
    Если вас просят - "Включи свет - темно - не вижу ничего", то вы берете сектант, измеряете высоту солнца, долго на бумажке вычисляете - попадает ли измеренное значение "в вилку", и отвечаете - "Солнце еще высоко - неграм пора на плантации!", "Отставить свет!".
    Теперь я сочувствую...
    Для полноты образа солцепоклонника рекомендую сделать карманные солнечные часы - стильно будет выглядеть попытка ответить на вопрос коллеги - "Не подскажете - который сейчас час - не пора ли на обед?".
     
    Последнее редактирование: 3 авг 2018
  9. ИгорьК

    ИгорьК Гуру

    Знаете, у меня уличное освещение работает приблизительно так же, по солнцу. Может, вы просто сделаете еще что-то полезное и поделитесь со всеми, а критиковать не будете?
     
  10. Arkad_snz

    Arkad_snz Гик

    "приблизительно так же" - уличное освещение регулируется освещенностью, а не углом на солнце.
    Угол на источник, и освещенность - это "так же"!?
    Не, корреляция, конечно, есть но она не равна единице!.
    Или "похоже" - "то же", что и "равно"!?
     
  11. ИгорьК

    ИгорьК Гуру

    У меня свет на улице включается через 30 минут после захода солнца и никакая освещенность при этом не измеряется.
     
  12. Arkad_snz

    Arkad_snz Гик

    Чудо!
    Свет на столбе зажигается сам собой, ниотчего, нипочему, и, видимо, низачем!
     
  13. ИгорьК

    ИгорьК Гуру

    Да. А что?
     
  14. SergeiL

    SergeiL Оракул Модератор

    Ну да, это как для древнего Египтянина часы.
    По стрелкам понятно когда утро, день, ночь, и не нужно из дворца выходить и на освещенность смотреть.;)
     
  15. edgi

    edgi Нерд

    Здравствуйте! Вы как то давным давно писали эту заметку с тех пор много воды утекло и яндекс сильно изменился внедрив api и плату за использования яндекс погоды. Искал новые методы получения данных, но толком ничего не нашел. Удалось только следующее:
    https://export.yandex.ru/bar/reginfo.xml?region=ХХХХХ
    Регион можно посмотреть тут https://pogoda.yandex.ru/moscow/informer

    img src="//info.weather.yandex.net/213/1_white.ru.png?domain=ru" border="0" alt="Яндекс.Погода"/
    213 это регион

    Может кому то пригодиться кто будет искать (спасибо kongen):
    Код (Text):
    Group MyWeather
        Number    YandexTemp    "Температура [%.1f °C]"    <temperature>    { http="<[http://export.yandex.ru/bar/reginfo.xml?region=14.xml:30000:REGEX(.*?</pressure>.*<temperature.*>(.*?)</temperature>.*<time_zone>.*?)]" }
        Number    YandexHumi    "Влажность [%s %%]"    <humidity>    { http="<[http://export.yandex.ru/bar/reginfo.xml?region=213.xml:120000:REGEX(.*?<dampness>(.*?)</dampness>.*)]" }
        Number    YandexWind    "Ветер [%.1f м/с]"    <wind>                { http="<[http://export.yandex.ru/bar/reginfo.xml?region=213.xml:120000:REGEX(.*?<wind_speed>(.*?)</wind_speed>.*)]" }
        Number    YandexPress   "Давление [%d mm.Hg]"    { http="<[http://export.yandex.ru/bar/reginfo.xml?region=213.xml:120000:REGEX(.*?<pressure>(.*?)</pressure>.*)]" }
        String    YandexType    "За окном [%s]"    { http="<[http://export.yandex.ru/bar/reginfo.xml?region=213.xml:30000:REGEX(.*?<weather_type>(.*?)</weather_type>.*)]" }
     
    Последнее редактирование: 17 авг 2018
    ИгорьК нравится это.
  16. Еще раз привет комрады!

    Понял свою ошибку в постановлении вопроса!=)

    Вопрос вот в чем заключается:

    Есть Item типа String который хранит в себе состояние выбранного режима,
    при изменении режима я хочу чтобы новое состояние записалось в переменную, для того что бы после перезагрузки сервера взять из этой переменной значение и отправить его по mqtt.

    Если я в правилах указываю
    Код (Java):
    var newRegim = "automatic"
    то после перезагрузки я могу и присвоить это значение itemу через postUpdate()
    и отправить по mqtt.Выглядит примерно так:
    Код (Java):
    var newRegim = "automatic"

    rule "Restore data after reboot"
    when
        System started
    then
        createTimer(now.plusSeconds(5)) [|
        KlimatControlRegim.postUpdate(newRegim)
        publish("mosquitto", "/openHAB/out/KlimatControlRegim/command",newRegim)
        ]
    end
    Раньше я сохранял в переменную вот так
    Код (Java):
    var newRegim

    rule "SaveState"
    when
      Item KlimatControlRegim changed
    then
      newRegim = KlimatControlRegim.state.toString()
      logInfo("rules", '"' + newRegim + '"')
    end
    и все работало, но теперь что то после обновления я не могу понять как мне сохранить значение itemа
    причем если в выше указанном коде "SaveState" я скажу при изменении отправить по mqtt, то он отправляет как надо, а если вызвать эту переменную после перезагрузки то она равна NULL

    Нуждаюсь в вашей помощи, все понятные мне варианты не сработали...
     
  17. SergeiL

    SergeiL Оракул Модератор

    А у кого-нибудь использовался iCloud биндинг?
    У меня, в OH2 - перестал работать около месяца назад.
    Пишет: OFFLINE - COMMUNICATION_ERROR Проблема сертификата.
    Сегодня все обновил, включая Яву - так и не работает - разбираюсь...
     
  18. ZAZ-965

    ZAZ-965 Гуру

    У iCloud новый сертификат с 5 августа, может в JRE он еще отсутствует? Можно проверить его наличие (исходный каталог java\bin\ пароль changeit )
    Код (Bash):
    keytool -list -keystore ..\lib\security\cacerts | findstr /C:"6F:5A:7A:E4:47:53:FA:D6:55:93:10:2D:07:BE:4A:4F:8B:0D:A4:EE"
    Если отсутствует, можно добавить по методике http://forum.amperka.ru/threads/Ошибка-загрузки-в-менеджере-плат.15650/#post-173095

    Здесь есть грамотней решение -
    Код (Bash):
    echo -n | openssl s_client -servername fmipmobile.icloud.com -host fmipmobile.icloud.com -port 443 -prexit -showcerts 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/icloud2.crt
    cd /tmp

    csplit -f cert /tmp/icloud2.crt '/^-----BEGIN CERTIFICATE-----/' {*}

    // back to java dir, in my case /usr/lib/java-8
    bin/keytool -importcert -file /tmp/cert01 -alias icloudfmi1 -trustcacerts -keystore ./jre/lib/security/cacerts -storepass changeit
    bin/keytool -importcert -file /tmp/cert02 -alias icloudfmi2 -trustcacerts -keystore ./jre/lib/security/cacerts -storepass changeit
    sudo systemctl stop openhab2.service
    sudo systemctl start openhab2.service
     
    Последнее редактирование: 20 авг 2018
    SergeiL и ИгорьК нравится это.
  19. SergeiL

    SergeiL Оракул Модератор

    Спасибо! Буду разбираться.
     
  20. SergeiL

    SergeiL Оракул Модератор

    Параллельно с Вами пришел к этому же решению!
    Пришел поделиться, результатом - увидел Ваше редактирование.

    Все заработало!

    Сертификат нужно устанавливать именно для <fmipmobile.icloud.com>, не для <icloud.com>

    Вариант рабочий, но нужно смотреть содержимое нарезанных командой csplit файлов.
    <cert01>, например, у меня оказался пустым, поэтому проверив содержимое, установил именно реальный сертификат.

    И да, https://community.openhab.org открывается только через VPN. Роскомпозор...