Alexey D.
Хотя я могу ошибаться чес говоря ..
Ruslan
я этот момент с партициями пока не совсем понял
Andy
Partition Tables — ESP-IDF Programming Guide v4.0-dev-1018-gbbafd5066 documentation https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/partition-tables.html
Alexey D.
Типа у тебя может быть несколько партиций nvs, каждая имеет ИМЯ-ПАРТИЦИИ В каждой партии есть параметры. У параметра есть ТЭГ, ИМЯ-ПАРАМЕТРА и ЗНАЧЕНИЕ. Имя партиции по умолчанию nvs (в таблице разделов тип nvs, имя nvs), если явно не указано имя партиции то используется имя nvs ТЭГ нужен для группировки параметров и избежания конфликтов между разными модулями (чтобы уменьшить риск использования одного и того же параметра). Ну и все
Alexey D.
Имя партиции - имя диска ТЭг - имя папки Имя параметра - имя файла Значение параметра - содержимое файла Рассматривайте такую аналогию
Ruslan
W (656) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
Ruslan
что-то не работает, изменил таблицу, потерялись данные по калибровке вайфая, но на оригинальную проблему это никак не повлияло
Alexey D.
У вас есть тип nvs с именем Wifi data А нужен nvs с именем nvs
Alexey D.
https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/storage/nvs_flash.html#_CPPv414nvs_flash_initv
Alexey D.
This API initialises the default NVS partition. The default NVS partition is the one that is labeled “nvs” in the partition table.
Alexey D.
А вот чем открывать раздел если он назван НЕ nvs https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/storage/nvs_flash.html#_CPPv424nvs_flash_init_partitionPKc
Alexey
у кого нить опен хаб мажордомо или домостикс стоят ? запутался что лучше юзать (
у кого нить опен хаб мажордомо или домостикс стоят ? запутался что лучше юзать (
Openhab но я не сравнивал. Кто какой юзает кому что нравиться
Alexey D.
опенХаб на джаве
Alexey D.
Ставится странно на всякие малинки
у кого нить опен хаб мажордомо или домостикс стоят ? запутался что лучше юзать (
Самое как мне кажется интересное так это облако приложение само определит сначала сервер ищит в локалке потом в облаке и не важно какой оператор хоть йота с их гребаным НАТом )) и развивается очень оперативно масштабно
Это я про openhab
Alexey
понял спс
Alexey
пойду тада разбираться с ним
Alexey
через инет москито общается осталось в опен хаб запихать
Alexey
вот им тестирую
Alexey
если кому надо
Hello
Всем доброго вечера/ночи) Решил я сделать web интерфейс для датчика co2 и для передачи данных между fronted/backend исрпользую websockets.. Но вот не особо понимаю почему не могу использовать свои переменные и функции внутри webSocket.broadcastTXT(). Использую библиотеку "WebSocketsServer". Вот код loop:
Slava
сделай тремя строками, обозначь переменную, присвой её значение функции, а потом бродкастни текст
Hello
Переделал. Ошибка ушла, но теперь клиент websocket не может открыть сессию.
Slava
почему не может?
Hello
Loop на connection status
Slava
может паузу сделаешь в лупе?
Hello
Я пробовал webSocket.broadcastTXT("test") закинуть в луп и сессия открывалась. Значения также принимались
Slava
delay вставь, думаю не успевает ws
Slava
точнее сказать webSocket.broadcastTXT() по таймеру делай, раз в секнду хотябы
Hello
сессия открывается спустя минуту
Hello
а потом данные передаются без задержки между датчиком и данными
Sneg.
Парни есть у кого скетч, что бы обороты двигателя тачки считать? Где то видел в сети, сейчас найти не могу, там вроде провод к высоковольтнику привязывался
MadDoc
После этого делаем бэкап и перемонтируем обратно в rw
MadDoc
Именно так всю жизнь и делались бэкапы в линухах
Alexey D.
Ну надо учитывать специфику приложений. Некоторые не обрадуются такому поведению (банально нтпд)
Ruslan
Если правильно раскидано по партишенам, бэкап корня занимает секунды
Alexey D.
Но бесполезен. У клиента задача бэкапить весь диск
Ruslan
Пусть купит Acronis 🙂
Alexey D.
На Raspberry
Alexey
veam rsync для бекапа еще можно
WhoAMe
по моему не даст он снять образ с примонтированной sd
dd позволит даже полностью перезаписать всю поверхность примонтированного блочного устройства. Есть даже такой хак: через сигнал переводишь все блочные в RO, dd полностью перезаписывает системный диск из образа другой операционки, ребут. И поднимается совершенно другая ОС
Alexey
только объемы должны быть одинаковы
Alexey
dd использует бекап даже пустого места
WhoAMe
Pigz через пайп от dd решает эту проблему блестяще
Alexey
спс почитаю
WhoAMe
Это просто zip, но многопоточный🤗
WhoAMe
А глобально для бэкапа обычных linuxов (не малины):borg backup - the best.
Alexey
WhoAMe
Админ?🐈
WhoAMe
Не, не ты) на коммутаторе пушистый админ)
😂
кто знает mosquito куда то записывает, хранит топики?
WhoAMe
По умолчанию - нет, только доставляет
WhoAMe
Есть разные варианты решения. Majordomo сам хранит, можно повесить отдельного клиента подписанного на все топики, пишущий в mysql
т.е. сам он не позволяет подключать сторонние базы данных?
WhoAMe
"он" - кто? Москит? Сам по себе - вроде нет
да москит
WhoAMe
https://it4it.club/topic/72-uchimsya-peresylat-dannye-s-mqtt-brokera-v-bazu-dannyh-mysql/
WhoAMe
Вот, посмотри. Откровенно говоря, мне не особо нравится это решение, но в целом - рабочее
спасибо
WhoAMe
Нз
Anonymous
Alex будет жить. Поприветствуем!
Anonymous
@gsgoldenstar будет жить. Поприветствуем!
VY Canis-Majoris
Всем привет! Подскажите пожалуйста, не могу настроить бота на NodeMcu ESP8266, бот тупо молчит.. VPN прокинут, на питоне пробовал, всё работает.. А вот плату настроить не могу... (((
VY Canis-Majoris
/******************************************************************* * An example of bot that receives commands and turns on and off * * an LED. * * * * written by Giacarlo Bacchio (Gianbacchio on Github) * * adapted by Brian Lough * *******************************************************************/ #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> // Initialize Wifi connection to the router char ssid[] = "wi-fi-0001"; // your network SSID (name) char password[] = "Reboot32167+"; // your network key // Initialize Telegram BOT #define BOTtoken "830513665:AAHyoUAo4LTUeUOR9iciTfLJ-aZpbxebv9s" // your Bot Token (Get from Botfather) WiFiClientSecure client; UniversalTelegramBot bot(BOTtoken, client); int Bot_mtbs = 1000; //mean time between scan messages long Bot_lasttime; //last time messages' scan has been done bool Start = false; const int ledPin = 0; int ledStatus = 0; void handleNewMessages(int numNewMessages) { Serial.println("handleNewMessages"); Serial.println(String(numNewMessages)); for (int i=0; i<numNewMessages; i++) { String chat_id = String(bot.messages[i].chat_id); String text = bot.messages[i].text; String from_name = bot.messages[i].from_name; if (from_name == "") from_name = "Guest"; if (text == "/ledon") { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) ledStatus = 1; bot.sendMessage(chat_id, "Led is ON", ""); } if (text == "/ledoff") { ledStatus = 0; digitalWrite(ledPin, LOW); // turn the LED off (LOW is the voltage level) bot.sendMessage(chat_id, "Led is OFF", ""); } if (text == "/status") { if(ledStatus){ bot.sendMessage(chat_id, "Led is ON", ""); } else { bot.sendMessage(chat_id, "Led is OFF", ""); } } if (text == "/start") { String welcome = "Welcome to Universal Arduino Telegram Bot library, " + from_name + ".\n"; welcome += "This is Flash Led Bot example.\n\n"; welcome += "/ledon : to switch the Led ON\n"; welcome += "/ledoff : to switch the Led OFF\n"; welcome += "/status : Returns current status of LED\n"; bot.sendMessage(chat_id, welcome, "Markdown"); } } } void setup() { Serial.begin(9600); // Set WiFi to station mode and disconnect from an AP if it was Previously // connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); // attempt to connect to Wifi network: Serial.print("Connecting Wifi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); pinMode(ledPin, OUTPUT); // initialize digital ledPin as an output. delay(10); digitalWrite(ledPin, LOW); // initialize pin as off } void loop() { if (millis() > Bot_lasttime + Bot_mtbs) { int numNewMessages = bot.getUpdates(bot.last_message_received + 1); while(numNewMessages) { Serial.println("got response"); handleNewMessages(numNewMessages); numNewMessages = bot.getUpdates(bot.last_message_received + 1); } Bot_lasttime = millis(); } }
VY Canis-Majoris
Ну вот например это код.. .
Slava
Для начала в сетапе вставь посылку сообщения в телеграм, проверь, что связь есть.
Slava
Коллеги, может кто посоветовать лёгкую для понимания и использования библиотеку вэбсокет для arduino ide. Может кто уже наступал на грабли и нашел лучшый вариант.
kibastus
т.е. сам он не позволяет подключать сторонние базы данных?
Это просто чатсервер с комнатами, он ничего не хранит а только обеспечивает обмен. Максимум может подвешивать retained сообщение в топике как послелнее актуальное. Для сохранения в базу нужно использовать внешний агент, который палит топики и тащит данные в базу. Есть самопальные скриптики для такого дела. Но есть и офигенное универсалтное решение - telegraf. У него пачка плагинов на инпут и пачка на аутпут. Задаешь в инпуте mqtt топики, а в аутпуте influxdb или mysql. И демон занимается перебросом данных. Только вчера запустил весь этот зоопарк во главе с графаной. Оч круто работает. Mysql юзать с iot данными типа моветон, есть для этого influx.
kibastus
https://habr.com/ru/post/449028/
Спасибо, интересно и печально
kibastus
https://habr.com/ru/post/449028/
Еще был мною замечен в активном пользовании узарубежных коллег https://prometheus.io/
kibastus
Это хранилище вместе с моделью реагирования на триггеры
kibastus
https://habr.com/ru/post/449028/
Изучил вопрос. Оказывается существует идеальная конструкция из прометея, timescaledb и графаны. Timescale выглядит намного православнее модного influx, за счет врожденной близости с postgesql. Прометей хорош для реагирования на алерты и кратковременного хранения. А для постоянного хранения к нему подключается timescale. Графана также цепляется на прометей и кажет свою красоту.