Страница 1 из 4

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

Добавлено: 18 ноя 2022, 13:06
REX
Доброе время суток!
Есть прибор(гигрометр), который "умеет" отдавать данные по 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
не помогло :)

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

Добавлено: 18 ноя 2022, 13:25
Sertik
Зачем делаете 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 ...
А я то думал что Вы это Вы ... :-):

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

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

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

Добавлено: 18 ноя 2022, 13:34
Sertik
Пожалуйста, лишь бы помогло ...

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

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

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

Добавлено: 18 ноя 2022, 13:37
Sertik
Дорогу осилит идущий.

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

Добавлено: 18 ноя 2022, 13:38
REX
в общем...не помогло

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

: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
пробовал и глобальную переменную, смысла здесь в ней нет, всё в одной области видения,но тем не менее.....всё одно...

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

Добавлено: 18 ноя 2022, 13:45
Sertik
С 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")}
Но первый вариант надежнее.

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

Добавлено: 18 ноя 2022, 14:08
Sertik
да, странно, надо подумать в чём собака зарыта ...

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

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