<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adrelien</title>
    <description>The latest articles on DEV Community by Adrelien (@adrelien).</description>
    <link>https://dev.to/adrelien</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2599778%2F636008b5-5ed2-467a-b0d5-cf329ab4b852.png</url>
      <title>DEV Community: Adrelien</title>
      <link>https://dev.to/adrelien</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adrelien"/>
    <language>en</language>
    <item>
      <title>How to Visualize The Things Network Data in Grafana (Real-Time &amp; Easy)</title>
      <dc:creator>Adrelien</dc:creator>
      <pubDate>Wed, 10 Dec 2025 23:23:12 +0000</pubDate>
      <link>https://dev.to/adrelien/how-to-visualize-the-things-network-data-in-grafana-real-time-easy-518a</link>
      <guid>https://dev.to/adrelien/how-to-visualize-the-things-network-data-in-grafana-real-time-easy-518a</guid>
      <description>&lt;p&gt;You've deployed LoRaWAN sensors. They're transmitting to The Things Network perfectly. But here's where most people get stuck: turning that raw sensor data into actual dashboards you can use. If you've searched for "The Things Network Grafana visualization" or "how to store TTN data," you've probably found tutorials that require setting up InfluxDB, configuring Telegraf with MQTT, wrestling with Docker containers, or paying for Azure IoT Hub. Hours of configuration, multiple moving parts that can break, and the constant burden of maintenance.&lt;/p&gt;

&lt;p&gt;There's a simpler path. Telemetry Harbor's TTN integration connects your LoRaWAN data to production-ready Grafana dashboards in under 10 minutes. One webhook, zero infrastructure, and your sensor data starts flowing immediately with RSSI, SNR, and network quality metrics automatically included.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Storage Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;The Things Network receives your data perfectly, but it only stores it for seven days. After that, it's gone. This puts you in an impossible position: either build custom storage infrastructure yourself, or lose all your historical sensor data. Most tutorials gloss over this critical gap, jumping straight to visualization while ignoring the fundamental question of where your data actually lives long-term.&lt;/p&gt;

&lt;p&gt;Setting up your own database means installing InfluxDB or PostgreSQL, configuring retention policies, managing disk space, implementing backups, monitoring database health, and keeping everything secure and patched. Cloud alternatives like Azure IoT Hub or AWS IoT Core solve the storage problem but introduce new challenges: complex configuration interfaces, data ingestion fees, storage costs that scale with usage, and the expertise needed to manage cloud infrastructure properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you actually need to get started
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LoRaWAN device sending data to The Things Network&lt;/li&gt;
&lt;li&gt;The Things Network V3 account (free tier works perfectly)&lt;/li&gt;
&lt;li&gt;Telemetry Harbor account (free tier: 1 request/second, 3 million data points, plus 10 AI questions daily)&lt;/li&gt;
&lt;li&gt;10 minutes of your time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No Docker installation. No database configuration. No cloud platform expertise required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Telemetry Harbor is Different
&lt;/h2&gt;

&lt;p&gt;Instead of making you become a DevOps engineer just to see your sensor data, Telemetry Harbor provides a dead-simple webhook integration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Infrastructure&lt;/strong&gt;: No servers to provision, no databases to configure, no Docker networks to debug&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Grafana Access&lt;/strong&gt;: Pre-configured Grafana instance included with every harbor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Payload Decoding&lt;/strong&gt;: Your TTN payload formatter runs in TTN; Telemetry Harbor automatically ingests the decoded result&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Metrics Included&lt;/strong&gt;: RSSI, SNR, spreading factor, frequency, all captured automatically for every uplink&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actually Free (for real)&lt;/strong&gt;: 1 request/second (86,400 requests per day), which means a 20-sensor fleet transmitting every 10 minutes uses only 2,880 of your daily quota&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compare that to self-hosting: a basic DigitalOcean droplet starts at $6/month, plus your own setup and maintenance time. Azure or AWS? Their managed time-series databases start at $23/month, before data transfer and storage fees.&lt;/p&gt;

&lt;h3&gt;
  
  
  But wait, what if you want full control over your data?
&lt;/h3&gt;

