---
title: "Smart City IoT: LoRaWAN, Metering & Device Codecs"
canonical: https://wavect.io/services/smart-city-iot/
language: en
description: "LoRaWAN network servers, metering, asset tracking and device codecs for cities and utilities. Wavect integrates multi-vendor devices into municipal systems and hands over."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Smart City IoT

# Smart city IoT that survives the step from twenty test devices to a whole city.

The radio is rarely the hard part. Datasheets that do not match the hardware, devices that report once a quarter and vendors that never planned to talk to each other are. We extend LoRaWAN network servers, evaluate and integrate multi-vendor devices, write the codecs and connect the data to the systems your utility already runs.

THE ENGAGEMENT

## One network. Many vendors. A platform your team operates.

1. **Map network and devices** Network server, gateways, device types, vendors and owners.
2. **Integrate and decode** Device onboarding, codecs, fixtures and data routing.
3. **Connect and hand over** Municipal system integration, monitoring and documentation.

DIRECT ANSWER

Smart city IoT connects metering, tracking and environmental devices across a city to software the operator can run. This engagement covers LoRaWAN network server work, device evaluation, uplink and downlink codecs, and integration into agreed municipal systems, with a complete handover.

Best for

- Municipal utilities and cities scaling a LoRaWAN network beyond a pilot
- An in-house team that needs engineering hands for infrastructure, devices and codecs

Consider another approach

- Connecting machines inside a plant or production line
- Device firmware development or radio planning without a software scope

## Scale is different engineering, not a bigger pilot

Radio coverage, battery budgets, reporting intervals and data volume behave differently at city scale than on a test bench. Start with the device type that will carry the rollout and the system that needs its data. For the sector view, see [Public Sector & Smart City](/industries/public-sector-smart-city/). For IoT products and connectivity in general, start at [Internet of Things](/services/internet-of-things/). Machines and sensors inside a plant belong with [Industrial IoT](/services/industrial-iot/).

## The network server layer

A private network on an open-source network server such as ChirpStack gives a city control over gateways, tenants and integrations, and makes radio operations its own responsibility. A managed LoRaWAN service shifts that work to a provider. We help you choose, then build and scale the option you pick.

Network server and infrastructure

Deploy, extend and scale the network server on infrastructure your team can run, including Kubernetes where the platform has earned it, with gateway and tenant management documented.

Device onboarding

Register devices, manage keys and profiles, and agree who may add, move or retire a device in the field.

Data routing

Route decoded data via MQTT or the network server's integrations to storage, dashboards and downstream systems, with each integration owned and monitored.

Monitoring

Watch gateways, join failures, silent devices and decoding errors, so a missing water meter shows up as an alert, not as a gap in next month's report.

## Every device, its own dialect

Vendors document payloads differently, and the datasheet does not always match the device in front of you. We write uplink decoders and downlink encoders per device type, capture real packets and replay them offline as fixtures, so a firmware update that silently changes a payload fails a test instead of corrupting data. You can try the same workflow in the free [LoRaWAN payload codec tester](/tools/lorawan-payload-codec-tester/).

## Metering, asset tracking and municipal systems

Decoded data is only useful once it reaches the system that acts on it, for example a metering or billing platform, an asset or fleet register, a GIS layer or an operations dashboard. We map each target system, agree the data owner and the failure handling, and test the path with representative devices. Which systems are in scope is confirmed during the assessment. Our [smart city architecture guide](/blog/smart-city-architecture-best-practices-2026/) explains the layers we start from.

## Assess, build, hand over

Each phase is scoped and quoted before work starts. Devices, gateways and network fees are listed separately from software work.

1. **Assessment** - Receive a network and device inventory, vendor and codec risks, integration targets and a prioritized plan with acceptance criteria.
2. **Build and acceptance** - Receive the agreed network server changes, codecs with fixtures, integrations and monitoring, tested with real devices and accepted by your team.
3. **Handover and support** - Receive documentation and a walkthrough for your in-house team. New device integrations and support are agreed separately. This does not establish 24/7 coverage or an uptime SLA.

## Public infrastructure must not depend on its contractor

