Новая жизнь с понедельника

Хватит читать ту ересь, что пишут другие, пора писать свою ересь. Очень много времени уходит на чиение социальных лент, собственные же мысли остаются невыраженными. Пользуясь неизвестностью этого сайта, начну пописывать здесь, дабы систематизировать  сумбур и организовать разброд.  Программ не декларировать, рамок не ставить. Как говориться — «трохи-трохи, тильки для сэбэ».

Хоть и говорят, что время стандалон-блогов ушло, но. Да, точка после «но» — самый уместный вариант.

Сделал на datadigging.ru help для бота Refbot

Рефбот — бот в мессенджере «Telegram»,  рассчитывающий  экономию   при рефинансировании  имеющихся потребительских кредитов.

Официальная страничка бота будет по этой ссылке.

Палатка, медведь, утро, лес — что может быть прекраснее?

Попытаюсь вернуться к сайтописательству

Начал делать  новый сайт про данные — http://datadigging.ru   про данные и свой  тернистый путь в этом направлении.  Пока ни на что не претендую, все как всегда — исключительно для себя.

Python. Подбор всех возможных вариантов

Занимаюсь, по мере сил, дальнейшим изучением  языка Python для целей, понятно, порабощения мира.

На выходных усердно тупил над простенькой, казалось бы, проблемкой:
надо было для набора слов (предложения) написать скрипт, составляющий все множество вариантов с тем условием, что у каждого слова есть некоторое количество омонимов. Частично задача упрощена тем, что каждое слово имеет свою позицию, т.е. кол-во вариантов исчисляется не факториалом, а просто перемножением количеств составных частей.

В итоге скрипт получился, но кажется мне он несколько тяжеловесным.
Может, кто натолкнет на мысль, как сделать прощще?

Читать далее

Приложениеписателям на заметку или коротко о неглавном

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

Хозяйке на заметку:

Температурные датчики (DS18B20, которые по технологии 1-wire) я проложил двумя типами проводов:

  • от щедрости – витой парой (2 датчика, в совокупности около 20 метров),
  • от жадности — 4х-жильным телефонным проводом (3 датчика, в совокупности около 40 метров).

Датчики, которые висят на витой паре (используя три провода из 8) – глючат – т.е. с некоторой регулярностью выдают ошибку (тот провод, который подлинее, выдает глючный результат в в ~20% замеров, тот который покороче – редко, но тоже бывает). Те датчики, которые висят на в разы более длинном телефонном проводе, работают, т-т-т, корректно и аккуратно.

Замена датчика на новый ни к чему не привела, при этом на стендовых испытаниях, когда датчики подключены напрямую к Raspberry (через макетную плату), все работает предельно правильно. Стало быть, собака порылась в проводе.

Попробую заменить все провода на телефонный провод, благо это недорохо (300 руб за 100 метров против 1000 руб. за 100 метров витой пары), да и осталось его вроде бы еще.

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

Маленькие Муки самообразования или как вывести демона на свет

Некоторое время назад я был свято уверен, что образование, в его текущем виде, отжило мвой срок. Технически, вся информация сейчас есть в интернете – начиная от фундаментальных трудов по любому вопросу, заканчивая практическими случаями. Знай себе, мучай Яндекс с Гуглом и образовывайся.

Однако жеж, не все так феерично получается на практике.

Вчерась озаботился такой простой, на первый взгляд, задачей, как автозапуск программы, следящей за отоплением, температурой и тд. Программка, кстати, становится все краше, обрастает всякими полезностями, типа логирования данных, расчетом времени работы каждого контура, добавляются новые датчики – в общем растет, дитятко.

Так вот, нашел в интернетах кучу примеров, как прописать эту программку в автозагрузку Линукса. Не с первого раза, но вроде получилось – прописал   ее в rc.local, перезагрузился, скомандовал «ps –eF» – и вот она, работает среди других процессов. И даже мейлы отправляет согласно заложенному алгоритму.

Одна незадача – работает она в фоне, не отображая положенную информацию в терминале. Чую что собака порылась в том, что надо каким то образом указать чтобы программа отображалась в нужном tty, а как это сделать – не знаю. Поиск ничего не дает, такое впечатление, что все нужны демоны, а явно работающие программы не нужны.

Ок, пошел с другого боку. Прописал автозагрузку в etc/xdg/autostart. В «ярлыке» указал, что запускать в Lxterminal. Не с первого раза, но опять таки все заработало. Но образовалась другая засада — во первых, в этом случае программа запускается, только если запущен vncserver, чего на самом деле не хочется, а во вторых – этот самый vnserver не получается вкорячить в автозагрузку, хучь то, как это делается, прописано в сети аж в нескольких вариантах. Но вот не работает и все.