&lt;p&gt;Telemetry Harbor also comes with a free, fully open-source, self-hosted version. Run it on your own hardware, Raspberry Pi, mini-PC, NAS, home server, whatever you have. Get the OSS version here: &lt;a href="https://telemetryharbor.com" rel="noopener noreferrer"&gt;Overview | Telemetry Harbor&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Telemetry Harbor OSS is the open-source ingestion and visualization stack behind Telemetry Harbor.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 1: Create Your TTN Harbor (2 minutes)
&lt;/h2&gt;

&lt;p&gt;Log into Telemetry Harbor and create a new harbor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Create Harbor&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Name it something like "Field_Sensors" or "LoRaWAN_Fleet"&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;The Things Network&lt;/strong&gt; as the Harbor Type (not "General")&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Free tier&lt;/strong&gt; to start&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Harbor&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From the harbor details page, copy these credentials (you'll need them in a minute):&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From API Access tab:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TTN Webhook Endpoint (e.g., &lt;code&gt;https://telemetryharbor.com/api/v2/ingest/123/ttn&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;API Key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;From Visualization tab:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grafana URL&lt;/li&gt;
&lt;li&gt;Grafana Username&lt;/li&gt;
&lt;li&gt;Grafana Password&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 2: Configure Your Payload Formatter (5 minutes)
&lt;/h2&gt;

&lt;p&gt;Here's the one technical requirement: your TTN payload formatter must return flat, numerical data. This runs on TTN's servers (not yours), and Telemetry Harbor automatically ingests the decoded result.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;LoRaWAN devices send raw bytes to save battery and bandwidth. TTN needs to decode these bytes into meaningful numbers before sending to integrations. Without this step, Telemetry Harbor would receive &lt;code&gt;0x1850&lt;/code&gt; instead of &lt;code&gt;temperature: 24, humidity: 80&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Write Your Decoder
&lt;/h3&gt;

&lt;p&gt;In your TTN Console:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Applications → Your Application → Payload Formatters → Uplink&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Javascript&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Paste your decoder function&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example for a basic environmental sensor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;decodeUplink&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;

  &lt;span class="c1"&gt;// Decode temperature (2 bytes, signed, 0.01°C precision)&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;temp_raw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;temp_raw&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;32767&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;temp_raw&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="mi"&gt;65536&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;temperature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;temp_raw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;100.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Decode humidity (1 byte, 0-100%)&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;humidity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

  &lt;span class="c1"&gt;// Decode battery (1 byte, 0.01V precision)&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;battery_voltage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;100.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;        &lt;span class="c1"&gt;// MUST be flat numerical values&lt;/span&gt;
    &lt;span class="na"&gt;warnings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="na"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Test it&lt;/strong&gt;: Use the Test tab with sample hex payload to verify output, then click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Pro Tip&lt;/strong&gt;: Keep your payload formatters simple. Complex nested objects won't work. Just flat keys with numerical values.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 3: Add the Webhook to TTN (3 minutes)
&lt;/h2&gt;

&lt;p&gt;This is where the magic happens. No MQTT clients, no Telegraf configs, no debugging connection strings.&lt;/p&gt;

&lt;p&gt;In your TTN Application:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Webhooks → + Add Webhook&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Custom Webhook&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Configure exactly as shown:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Webhook ID&lt;/strong&gt;: &lt;code&gt;telemetry-harbor&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhook Format&lt;/strong&gt;: JSON&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Base URL&lt;/strong&gt;: Paste your TTN Webhook Endpoint from Step 1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Additional Headers&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Key: &lt;code&gt;X-API-Key&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Value: Your Telemetry Harbor API Key&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enabled Messages&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;✅ Uplink message (required)&lt;/li&gt;
&lt;li&gt;❌ Uncheck everything else&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add webhook&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the entire setup. No Docker compose files, no environment variables, no service restarts. Your data is now flowing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Check Your Grafana Dashboard
&lt;/h2&gt;

&lt;p&gt;Open your Grafana Endpoint URL, log in with your credentials, and navigate to &lt;strong&gt;Dashboards → Comprehensive Telemetry Dashboard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Use the filter controls to focus on specific aspects of your deployment. Select your TTN harbor as the data source, filter by Ship ID to view specific devices, choose Cargo IDs to display particular metrics, and adjust time ranges to see historical patterns. The interface makes it simple to zoom into problem areas or zoom out for fleet-wide analysis.&lt;/p&gt;

&lt;p&gt;For custom visualizations beyond the default dashboard, create panels tailored to your monitoring needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Telemetry Harbor Advantage: Harbor AI
&lt;/h2&gt;

&lt;p&gt;This is where Telemetry Harbor goes beyond "just another dashboard platform." Harbor AI lets you ask questions about your LoRaWAN fleet in plain English.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Conversations
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;You&lt;/strong&gt;: "Which sensors have the weakest signal right now?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Harbor AI&lt;/strong&gt;: "Based on the last hour of RSSI data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;soil-sensor-03: -118 dBm (critical, likely dropping packets)&lt;/li&gt;
&lt;li&gt;field-monitor-07: -112 dBm (weak but stable)&lt;/li&gt;
&lt;li&gt;All other devices: -95 dBm or better&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sensor-03's signal has degraded 15 dBm since Monday. Consider relocating the gateway or adding a repeater."&lt;/p&gt;

&lt;p&gt;Harbor AI combines your specific sensor data with general LoRaWAN knowledge to provide insights you'd otherwise need to piece together manually from multiple Grafana panels.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;LoRaWAN sensors should simplify monitoring, not create infrastructure problems. The path from TTN to actionable dashboards has traditionally required database expertise, DevOps skills, or cloud platform knowledge that most sensor deployments don't need and shouldn't require.&lt;/p&gt;

&lt;p&gt;Telemetry Harbor changes this equation by treating TTN integration as a solved problem rather than a DIY project. One webhook connects your entire LoRaWAN fleet to production-grade storage and visualization. Your data flows continuously, dashboards update in real-time, and network quality metrics appear automatically alongside your sensor readings. No infrastructure to manage, no cloud bills to monitor, no maintenance windows to schedule.&lt;/p&gt;

&lt;p&gt;The comprehensive Grafana dashboard displays your data immediately without requiring panel configuration or query building. Harbor AI answers questions about your fleet in plain language without requiring dashboard expertise. Network quality metrics help optimize gateway placement and diagnose connectivity issues without specialized LoRaWAN tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ready to Get Started?
&lt;/h3&gt;

&lt;p&gt;Create a free Telemetry Harbor account, configure the TTN webhook, and see your first data in under 10 minutes. The free tier handles real deployments at zero cost, and paid plans remain dramatically cheaper than cloud alternatives if you need to scale. Your LoRaWAN data deserves better than DIY infrastructure projects or expensive cloud platforms. Choose the simple path.&lt;/p&gt;

</description>
      <category>ttn</category>
      <category>thethingsnetwork</category>
      <category>lora</category>
      <category>iot</category>
    </item>
    <item>
      <title>How to Push, Store, and Visualize IoT Data to the Cloud (No Self-Hosting Required)</title>
      <dc:creator>Adrelien</dc:creator>
      <pubDate>Sat, 21 Dec 2024 17:16:58 +0000</pubDate>
      <link>https://dev.to/adrelien/how-to-push-store-and-visualize-iot-data-to-the-cloud-no-self-hosting-required-5pn</link>
      <guid>https://dev.to/adrelien/how-to-push-store-and-visualize-iot-data-to-the-cloud-no-self-hosting-required-5pn</guid>
      <description>&lt;p&gt;In the world of IoT, we often find ourselves searching for efficient ways to get data from sensors to a place where it can be stored and visualized. IoT devices generate massive amounts of telemetry data, but managing this data effectively is often more complex than it seems.&lt;/p&gt;

&lt;p&gt;Typically, setting up an infrastructure involves multiple components: an MQTT broker for data ingestion, a service like Node-RED to process and save the data, a database such as InfluxDB for storage, and a visualization tool like Grafana. Many IoT enthusiasts and professionals end up self-hosting these components on a server or in a homelab. However, this approach frequently leads to spending more time configuring and maintaining the setup rather than building devices, expanding sensor networks, or analyzing data to take action.&lt;/p&gt;

&lt;p&gt;This guide focuses on an efficient way to tackle these challenges using Telemetry Harbor. By the end, you’ll understand how to push your IoT data to the cloud and visualize it effortlessly—without the need to self-host or configure complex infrastructures.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma54kyy6e9g2gwrhj9yx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma54kyy6e9g2gwrhj9yx.png" alt="Credit: timescale.com" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;IoT enthusiasts often struggle with the complexity of setting up systems to collect, store, and visualize telemetry data. The process typically involves configuring tools like MQTT brokers, databases, and visualization platforms, which requires technical expertise and significant time investment. Setting up data ingestion servers, whether using MQTT or HTTP, can be a complicated and time-consuming task. After that, choosing the right database—such as a time-series database like InfluxDB or TimescaleDB or a general-purpose solution like PostgreSQL—adds another layer of complexity. Once the database is set up, creating dashboards with tools like Grafana involves connecting the database, designing visualizations, and managing user access. But the challenges don’t end there.&lt;/p&gt;

&lt;p&gt;Maintaining a self-hosted system comes with ongoing responsibilities such as updates, backups, and scaling, which only become more demanding as data volumes increase. This leads to high operational costs for hosting and infrastructure, which can grow quickly as projects scale. Enthusiasts often find themselves spending more time on managing the infrastructure than on innovating or deploying devices, which can be frustrating and divert attention away from the core goals of IoT development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplify Everything with Telemetry Harbor
&lt;/h2&gt;

&lt;p&gt;Telemetry Harbor is a platform that provides a complete full-stack solution as a service. From ingesting data through an easy-to-use HTTP endpoint (with more protocols coming soon) to storing it in a well-optimized, managed database, and offering pre-configured Grafana templates for visualization, Telemetry Harbor streamlines the entire process. In just a few minutes, you can go from creating an account to visualizing your first data point—no complex setup or infrastructure management required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foegvzm29sukj80b87yup.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foegvzm29sukj80b87yup.jpg" alt="Harbor AI" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not sold yet?&lt;/strong&gt; Telemetry Harbor has rolled out the beta of Harbor AI, where you can interact with your data using a large language model—essentially, you can talk to your data in your &lt;strong&gt;natural language&lt;/strong&gt;. No need to create complex Grafana dashboards for a simple value; just ask your Harbor. While this feature is still in beta, every user has a maximum of 10 questions per day.&lt;/p&gt;

&lt;p&gt;They offers a generous free tier that makes it easy to get started without any upfront costs. With the free plan, you'll get 10 requests per second, 1 batch request per second, and up to 10 data points per batch. Your data is retained for 30 days, and you’ll have unlimited storage and shared access to Grafana. While the free tier includes basic backup and support, it’s a great way to explore the platform's capabilities. As your needs grow, you can easily scale up. For more details on the free plan and other pricing options, check out our &lt;a href="https://telemetryharbor.com/pricing?ref=adrelien.com" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Telemetry Harbor
&lt;/h2&gt;

&lt;p&gt;Let’s walk through how to get started and push your first data point to Telemetry Harbor. We’ll follow the official documentation, and you can always check the latest guide here: Getting Started Guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create Your Account
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3bc53uq0la388ozhwht.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3bc53uq0la388ozhwht.jpg" alt="Create An Account" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;a href="https://telemetryharbor.com/signup?ref=adrelien.com" rel="noopener noreferrer"&gt;Sign Up&lt;/a&gt; page.&lt;/li&gt;
&lt;li&gt;Fill in your details and create your account.&lt;/li&gt;
&lt;li&gt;Check your inbox for a verification email.&lt;/li&gt;
&lt;li&gt;Click the verification link to activate your account.&lt;/li&gt;
&lt;li&gt;After activation, log in to your account.&lt;/li&gt;
&lt;li&gt;Now, head to the &lt;a href="https://telemetryharbor.com/app/harbor?ref=adrelien.com" rel="noopener noreferrer"&gt;Harbor Page&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Set Up Your Harbor
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr75fdp21qzpoldpkz0n6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr75fdp21qzpoldpkz0n6.jpg" alt="Set up your harbor" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the top right corner, click on &lt;strong&gt;Create Harbor&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Give your harbor a name.&lt;/li&gt;
&lt;li&gt;Choose the harbor type. For now, select the general type (custom types like GPS or temperature data will be added soon).&lt;/li&gt;
&lt;li&gt;Choose your Harbor Specifications. If you want to use the free tier, select &lt;strong&gt;Free&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Harbor&lt;/strong&gt; to finish setting up your harbor.&lt;/li&gt;
&lt;li&gt;After creating your harbor, the harbor list will update, and you’ll see your new harbor listed.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;View Details&lt;/strong&gt; to access essential information like the API Endpoint, API Batch Endpoint, API Key, Grafana Endpoint, Grafana Username, and Grafana Password.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Get Your API Key and Endpoint
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm4pjyiidq80m9srluov.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm4pjyiidq80m9srluov.jpg" alt="Get Your API Key" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find the &lt;strong&gt;API Endpoint&lt;/strong&gt; (make sure to use the standard endpoint, not the batch one, since we’re sending just one data point).&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;API Key&lt;/strong&gt; and &lt;strong&gt;API Endpoint&lt;/strong&gt;. Keep these handy for the next step.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Push Your First Data Point
&lt;/h2&gt;

&lt;p&gt;To send your first data point, you’ll need to make a POST request to the API endpoint.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Include the header: X-API-Key: your_api_key_here.&lt;/li&gt;
&lt;li&gt;Structure the POST body like this:
&lt;code&gt;{
"time": "2024-11-18T19:24:00.948Z",
"ship_id": "string",
"cargo_id": "string",
"value": 0
}&lt;/code&gt;
You can use curl or any programming language/tool that can send POST requests. Here’s an example using curl:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;curl -X POST https://telemetryharbor.com/api/v1/ingest/ingest/harbor_id \&lt;br&gt;
-H "X-API-Key: your_api_key" \&lt;br&gt;
-H "Content-Type: application/json" \&lt;br&gt;
-d '{&lt;br&gt;
    "time": "2024-11-18T19:44:16.160Z",&lt;br&gt;
    "ship_id": "string",&lt;br&gt;
    "cargo_id": "string",&lt;br&gt;
    "value": 0&lt;br&gt;
}'&lt;/code&gt;&lt;br&gt;
If everything goes smoothly, you should get a code &lt;strong&gt;200 response&lt;/strong&gt;, confirming that your data has been received.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: View Your Data
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtidtp9b35huh4tr78e5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtidtp9b35huh4tr78e5.jpg" alt="View Your Data" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go back to the &lt;strong&gt;Harbor Details&lt;/strong&gt; page.&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Grafana Password&lt;/strong&gt; and open the &lt;strong&gt;Grafana Endpoint&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Log in using your &lt;strong&gt;Grafana Username&lt;/strong&gt; (this will be the same as your Telemetry Harbor email) and the &lt;strong&gt;Grafana Password&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Once logged in, go to &lt;strong&gt;Dashboards **and select the **Comprehensive Telemetry Dashboard&lt;/strong&gt; (this is the demo dashboard provided by Telemetry Harbor).&lt;/li&gt;
&lt;li&gt;Inside the dashboard: Choose your data source (which will be your harbor). Use the filters to view data based on ship_id and cargo_id.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From there, you'll find several panels in the dashboard, and you're free to customize them or even create entirely new ones to suit your needs. If you scroll down, you'll also see a map. This is because, even with the general harbor type, you can push GPS coordinates to visualize location data. While the process for doing this is a bit unconventional, the documentation provides clear and detailed instructions on how to handle it effectively. For more information, check out the official guide on working with GPS data at &lt;a href="https://docs.telemetryharbor.com/docs/api/gps-data?ref=adrelien.com" rel="noopener noreferrer"&gt;Telemetry Harbor GPS Data API Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Concepts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Harbors: These are logical containers that organize your data into manageable groups, making it easier to analyze.&lt;/li&gt;
&lt;li&gt;Ships: These represent individual devices or data sources that send data to your harbors.&lt;/li&gt;
&lt;li&gt;Cargo: The sensors or devices on your ships that capture and send the data.&lt;/li&gt;
&lt;li&gt;ship_id and cargo_id: These values can be any string. It’s important to stick to a consistent naming scheme to ensure proper grouping and filtering when analyzing data in your dashboards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, Telemetry Harbor takes the complexity out of managing IoT data by providing a seamless, cloud-based solution for data collection, storage, and visualization. This enables you to focus on what truly matters—your devices and the insights they generate—rather than dealing with the technicalities of infrastructure setup. With just a few simple steps, you can start pushing data to the cloud and viewing it in a pre-configured Grafana dashboard, eliminating the need for extensive configuration or maintenance. The free tier offers an accessible way to get started. This approach allows you to spend more time innovating with your devices and less time managing the systems that support them&lt;/p&gt;

</description>
      <category>database</category>
      <category>postgres</category>
      <category>timeseries</category>
    </item>
  </channel>
</rss>
