воскресенье, 29 ноября 2020 г.

Самый простой способ получить токены устройств из Mi Home

Для подключения устройств от Xiaomi, например, в Home Assistant нужны токены. Есть много вариантов как их получить, но как правило приходится лазить по разным менюшкам для каждого девайса. Особенно проблемно бывает выцепить токен для пылесоса (Xiaomi Vacuum разных генераций).

Но, можно просто получить все ip, mac-адреса и токены одним списком.

Сам Mi Home должен быть от EDA Studio, в оригинальном, естественно, ничего не выйдет.

Открываем, заходим в Профиль - Настройки от EDA Studio - Настройка устройств. 

Все. Все устройства с нужными данными тут.




*извиняюсь за качество скриншотов, неожидано на блоггер напали шакалы...


вторник, 24 ноября 2020 г.

Python, telnetlib и Mikrotik

Доброго.
Мини-хинт, если вдруг понадобится получить что-то с Микротика через telnetlib.
У них очень разукрашенный консольный вывод, ни read_until ни expect не хотят это переваривать. Но если данные все-таки нужно получить, и получить именно через telnetlib а не дополнительные либы? Ну да, вот хочется..
К делу. всего три нажатия на клавиатуру. При логине через telnetlib на микротик нужно к имени пользователя дописать +ct. Да, это все =)

То есть. Если логин 'admin' - отправлять нужно 'admin+ct'

tn_login = f'{login}+ct\r\n'.encode('ascii')

И дальше как обычно.

понедельник, 9 ноября 2020 г.

Заметка по настройке почты в Graylog для Gmail и Яндекс Почта для домена.

Graylog - интересный сервер для логирования всего и вся в одном месте, с фильтрацией, алертами и прочими интересными штуками.
Пришлось немного повозиться*, но итоговые конфиги такие:
#1) Gmail:
transport_email_enabled = true
transport_email_hostname = smtp.gmail.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
transport_email_auth_username = graylog_test@yourdomain.com
transport_email_auth_password = supersecret
transport_email_subject_prefix = [graylog]
transport_email_from_email = graylog_test@yourdomain.com
#2) Yandex Почта для домена:
transport_email_enabled = true
transport_email_hostname = smtp.yandex.ru
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
transport_email_auth_username = graylog@yourdomain.com
transport_email_auth_password = supersecret
transport_email_subject_prefix = [graylog]
transport_email_from_email = graylog@yourdomain.com
*ВАЖНО для яндекса - при создании нового почтового ящика нужно зайти в него через браузер и принять Пользовательское соглашение, без этого работать не будет даже с верными настройками.

четверг, 19 сентября 2019 г.

Ubuntu 19.04 (и другие). Фиксим LibreOffice и SAMBA шары.

Проблема: при открытии файлов LibreOffice с samba ресурсов, офис или ругается на general input/output error, или вообще просто молча ничего не делает.

Из возможных решений предлагается коментить строчки
X-GIO-NoFuse=true
в файлах libreoffice*.desktop в директории /usr/share/applications, еще кучу интересных вариантов... Но прежде всего стоит попробовать сделать:
sudo apt install libreoffice-gnome
вдруг забыли.. Скорее всего проблема решится =)

вторник, 22 января 2019 г.

RKNreporter - python скрипт для автоматического получения с сайта portal.rfc-revizor.ru

Лень - двигатель если не прогресса.. то хотя бы просто двигатель =)
И так. Скрипт для автоматического получения отчетов по работе "ревизоров" с сайта portal.rfc-revizor.ru
Полностью автоматического. Да, там капча ) но ничего страшного, она слабенькая.

Лежит тут: https://github.com/KindEvilDm/RKNreporter

Для работы нужен python3, tesseract, ImageMagic(convert) и опционально mutt.
Все это ставим из репов. Тестировалось на python 3.5.2, если меньше - гарантий нет )
Для облегчения жизни ставим так же pip:
sudo apt install python3-pip
Клонируем репу себе, ставим нужные для работы либы. В директории проекта:
pip3 install -r requirements.txt
Копируем дефолтный конфиг в config и правим:
cp config.default config
nano config
 Конфиг подробно прокомментирован, проблем быть не должно.

