NEWS
Node red
-
Ну на будущее:
/opt/iobroker/node_modules/iobroker.node-red/userdata/flows.json
Я, кстати, в новой версии убрал flows из папки, где они могут удалиться и переместил их в
/opt/iobroker/iobroker-data/node-red/flows.json
Можешь попробовать новую версию?
cd /opt/iobroker ./iobroker stop node-red.0 npm install https://github.com/ioBroker/ioBroker.node-red/tarball/master ./iobroker start node-red.0Важно! Сохрани перед этим все свои flows!!!
-
Не получается у меня вытянуть sessionid. Что я делаю не так? Где вообще почитать можно про нод ред? На каком языке пишутся функции?
! [{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":86,"y":100,"z":"865a081c.79a5f8","wires":[["6368c27e.9c973c"]]},{"id":"62c44e09.9d3bb","type":"debug","name":"","active":true,"console":"false","complete":"false","x":597,"y":160,"z":"865a081c.79a5f8","wires":[]},{"id":"6368c27e.9c973c","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/":[["f057ea4b.0fa818","3d13c92d.c2ec36"]]},{"id":"f057ea4b.0fa818","type":"function","name":"","func":"if (msg.payload.indexOf('")[1];\n\n return [msg];\n }\n","outputs":1,"valid":true,"x":415,"y":64,"z":"865a081c.79a5f8","wires":[["62c44e09.9d3bb"]]},{"id":"3d13c92d.c2ec36","type":"debug","name":"","active":true,"console":"false","complete":"false","x":429,"y":233,"z":"865a081c.79a5f8","wires":[]}]
Вроде что то получилось, но не знаю как избавиться от мусора в конце:
! [{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":86,"y":100,"z":"865a081c.79a5f8","wires":[["6368c27e.9c973c"]]},{"id":"62c44e09.9d3bb","type":"debug","name":"","active":true,"console":"false","complete":"false","x":597,"y":160,"z":"865a081c.79a5f8","wires":[]},{"id":"6368c27e.9c973c","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/":[["f057ea4b.0fa818","3d13c92d.c2ec36"]]},{"id":"f057ea4b.0fa818","type":"function","name":"","func":"if (~msg.payload.indexOf('")[0];\n// msg.payload.frequency = parseFloat(words[2].split(":")[1]);\n// msg.payload.time = words[1].split(">")[1];\n\n return [msg];\n }\n","outputs":1,"valid":true,"x":415,"y":64,"z":"865a081c.79a5f8","wires":[["62c44e09.9d3bb"]]},{"id":"3d13c92d.c2ec36","type":"debug","name":"","active":true,"console":"false","complete":"false","x":429,"y":233,"z":"865a081c.79a5f8","wires":[]}]
Победил):
! [{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":94,"y":100,"z":"865a081c.79a5f8","wires":[["6368c27e.9c973c"]]},{"id":"62c44e09.9d3bb","type":"debug","name":"SessionId","active":true,"console":"false","complete":"payload","x":636,"y":99,"z":"865a081c.79a5f8","wires":[]},{"id":"6368c27e.9c973c","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/":[["f057ea4b.0fa818"]]},{"id":"f057ea4b.0fa818","type":"function","name":"sessionid","func":"if (~msg.payload.indexOf('
Теперь как передать sessionid в пост запросе вообще не понятно.
-
Передается ли заголовок?
! [{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":94,"y":100,"z":"865a081c.79a5f8","wires":[["6368c27e.9c973c"]]},{"id":"6368c27e.9c973c","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/":[["f057ea4b.0fa818"]]},{"id":"f057ea4b.0fa818","type":"function","name":"sessionid","func":"if (~msg.payload.indexOf('<link_text text="https://www.sistemagorod.ru/lk/auth?typ … pin=xxxx\n">https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\n</link_text> msg.headers = {\n 'Origin': 'https://www.sistemagorod.ru',\n 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36',\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Referer': 'https://www.sistemagorod.ru/lk/%27,%5Cn 'Cookie': 'JSESSIONID=' + msg.sessionid\n }\n\n var url= "https://www.sistemagorod.ru/lk/auth?typ ... n\nmsg.url = url;\n\nreturn msg;","outputs":1,"valid":true,"x":93,"y":179,"z":"865a081c.79a5f8","wires":[["ef96486b.1069b8"]]},{"id":"ef96486b.1069b8","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":232,"y":183,"z":"865a081c.79a5f8","wires":[["62c44e09.9d3bb","5bc33d6.fa43cc4"]]}]
авторизация вроде проходит <response><state>ok</state></response>
но на следующую страницу не пускает.
Продолжение…
Выводит в дебаг непонятную кодировку
! [msg.payload] : string
! ��<ko�v������cr�i*?��)��6�����apԕę"u��� ���/�����Τi��o���/cy�$�i�d�="��!">%%���L�����s���s��=sf���ܸ���?&�\������>�t�p|��ϋ��ū��%�X"WuQ5dS�TQ)>��#\�4[�BaggG�Y4�^��O���T� ��T��Un�<���G�����qf��{��[/spoiler]</ko�v������cr�i*?��)��6�����apԕę"u���> -
Как распарсить заголовок ответа от сервера??? sessionid оказывается надо брать после авторизации из заголовка ответа.
Получилось вытянть из заголовка Разные парраметры, но "set-cookie" никак не могу
{ "topic": "", "payload": "\r\n<response>\r\n <state>captcha-needed</state>\r\n</response>\r\n\r\n", "_msgid": "f9ba9259.06457", "sessionid": "6E14E8C7BF3AFDE8E63FBF0EA015BFB4", "headers": { "date": "Sun, 24 May 2015 13:07:42 GMT", "server": "Apache/2.4.7 (Ubuntu)", "content-length": "100", "set-cookie": [ "JSESSIONID=61D7BF78F3FBE2665E9FAF0AC2BA1F93; Path=/lk/; Secure; HttpOnly" ], "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "content-type": "text/plain" }, "url": "https://www.sistemagorod.ru/lk/auth?typ … x&pin=xxxx", "statusCode": 200 }
Bluefox выручай!!!
-
Передается ли заголовок?
! [{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":94,"y":100,"z":"865a081c.79a5f8","wires":[["6368c27e.9c973c"]]},{"id":"6368c27e.9c973c","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/":[["f057ea4b.0fa818"]]},{"id":"f057ea4b.0fa818","type":"function","name":"sessionid","func":"if (~msg.payload.indexOf('<link_text text="https://www.sistemagorod.ru/lk/auth?typ … pin=xxxx\n">https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\n</link_text> msg.headers = {\n 'Origin': 'https://www.sistemagorod.ru',\n 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36',\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Referer': 'https://www.sistemagorod.ru/lk/%27,%5Cn 'Cookie': 'JSESSIONID=' + msg.sessionid\n }\n\n var url= "https://www.sistemagorod.ru/lk/auth?typ ... n\nmsg.url = url;\n\nreturn msg;","outputs":1,"valid":true,"x":93,"y":179,"z":"865a081c.79a5f8","wires":[["ef96486b.1069b8"]]},{"id":"ef96486b.1069b8","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":232,"y":183,"z":"865a081c.79a5f8","wires":[["62c44e09.9d3bb","5bc33d6.fa43cc4"]]}]
авторизация вроде проходит <response><state>ok</state></response>
но на следующую страницу не пускает.
Продолжение…
Выводит в дебаг непонятную кодировку
! [msg.payload] : string
! ��<ko�v������cr�i*?��)��6�����apԕę"u��� ���/�����Τi��o���/cy�$�i�d�="��!">%%���L�����s���s��=sf���ܸ���?&�\������>�t�p|��ϋ��ū��%�X"WuQ5dS�TQ)>��#\�4[�BaggG�Y4�^��O���T� ��T��Un�<���G�����qf��{��[/spoiler]</ko�v������cr�i*?��)��6�����apԕę"u���>
Я не нашел в твоём flow вывода в дебаг.Может стринг не в utf-8? При конвертировании в стринг можно указать кодировку.
'ascii' - for 7 bit ASCII data only. This encoding method is very fast, and will strip the high bit if set. 'utf8' - Multibyte encoded Unicode characters. Many web pages and other document formats use UTF-8. 'utf16le' - 2 or 4 bytes, little endian encoded Unicode characters. Surrogate pairs (U+10000 to U+10FFFF) are supported. 'ucs2' - Alias of 'utf16le'. 'base64' - Base64 string encoding. 'binary' -'hex' - Encode each byte as two hexadecimal characters. `
-
Да проблема сейчас в другом. Я не могу получить sessionid из ответного заголовка от сервера. Авторизоваться у меня получилось в ответ приходит заголовок с sessionid вот его надо как то вырвать для дальнейшей навигации по страницам. Помогай, мозг кипит…
Это ответ от сервера
! { "topic": "", "payload": "\r\n<response>\r\n <state>ok</state>\r\n</response>\r\n\r\n", "_msgid": "c27391e4.3d8c7", "sessionid": "6E14E8C7BF3AFDE8E63FBF0EA015BFB4", "headers": { "date": "Sun, 24 May 2015 17:59:17 GMT", "server": "Apache/2.4.7 (Ubuntu)", "content-length": "88", "set-cookie": [ "JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly" ], "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "content-type": "text/plain" }, "url": "https://www.sistemagorod.ru/lk/auth?typ … x&pin=xxxx", "statusCode": 200 }
Нужно как то получить JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1 это валидный id
-
[{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":92,"y":81,"z":"865a081c.79a5f8","wires":[["b614a670.49eb58"]]},{"id":"b614a670.49eb58","type":"function","name":"Авторизация","func":"msg.sessionid = context.global.sessionid;\n msg.headers = {\n 'Host': 'www.sistemagorod.ru',\n 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',\n 'Accept': '*/*',\n 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'X-Requested-With': 'XMLHttpRequest',\n 'Referer': 'https://www.sistemagorod.ru/lk/',\n 'Cookie': 'JSESSIONID='+ msg.sessionid,\n 'Connection': 'keep-alive',\n 'Pragma': 'no-cache',\n 'Cache-Control': 'no-cache'\n }\n \n\n var url= \"https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\";\n\nmsg.url = url;\nreturn msg;","outputs":1,"valid":true,"x":132.55555725097656,"y":139.11111450195312,"z":"865a081c.79a5f8","wires":[["ef96486b.1069b8"]]},{"id":"ef96486b.1069b8","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":309.7777900695801,"y":139.22221565246582,"z":"865a081c.79a5f8","wires":[["ad6096b4.529f68","62c44e09.9d3bb","a452cdcd.5bad3"]]},{"id":"ad6096b4.529f68","type":"debug","name":"","active":true,"console":"false","complete":"true","x":602.5555419921875,"y":209,"z":"865a081c.79a5f8","wires":[]}] -
Кто нибудь помоги мне

-
Кто нибудь помоги мне
`
Я не могу помочь, т.к. мне не хватает информации.Что это такое?
{ "topic": "", "payload": "\r\n<response>\r\n <state>ok</state>\r\n</response>\r\n\r\n", "_msgid": "c27391e4.3d8c7", "sessionid": "6E14E8C7BF3AFDE8E63FBF0EA015BFB4", "headers": { "date": "Sun, 24 May 2015 17:59:17 GMT", "server": "Apache/2.4.7 (Ubuntu)", "content-length": "88", "set-cookie": [ "JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly" ], "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "content-type": "text/plain" }, "url": "https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx", "statusCode": 200 }Ответ от чего? Откуда все эти цифры?
Если это какой то объект, то JSESSIONID извлекается так:
[{"id":"185e8fcd.e7a17","type":"function","name":"Extract SessionID","func":"\nvar obj = { \"topic\": \"\", \"payload\": \"\\r\\n<response>\\r\\n <state>ok</state>\\r\\n</response>\\r\\n\\r\\n\", \"_msgid\": \"c27391e4.3d8c7\", \"sessionid\": \"6E14E8C7BF3AFDE8E63FBF0EA015BFB4\", \"headers\": { \"date\": \"Sun, 24 May 2015 17:59:17 GMT\", \"server\": \"Apache/2.4.7 (Ubuntu)\", \"content-length\": \"88\", \"set-cookie\": [ \"JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly\" ], \"keep-alive\": \"timeout=5, max=100\", \"connection\": \"Keep-Alive\", \"content-type\": \"text/plain\" }, \"url\": \"https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\", \"statusCode\": 200 };\n\nvar cookies = obj.headers[\"set-cookie\"][0];\nvar m = cookies.match(/JSESSIONID=([\\w\\d]*)/);\nif (m) {\n msg.payload = m[1];\n return msg;\n}\n\n\n","outputs":1,"x":372,"y":367,"z":"e90d20bf.16f2e","wires":[["35779b1d.ca8864"]]},{"id":"35779b1d.ca8864","type":"debug","name":"","active":true,"console":"false","complete":"false","x":546,"y":366,"z":"e90d20bf.16f2e","wires":[]},{"id":"89d64003.7629c","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":214,"y":368,"z":"e90d20bf.16f2e","wires":[["185e8fcd.e7a17"]]}] -
Кто нибудь помоги мне
`
Я не могу помочь, т.к. мне не хватает информации.Что это такое?
{ "topic": "", "payload": "\r\n<response>\r\n <state>ok</state>\r\n</response>\r\n\r\n", "_msgid": "c27391e4.3d8c7", "sessionid": "6E14E8C7BF3AFDE8E63FBF0EA015BFB4", "headers": { "date": "Sun, 24 May 2015 17:59:17 GMT", "server": "Apache/2.4.7 (Ubuntu)", "content-length": "88", "set-cookie": [ "JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly" ], "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "content-type": "text/plain" }, "url": "https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx", "statusCode": 200 }Ответ от чего? Откуда все эти цифры? `
Это ответ от сервера, точнее то что вывелось в дэбаг (как объект я понимаю).
@Bluefox:Если это какой то объект, то JSESSIONID извлекается так:
[{"id":"185e8fcd.e7a17","type":"function","name":"Extract SessionID","func":"\nvar obj = { \"topic\": \"\", \"payload\": \"\\r\\n<response>\\r\\n <state>ok</state>\\r\\n</response>\\r\\n\\r\\n\", \"_msgid\": \"c27391e4.3d8c7\", \"sessionid\": \"6E14E8C7BF3AFDE8E63FBF0EA015BFB4\", \"headers\": { \"date\": \"Sun, 24 May 2015 17:59:17 GMT\", \"server\": \"Apache/2.4.7 (Ubuntu)\", \"content-length\": \"88\", \"set-cookie\": [ \"JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly\" ], \"keep-alive\": \"timeout=5, max=100\", \"connection\": \"Keep-Alive\", \"content-type\": \"text/plain\" }, \"url\": \"https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\", \"statusCode\": 200 };\n\nvar cookies = obj.headers[\"set-cookie\"][0];\nvar m = cookies.match(/JSESSIONID=([\\w\\d]*)/);\nif (m) {\n msg.payload = m[1];\n return msg;\n}\n\n\n","outputs":1,"x":372,"y":367,"z":"e90d20bf.16f2e","wires":[["35779b1d.ca8864"]]},{"id":"35779b1d.ca8864","type":"debug","name":"","active":true,"console":"false","complete":"false","x":546,"y":366,"z":"e90d20bf.16f2e","wires":[]},{"id":"89d64003.7629c","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":214,"y":368,"z":"e90d20bf.16f2e","wires":[["185e8fcd.e7a17"]]}] ```` `Вот что в дебаге:
! 25.05.2015, 20:12:47[ad6096b4.529f68]
! [msg] : object
! { "topic": "", "payload": "\r\n<response>\r\n <state>ok</state>\r\n</response>\r\n\r\n", "_msgid": "ca7e0ab8.3581f8", "sessionid": "6E14E8C7BF3AFDE8E63FBF0EA015BFB4", "headers": { "date": "Mon, 25 May 2015 14:14:39 GMT", "server": "Apache/2.4.7 (Ubuntu)", "content-length": "88", "set-cookie": [ "JSESSIONID=284831E2FED469FC5B52751B6FC8960C; Path=/lk/; Secure; HttpOnly" ], "keep-alive": "timeout=5, max=100", "connection": "Keep-Alive", "content-type": "text/plain" }, "url": "https://www.sistemagorod.ru/lk/auth?typ … xx&pin=xxx", "statusCode": 200 }
! 25.05.2015, 20:12:47[SessionId]
! [msg.payload] : string
! <response><state>ok</state></response>
Первое это ответ от сервера [msg] : object.Второе [msg.payload] (Этот же ответ).
Как мне вставить объект в переменную var obj = { "topic": "", "payload": …...?
var obj = msg.payload ( но в msg.payload только : <response><state>ok</state></response> и там нет заголовков....
Если написать:
var obj = msg.object
то в дебаге вот что:
TypeError: Cannot read property 'headers' of undefined (line 4, col 18)
-
Всё я уже голову сломал…
Запости здесь ВСЮ цепочку. Телефон и пин в личку.
Я не могу по отдельным цепочкам догадыватся, что где выводиться. Уходит ОЧЕНЬ много времени. `
[{"id":"b7d37336.482c9","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":92,"y":81,"z":"865a081c.79a5f8","wires":[["b614a670.49eb58"]]},{"id":"b614a670.49eb58","type":"function","name":"Авторизация","func":"msg.sessionid = context.global.sessionid;\n msg.headers = {\n 'Host': 'www.sistemagorod.ru',\n 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',\n 'Accept': '*/*',\n 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'X-Requested-With': 'XMLHttpRequest',\n 'Referer': 'https://www.sistemagorod.ru/lk/',\n 'Cookie': 'JSESSIONID='+ msg.sessionid,\n 'Connection': 'keep-alive',\n 'Pragma': 'no-cache',\n 'Cache-Control': 'no-cache'\n }\n \n\n var url= \"https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxx&pin=xxx\";\n\nmsg.url = url;\nreturn msg;","outputs":1,"valid":true,"x":128.55555725097656,"y":152.11111450195312,"z":"865a081c.79a5f8","wires":[["ef96486b.1069b8"]]},{"id":"ef96486b.1069b8","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":284.7778015136719,"y":153.2222137451172,"z":"865a081c.79a5f8","wires":[["ad6096b4.529f68","62c44e09.9d3bb","a452cdcd.5bad3"]]},{"id":"62c44e09.9d3bb","type":"debug","name":"SessionId","active":true,"console":"false","complete":"payload","x":602.333366394043,"y":37.33333778381348,"z":"865a081c.79a5f8","wires":[]},{"id":"44e90f84.bb16f","type":"debug","name":"SessionId2","active":true,"console":"false","complete":"payload","x":445.5555191040039,"y":243.33333206176758,"z":"865a081c.79a5f8","wires":[]},{"id":"ad6096b4.529f68","type":"debug","name":"","active":true,"console":"false","complete":"true","x":602.5555419921875,"y":209,"z":"865a081c.79a5f8","wires":[]},{"id":"a452cdcd.5bad3","type":"function","name":"sessionid2","func":"\n//var obj = { \"topic\": \"\", \"payload\": \"\\r\\n<response>\\r\\n <state>ok</state>\\r\\n</response>\\r\\n\\r\\n\", \"_msgid\": \"c27391e4.3d8c7\", \"sessionid\": \"6E14E8C7BF3AFDE8E63FBF0EA015BFB4\", \"headers\": { \"date\": \"Sun, 24 May 2015 17:59:17 GMT\", \"server\": \"Apache/2.4.7 (Ubuntu)\", \"content-length\": \"88\", \"set-cookie\": [ \"JSESSIONID=6385A1C965987A3FAA6131DD153D2EE1; Path=/lk/; Secure; HttpOnly\" ], \"keep-alive\": \"timeout=5, max=100\", \"connection\": \"Keep-Alive\", \"content-type\": \"text/plain\" }, \"url\": \"https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxxx&pin=xxxx\", \"statusCode\": 200 };\nvar obj = msg.payload;\nvar cookies = obj.headers[\"set-cookie\"][0];\nvar m = cookies.match(/JSESSIONID=([\\w\\d]*)/);\nif (m) {\n msg.payload = m[1];\n return msg;\n}\n\n\n","outputs":"1","valid":true,"x":235.55560302734375,"y":284.2221984863281,"z":"865a081c.79a5f8","wires":[["44e90f84.bb16f","7a9fda5d.856024"]]},{"id":"7a9fda5d.856024","type":"debug","name":"SessionId2","active":true,"console":"false","complete":"true","x":446.66667556762695,"y":292.22221755981445,"z":"865a081c.79a5f8","wires":[]}] -
:roll:
-
Ты запостил не ВЕСЬ flow. Авторизации не было.
[{"id":"b2457b04.4dba88","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":142,"z":"a3d5aaa9.5c2a58","wires":[["a4b814e9.5b47e8"]]},{"id":"a4b814e9.5b47e8","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/","x":430,"y":143,"z":"a3d5aaa9.5c2a58","wires":[["673656c9.98c9a8","892e892.f76d178"]]},{"id":"8aebf8b1.751408","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":429,"y":207,"z":"a3d5aaa9.5c2a58","wires":[["f398e11c.0c672","2e09ba5d.d1f646"]]},{"id":"6d01402.f92fec","type":"http request","name":"","method":"GET","ret":"txt","url":"","x":428,"y":284,"z":"a3d5aaa9.5c2a58","wires":[["3d2f1fc5.c2d0e","7138683e.8ec798"]]},{"id":"f398e11c.0c672","type":"function","name":"Get \"indications\"","func":"if (msg.payload.indexOf('>ok<') != -1) {\n\tmsg.payload = '';\n\tvar parts = msg.headers['set-cookie'][0].split(';');\n\t\n\tmsg.headers = {\n\t 'Host': 'www.sistemagorod.ru',\n\t 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',\n\t 'Accept': '*/*',\n\t 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',\n\t 'Accept-Encoding': '',\n\t 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n\t 'X-Requested-With': 'XMLHttpRequest',\n\t 'Referer': 'https://www.sistemagorod.ru/lk/',\n\t 'Cookie': parts[0],\n\t 'Connection': 'keep-alive',\n\t 'Pragma': 'no-cache',\n\t 'Cache-Control': 'no-cache'\n\t};\n\t\n\t//msg.headers.Cookie = msg.headers[0]['set-cookie'],\n\tmsg.url = \"https://www.sistemagorod.ru/lk/indications\";\n\treturn msg;\n}\n","outputs":1,"x":236,"y":284,"z":"a3d5aaa9.5c2a58","wires":[["6d01402.f92fec"]]},{"id":"3d2f1fc5.c2d0e","type":"debug","name":"","active":true,"console":"false","complete":"true","x":636,"y":284,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"673656c9.98c9a8","type":"debug","name":"","active":true,"console":"false","complete":"true","x":632,"y":144,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"2e09ba5d.d1f646","type":"debug","name":"","active":true,"console":"false","complete":"true","x":633,"y":207,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"892e892.f76d178","type":"function","name":"Authenticate","func":"msg.url='https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxx&pin=yyyy'\nreturn msg;","outputs":1,"x":257,"y":207,"z":"a3d5aaa9.5c2a58","wires":[["8aebf8b1.751408"]]},{"id":"9d88bc37.62774","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":416,"y":381,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"7138683e.8ec798","type":"function","name":"Extract values","func":"var m = msg.payload.match(/data-previos-reading=\"([\\d.]*)\"/g);\nmsg.payload = [];\nif (m) {\n\tfor (var i = 0; i < m.length; i++) {\n\t\tvar parts = m[i].split('=\"');\n\t\tif (parts.length == 2) {\n\t\t msg.payload.push(parts[1].replace('\"', ''));\n\t\t}\n\t}\n}\nreturn msg;","outputs":1,"x":241,"y":382,"z":"a3d5aaa9.5c2a58","wires":[["9d88bc37.62774"]]}]Ещё была ошибка, что "'Accept-Encoding': 'gzip, deflate',"
И поэтому ты получал зазипованный ответ.
Я довел до ответа
[ "375", "7", "7", "1.351" ]Дальше сам.
-
Ты запостил не ВЕСЬ flow. Авторизации не было.
[{"id":"b2457b04.4dba88","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":142,"z":"a3d5aaa9.5c2a58","wires":[["a4b814e9.5b47e8"]]},{"id":"a4b814e9.5b47e8","type":"http request","name":"","method":"GET","ret":"txt","url":"https://www.sistemagorod.ru/lk/","x":430,"y":143,"z":"a3d5aaa9.5c2a58","wires":[["673656c9.98c9a8","892e892.f76d178"]]},{"id":"8aebf8b1.751408","type":"http request","name":"","method":"POST","ret":"txt","url":"","x":429,"y":207,"z":"a3d5aaa9.5c2a58","wires":[["f398e11c.0c672","2e09ba5d.d1f646"]]},{"id":"6d01402.f92fec","type":"http request","name":"","method":"GET","ret":"txt","url":"","x":428,"y":284,"z":"a3d5aaa9.5c2a58","wires":[["3d2f1fc5.c2d0e","7138683e.8ec798"]]},{"id":"f398e11c.0c672","type":"function","name":"Get \"indications\"","func":"if (msg.payload.indexOf('>ok<') != -1) {\n\tmsg.payload = '';\n\tvar parts = msg.headers['set-cookie'][0].split(';');\n\t\n\tmsg.headers = {\n\t 'Host': 'www.sistemagorod.ru',\n\t 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',\n\t 'Accept': '*/*',\n\t 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',\n\t 'Accept-Encoding': '',\n\t 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n\t 'X-Requested-With': 'XMLHttpRequest',\n\t 'Referer': 'https://www.sistemagorod.ru/lk/',\n\t 'Cookie': parts[0],\n\t 'Connection': 'keep-alive',\n\t 'Pragma': 'no-cache',\n\t 'Cache-Control': 'no-cache'\n\t};\n\t\n\t//msg.headers.Cookie = msg.headers[0]['set-cookie'],\n\tmsg.url = \"https://www.sistemagorod.ru/lk/indications\";\n\treturn msg;\n}\n","outputs":1,"x":236,"y":284,"z":"a3d5aaa9.5c2a58","wires":[["6d01402.f92fec"]]},{"id":"3d2f1fc5.c2d0e","type":"debug","name":"","active":true,"console":"false","complete":"true","x":636,"y":284,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"673656c9.98c9a8","type":"debug","name":"","active":true,"console":"false","complete":"true","x":632,"y":144,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"2e09ba5d.d1f646","type":"debug","name":"","active":true,"console":"false","complete":"true","x":633,"y":207,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"892e892.f76d178","type":"function","name":"Authenticate","func":"msg.url='https://www.sistemagorod.ru/lk/auth?type-auth=phone&answer-captcha=&phone=xxx&pin=yyyy'\nreturn msg;","outputs":1,"x":257,"y":207,"z":"a3d5aaa9.5c2a58","wires":[["8aebf8b1.751408"]]},{"id":"9d88bc37.62774","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":416,"y":381,"z":"a3d5aaa9.5c2a58","wires":[]},{"id":"7138683e.8ec798","type":"function","name":"Extract values","func":"var m = msg.payload.match(/data-previos-reading=\"([\\d.]*)\"/g);\nmsg.payload = [];\nif (m) {\n\tfor (var i = 0; i < m.length; i++) {\n\t\tvar parts = m[i].split('=\"');\n\t\tif (parts.length == 2) {\n\t\t msg.payload.push(parts[1].replace('\"', ''));\n\t\t}\n\t}\n}\nreturn msg;","outputs":1,"x":241,"y":382,"z":"a3d5aaa9.5c2a58","wires":[["9d88bc37.62774"]]}]Ещё была ошибка, что "'Accept-Encoding': 'gzip, deflate',"
И поэтому ты получал зазипованный ответ.
Я довел до ответа
[ "375", "7", "7", "1.351" ]Дальше сам. `
Воу! Спасибо большое!
-
Ещё была ошибка, что "'Accept-Encoding': 'gzip, deflate',"
И поэтому ты получал зазипованный ответ.
Дальше сам. `
Я все воскресенье убил, вроде что то получатся начало но на выходе кракозябры… теперь понятно в чем ошибка.
-
Как в node red завести данные датчиков? Выбираю в input IoBroker, переменная передается только когда значение изменяется. Мне нужно получить доступ к текущим показаниям датчика, как эти данные поместить в функцию во время выполения скрипта?
- еще если переменная изменяется то она запускает скрипт который после этой переменной
-
Как в node red завести данные датчиков? Выбираю в input IoBroker, переменная передается только когда значение изменяется. Мне нужно получить доступ к текущим показаниям датчика, как эти данные поместить в функцию во время выполения скрипта?
- еще если переменная изменяется то она запускает скрипт который после этой переменной `
Никак. В этом вся проблема node-red. Он stateless и event triggered.
Можно только через хак и сохранять значения в context.global (http://nodered.org/docs/writing-functions.html)
- еще если переменная изменяется то она запускает скрипт который после этой переменной `
-
Как в node red завести данные датчиков? Выбираю в input IoBroker, переменная передается только когда значение изменяется. Мне нужно получить доступ к текущим показаниям датчика, как эти данные поместить в функцию во время выполения скрипта?
- еще если переменная изменяется то она запускает скрипт который после этой переменной `
Никак. В этом вся проблема node-red. Он stateless и event triggered.
Можно только через хак и сохранять значения в context.global (http://nodered.org/docs/writing-functions.html) `
Ок. Будем делать через глобальные.msg.Hot_curr = h.substring(0, h.length - 2); выдает ошибку TypeError: Object 722 has no method 'substring' (line 4, col 19)
Как обрезать последние два символа в значении?
PS Посоветуй литературу почитать по Node red'у
- еще если переменная изменяется то она запускает скрипт который после этой переменной `
-
Пока сделал так:
var h = context.global.Hot_curr; h = '' + h; msg.Hot_curr = h.substr(0, h.length - 2); var c = context.global.Cold_curr; c = '' + c; msg.Cold_curr = c.substr(0, c.length - 2):D
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden