iot:tutorial:aws-integration
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
iot:tutorial:aws-integration [2020/06/16 09:50] – atolstov | iot:tutorial:aws-integration [2020/07/07 13:26] – DELETE UNFINISHED PARTS! atolstov | ||
---|---|---|---|
Line 232: | Line 232: | ||
{{ iot: | {{ iot: | ||
- | For know, it is WebHMI can post the data from real devices to various | + | For know, it is WebHMI can post the data from real devices to AWS MQTT Client, which allow update to various AWS Thing' |
Line 309: | Line 309: | ||
**// | **// | ||
\\ | \\ | ||
- | If there is several target register, such us (//counter, counter2, etc.//), but if it changes too often, this code will help to decimate the output trigger signal. | + | If there is several target register, such as //counter, counter2, etc.//, but if it changes too often, this code will help to decimate the output trigger signal. |
<code lua> | <code lua> | ||
a1,a2,a3,a4 = 0,0,0,0 | a1,a2,a3,a4 = 0,0,0,0 | ||
Line 384: | Line 384: | ||
At this moment, you will have access to Kibana plugin, the following link is provided above. | At this moment, you will have access to Kibana plugin, the following link is provided above. | ||
{{ : | {{ : | ||
- | <del> | + | ==== Change MQTT payload to meters data as demo project ==== |
- | 1) Create Lambda function, | + | |
+ | Let's burn project to WebHMI with virtual electric meters. It is simulate power consumption with predefined daily load curve but small fluctiations. Just like real power system does. | ||
+ | |||
+ | So let us formulate JSON payload (according to AWS Shadow rules) those registers with output data, which represents consumpted energy in kWh. | ||
+ | |||
+ | It is possible to recalculate in script values to kWh from impulses number e.g. and add a metadata such as location, timestamp etc. | ||
+ | Here is an examples of code to do this. | ||
+ | <code lua - counters.lib.lua>1</ | ||
+ | <code lua - counters simulation.lua> | ||
+ | <code lua - decimator.lua> | ||
+ | <code lua - AWS_MQTT_upload.lua> | ||
+ | |||
+ | <code sql - IoT Core Rule SQL-like query for virtual counters> | ||
+ | cast(state.reported.counters.value.counter2 as DECIMAL) as counter2, | ||
+ | cast(state.reported.counters.value.counter3 as DECIMAL) as counter3, | ||
+ | cast(state.reported.counters.value.counter4 as DECIMAL) as counter4, | ||
+ | cast(state.reported.counters.units as STRING) as units, | ||
+ | cast(state.reported.location as STRING) as location | ||
+ | cast((state.reported.timestamp) as STRING ) as timestamp | ||
+ | FROM ' | ||
+ | </ | ||
+ | |||
+ | As result, every single MQTT upload will trigger IoT Rule (to process new entries from WH script, such as counters and location e.g. should be SQL rewritten)to put data to DynamoDB. | ||
+ | The next step is to create a Lambda function, that will put data to visualisation dashboard Kibana on ElasticSearch instance. | ||
+ | ==== Create | ||
+ | There is a uploadable code with function, | ||
+ | |||
+ | Import it to AWS Lambda | ||
+ | |||
+ | To test let's create a predefined DDB Upload test event. | ||
+ | |||
+ | If it is successful, let's post smth in WH, to update IoT Core Shadow, which will cause IoT Core Rule processing with SQL-like query, and append shadow in the DDB. | ||
+ | |||
+ | Append to DDB should triggers that new Lambda | ||
- | 3)check Kibana metric created. | ||
- | 4) Work with Kibana (demo visualisation)</ | ||
iot/tutorial/aws-integration.txt · Last modified: 2021/07/22 07:32 by atolstov