Ставим +x rknreporter.py:
chmod +x rknreporter.py
И можно пробовать:
./rknreporter.py
Краткая версия отчета + полный csv файл отчета придут на почту или в телеграм, в зависимости от того, что было выбрано.

Если нужно проверять отчеты по нескольким ревизорам (а такое бывает, да) можно сделать несколько конфигов и запускать скрипт передавая его в параметрах:
./rknreporter.py --config config.isp1
./rknreporter.py --config config.isp2 
В параметрах так же можно передавать дату (по умолчанию проверят за вчера):
./rknreporter.py --date today
./rknreporter.py --date 01.01.2019
И еще много разного (вдруг пригодится)
  -h, --help                    show this help message and exit
  --orgname ORGNAME             Название организации
  --login LOGIN                 Логин на portal.rfc-revizor.ru
  --password PASSWORD           Пароль на portal.rfc-revizor.ru
  --date DATE                   Дата в формате 01.01.2018
  --retry-count RETRY_COUNT     Кол-во попыток.
  --notify NOTIFY               Куда отправлять (telegram/email)
  --contact CONTACT             адрес (почта или tg-id)
  --config CONFIG               Файл конфигурации.
Ставим в крон/systemd timer и расслабляемся.

Работает уже около года, особых проблем (и вопросов=) ) замечено не было.

Вопросы, предложения, комментарии, фичреквесты: 
ds@nettools.club
или сюда:
https://t.me/KindEvil
а так же в issues на гитхабе.

пятница, 18 января 2019 г.

четверг, 17 января 2019 г.

Получаем свой внешний ip в python скрипте.

Без регистраци и смс =)
Получаем свой ip в python скрипте на раз-два:

import requests


url = "https://nettools.club/api/ip"
ip = requests.get(url)
print(ip.text)

Если нужна более подробная информация:

import requests
import json


url = "https://nettools.club/api/ipall.json"
ipall = json.loads(requests.get(url).text)

print(ipall.get('ip'))
print(ipall.get('isp'))
print(ipall.get('latitude'))
print(ipall.get('longitude'))

Список всех доступных полей:

for key, value in ipall.items():
    print(f"{key:15}: {value}")

понедельник, 14 января 2019 г.

TypeError: 'PosixPath' object is not iterable. Python version < 3.6

Заметочка в мемориз, если вдруг придется тестить код, написанный для python 3.6+ в более ранних версиях. Вроде просто, но почему-то искал этот нюанс долго.

https://realpython.com/python-pathlib/

>>> from configparser import ConfigParser
>>> path = pathlib.Path('config.txt')
>>> cfg = ConfigParser()
>>> cfg.read(path)                     # Error on Python < 3.6
TypeError: 'PosixPath' object is not iterable
>>> cfg.read(str(path))                # Works on Python >= 3.4
['config.txt']

понедельник, 17 декабря 2018 г.

NetTools.club - сайт с полезными сетевыми (и не только) инструментами.

NetTools.club - быстрый сайтик, максимально легкий, без тяжеловесных графических украшательств, построенный полностью на Flask (принципиально было, да =)).

Из полезных инструментов:
MyIP - классика жанра, побыстрому определить свой внешний IP в инете.

Mac Vendor Lookup - поиск вендора по mac-адресу. В некоторых сетевых расследованиях незаменимая штука.

IPtools - стандартные ping, traceroute, whois, dns, etc.

CRON Editor - realtime генератор расписания планировщика. Можно онлайн поиграться с параметрами, и получить то, что именно нужно (сверившись с human-friendly выводом результата)

Cisco Rate Limit Calculator - Небольшая но полезная утилита, позволяет быстро рассчитать онлайн rate limits для cisco-девайсов.

IPcalc - ip-калькулятор онлайн, на входе адрес и маска, на выходе - полная информация по подсети, включая адрес, хосты, бродкаст, etc.

Availability from Russia - проверка доступности ресурсов из-за Великого Русского Фаерволла.

Сайт активно допиливается и развивается, в ближайшем будущем ожидается еще много полезных утилит =)

Идеи, советы, фичреквесты можно слать на admin@nettools.club или в ПМ твиттера вот сюда: @NettoolsClub

