Fetch. Использование as-value

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

Доброе время суток!
Есть прибор(гигрометр), который "умеет" отдавать данные по GET- запросу.
1. Пробуем делать через запись файла в NAND память

Код: Выделить всё

/tool fetch keep-result=yes url="http://192.168.0.157:80/sensors" mode=http dst-path="Sensor.txt"#
#:local BMEDate [/file get [/file find name=Sensor.txt] contents];#
#:put $BMEDate
всё ОК, работает, вывод
hostname:Sensor;bmet:9.66;bmeh:51.95;bmep:755.44;

2. Т.к.особенностью работы прибора по назначению является его частый опрос, не хочется "теребить" флэшку, потому пытаюсь сделать так:

Код: Выделить всё

:local BMEDate [/tool fetch keep-result=yes url="http://192.168.0.157:80/sensors" mode=http as-value output=user];
:put $BMEDate
не работает, вывод
failure: please use 'output' option
Что я делаю не так?
Здесь читал viewtopic.php?f=14&t=12271
не помогло :)


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Зачем делаете keep-result=yes во втором варианте ? Вы же сохранять не хотите ...

Код: Выделить всё

:local BMEDate [/tool fetch keep-result=yes url="http://192.168.0.157:80/sensors" mode=http as-value output=user];
:put $BMEDate
Надо так:

Код: Выделить всё

:local BMEDate [/tool fetch url="http://192.168.0.157:80/sensors" keep-result=no as-value output=user];
:put $BMEDate

Благодаря Вашему вопросу я сделал вывод что Вы REX не Rextended с официального форума https://forum.mikrotik.com/viewtopic.php?t=177551 ...
А я то думал что Вы это Вы ... :-):


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

Sertik, я как чуйствовал, что именно Вы ответите :) да, спасибо, сейчас попробую....
просто параллельно думаю дальше, вот и тормознул :smu:sche_nie: с keep-result.....
Благодаря Вашему вопросу я сделал вывод что Вы REX не Rextended с официального форума https://forum.mikrotik.com/viewtopic.php?t=177551 ...
А я то думал что Вы это Вы ... :-):
Так в теме я Вам сразу сказал, что это не я :-) куда мне до него.....хотя, если Вы посмотрите тему на том форуме, то увидите, куда он меня послал, а я тем не менее, успешно решил свою задачу :-):
Последний раз редактировалось REX 18 ноя 2022, 13:34, всего редактировалось 1 раз.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Пожалуйста, лишь бы помогло ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

я похоже иду вслед за Вам и наступаю на те же грабли почти :-) как минимум второй раз, первый раз был вопрос по SNMP


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Дорогу осилит идущий.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

в общем...не помогло

Код: Выделить всё

:local BMEDate [/tool fetch keep-result=no url="http://192.168.0.157:80/sensors" mode=http as-value output=user];
:put $BMEDate
завершение с аналогичной ошибкой.....
failure: please use 'output' option
пробовал и глобальную переменную, смысла здесь в ней нет, всё в одной области видения,но тем не менее.....всё одно...


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

С feth надо поступать так (всегда заворачивать в обработчик ошибок на тот случай, если feth по каким-либо причинам не сработает:

Код: Выделить всё

do {
:local BMEDate [/tool fetch url="http://192.168.0.157:80/sensors" keep-result=no as-value output=user];
} on-error={}
Или так:

Код: Выделить всё

:local BMEDate [/tool fetch url="http://192.168.0.157:80/sensors" keep-result=no as-value output=user];
:if ((BMEDate->"result")!="finished") do={:put "error"} else={:set $BMEDate (BMEDate->"data")}
Но первый вариант надежнее.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

да, странно, надо подумать в чём собака зарыта ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

так это фрагмент будущего скрипта, он ведь должен работать? вот и думаю....где собака порылась....
p.s. кстати, вот так вот отвечают на офф.форуме , это к тому, кто есть кто :-)
https://forum.mikrotik.com/viewtopic.ph ... 19#p600019
Последний раз редактировалось REX 18 ноя 2022, 14:17, всего редактировалось 2 раза.


Ответить