Size: a a a

ioBroker smarthome

2020 December 11

ИК

Илья Киров in ioBroker smarthome
Вчера немного пошарив по сети, нашел пакет puppeteer - он втихаря запускает chromium и через него прогоняет html, может сохранить его в картинку.
На базе этого пакета есть обёртка - https://github.com/frinyvonnick/node-html-to-image
который можно в js-скриптах использовать для быстрого формирования картинки по шаблону html со вставкой значений и картинок.
источник

VM

Vasiliy M in ioBroker smarthome
Подскажите какой терморегулятор для теплого пола взять чтобы можно завести в иоб и желательно по проводу ?
источник

ИК

Илья Киров in ioBroker smarthome
Илья Киров
Вчера немного пошарив по сети, нашел пакет puppeteer - он втихаря запускает chromium и через него прогоняет html, может сохранить его в картинку.
На базе этого пакета есть обёртка - https://github.com/frinyvonnick/node-html-to-image
который можно в js-скриптах использовать для быстрого формирования картинки по шаблону html со вставкой значений и картинок.
ставится это конечно муторно и сама идея иметь где-то там под капотом еще браузер - не очень.
но, оно работает!
можно прям в скриптах формировать html и выводить его в картинку.

// преобразуем картинку с графиком в dataURI
const image = fs.readFileSync(filename);
const base64Image = Buffer.from(image).toString('base64');
const dataURI = 'data:image/jpeg;base64,' + base64Image;
// сформируем html и выведем в resultfilename
const resultfilename = '/tmp/graph4.png';
nodeHtmlToImage({
   output: resultfilename,
   html: `<html><style>
       H1 {
           font-size: 180%;
           font-family: Verdana, Arial, Helvetica, sans-serif;
           color: #333366;
           text-align: center;
       }
       </style><body><H1>График температуры в доме</H1>
       <img src="{{imageSource}}"/></body></html>`,
   content: { imageSource: dataURI }
}).then(()=>{
   // тут уже можно использовать картинку resultfilename
});
источник

ИК

Илья Киров in ioBroker smarthome
Илья Киров
ставится это конечно муторно и сама идея иметь где-то там под капотом еще браузер - не очень.
но, оно работает!
можно прям в скриптах формировать html и выводить его в картинку.

// преобразуем картинку с графиком в dataURI
const image = fs.readFileSync(filename);
const base64Image = Buffer.from(image).toString('base64');
const dataURI = 'data:image/jpeg;base64,' + base64Image;
// сформируем html и выведем в resultfilename
const resultfilename = '/tmp/graph4.png';
nodeHtmlToImage({
   output: resultfilename,
   html: `<html><style>
       H1 {
           font-size: 180%;
           font-family: Verdana, Arial, Helvetica, sans-serif;
           color: #333366;
           text-align: center;
       }
       </style><body><H1>График температуры в доме</H1>
       <img src="{{imageSource}}"/></body></html>`,
   content: { imageSource: dataURI }
}).then(()=>{
   // тут уже можно использовать картинку resultfilename
});
по времени генерация даже из простого html занимает у меня около 1-2х секунд
источник

B

Bluefox in ioBroker smarthome
Радченко Денис
все понятно чтото  с портом , занят  или чтото , но  в логах  в веб интерфейсе нет этой ошибки , а  раньше была
50005 занят. Но он не используется если всё прописать ручками, как ты сделал. Ну тогда расчехляй wireshark.
источник

B

Bluefox in ioBroker smarthome
Teemon
Можно иоброкер настроить с алисой так, чтобы вечером алиса говорила: "привет, уже 10 ночи, у вас не заперты двери, закрыть двери? скажите да или нет" ты такой "да" - и она закрывает?))))
Нет. Алиса не может инициировать вопрос. Насколько я знаю.
источник

B

Bluefox in ioBroker smarthome
Илья Киров
по времени генерация даже из простого html занимает у меня около 1-2х секунд
А чем phantom js не угодил?
источник

B

Bluefox in ioBroker smarthome
Я им с виза беру картинки
источник

ИК

Илья Киров in ioBroker smarthome
Bluefox
А чем phantom js не угодил?
не знаю :) не попробовал. слышал что он прекратил развиваться и что там долго формируется картинка.
вот как раз хотел узнать о скорости?
источник

B

Blaze in ioBroker smarthome
Bluefox
Нет. Алиса не может инициировать вопрос. Насколько я знаю.
Теоретически может. Инициатор -- генерящийся на лету сценарий, например node red так фразы произносит. Сценарий может запустить навык, который уже будет слушать ответ на базовую фразу
источник

AA

Andrey Anopov in ioBroker smarthome
Илья Киров
Вчера немного пошарив по сети, нашел пакет puppeteer - он втихаря запускает chromium и через него прогоняет html, может сохранить его в картинку.
На базе этого пакета есть обёртка - https://github.com/frinyvonnick/node-html-to-image
который можно в js-скриптах использовать для быстрого формирования картинки по шаблону html со вставкой значений и картинок.
Я с помощью неё написал инструкцию на форуме как сделать автопередачу показаний счётчиков. Интересно у кого нибудь получилось?
источник

T

Teemon in ioBroker smarthome
Илья Киров
Вчера немного пошарив по сети, нашел пакет puppeteer - он втихаря запускает chromium и через него прогоняет html, может сохранить его в картинку.
На базе этого пакета есть обёртка - https://github.com/frinyvonnick/node-html-to-image
который можно в js-скриптах использовать для быстрого формирования картинки по шаблону html со вставкой значений и картинок.
А нельзя как нибудь в canvas\svg рисовать из ноды?..
источник

T

Teemon in ioBroker smarthome
а потом уже конверт в жпег в конце?)
источник

ИК

Илья Киров in ioBroker smarthome
Teemon
А нельзя как нибудь в canvas\svg рисовать из ноды?..
Для рисования на канве есть другие пакеты, мне надо было текст с форматированием вывести и картинки.
источник

B

Bluefox in ioBroker smarthome
Илья Киров
не знаю :) не попробовал. слышал что он прекратил развиваться и что там долго формируется картинка.
вот как раз хотел узнать о скорости?
Там то же самое используется что и в puppetier. Так что по скорости одинаково
источник

ИК

Илья Киров in ioBroker smarthome
Bluefox
Там то же самое используется что и в puppetier. Так что по скорости одинаково
Хорошо, попробую его тоже
источник

B

Bluefox in ioBroker smarthome
Teemon
А нельзя как нибудь в canvas\svg рисовать из ноды?..
Можно. jsdom + canvas
источник

A

Anzor in ioBroker smarthome
Алексей Кравец
Алиса на данный момент бесплатно в нём
с небольшим ограничением в 200 команд (или обращений, я до конца не понял) в день. недавно настраивал на одном объекте, уперся в него за пару часов тестов
источник

АК

Алексей Кравец... in ioBroker smarthome
Anzor
с небольшим ограничением в 200 команд (или обращений, я до конца не понял) в день. недавно настраивал на одном объекте, уперся в него за пару часов тестов
Ок, условно бесплатная.
источник

A

Anzor in ioBroker smarthome
Teemon
а если платно будет то сколько?))
сейчас вроде акция 14 евро на год, а так 13,8 полгода, 24 год
источник