Добрый вечер, автоматизаторы.
Нужна помощь в обработке стороннего топика.
Имеем топик от контроллера удобрений, в котором интерес представляют данные из раздела values.
r - значение до калибровки (физический параметр измеряемый датчиком)
t - указывает на тип параметра
v - итоговое значение, фактическое значение параметра.
например:
t = 1 - pH
t = 2 - электропроводность
t = 3 - температура
Я справился с тем, чтобы получить в логе следующую строку:
INFO: [rule info] name: /devices/YLDN0079/state, value: {"ver":"v1.0.4218 - 2022-12-27 15:06:59.470853","values":[{"r":44.85816,"t":1,"v":6.183802},{"r":453.6171,"t":2,"v":2.190084},{"r":11184.41,"t":3,"v":21.8665},{"r":0,"t":4,"v":0},{"r":0,"t":5,"e":1},{"r":0,"t":6,"e":1},{"r":0,"t":10,"e":1},{"r":-1,"t":11,"e":1}],"raw_ec_msm":2.204502,"cfghsh":18491,"uptime":138227,"time":3520,"frhp":202188,"maxahp":113792,"mfrhp":184468,"hpsz":319828,"wifi":-36,"description":"ошибка датчика T air<br>\nошибка датчика H air<br>\nошибка датчика CO2<br>\n","outs":{"sum_on_s":[0,0,0,0,0,0,0,0,0],"func_cntdn_s":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ovrrd_time":[0,0,0,0,0,0,0,0,0],"ovrrd_state":[0,0,0,0,0,0,0,0,0]}}1
Простите, если вопрос банальный, но моей понималки не хватает, как собрать эти данные и передать их в переменные виртуального устройства, разобрав по типам
Ниже привожу сам топик:
{
"ver": "v1.0.4218 - 2022-12-27 15:06:59.470853",
"values": [
{
"r": 48.89151,
"t": 1,
"v": 6.110975
},
{
"r": 450.9679,
"t": 2,
"v": 2.204963
},
{
"r": 11292.57,
"t": 3,
"v": 21.6548
},
{
"r": 0,
"t": 4,
"v": 0
},
{
"r": 0,
"t": 5,
"e": 1
},
{
"r": 0,
"t": 6,
"e": 1
},
{
"r": 0,
"t": 10,
"e": 1
},
{
"r": -1,
"t": 11,
"e": 1
}
],
"raw_ec_msm": 2.217453,
"cfghsh": 18491,
"uptime": 119398,
"time": 71091,
"frhp": 202268,
"maxahp": 113792,
"mfrhp": 184468,
"hpsz": 319828,
"wifi": -39,
"description": "ошибка датчика T air<br>\nошибка датчика H air<br>\nошибка датчика CO2<br>\n",
"outs": {
"sum_on_s": [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"func_cntdn_s": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11410.82, 0, 0, 0, 0, 0 ],
"ovrrd_time": [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
"ovrrd_state": [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
}
}