The network, codecs and integrations live in your accounts and repositories. At IKB, Innsbruck’s municipal utility, we worked inside an in-flight Smart City build on infrastructure, devices and codecs, alongside IKB’s own team, then handed the platform over completely and stayed available for new device integrations. That is the shape we aim for. Read the [IKB case study](/case-studies/ikb/) for what that engagement covered.

// proof

## Engineering inside a city-scale LoRaWAN build

IKB documents engineering inside Innsbruck's in-flight Smart City build alongside IKB's own team, covering extension of the Kubernetes cluster running ChirpStack, field tests of water meters and cargo-bike trackers, and per-device decoders and encoders, with the platform handed over completely to IKB's in-house team. It shows that published scope, not a promise of the same result for another network.

### [IKB](/case-studies/ikb/)
- **Status:** Live
- **Outcome:** Complete - Platform Handover
- **Summary:** Smart City IoT for Innsbruck: extended and scaled the LoRaWAN infrastructure, evaluated and integrated multi-vendor devices, wrote …
- **Stack:** Kubernetes, LoRaWAN, Docker

These are selected projects, not our full portfolio. We have shipped 100+ products since 2018.

## Questions before you start

### Should we run our own LoRaWAN network server?

If you want control over gateways, tenants and integrations and have a team to operate them, a private network server is a strong option. If not, a managed service is often the better start. We compare both against your operating capacity.

### Do you build device firmware?

No. We write the codecs, onboarding, infrastructure and integrations above the firmware. If firmware work is needed, we say so and point you to a hardware partner.

### Can you reinforce a smart city build that is already running?

Yes. Joining an in-flight build and owning clearly cut lanes such as infrastructure, device integration and codecs is exactly the IKB shape. We agree the lanes and the handover with your team first.

### Is LoRaWAN always the right radio?

No. It suits small, infrequent messages from battery devices. Higher throughput, mobility or low latency can point to NB-IoT, LTE-M or other options. The radio follows the use case.

### How do you handle devices from many vendors?

One decoder per device type, normalized into a shared schema, tested against captured packets. Monitoring flags devices whose payloads stop decoding after a vendor update.

## Choose your next step

- [Public sector and smart city overview](/industries/public-sector-smart-city/)
- [IoT product and connectivity overview](/services/internet-of-things/)
- [Test a LoRaWAN payload codec](/tools/lorawan-payload-codec-tester/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/services/smart-city-iot/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "Internet of Things",
      "dateModified": "2026-10-30",
      "description": "LoRaWAN network servers, metering, asset tracking and device codecs for cities and utilities. Wavect integrates multi-vendor devices into municipal systems and hands over.",
      "name": "Smart City IoT",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "Smart City IoT",
      "url": "https://wavect.io/services/smart-city-iot/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/",
          "name": "Services",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/#iot",
          "name": "Internet of Things",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/smart-city-iot/",
          "name": "Smart City IoT",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/services/smart-city-iot/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-30",
      "description": "LoRaWAN network servers, metering, asset tracking and device codecs for cities and utilities. Wavect integrates multi-vendor devices into municipal systems and hands over.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/services/smart-city-iot/#service"
      },
      "name": "Smart City IoT",
      "url": "https://wavect.io/services/smart-city-iot/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "If you want control over gateways, tenants and integrations and have a team to operate them, a private network server is a strong option. If not, a managed service is often the better start. We compare both against your operating capacity."
      },
      "name": "Should we run our own LoRaWAN network server?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. We write the codecs, onboarding, infrastructure and integrations above the firmware. If firmware work is needed, we say so and point you to a hardware partner."
      },
      "name": "Do you build device firmware?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Joining an in-flight build and owning clearly cut lanes such as infrastructure, device integration and codecs is exactly the IKB shape. We agree the lanes and the handover with your team first."
      },
      "name": "Can you reinforce a smart city build that is already running?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. It suits small, infrequent messages from battery devices. Higher throughput, mobility or low latency can point to NB-IoT, LTE-M or other options. The radio follows the use case."
      },
      "name": "Is LoRaWAN always the right radio?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "One decoder per device type, normalized into a shared schema, tested against captured packets. Monitoring flags devices whose payloads stop decoding after a vendor update."
      },
      "name": "How do you handle devices from many vendors?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
