---
title: "IKB | Caso de Estudio de Wavect"
canonical: https://wavect.io/es/case-studies/ikb/
language: es
description: "IKB, la empresa municipal de Innsbruck (agua, energía, residuos, telecom), necesitaba manos de ingeniería para llevar su proyecto Smart City a escala de ciudad."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

[← Todos los casos de estudio](/es/case-studies/)

![IKB logo](/img/clients/bak/ikb.png)

CASOS DE ESTUDIO

IKB

# Ingeniería dentro del proyecto IoT de toda la ciudad de Innsbruck. Infra, dispositivos, códecs. Traspasado por completo, todavía de guardia.

IKB (Innsbrucker Kommunalbetriebe) es la empresa municipal de Innsbruck, Austria, agua, energía, residuos, telecomunicaciones. Tenían un proyecto Smart City en marcha y necesitaban manos de ingeniería que ayudaran a llevarlo a escala de ciudad.

ENTERPRISE Infraestructura IoT En Vivo

Resumen

Tipo de proyecto Infraestructura IoT

Sector [IoT / Smart City / Sector Público](/es/industries/public-sector-smart-city/)

Etapa Enterprise

Tamaño del proyecto Tarifa por hora

Año 2019-2023

Stack

Kubernetes LoRaWAN Docker JavaScript Node.js Linux

Estado En Vivo