LL&P!


воскресенье, 25 февраля 2018 г.

Venv + python3 + Ubuntu 16.04 = Время офигительных историй =)

Ну, такое... По порядку. 
Свежая система, python3, делаем python3 -m venv venv и получаем:


$ python3 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
    apt-get install python3-venv
You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.
Failing command: ['/home/user/venv/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Ну что же, надо так надо. Делаем sudo apt-get install python3-venv, потом еще раз python3 -m venv venv, и...:


$ python3 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
    apt-get install python3-venv
You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.
Failing command: ['/home/user/venv/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
WTF??

Есть описание подобных проблем, с вариантами решений типа:
python3 -m venv myvenv --without-pip --system-site-packages
myvenv/bin/python3 -m pip install Django
Но, для начала... стоит проверить настройку локалей =) Забавно, но факт, строчки типа:
export LC_ALL="en_US.UTF-8" 
export LC_CTYPE="en_US.UTF-8" 
sudo dpkg-reconfigure locales
скопипащенные в консоль (с подстановкой локалей по вкусу) решают множество проблем в мгновение ока =)

четверг, 5 октября 2017 г.

MacOS High Sierra Homebrew Permission Denied

После обновления операционки пивоварня заболела..

Permission denied @ dir_s_mkdir - /usr/local/Frameworks
так же не хотела линковать python3 и прочее. Изменение прав целиком на /usr/local/ в новой ос запрещено.

Лечится все это дело в 3 строчки:

sudo mkdir /usr/local/include
sudo mkdir /usr/local/Frameworks
(на всякий случай, если и директории не создались..)