И вот тут бы старший товарищ посмотрел бы опытным взглядом и указал бы на глупую ошибку неопытного программиста , но нету его, все сам по материалам из инету.

В общем, чувствую, еще придется помучаться.

З.Ы. параллельно с упоением читаю что ни попадя про Big Data.  И прям  зреет во мне уверенность, что как закончу с  робосмотрителем, так напишу прогарммулину, которая будет шерстить интернет и на основе этого информационного мусора выдавиать нужные и ненужные прогнозы.

Не программисты мы, но кое-что мОгем…

… или о блок-схеме рефлекторных механизмов полоумного дома:

Как только добился от программы управления отоплением работоспособности, так сразу понял, что можно сделать лучше и принялся ее переделывать. В результате запутался, как Макар, который потерял телят в трех соснах.

Чтобы привести   мысли в порядок — таки нарисовал схему программы (я понимаю, что с этого, по-хорошему, надо было начать, но я же не настоящий сварщик J)

Может, кому будет интересно посмотреть, покритиковать, дополнить. Каждый пункт – отдельно прописанная функция. То что курсивом – пока еще не написал.

Позже выложу код к кажной функции.

Запуск программы:

  • Определение времени старта
  • Чтение конфигурации из ini файла (целевые значения температуры, критические значения температуры, периодичность проверки, часы формирования email-отчета, список рассылки, etc)
  • Чтение температуры с датчиков
  • Чтение датчика наличия тока (датчика тока пока в наличии нет, планирую найти UPS, который может делится этой инфой с Raspberry)
  • Расчет времени следующего отчета
  • Отчет о запуске системы в консоль
  • Отчет о запуске системы на email
  • Запись показателей температуры в лог

Основной цикл (раз в минуту):

  • Чтение конфигурации из ini файла (чтобы можно было скармливать программе новые установки температуры без перезапуска программы)
  • Чтение температуры с датчиков
  • Чтение датчика наличия тока в сети
    • Если ток отсутствует => отправка email
  • Сравнение температур с критическими показателями
    • Если t < tcrit => отправка сообщения на email, отчет в консоль
  • Сравнение температур с показателями прошлой проверки
    • Если t > tlast +0.2, отчет в консоль, запись температуры в лог
    • Если t< tlast -0.2, отчет в консоль, запись температуры в лог
  • Сравнение температур с целевыми показателями
    • Если t < tnorm -1 and насос выключен => запуск соответствующего насоса, отчет в консоль, смена статуса насоса, определение времени старта насоса
    • Если t > tnorm +1 and насос включен => выключение соответствующего насоса, отчет в консоль, расчет времени работы насоса, запись времени работы насоса в лог
  • Сравнение текущего времени с временем следующего отчета
    • Если текущее время >времени отчета:
      • Отправка email
      • Отчет в консоль
      • Запись температуры в лог
      • Расчет времени следующего отчета

Новости с полей:

1. Прокатил детей на байдарке. Ответственно заявляю – сплавляться по Малой Истре в июле – глупое и бесперспективное занятие. Воды мало, много завалов. Попозже составлю отчетЪ

2. Проложил   часть сети по дому. С розетками для интернету вопросов вроде не возникло, все обжалось и коннектится. А вот с проводами для термодатчиков не все гладко.

Контрольное подключение   двух размещенных в нужных местах термодатчиков к распберри обнаружило необнаружение одного из них. Термодатчики подключались по трем проводкам из витой пары. На стенде все работало, а вот в боевых условиях — нетЪ. Печалька.

Есть подозрение, что не хватило 3.3 вольтового напряжения (датчик требует мин 3 Вольта), которое просело из-за длины провода, а также из-за наличия цепи двух датчиков. Вчера уже в ночи было недосуг проверять, но в след. выходные   попробую запитать их от 5 В. Если это не спасет отца русского Скайнета, буду прозванивать цепь.

Параллельно возникли сомнения в работоспособности управляющего контура. Предполагается, что 3.3 В сигнал с распберри будет переключать реле, которое, в свою очередь будет подавать 220 на насосы. На стенде все работало (я к настоящий пацан уже мигал не светодиодами, а нормальными 60-Ваттными лампочками, имитирующими насосы), но вот откроется ли реле от 3,3В сигнала с учетами потерь в 15 метрах витой пары – баальшой вопрос. Пока изучаю что такое транзистор и как с его помощью увеличить напряжение сигнала. Идет туго.

З.Ы. С работы пока не могу ответить всем поздравившим меня с ДР, но очень благодарен за поздравления всем к то поздравил и всем, кто хотел поздравить, но постеснялся.