[{"server":null,"owner":null,"id":"f7eacf0c-14f0-41ea-90e2-bc69186778ef","params":{"type":{"value":"EgsScheduled","datetime":1573638027,"status":null,"version":0},"settings":{"value":"{\"param\":\"position\",\"table\":\"{\\\"UndefinedTarget\\\": 20, \\\"SeaTarget\\\": 60}\"}","datetime":1573638329,"status":null,"version":0},"period_time":{"value":null,"datetime":1573476075,"status":null,"version":0},"error_text":{"value":null,"datetime":1573638330,"status":null,"version":0},"repeat":{"value":0,"datetime":1573476075,"status":null,"version":0},"period_unit":{"value":"Second","datetime":1573484636,"status":null,"version":0},"hash":{"value":"0m69/vwubFksRx3NlkVlsQ==","datetime":1573638086,"status":null,"version":0},"name":{"value":"Param Actualizer 1","datetime":1573476090,"status":null,"version":0},"enabled":{"value":true,"datetime":1573484614,"status":null,"version":0},"result":{"value":null,"datetime":1573476075,"status":null,"version":0},"period_count":{"value":5,"datetime":1573484644,"status":null,"version":0},"state":{"value":"ok.normal","datetime":1573638330,"status":null,"version":0},"script":{"value":"# имя: 'Param Actualizer 1'\r\n# описание: актуализация значения параметра\r\n# тип триггера: 'EgsScheduled'\r\n# создан: 2019.11.11 16.41.39, Сельченков Н.Ю.\r\n# изменен: '2019.11.13 13.41.25', Сельченков Н.Ю.\r\n# подробности: https://redmine.integra-s.com:11000/projects/eilyacuario/wiki/Param_Actualizer_1\r\n\r\nuse Newtonsoft.Json.Linq.JToken  as JToken\r\nuse Newtonsoft.Json.Linq.JObject as JObject\r\nuse Newtonsoft.Json.Linq.JArray  as JArray\r\nuse Newtonsoft.Json.Linq.JValue  as JValue\r\nuse Newtonsoft.Json.JsonConvert  as JsonConvert  from Newtonsoft.Json\r\nuse Newtonsoft.Json.JsonConvert  as JsonConvert  from Newtonsoft.Json\r\nuse acuario2.types.BaseObject    as BaseObject   from acuario2.types\r\nuse acuario2.utils.DateTimeExtension\r\n\r\nuse typedef\r\n`\r\n    <root>\r\n        <param name=\"param\">position</param>\r\n        <param name=\"table\">{\"UndefinedTarget\": 20, \"SeaTarget\": 60}</param>\r\n    </root>\r\n` as Settings\r\n\r\nconst settings = Settings(trigger.settings)\r\nconst table    = JsonConvert.DeserializeObject(settings.table, JObject) as JObject\r\n\r\nconst get_type(typename as string) = Type.GetType(\"acuario2.types.\"..typename..\",acuario2.types\")\r\n\r\n######################################\r\n\r\neval from table.Properties() do \r\n    if get_type(Name) is null     then error \"type \"..Name..\" not found\"\r\n    if Value.Type isnt \"Integer\"  then error \"invalid timeout \"..Value..\" at \"..Name\r\nnow\r\n\r\n######################################\r\n\r\nlet unix_now() = DateTimeExtension.ToUnixTime(DateTime.UtcNow)\r\n\r\nlet seconds_passed(datetime as DateTime) = unix_now() - DateTimeExtension.ToUnixTime(datetime)\r\n\r\nlet changed_in(param as Param, seconds as int) = seconds_passed(param.DateTime) <= seconds\r\n\r\nlet get_timeout(types as string[]) = (from table.Properties() where Name in types select Value try first ?? JValue(int.MaxValue)) as int\r\n\r\nfrom graph.Values select it[settings.param] of type Param do\r\n    let timeout = get_timeout(Owner.Types)\r\n    if it isnt changed_in timeout then Set(Value, \"outofdate\", null)\r\nnow\r\n\r\n","datetime":1573638330,"status":null,"version":0}},"entity":"item","operation":"create"}]