sudo chown -R $(whoami) $(brew --prefix)/*

а этим добиваем, и все пойдет как по маслу =)

среда, 5 октября 2016 г.

Быстрофикс: E: Sub-process /usr/bin/dpkg returned an error code (1)

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

И так, если вдруг все плохо:
$ sudo apt-get install SOMETHING
Reading package lists... Done
Building dependency tree      
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 kde-telepathy-minimal : Depends: kde-config-telepathy-accounts (>= 15.04.0) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
И даже предложенный способ фейлится:
$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-image-4.2.0-41-generic linux-image-extra-4.2.0-41-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  kde-config-telepathy-accounts
The following NEW packages will be installed:
  kde-config-telepathy-accounts
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
2 not fully installed or removed.
Need to get 0 B/138 kB of archives.
After this operation, 828 kB of additional disk space will be used.
Do you want to continue? [Y/n]
(Reading database ... 555580 files and directories currently installed.)
Preparing to unpack .../kde-config-telepathy-accounts_4%3a15.08.2-0ubuntu1_amd64.deb ...
Unpacking kde-config-telepathy-accounts (4:15.08.2-0ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/kde-config-telepathy-accounts_4%3a15.08.2-0ubuntu1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/accounts/services/google-im.service', which is also in package account-plugin-google 0.12+15.10.20150723-0ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/kde-config-telepathy-accounts_4%3a15.08.2-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Быстрофикс: 
Идем в 
/var/lib/dpkg/info
и удаляем оттуда все что связано с проблемным пакетом:
$ rm account-plugin-google.* 
Проверяем результат:
$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-image-4.2.0-41-generic linux-image-extra-4.2.0-41-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  kde-config-telepathy-accounts
The following NEW packages will be installed:
  kde-config-telepathy-accounts
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
2 not fully installed or removed.
Need to get 0 B/138 kB of archives.
After this operation, 828 kB of additional disk space will be used.
Do you want to continue? [Y/n]
dpkg: warning: files list file for package 'account-plugin-google' missing; assuming package has no files currently installed
(Reading database ... 555570 files and directories currently installed.)
Preparing to unpack .../kde-config-telepathy-accounts_4%3a15.08.2-0ubuntu1_amd64.deb ...
Unpacking kde-config-telepathy-accounts (4:15.08.2-0ubuntu1) ...
Setting up kde-config-telepathy-accounts (4:15.08.2-0ubuntu1) ...
Setting up kde-telepathy-minimal (15.04.20ubuntu1) ...
Setting up kde-telepathy (15.04.20ubuntu1) ...
Processing triggers for libc-bin (2.21-0ubuntu4.3) ...
$

Все работает. 
А дальше уже разбор полетов по желанию в свободное время.

воскресенье, 11 января 2015 г.

MTR на Mac OS X

Наконец-то появился вполне рабочий MTR (My traceroute, Matt's traceroute) для mac os - полезное консольное приложение для диагностики сети. Совмещает в себе traceroute и ping.

Забираем установочный pkg отсюда, устанавливаем.

Дальше все просто:
bash-3.2#/usr/local/sbin/mtr google.com
(от суперпользователя) и наслаждаемся результатом.

Но наслаждение будет не полным, если каждый раз для запуска вбивать полный путь до исполняемого файла. Поэтому в своей домашней директории в файле .bash_profile добавляем эти строчки:
alias mtr='/usr/local/sbin/mtr'
alias sudo='sudo '
и после перезапуска терминала становится все просто:

$ sudo mtr google.com

пятница, 29 августа 2014 г.

Мониторинг Cacti и квест про "Success [0 Items, 0 Rows]"

Случается у Кактуса вот такая штука:

Associated Data Queries
Data Query NameDebuggingRe-Index MethodStatus
1) SNMP - Interface Statistics(Verbose Query)Uptime Goes BackwardsSuccess [0 Items, 0 Rows]

Вроде и девайсы определяются по snmp и основная информация (вендор, модель, прошивка) отображается, но в Data Queries все по нулям. 

На форумах много разных способов решения данной проблемы, в большинстве своем не помогающих =)

Самое первое, что нужно сделать - это проверить бд какти. 
Делаем:
#mysqlcheck -uroot -p cacti
Enter password:
Если везде все "OK", то идем дальше курить форумы. Если ошибки есть то повторяем команду с ключиком -r:
#mysqlcheck -uroot -p cacti -r
И.... обновляем страничку в кактусе =)
Success [181 Items, 20 Rows]
 Самый простой способ, который стоит попробовать вначале. В большинстве случаев помогает.

среда, 14 мая 2014 г.

Arduino: боремся с "avrdude: stk500_recv(): programmer is not responding" Глава 2. Mac OS X

Актуально для 10.9 Mavericks и нескольких предыдущих версий Mac OS.

При компиляции проекта как и в прошлый раз, arduino ide выдает ошибку

avrdude: stk500_recv(): programmer is not responding

Чтобы ее побороть, нужно просто установить более старые драйвера FTDM...

Все просто, качаем вот этот дмг, монтируем и устанавливаем то, которое называется FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg.

Остается только перезапустить Arduino IDE и в бой.

Мне помогло. Оставлю тут, чтобы не потерялось.

вторник, 10 декабря 2013 г.

Arduino + LCD J204A

Есть такой вот экранчик (J204A):
И есть Arduino. Нужно подружить. И так...

Коммутация.

LCDArduino PinОписание
VSSGNDGND
VDD+5V+5V
V0GNDКонтраст. На GND через переменный резистор
RS12Контроль записи
RW11Режим (read/write)
E10Enable. Разрешает запись
D0-не используется
D1-не используется
D2-не используется
D3-не используется
D455
D544
D633
D722
A13Подсветка. Через резистор на +(Можно тоже переменный)
KGNDПодсветка. GND.


Простейший скетч:

_________________________________________________________________________
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int backLight = 13;    // pin 13 управление подсветкой

void setup()
{
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH);  // Включаем подсветку.(High - вкл, Low - выкл.)
  lcd.begin(20,4);                           // cols, rows - формат экрана. подробнее в сноске*
  lcd.clear();                                   // очищаем экран
  lcd.setCursor(0,0);                      // ставим курсор в координаты 0,0
  lcd.print("Hello, World");          // Текст, который нужно вывести
  lcd.setCursor(0,1);                     // ставим курсор в 0,1 (вторая строка)
  lcd.print("Arduino + LCD");    // Текст, который нужно вывести в эту строку
  lcd.setCursor(0,2);                     // etc...**
  lcd.print("Model J204A");
  lcd.setCursor(0,3);
  lcd.print("kindevil.tk");
}

void loop()
{
}
________________________________________________________________________

*Формат экрана зависит от вашего LCD, конкретно у этой модели 4 строки по 20 символов (20,4). Заменить на свои.
**Кол-во строк зависит от LCD. Для четырех-строчного это строки от 0 до 3. Для двух-строчного будет от 0 до 1 соответственно. И т.д..

Результат будет примерно таким =)


Собственно это все. Дальнейшие действия зависят полностью от фантазии и потребностей.

Больше примеров в папке вашей Arduino IDE в разделе Примеры - LiquidCrystal =)
http://arduino.cc/en/Tutorial/LiquidCrystal

Arduino: боремся с "avrdude: stk500_recv(): programmer is not responding"

Собрали новый проект.
Написали скетч.
Прошиваем....
Ооопс!
avrdude: stk500_recv(): programmer is not responding
"Но ведь вчера же все работало!"(с)

Не беда, советов по устранению на форумах много:

  1. В Arduino IDE не правильно указан порт к которому в системе подключено устройство. Перепроверяем.
  2. В Arduino IDE не правильно указана модель нашей железки. Перепроверяем.
  3. Проблема с кабелем. Заменяем
  4. Еще есть проблемы со скоростью порта и прочими разными, это все расписано...
Но... есть еще один вариант, про который нигде не написано... 
Если до этого arduino использовалась в других проектах и в нее уже прошит другой скетч... В новой схеме она может просто замыкаться уже назначенными на другое дело пинами =) 

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

UPD: По просьбам из комментариев еще один частый вариант: помимо правильно указанной платы в Arduino IDE нужно проверить правильность указания процессора (просто ATmega или Old Bootloader)
Спасибо за комментарии и активность в теме =)

среда, 9 октября 2013 г.

Ubuntu Vs Awesome WM

Решили попробовать awesome в качестве оконного менеджера, но при входе в систему в списке оконных менеджеров он так и не появился?) не беда, делов всего на пару минут =)
Все что нужно сделать - открыть файлик
/usr/share/xsessions/awesome.desktop 
в любом удобном редакторе (хоть nano, хоть vi, хоть gedit) и подредактировать строчку NoDisplay=true, подменив true на false.
Должно получиться так:
Было
[Desktop Entry]
Encoding=UTF-8
Name=awesome
Comment=Highly configurable framework window manager
NoDisplay=true
TryExec=awesome
Exec=awesome
Type=Application


Стало
[Desktop Entry]
Encoding=UTF-8
Name=awesome
Comment=Highly configurable framework window manager
NoDisplay=false
TryExec=awesome
Exec=awesome
Type=Application
Сохраняем.

Вот, собственно, и все =) можно проверять - все на месте.

суббота, 8 июня 2013 г.

Настало время охренительных историй =)

История первая:

История вторая:
Оператор СТП 
Здравствуйте, если у вас появились вопросы, я с удовольствием Вам помогу!

Гость 
в доме был ремон отключяли электр и интернет включили интернет работает -тв нет

Оператор СТП 
Опишите проблему подробнее. Интернет у вас работает а тв нет? Телевидение у вас тоже наше, или от другой компании?

Гость 
налаживал ваш мастер легко

Оператор СТП 
Телевидение у вас тоже наше, или от другой компании?

Гость 
тв в ноутбуке корея

Хороших выходных =)

среда, 29 мая 2013 г.

Проблемы с запуском Android Studio от Google

И так, после анонса Android Studio (основанной, кстати, на intelliJIDEA) от Корпорации Добра нам непременно захотелось ее пощупать. Скачали, установили, запустили... И ничего :) В смысле совсем ничего не происходит после даблклика на ярлыке.
В большинстве случаев проблема в том, что нужно правильно указать переменную JAVA_HOME. Как это сделать в Linux уже расписано в самом конце этой заметки.
А здесь решение для Windows 7:
Панель управления -> Система и безопасность -> Система -> Дополнительные параметры системы -> вкладка Дополнительно -> Переменные среды.
Здесь нужно создать переменную с именем JAVA_HOME и вписать полный путь до jdk (у вас может отличаться от того, что на скрине).

Все, можно в бой! (иногда приходится перезагружаться ;) )