

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatur integrasi open source secara manual (Windows)
<a name="windows-manual-setup"></a>

Gunakan panduan ini untuk membuat bucket deret waktu secara manual untuk data kecepatan angin yang terhubung dengan Grafana® dan Node-red®.

 Instal dan konfigurasikan Node-Red, InfluxDB®, dan Grafana secara manual untuk mengontrol konfigurasi penerapan Anda. Microsoft Windows Anda dapat menyimpan dan mengelola data deret waktu dari perangkat Anda menggunakan InfluxDB.

## Prasyarat pengaturan manual
<a name="windows-open-source-prerequisites"></a>

Sebelum Anda mulai, lengkapi persyaratan ini:

**catatan**  
Jalankan semua layanan (SiteWise Edge, InfluxDB, Node-red, dan Grafana) pada host yang sama.
+ Instal gateway V3 berkemampuan MQTT. Untuk informasi selengkapnya, lihat [Gateway V3 berkemampuan MQTT untuk Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).
+ Instal dan jalankan layanan ini secara lokal:
  + InfluxDB OSS v2. Untuk langkah-langkah instalasi, lihat [Menginstal InfluxDB](https://docs.influxdata.com/influxdb/v2/install/).
  + Simpul-merah. Untuk langkah-langkah instalasi, lihat [Menginstal Node-merah secara lokal](https://nodered.org/docs/getting-started/local).
  + Grafana. Untuk langkah-langkah instalasi, lihat [Menginstal Grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/).

# Siapkan penyimpanan lokal dengan InfluxDB
<a name="windows-influxdb-setup"></a>

Dengan InfluxDB®, Anda dapat menyimpan data deret waktu dari perangkat Anda secara lokal. Tujuan dari kemampuan penyimpanan lokal adalah untuk menjaga visibilitas operasional selama gangguan jaringan dan mengurangi latensi untuk aplikasi yang kritis waktu. Anda dapat melakukan analisis dan visualisasi di tepi sambil tetap memiliki opsi untuk meneruskan data secara selektif ke cloud.

Di bagian ini, Anda membuat bucket deret waktu untuk data kecepatan angin turbin dan menghasilkan token API untuk konektivitas Grafana® dan Node-red®. Bucket InfluxDB berfungsi sebagai wadah penyimpanan khusus untuk data deret waktu Anda, mirip dengan database dalam sistem tradisional. Token API memungkinkan akses terprogram yang aman ke data Anda.

**Untuk mengatur InfluxDB**

1. [Setelah menyelesaikan langkah-langkah prasyarat dan memastikan semua alat berjalan pada host yang sama, buka browser web Anda dan buka http://127.0.0.1:8086.](http://127.0.0.1:8086)

1. (Opsional) Aktifkan enkripsi TLS untuk keamanan yang ditingkatkan. Untuk informasi selengkapnya, lihat [Mengaktifkan enkripsi TLS](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/) di. *InfluxData Documentation*

1. Buat bucket InfluxDB time series untuk menyimpan data dari Node-Red. Bucket akan berfungsi sebagai wadah khusus untuk data ladang angin Anda, memungkinkan Anda mengatur dan mengelola kebijakan retensi khusus untuk kumpulan data ini. Untuk informasi selengkapnya, lihat [Mengelola bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/) di. *InfluxData Documentation*

1. (Opsional) Konfigurasikan periode retensi data untuk lokasi tepi Anda. Menyetel periode retensi yang sesuai membantu mengelola sumber daya penyimpanan secara efisien dengan secara otomatis menghapus data lama yang tidak lagi diperlukan untuk operasi lokal.

   Untuk informasi tentang retensi data, lihat [Retensi data di InfluxDB](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/) di. *InfluxData Documentation*

1. Hasilkan token API untuk bucket. Token ini akan memungkinkan komunikasi yang aman antara InfluxDB dan komponen lain seperti Node-Red dan Grafana. Dengan cara ini, hanya layanan resmi yang dapat membaca dari atau menulis ke penyimpanan data Anda. Untuk informasi selengkapnya, lihat [Membuat token](https://docs.influxdata.com/influxdb/cloud/admin/tokens/create-token/) di *InfluxData Documentation*.

Setelah Anda menyelesaikan langkah-langkah ini, Anda dapat menyimpan data deret waktu di instans InfluxDB Anda, memberikan dasar untuk persistensi dan analisis data lokal di lingkungan edge Anda.

# Konfigurasikan alur Node-merah untuk integrasi data AWS IoT SiteWise
<a name="windows-nodered-config"></a>

Dengan Node-Red®, Anda dapat menerapkan dua aliran untuk mengelola data antara perangkat Anda dan. AWS IoT SiteWise Alur ini bekerja sama untuk menciptakan solusi manajemen data komprehensif yang membahas aliran data lokal dan cloud.
+ **Aliran publikasi data** — Menerbitkan ke cloud. Aliran publikasi data mengirimkan data ke AWS IoT SiteWise. Aliran ini mensimulasikan perangkat turbin dengan menghasilkan data sensor, menerjemahkannya ke AWS IoT SiteWise format, dan menerbitkan ke broker SiteWise Edge MQTT. Ini memungkinkan Anda memanfaatkan AWS IoT SiteWise kemampuan cloud untuk penyimpanan, analitik, dan integrasi dengan AWS layanan lain.

  Untuk informasi selengkapnya, lihat [Konfigurasikan alur publikasi data](windows-nodered-data-publish-flow.md).
+ **Aliran retensi data** — Menyimpan data di tepi. Alur retensi data berlangganan broker SiteWise Edge MQTT untuk menerima data, menerjemahkannya ke dalam format InfluxDB®, dan menyimpannya secara lokal untuk pemantauan. Penyimpanan lokal ini menyediakan akses langsung ke data operasional, mengurangi latensi untuk aplikasi kritis waktu, dan memastikan kontinuitas selama gangguan jaringan.

  Untuk informasi selengkapnya, lihat [Konfigurasikan aliran retensi data](windows-nodered-data-retention-flow.md).

Kedua aliran ini bekerja sama untuk memastikan data dikirim AWS IoT SiteWise dan disimpan secara lokal untuk akses langsung.

[Untuk mengakses konsol Node-red Anda, buka http://127.0.0.1:1880.](http://127.0.0.1:1880) Untuk informasi tentang mengaktifkan TLS, lihat [Mengaktifkan enkripsi TLS](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/).

# Konfigurasikan alur publikasi data
<a name="windows-nodered-data-publish-flow"></a>

Aliran publikasi data menggunakan tiga node untuk membuat pipeline yang mengirimkan data industri Anda ke cloud. Alur ini penting untuk memungkinkan analitik berbasis cloud, penyimpanan jangka panjang, dan integrasi dengan layanan lain. AWS Pertama, data perangkat simulasi dikirim ke broker SiteWise Edge MQTT. Gateway mengambil data dari broker yang memungkinkan transmisi ke AWS IoT SiteWise cloud, di mana Anda dapat memanfaatkan kemampuan analitik dan visualisasi yang kuat.
+ **Input data** - Menerima data perangkat dari peralatan industri atau simulator Anda
+ **Penerjemah data untuk AWS IoT SiteWise** - Menerjemahkan data ke AWS IoT SiteWise format untuk memastikan kompatibilitas dengan gateway SiteWise Edge
+ **Penerbit MQTT** - Menerbitkan data ke broker SiteWise Edge MQTT, membuatnya tersedia untuk konsumen lokal dan cloud

![\[Diagram yang menunjukkan aliran penerbitan data NODE-Red. Ini mengirimkan data perangkat simulasi ke broker SiteWise Edge MQTT untuk diambil oleh SiteWise Edge Gateway dan kemudian ke Cloud. AWS IoT SiteWise\]](http://docs.aws.amazon.com/id_id/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)


## Konfigurasikan simpul input data
<a name="windows-nodered-data-input-config"></a>

Dalam contoh ini, simpul input data menggunakan perangkat turbin angin simulasi yang menghasilkan data kecepatan angin. Node ini berfungsi sebagai titik masuk untuk data industri Anda, apakah itu berasal dari sumber simulasi (seperti dalam contoh kami) atau dari peralatan industri aktual di lingkungan produksi.

Kami menggunakan format JSON khusus untuk muatan data guna menyediakan struktur standar yang bekerja secara efisien dengan alat pemrosesan lokal dan layanan cloud. AWS IoT SiteWise Format ini mencakup metadata penting seperti stempel waktu dan indikator kualitas di samping nilai pengukuran aktual, memungkinkan manajemen data yang komprehensif dan pelacakan kualitas di seluruh pipeline Anda. Impor node injeksi untuk menerima data simulasi dalam format JSON standar ini dengan stempel waktu, indikator kualitas, dan nilai.

*Untuk informasi selengkapnya tentang node-Red inject node, lihat bagian [Inject di Dokumentasi](https://nodered.org/docs/user-guide/nodes#inject). Node-RED*

Simulator turbin menghasilkan data kecepatan angin setiap detik dalam format JSON standar ini:

**Example : Muatan data turbin**  

```
{
    name: string,         // Property name/identifier
    timestamp: number,    // Epoch time in nanoseconds
    quality: "GOOD" | "UNCERTAIN" | "BAD",
    value: number | string | boolean
}
```

Format ini memberikan beberapa manfaat:
+ `name`Bidang mengidentifikasi properti atau pengukuran tertentu, memungkinkan Anda melacak beberapa titik data dari perangkat yang sama
+ `timestamp`Dalam nanodetik memastikan pelacakan waktu yang tepat untuk analisis historis yang akurat
+ `quality`Indikator membantu Anda memfilter dan mengelola data berdasarkan keandalannya
+ `value`Bidang fleksibel mendukung tipe data yang berbeda untuk mengakomodasi berbagai output sensor

**Example : Menyuntikkan simpul simulator turbin**  

```
[
    {
        "id": "string",
        "type": "inject",
        "z": "string",
        "name": "Turbine Simulator",
        "props": [
            {
                "p": "payload.timestamp",
                "v": "",
                "vt": "date"
            },
            {
                "p": "payload.quality",
                "v": "GOOD",
                "vt": "str"
            },
            {
                "p": "payload.value",
                "v": "$random()",
                "vt": "jsonata"
            },
            {
                "p": "payload.name",
                "v": "/Renton/WindFarm/Turbine/WindSpeed",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "x": 270,
        "y": 200,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

## Konfigurasikan node untuk terjemahan data
<a name="windows-nodered-sitewiseise-translator-config"></a>

Gateway SiteWise Edge membutuhkan data dalam format tertentu untuk memastikan kompatibilitas dengan AWS IoT SiteWise cloud. Node penerjemah adalah komponen penting yang mengubah data input Anda ke format AWS IoT SiteWise payload yang diperlukan. Langkah penerjemahan ini memastikan bahwa data industri Anda dapat diproses, disimpan, dan kemudian dianalisis dengan benar di lingkungan AWS IoT SiteWise cloud.

Dengan menstandarisasi format data pada tahap ini, Anda mengaktifkan integrasi antara perangkat edge dan layanan cloud tempat Anda dapat menggunakan pemodelan aset, analitik, dan kemampuan visualisasi. Gunakan struktur ini:

**Example : Struktur muatan untuk penguraian data SiteWise Edge**  

```
{
  "propertyAlias": "string",  
  "propertyValues": [
    {
      "value": { 
          "booleanValue": boolean, 
          "doubleValue": number, 
          "integerValue": number,
          "stringValue": "string" 
     },
      "timestamp": {
          "timeInSeconds": number,
          "offsetInNanos": number
      },
      "quality": "GOOD" | "UNCERTAIN" | "BAD",
  }]
}
```

**catatan**  
`propertyAlias`Cocokkan dengan hierarki topik MQTT Anda (misalnya,). `/Renton/WindFarm/Turbine/WindSpeed` Ini memastikan bahwa data Anda terkait dengan benar dengan properti aset yang benar di AWS IoT SiteWise. Untuk informasi selengkapnya, lihat konsep “Alias aliran data” di[AWS IoT SiteWise konsep](concept-overview.md). 

1. Impor node fungsi contoh untuk terjemahan AWS IoT SiteWise payload. Fungsi ini menangani konversi dari format input standar Anda ke format AWS IoT SiteWise-kompatibel, memastikan pemformatan stempel waktu yang tepat, indikator kualitas, dan pengetikan nilai.

   ```
   [
       {
           "id": "string",
           "type": "function",
           "z": "string",
           "name": "Translate to SiteWise payload",
           "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
           "outputs": 1,
           "timeout": "",
           "noerr": 0,
           "initialize": "",
           "finalize": "",
           "libs": [],
           "x": 530,
           "y": 200,
           "wires": [
               [
                   "string"
               ]
           ]
       }
   ]
   ```

1. Verifikasi bahwa JavaScript kode menerjemahkan data kecepatan angin dengan benar. Fungsi ini melakukan beberapa tugas penting:
   + Mengekstrak nama properti dari input dan menetapkannya sebagai PropertyAlias
   + Mengonversi stempel waktu dari milidetik ke format detik dan nanodetik yang diperlukan
   + Mempertahankan indikator kualitas untuk pelacakan keandalan data
   + Secara otomatis mendeteksi jenis nilai dan memformatnya sesuai dengan persyaratan AWS IoT SiteWise 

1. Hubungkan node ke alur Anda, hubungkan antara node input data dan penerbit MQTT.

Untuk panduan tentang menulis fungsi khusus untuk kebutuhan bisnis Anda, lihat [Fungsi Menulis](https://nodered.org/docs/user-guide/writing-functions) dalam *Node-REDDokumentasi*

## Konfigurasikan penerbit MQTT
<a name="windows-nodered-mqtt-publisher-config"></a>

Setelah terjemahan, data siap untuk dipublikasikan ke broker SiteWise Edge MQTT.

Konfigurasikan penerbit MQTT dengan pengaturan ini untuk mengirim data ke broker Edge MQTT: SiteWise 

**Untuk mengimpor node keluar MQTT**

1. Impor node konfigurasi MQTT keluar menggunakan. `"type": "mqtt out"` Node keluar MQTT memungkinkan Anda berbagi konfigurasi broker.

1. Masukkan pasangan nilai kunci untuk informasi yang relevan dengan koneksi broker MQTT dan perutean pesan.

Impor `mqtt out` simpul contoh.

**Example**  

```
[
    {
        "id": "string",
        "type": "mqtt out",
        "z": "string",
        "name": "Publish to MQTT broker",
        "topic": "/Renton/WindFarm/Turbine/WindSpeed",
        "qos": "1",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "string",
        "x": 830,
        "y": 200,
        "wires": []
    },
    {
        "id": "string",
        "type": "mqtt-broker",
        "name": "emqx",
        "broker": "127.0.0.1",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": 15,
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
```

Contoh MQTT out node menciptakan koneksi MQTT dengan informasi berikut:
+ Server: `127.0.0.1`
+ Pelabuhan: `1883`
+ Protokol: `MQTT V5`

Kemudian, node keluar MQTT mengonfigurasi perutean pesan dengan informasi berikut:
+ Topik: `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS: `1`

## Menyebarkan dan memverifikasi node
<a name="windows-verify-deployment"></a>

Setelah mengonfigurasi tiga node aliran publikasi data, ikuti langkah-langkah ini untuk menyebarkan aliran dan memverifikasi bahwa data sedang dikirim dengan benar AWS IoT SiteWise

**Untuk menyebarkan dan memverifikasi koneksi**

1. Connect ketiga node seperti yang ditunjukkan dalam aliran data publish.  
![\[Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.\]](http://docs.aws.amazon.com/id_id/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)

1. Pilih **Deploy** untuk menerapkan semua perubahan koneksi node.

1. Arahkan ke [AWS IoT SiteWise konsol](https://console.aws.amazon.com/iotsitewise/) dan pilih **Aliran data**.

1. Pastikan **awalan Alias** dipilih di menu dropdown. Kemudian, cari `/Renton/WindFarm/Turbine/WindSpeed` alias.

Jika Anda melihat alias yang benar dalam pencarian Anda, Anda telah menerapkan aliran dan transmisi data yang diverifikasi.

# Konfigurasikan aliran retensi data
<a name="windows-nodered-data-retention-flow"></a>

Aliran retensi data dapat digunakan untuk menjaga visibilitas operasional di tepi. Ini berguna selama gangguan jaringan atau ketika Anda membutuhkan akses langsung ke data Anda. Alur ini berlangganan broker MQTT untuk menerima data perangkat, mengubahnya menjadi format InfluxDB®, dan menyimpannya secara lokal. Dengan menerapkan alur ini, Anda membuat penyimpanan data lokal yang tangguh yang dapat diakses operator tanpa dependensi cloud, memungkinkan pemantauan waktu nyata dan pengambilan keputusan di tepi.

Alur terdiri dari tiga komponen utama yang bekerja sama untuk memastikan data Anda ditangkap dan disimpan dengan benar:
+ **Klien berlangganan MQTT** - Menerima data dari broker, memastikan Anda menangkap semua data industri yang relevan
+ **Penerjemah InfluxDB** - Mengonversi AWS IoT SiteWise payload ke format InfluxDB, menyiapkan data untuk penyimpanan deret waktu yang efisien
+ **Penulis InfluxDB** - Menangani penyimpanan lokal, memastikan persistensi data dan ketersediaan untuk aplikasi lokal

![\[Aliran retensi data node-merah\]](http://docs.aws.amazon.com/id_id/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)


## Siapkan klien berlangganan MQTT
<a name="windows-nodered-mqtt-subscriber"></a>
+ Konfigurasikan klien berlangganan MQTT di Node-Red untuk menerima data dari broker MQTT EMQX dengan mengimpor contoh di bawah ini. AWS IoT SiteWise   
**Example : MQTT di simpul**  

  ```
  [
      {
          "id": "string",
          "type": "mqtt in",
          "z": "string",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "string",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
              [
                  "string"
              ]
          ]
      },
      {
          "id": "string",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "127.0.0.1",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
      }
  ]
  ```

Langganan ini memastikan bahwa semua data relevan yang dipublikasikan ke broker ditangkap untuk penyimpanan lokal, memberikan catatan lengkap operasi industri Anda. Node menggunakan parameter koneksi MQTT yang sama dengan [Konfigurasikan penerbit MQTT](windows-nodered-data-publish-flow.md#windows-nodered-mqtt-publisher-config) bagian, dengan pengaturan langganan berikut:
+ Topik — `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS — `1`

*Untuk informasi selengkapnya, lihat [Connect to an MQTT Broker](https://cookbook.nodered.org/mqtt/connect-to-broker) di Dokumentasi. Node-RED*

## Konfigurasikan penerjemah InfluxDB
<a name="windows-nodered-influxdb-translator"></a>

[InfluxDB mengatur data menggunakan [tag](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#tag) untuk pengindeksan dan bidang untuk nilai.](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#field) Organisasi ini mengoptimalkan kinerja kueri dan efisiensi penyimpanan untuk data deret waktu. Impor node fungsi contoh yang berisi JavaScript kode untuk mengonversi AWS IoT SiteWise payload ke format InfluxDB. Penerjemah membagi properti menjadi dua kelompok:
+ Tag - Kualitas dan properti nama untuk pengindeksan yang efisien
+ Bidang - Timestamp (dalam milidetik sejak zaman) dan nilai

**Example : Fungsi simpul menerjemahkan ke muatan InfluxDB**  

```
[
    {
        "id": "string",
        "type": "function",
        "z": "string",
        "name": "Translate to InfluxDB payload",
        "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 340,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

Untuk opsi konfigurasi tambahan, lihat [node-red-contrib-influxdb](https://github.com/mblackstock/node-red-contrib-influxdb)di repositori Node-Red GitHub .

## Siapkan penulis InfluxDB
<a name="windows-nodered-influxdb-writer"></a>

Node penulis InfluxDB adalah komponen terakhir dalam aliran retensi data Anda, yang bertanggung jawab untuk menyimpan data industri Anda di database InfluxDB lokal. Penyimpanan lokal ini penting untuk menjaga visibilitas operasional selama gangguan jaringan dan menyediakan akses langsung ke data untuk aplikasi kritis waktu.

1. Instal node-red-contrib-influxdb paket melalui opsi Kelola palet. Paket ini menyediakan node yang diperlukan untuk menghubungkan Node-Red dengan InfluxDB.

1. Tambahkan node keluar InfluxDB ke alur Anda. Node ini akan menangani penulisan data aktual ke database InfluxDB Anda.

1. Konfigurasikan properti server untuk membuat koneksi aman ke instans InfluxDB Anda:

   1. Set Version to 2.0 - Ini menentukan bahwa Anda terhubung ke InfluxDB v2.x, yang menggunakan API yang berbeda dari versi sebelumnya

   1. Setel URL ke `http://127.0.0.1:8086` - Ini menunjuk ke instans InfluxDB lokal Anda

   1. Masukkan token otentikasi InfluxDB Anda. Token aman ini mengotorisasi koneksi ke database Anda. Anda membuat token selama [Siapkan penyimpanan lokal dengan InfluxDB](windows-influxdb-setup.md) prosedur.

1. Tentukan parameter lokasi penyimpanan untuk menentukan di mana dan bagaimana data Anda akan disimpan:

   1. Masukkan nama Organisasi InfluxDB Anda — Organisasi adalah ruang kerja untuk sekelompok pengguna, tempat bucket dan dasbor Anda berada. Untuk informasi selengkapnya, lihat [Mengelola organisasi](https://docs.influxdata.com/influxdb/v2/admin/organizations/) di *InfluxData Documentation*.

   1. Tentukan Bucket InfluxDB (misalnya,`WindFarmData`) - Bucket setara dengan database dalam sistem tradisional, berfungsi sebagai wadah untuk data deret waktu Anda

   1. Mengatur Pengukuran InfluxDB (misalnya,`TurbineData`) - Pengukurannya mirip dengan tabel dalam database relasional, mengatur titik data terkait

**catatan**  
Temukan nama organisasi Anda di sidebar kiri instans InfluxDB. Konsep organisasi, bucket, dan pengukuran sangat penting untuk model organisasi data InfluxDB. Untuk informasi selengkapnya, lihat dokumentasi [InfluxDB](https://docs.influxdata.com/influxdb/v2/admin/organizations/).

## Menyebarkan dan memverifikasi aliran retensi
<a name="windows-nodered-retention-deploy"></a>

Setelah mengonfigurasi semua komponen aliran retensi data, Anda perlu menerapkan dan memverifikasi bahwa sistem berfungsi dengan benar. Verifikasi ini memastikan bahwa data industri Anda disimpan dengan benar secara lokal untuk akses dan analisis segera.

1. Hubungkan ketiga node seperti yang ditunjukkan pada diagram alir retensi data. Ini menciptakan pipeline lengkap dari langganan data ke penyimpanan lokal.  
![\[Aliran retensi data node-merah\]](http://docs.aws.amazon.com/id_id/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)

1. Pilih **Deploy** untuk menerapkan perubahan Anda dan mengaktifkan alur. Ini memulai proses pengumpulan dan penyimpanan data.

1. Gunakan InfluxDB Data Explorer untuk menanyakan dan memvisualisasikan data Anda. Alat ini memungkinkan Anda untuk memverifikasi bahwa data disimpan dengan benar dan untuk membuat visualisasi awal data deret waktu Anda.

   Di Data Explorer, Anda harus dapat melihat pengukuran kecepatan angin Anda direkam dari waktu ke waktu, mengonfirmasi bahwa seluruh pipa dari pembuatan data ke penyimpanan lokal berfungsi dengan benar. 

   Untuk informasi selengkapnya, lihat [Kueri di Penjelajah Data](https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/data-explorer/) di *InfluxData Documentation*.

Dengan aliran publikasi data dan aliran retensi data yang diterapkan, Anda sekarang memiliki sistem lengkap yang mengirimkan data ke AWS IoT SiteWise cloud sambil mempertahankan salinan lokal untuk akses dan ketahanan langsung. Pendekatan jalur ganda ini memastikan bahwa Anda mendapatkan manfaat dari analitik dan penyimpanan berbasis cloud sambil mempertahankan visibilitas operasional di edge.

# Siapkan Grafana untuk Edge SiteWise
<a name="windows-grafana"></a>

 Grafana® memungkinkan Anda membuat dasbor pemantauan real-time lokal untuk data industri Anda. Dengan memvisualisasikan data yang disimpan di InfluxDB®, Anda dapat memberikan wawasan langsung kepada operator tentang kinerja peralatan, efisiensi proses, dan potensi masalah. Visibilitas di tepi ini penting untuk operasi yang sensitif terhadap waktu dan menjaga kontinuitas selama gangguan jaringan.

## Konfigurasikan sumber data
<a name="windows-grafana-data-source-config"></a>

Menghubungkan Grafana ke database InfluxDB Anda menciptakan lapisan visualisasi yang kuat untuk data industri Anda. Koneksi ini memungkinkan dasbor pemantauan waktu nyata yang dapat digunakan operator untuk membuat keputusan berdasarkan informasi tanpa dependensi cloud.

1. [Akses instans Grafana Anda secara lokal dengan menavigasi ke http://127.0.0.1:3000 di browser Anda.](http://127.0.0.1:3000) *Jika mengaktifkan TLS diperlukan, Anda dapat merujuk ke [Mengatur Grafana HTTPS untuk lalu lintas web yang aman](https://grafana.com/docs/grafana/latest/setup-grafana/set-up-https/) di Dokumentasi. Grafana Labs*

1. Tambahkan sumber data InfluxDB yang menunjuk ke bucket seri waktu InfluxDB tempat Node-red menulis data. Misalnya, `WindFarmData`. Koneksi ini menetapkan tautan antara data yang Anda simpan dan platform visualisasi.

1. *Untuk petunjuk terperinci, lihat [Mengkonfigurasi sumber data InfluxDB di Dokumentasi](https://grafana.com/docs/grafana/latest/datasources/influxdb/configure-influxdb-data-source/). Grafana Labs*

### Buat dasbor Grafana untuk SiteWise data Edge
<a name="windows-grafana-create-dashboard"></a>

Membuat dasbor adalah langkah terakhir dalam membangun solusi pemantauan lokal Anda. Dasbor memberikan representasi visual dari data industri Anda, sehingga lebih mudah untuk mengidentifikasi tren, anomali, dan potensi masalah secara sekilas.
+ Ikuti panduan untuk membuat dasbor. Untuk informasi selengkapnya, lihat [Membangun dasbor pertama Anda](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/) di *Grafana LabsDokumentasi*. Template ini mengasumsikan bucket Anda diberi nama `WindFarmData` dan pengukurannya`TurbineData`.

  Anda juga dapat menggunakan panduan mulai cepat dengan mengimpor contoh templat dasbor yang disediakan untuk membuat dasbor dengan cepat dengan plot deret waktu untuk data yang dihasilkan Node-red di bagian sebelumnya. Template ini menyediakan titik awal yang dapat Anda sesuaikan untuk memenuhi kebutuhan pemantauan spesifik Anda.

  ```
  {
    "__inputs": [
      {
        "name": "DS_WINDFARM-DEMO",
        "label": "windfarm-demo",
        "description": "",
        "type": "datasource",
        "pluginId": "influxdb",
        "pluginName": "InfluxDB"
      }
    ],
    "__elements": {},
    "__requires": [
      {
        "type": "grafana",
        "id": "grafana",
        "name": "Grafana",
        "version": "11.6.0-pre"
      },
      {
        "type": "datasource",
        "id": "influxdb",
        "name": "InfluxDB",
        "version": "1.0.0"
      },
      {
        "type": "panel",
        "id": "timeseries",
        "name": "Time series",
        "version": ""
      }
    ],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": {
            "type": "grafana",
            "uid": "-- Grafana --"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations & Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "fiscalYearStartMonth": 0,
    "graphTooltip": 0,
    "id": null,
    "links": [],
    "panels": [
      {
        "datasource": {
          "type": "influxdb",
          "uid": "${DS_WINDFARM-DEMO}"
        },
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "palette-classic"
            },
            "custom": {
              "axisBorderShow": false,
              "axisCenteredZero": false,
              "axisColorMode": "text",
              "axisLabel": "",
              "axisPlacement": "auto",
              "barAlignment": 0,
              "barWidthFactor": 0.6,
              "drawStyle": "line",
              "fillOpacity": 0,
              "gradientMode": "none",
              "hideFrom": {
                "legend": false,
                "tooltip": false,
                "viz": false
              },
              "insertNulls": false,
              "lineInterpolation": "linear",
              "lineWidth": 1,
              "pointSize": 5,
              "scaleDistribution": {
                "type": "linear"
              },
              "showPoints": "auto",
              "spanNulls": false,
              "stacking": {
                "group": "A",
                "mode": "none"
              },
              "thresholdsStyle": {
                "mode": "off"
              }
            },
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            }
          },
          "overrides": []
        },
        "gridPos": {
          "h": 8,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "options": {
          "legend": {
            "calcs": [],
            "displayMode": "list",
            "placement": "bottom",
            "showLegend": true
          },
          "tooltip": {
            "hideZeros": false,
            "mode": "single",
            "sort": "none"
          }
        },
        "pluginVersion": "11.6.0-pre",
        "targets": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "${DS_WINDFARM-DEMO}"
            },
            "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
            "refId": "A"
          }
        ],
        "title": "Panel Title",
        "type": "timeseries"
      }
    ],
    "schemaVersion": 41,
    "tags": [],
    "templating": {
      "list": []
    },
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "timepicker": {},
    "timezone": "browser",
    "title": "demo dashboard",
    "uid": "fejc0t08o6d4wb",
    "version": 1,
    "weekStart": ""
  }
  ```