En vivo [www.ikb.at](https://www.ikb.at/)

## Resumen

IKB (Innsbrucker Kommunalbetriebe) es la empresa municipal de Innsbruck, Austria, agua, energía, residuos, telecomunicaciones. Tenían un proyecto Smart City en marcha y necesitaban manos de ingeniería que ayudaran a llevarlo a escala de ciudad.

## ¿Cuál es el reto?

Ayudar a llevar un proyecto Smart City en marcha a escala de ciudad. Calles reales, dispositivos reales de fabricantes reales, ninguno habla el mismo dialecto. Backbone LoRaWAN sobre Kubernetes a ampliar y escalar. Hardware multi-fabricante a evaluar e integrar. Payloads uplink/downlink a decodificar por dispositivo. Datasheets que no siempre coincidían con el hardware.

## ¿Qué decisión tomamos?

### Cada dispositivo, su propio dialecto. Y cada dispositivo, su propio reloj.

> IKB ya tenía el proyecto en marcha cuando nos sumamos. Extender el backbone LoRaWAN a escala de producción era manejable. Escribir códecs contra datasheets que no coincidían con el hardware que teníamos delante no lo era. Cada fabricante manejaba los paquetes a su manera. Algunos dispositivos hablaban a diario, otros trimestralmente, otros solo cuando un contador de agua detectaba una fuga. Un byte mal costaba un ciclo entero para verificar. Construimos un workbench de códecs por fabricante, capturamos paquetes reales y los reprodujimos offline.

## Lo que hicimos

Nos sumamos al proyecto Smart City en marcha de IKB como parte de la ingeniería que lo llevaba a escala de ciudad, contra una realidad multi-fabricante donde ningún par de dispositivos habla el mismo dialecto. Nuestro frente era la infraestructura y los dispositivos: ampliar el clúster Kubernetes con ChirpStack, probar contadores de agua y rastreadores de bicicletas de carga en campo, escribir decodificadores uplink y codificadores downlink. Traspasamos la plataforma por completo al equipo interno de IKB y nos quedamos como soporte externo para nuevas integraciones de dispositivos, el stack de Grafana, la conectividad en campo y las conversaciones con fabricantes.

## Resultados

### Completo - Traspaso de la Plataforma

### Multi-fabricante - Investigación e Integración

¿Resultados así para tu proyecto?

Alcance fijo. Plazo fijo. SoW firmado.

[Hablemos](/es/contact/)

## Lo que aprendimos

El IoT a escala de ciudad es un problema de coordinación disfrazado de problema de hardware. Los protocolos son manejables. Los datasheets no. Cada fabricante documenta de forma algo distinta, cada formato de payload es su propio dialecto. La coordinación estrecha en todo el stack es lo único que funciona. El [probador de códecs LoRaWAN](/es/tools/lorawan-payload-codec-tester/) gratuito empaqueta el flujo de fixtures offline para esos dialectos de dispositivo.

## Stack Técnico

- [Kubernetes](https://kubernetes.io/)
- [LoRaWAN](https://lora-alliance.org/)
- [Docker](https://www.docker.com/)
- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- [Node.js](https://nodejs.org/)
- [Linux](https://www.kernel.org/)
- [ChirpStack](https://www.chirpstack.io/)
- [MQTT](https://mqtt.org/)
- [Grafana](https://grafana.com/)
- [PostgreSQL](https://www.postgresql.org/)

## Tags

- IoT
- Smart City
- LoRaWAN

## Enlaces y Recursos

[IKB](https://www.ikb.at/) [Smart City Lab](https://www.ikb.at/smart-city-lab)

Servicios relacionados

- [Internet de las Cosas](/es/services/internet-of-things/)
- [Desarrollo de Software a Medida](/es/services/software-development/)

Referencias de clientes y marcas

Wavect publica estos casos de estudio sobre su propio trabajo. Los nombres, logotipos y marcas de clientes son propiedad de sus respectivos titulares y se usan aquí para identificar el trabajo, no para dar a entender una asociación, un patrocinio o un respaldo. Cada caso describe la contribución propia de Wavect dentro de un esfuerzo mayor, y otras partes, incluidos los equipos del propio cliente y otros proveedores, contribuyeron a los resultados. Las cifras atribuidas a un cliente son datos reportados por ese cliente. Las cifras sobre nuestro trabajo provienen de nuestros registros a la fecha de revisión indicada, y facilitamos evidencia si se solicita. Las reseñas se reproducen desde la plataforma indicada en cada tarjeta y enlazan a su origen. No publicamos las condiciones comerciales de ningún proyecto, y las capturas de producto siguen siendo propiedad del cliente mostrado. Si apareces aquí y quieres una corrección, un cambio o una retirada, escríbenos y lo atenderemos: [office@wavect.io](mailto:office@wavect.io)

### [MyMerch](/es/case-studies/mymerch/)

MyMerch es una marca alemana de merchandising y print-on-demand con sede en el Chiemsee. Vende ropa personalizada y productos de marca a través de Shopify en …

## 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",
        "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/"
    },
    {
      "@id": "https://wavect.io/es/case-studies/ikb/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-05-21",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-05-21",
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".faq-question",
          ".faq-answer"
        ]
      },
      "url": "https://wavect.io/es/case-studies/ikb/"
    },
    {
      "@id": "https://wavect.io/verified-claims.json#ikb-complete-handover",
      "@type": "Claim",
      "appearance": {
        "@id": "https://wavect.io/es/case-studies/ikb/#webpage",
        "@type": "WebPage",
        "inLanguage": "es",
        "url": "https://wavect.io/es/case-studies/ikb/"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "dateModified": "2026-08-04",
      "identifier": "ikb-complete-handover",
      "inLanguage": "en",
      "text": "Wavect handed the IKB Smart City IoT platform over to IKB's in-house team completely and stayed on as external support."
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@id": "https://wavect.io/es/case-studies/ikb/#case-study",
  "@type": "Article",
  "about": {
    "@id": "https://wavect.io/es/case-studies/ikb/#project",
    "@type": "CreativeWork",
    "creator": {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ]
    },
    "dateCreated": "2019-01-01",
    "description": "Infraestructura IoT engagement",
    "funder": {
      "@type": "Organization",
      "name": "IKB"
    },
    "name": "IKB",
    "subjectOf": {
      "@id": "https://wavect.io/es/case-studies/ikb/#case-study",
      "@type": "Article"
    },
    "url": "https://www.ikb.at/"
  },
  "abstract": "Ayudar a llevar un proyecto Smart City en marcha a escala de ciudad. Calles reales, dispositivos reales de fabricantes reales, ninguno habla el mismo dialecto. Backbone LoRaWAN sobre Kubernetes a ampliar y escalar. Hardware multi-fabricante a evaluar e integrar. Payloads uplink/downlink a decodificar por dispositivo. Datasheets que no siempre coincidían con el hardware.",
  "author": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "datePublished": "2019-01-01",
  "description": "IKB (Innsbrucker Kommunalbetriebe) es la empresa municipal de Innsbruck, Austria, agua, energía, residuos, telecomunicaciones. Tenían un proyecto Smart City en marcha y necesitaban manos de ingeniería que ayudaran a llevarlo a escala de ciudad.",
  "headline": "IKB, Wavect Case Study",
  "image": "https://wavect.io/img/clients/bak/ikb.png",
  "inLanguage": "es",
  "isPartOf": {
    "@type": "CollectionPage",
    "name": "Wavect Case Studies",
    "url": "https://wavect.io/es/case-studies/"
  },
  "keywords": "IoT, Smart City, LoRaWAN, Kubernetes, LoRaWAN, Docker, JavaScript, Node.js, Linux, ChirpStack, MQTT, Grafana, PostgreSQL",
  "mainEntityOfPage": "https://wavect.io/es/case-studies/ikb/",
  "mentions": [
    {
      "@type": "DefinedTerm",
      "name": "Kubernetes",
      "url": "https://kubernetes.io/"
    },
    {
      "@type": "DefinedTerm",
      "name": "LoRaWAN",
      "url": "https://lora-alliance.org/"
    },
    {
      "@type": "DefinedTerm",
      "name": "Docker",
      "url": "https://www.docker.com/"
    },
    {
      "@type": "DefinedTerm",
      "name": "JavaScript",
      "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript"
    },
    {
      "@type": "DefinedTerm",
      "name": "Node.js",
      "url": "https://nodejs.org/"
    },
    {
      "@type": "DefinedTerm",
      "name": "Linux",
      "url": "https://www.kernel.org/"
    },
    {
      "@type": "DefinedTerm",
      "name": "ChirpStack",
      "url": "https://www.chirpstack.io/"
    },
    {
      "@type": "DefinedTerm",
      "name": "MQTT",
      "url": "https://mqtt.org/"
    },
    {
      "@type": "DefinedTerm",
      "name": "Grafana",
      "url": "https://grafana.com/"
    },
    {
      "@type": "DefinedTerm",
      "name": "PostgreSQL",
      "url": "https://www.postgresql.org/"
    }
  ],
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/es/case-studies/ikb/"
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/case-studies/",
      "name": "Casos de Estudio",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/case-studies/ikb/",
      "name": "IKB",
      "position": 3
    }
  ]
}
```
