From 6c6284d656d404e98b9114196f5e532ba01c5ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Sat, 11 Apr 2026 09:34:30 +0200 Subject: [PATCH 01/30] feat: Add new KERN landing page and references section - Created index.html for KERN with a comprehensive overview of the autonomous energy platform. - Added references.html to showcase live installations and customer references. - Updated main.js to change favicon to SVG format for better scalability. - Introduced technology.html detailing the technology stack behind KERN, including MIOTY and Zigbee Mesh. - Added infrastructure-iq.pdf to the slides directory for presentation purposes. - Updated main.css to reflect new color scheme and styling adjustments. --- {product => archive/product}/facility-iq.html | 0 .../product}/infrastructure-iq.html | 0 {product => archive/product}/iq-actor-id.html | 0 {product => archive/product}/pwr-trust.html | 0 images/kern-logo-dark.svg | 34 + images/kern-logo.svg | 39 ++ images/kern-symbol.svg | 14 + includes/nav.html | 323 +++++++--- index.html | 594 ++++++++++++++++-- kern/for-aggregators.html | 157 +++++ kern/for-communities.html | 171 +++++ kern/for-platforms.html | 179 ++++++ kern/for-utilities.html | 154 +++++ kern/index.html | 176 ++++++ references/index.html | 124 ++++ scripts/main.js | 4 +- slides/infrastructure-iq.pdf | Bin 0 -> 199008 bytes styles/main.css | 5 +- technology/index.html | 228 +++++++ 19 files changed, 2059 insertions(+), 143 deletions(-) rename {product => archive/product}/facility-iq.html (100%) rename {product => archive/product}/infrastructure-iq.html (100%) rename {product => archive/product}/iq-actor-id.html (100%) rename {product => archive/product}/pwr-trust.html (100%) create mode 100644 images/kern-logo-dark.svg create mode 100644 images/kern-logo.svg create mode 100644 images/kern-symbol.svg create mode 100644 kern/for-aggregators.html create mode 100644 kern/for-communities.html create mode 100644 kern/for-platforms.html create mode 100644 kern/for-utilities.html create mode 100644 kern/index.html create mode 100644 references/index.html create mode 100644 slides/infrastructure-iq.pdf create mode 100644 technology/index.html diff --git a/product/facility-iq.html b/archive/product/facility-iq.html similarity index 100% rename from product/facility-iq.html rename to archive/product/facility-iq.html diff --git a/product/infrastructure-iq.html b/archive/product/infrastructure-iq.html similarity index 100% rename from product/infrastructure-iq.html rename to archive/product/infrastructure-iq.html diff --git a/product/iq-actor-id.html b/archive/product/iq-actor-id.html similarity index 100% rename from product/iq-actor-id.html rename to archive/product/iq-actor-id.html diff --git a/product/pwr-trust.html b/archive/product/pwr-trust.html similarity index 100% rename from product/pwr-trust.html rename to archive/product/pwr-trust.html diff --git a/images/kern-logo-dark.svg b/images/kern-logo-dark.svg new file mode 100644 index 0000000..af7506c --- /dev/null +++ b/images/kern-logo-dark.svg @@ -0,0 +1,34 @@ + + KERN by Riddle&Code — dark background + + + + + + + + + + + + + + KERN + + + Infrastructure for distributed energy. + + diff --git a/images/kern-logo.svg b/images/kern-logo.svg new file mode 100644 index 0000000..5cc3424 --- /dev/null +++ b/images/kern-logo.svg @@ -0,0 +1,39 @@ + + KERN by Riddle&Code + + + + + + + + + + + + + KERN + + + Infrastructure for distributed energy. + + diff --git a/images/kern-symbol.svg b/images/kern-symbol.svg new file mode 100644 index 0000000..48335fc --- /dev/null +++ b/images/kern-symbol.svg @@ -0,0 +1,14 @@ + + KERN symbol + + + + + + + + + diff --git a/includes/nav.html b/includes/nav.html index 53a7fd4..cddd7c3 100644 --- a/includes/nav.html +++ b/includes/nav.html @@ -1,28 +1,12 @@ - + + diff --git a/index.html b/index.html index 125db58..518c257 100644 --- a/index.html +++ b/index.html @@ -2,82 +2,556 @@ - Riddle&Code — Energy Infrastructure for the Future + Riddle&Code — Autonomous Energy. Behind the Meter. - - - - - - - - - + + + + + - - + - - + - - -
-

- Connect. See. Control.
- Distributed Energy Assets + + +
+
R&C KERN — Autonomous Energy Platform
+

+ Autonomous energy
behind the meter.

-

- Take control of your energy infrastructure with secure connectivity that reaches every asset, real-time visibility into every kilowatt, and intelligent control that optimizes every decision — turning fragmented resources into a unified, intelligent system. +

+ KERN forecasts flexibility, reacts to market signals and dispatches assets autonomously — + so aggregators, utilities and energy communities always deliver.

-
-
- 1.5M - Messages/Day per Node + +
+ + +
+
+ 1.5M + Messages / Day +
+
+ 10 km + MIOTY Range +
+
+ 24 h + Flexibility Forecast +
+
+ 100% + Autonomous Dispatch +
+
+ + +
+
+
+
+
+
-
- 10km - Coverage Range + R&C KERN — live dashboard view +
+
+ + +
+ + +
+ + +
+
+

The autonomous loop

+

You send a signal. KERN delivers. What happens behind the meter is our job.

+ +
+
+
1
+
Forecast
+
Rolling 24h flexibility profile per asset and portfolio
+
+
+
+
2
+
Demand
+
Flexibility signal from aggregator, utility or market
+
+
+
+
3
+
Rebalance
+
Real-time comparison of signal vs. actual asset state
+
+
+
+
4
+
Dispatch
+
Autonomous asset control via MIOTY or Zigbee Mesh
+
+
+
+
5
+
Confirm
+
Execution confirmed back to aggregator in real-time
+
-
- 99.9% - Uptime Reliability + +
+ KERN interacts with your platform at step 1 and 2.
+ Steps 3–5 are fully autonomous — no manual intervention required.
- - -
- - -
- - -
- - -
- - -
- - -
-
-

Ready to Transform Your Energy Assets?

-

- Whether you're managing a single building or an entire distribution network, we have the infrastructure and expertise to help you succeed. -

-
- Request a Demo - Explore MYPWR + + +
+
+ Live Reference +

Austria's largest utility built their entire flexibility stack on R&C KERN

+
+
Live MV/LV microgrid — production system
+
Utility-owned aggregator securing market bids via KERN
+
Energy community platform — KERN optimization layer
+

+ Live system — visitable on request in Lower Austria. +

+ See the full reference →
- - + + +
+

Stop managing assets.
Let KERN deliver.

+

30 minutes to show you how the autonomous loop works — on a live system.

+ +
+ + diff --git a/kern/for-aggregators.html b/kern/for-aggregators.html new file mode 100644 index 0000000..e7c2faa --- /dev/null +++ b/kern/for-aggregators.html @@ -0,0 +1,157 @@ + + + + + KERN for Aggregators — Riddle&Code + + + + + + + + + +
+ KERN — For Aggregators +

Your bids are only as good as
what's behind the meter.

+

KERN acts as an autonomous sub-aggregator behind the meter. You send a flexibility signal — KERN decides which assets to dispatch, executes via MIOTY or Zigbee, and confirms delivery back to you. No manual intervention. No missed bids.

+ Book a Demo +
+ +
+ + +
+

The five pains KERN solves

+
+ +
+
Unreliable connectivity to distributed assets
+
Rural BESS sites, industrial premises, basements — LTE drops, WiFi is unstable. Assets can't be committed to bids. Portfolio size is limited by infrastructure, not by availability.
+
MIOTY (10km, 1.5M msg/day, IEC standard) and Zigbee Mesh connect every asset — independent of LTE and WiFi.
+
+ +
+
No dispatch confirmation
+
Bid placed, dispatch sent — whether the asset responded remains unknown until the next meter reading. Deviations are detected too late.
+
Every dispatch is confirmed at asset level and reported back in real-time. You know immediately whether the bid is being fulfilled.
+
+ +
+
Manual response to forecast deviations
+
Weather change, load shift, asset failure — someone has to notice, decide and intervene. This doesn't scale.
+
KERN continuously compares actual asset state against bid position and rebalances autonomously — before the deviation becomes critical.
+
+ +
+
Poor forecast quality without asset visibility
+
Without real-time telemetry at asset level, flexibility forecasts are estimates. Overbidding means penalties. Underbidding means lost revenue.
+
Rolling 24h flexibility forecast per asset and portfolio — based on live telemetry, state of charge, weather data and historical patterns.
+
+ +
+
Operational overhead scales with portfolio
+
Every new asset, every new site, every new asset class adds complexity. Growth requires more team, more monitoring, more manual dispatch management.
+
New assets are onboarded into KERN — the aggregator gets more flexibility capacity, not more operational burden.
+
+ +
+
+ +
+ + +
+

The operative loop

+
+
1. FORECAST  (rolling, 24h ahead)
+   KERN calculates per asset and portfolio:
+   what flexibility is available, when?
+   → Output: flexibility profile (MW, time window, confidence)
+   → Basis for your bidding strategy
+
+2. DEMAND  (flexibility signal from you / market)
+   You place bids based on the forecast.
+   On award, the demand signal comes back:
+   "X kW, time window T, direction reduce/increase"
+
+3. REBALANCE  (forecast vs. actual state)
+   KERN compares the demand signal against current
+   asset state in real-time: weather, state of charge,
+   current load, failures.
+   Deviation from forecast → KERN reacts autonomously.
+
+4. DISPATCH  (autonomous local control)
+   KERN decides which assets to control — BESS, HVAC,
+   EV chargers, PV curtailment — via Zigbee or MIOTY.
+   Execution confirmed.
+
+5. CONFIRMATION
+   Fulfillment status back to you in real-time.
+   Next forecast cycle starts.
+
+

+ You interact with steps 1 and 2. Everything else is KERN. +

+
+ +
+ + +
+

Proven in production

+
+
+
+ "Austria's largest utility uses KERN to power their flexibility aggregator — securing bids on Austrian energy markets with confirmed dispatch from MV/LV assets." +
Live system · MV/LV microgrid · Lower Austria · Visitable on request
+
+
+ See full reference → +
+
+ + +
+

Ready to secure every bid?

+

30 minutes to show you how KERN fits into your existing dispatch stack — and which assets you can add to your portfolio today.

+ +
+ + + + diff --git a/kern/for-communities.html b/kern/for-communities.html new file mode 100644 index 0000000..0875904 --- /dev/null +++ b/kern/for-communities.html @@ -0,0 +1,171 @@ + + + + + KERN for Energy Communities — Riddle&Code + + + + + + + + + +
+ KERN — For Energy Communities +

Your community generates energy.
KERN keeps it in the community.

+

KERN autonomously optimises storage, controllable loads and generation across all community members — maximising shared self-consumption and forecasting the collective flexibility that can be offered to markets or grid operators.

+ Book a Demo +
+ +
+ + +
+

What holds energy communities back today

+
+ +
+
Self-consumption is measured, not optimised
+
Without real-time optimisation, energy is exported to the grid even when members have demand — the community's potential stays largely untapped.
+
KERN forecasts generation and consumption per member (24h ahead) and steers assets to maximise what stays in the community.
+
+ +
+
No real-time visibility across the community
+
Operators don't know how much is being generated, consumed and shared right now — optimisation and steering are impossible without this view.
+
Real-time telemetry from every asset, aggregated into a community dashboard. Full visibility, per member and as a whole.
+
+ +
+
Storage and loads are not coordinated
+
Community storage and controllable loads are managed manually or not at all — no automatic charging when PV surplus is available, no discharging when members need it.
+
KERN steers shared storage and controllable loads autonomously — aligning generation, storage and consumption in real-time.
+
+ +
+
Connectivity across multiple sites is unsolved
+
Members at different buildings or locations are hard to reliably connect — LTE drops out, WiFi doesn't reach far enough.
+
Zigbee Mesh for contiguous sites, MIOTY for distributed members (10km, independent of LTE/WiFi) — both managed as one unified layer.
+
+ +
+
Collective flexibility potential goes unused
+
An active community with PV and storage has real collective flexibility — but without a platform it can neither be forecasted nor offered to aggregators or grid operators.
+
KERN provides rolling 24h flexibility forecasts for the whole community and connects to aggregators or grid operators on request.
+
+ +
+
+ +
+ + +
+

How KERN operates the community

+
+
1. REAL-TIME MONITORING
+   KERN tracks generation and consumption of all members
+   continuously — at meter level, in real-time.
+
+2. COMMUNITY OPTIMISATION  (24h forecast + real-time)
+   KERN forecasts generation (PV) and consumption per member.
+   Goal: maximise shared self-consumption —
+   who needs what, when, and what is available right now?
+
+3. AUTONOMOUS CONTROL
+   KERN steers shared storage, controllable loads and feed-in
+   points to keep as much energy within the community as possible.
+   No manual intervention required.
+
+4. FLEXIBILITY  (optional)
+   Surplus or forecastable flexibility can be offered as a 24h
+   forecast to an aggregator or grid operator and dispatched
+   on demand — confirmed back to the requesting party.
+
+
+ +
+ + +
+

What KERN does for communities

+
+
+

Community optimisation

+

Maximises collective self-consumption across all members — in real-time and with a 24h forecast.

+
+
+

Storage and load control

+

Autonomous steering of shared storage and controllable loads to align supply and demand within the community.

+
+
+

Real-time dashboard

+

Community generation, consumption, self-consumption rate and flexibility potential — for operators and optionally for members.

+
+
+

Flexibility forecast

+

Rolling 24h forecast of available community flexibility — the basis for aggregator or grid operator integration.

+
+
+

Multi-site connectivity

+

Zigbee Mesh for contiguous sites, MIOTY for distributed members — every participant reliably connected.

+
+
+

Aggregator connection

+

Community flexibility dispatched on demand — with confirmed execution back to the requesting party.

+
+
+ + +
+

Already handling ESC billing or member management?

+

KERN is the optimisation and control layer — not a billing platform. We integrate with your existing billing infrastructure to add autonomous asset management and flexibility forecasting on top of what you already offer your ESC clients. Together you give communities the complete package: billing from you, optimisation from KERN.

+ Discuss a partnership → +
+
+ + +
+

More energy stays in the community.

+

30 minutes to show how KERN optimises a live energy community — from real-time control to flexibility markets.

+ +
+ + + + diff --git a/kern/for-platforms.html b/kern/for-platforms.html new file mode 100644 index 0000000..470ab8c --- /dev/null +++ b/kern/for-platforms.html @@ -0,0 +1,179 @@ + + + + + KERN for VPP Platforms — Riddle&Code + + + + + + + + + +
+ KERN — For VPP Platforms +

Your platform is strong
above the asset layer.
KERN closes the gap below.

+

KERN integrates below your VPP as the asset management and connectivity layer. Your platform gets a clean, normalised API feed, confirmed dispatch and 24h flexibility forecasts — for every asset your clients have, including those currently unreachable.

+ Discuss API Integration +
+ +
+ + +
+

Where KERN fits in your stack

+
+
Market / TSO / Grid Operator
+         ↓
+┌─────────────────────────────────────────────┐
+│         YOUR PLATFORM                       │
+│  VPP optimisation · Bidding · Redispatch    │
+│  Trading · Reporting                        │
+└─────────────────┬───────────────────────────┘
+                  │  Normalised telemetry feed
+                  │  Dispatch commands + confirmation
+                  │  24h flexibility forecast
+┌─────────────────▼───────────────────────────┐
+│         KERN                           │
+│  Asset management · Autonomous dispatch     │
+│  Real-time optimisation · Forecasting       │
+└─────────────────┬───────────────────────────┘
+                  │
+         Zigbee Mesh  ·  MIOTY
+                  │
+┌─────────────────▼───────────────────────────┐
+│  PV · BESS · Heat pumps · EV chargers       │
+│  CHP · Controllable loads · Microgrids      │
+└─────────────────────────────────────────────┘
+
+
+ +
+ + +
+

Three gaps KERN fills

+
+ +
+
Assets with unreliable connectivity stay out of the portfolio
+
Rural sites, industrial premises, basements — LTE drops, WiFi is unstable. Your clients can't bring these assets into your platform. Potential stays on the table.
+
MIOTY (10km, IEC standard) and Zigbee Mesh make every asset reachable — your clients grow their portfolio without infrastructure investment.
+
+ +
+
No dispatch feedback — the loop is open
+
Your platform sends commands — but whether the asset responded stays unknown until the next meter reading. Deviations are detected too late, penalties hit your clients.
+
KERN confirms every dispatch at asset level and reports back in real-time. Your platform knows immediately whether the flexibility commitment is being met.
+
+ +
+
Heterogeneous assets increase integration overhead
+
Every new asset type, every new manufacturer, every new protocol means integration effort — for you or your clients. This slows onboarding and limits scale.
+
KERN normalises all asset types to a single data model. Your platform speaks to KERN — not to every asset individually.
+
+ +
+
+ +
+ + +
+

What your platform gets from KERN

+
+
+

Clean, normalised API feed

+

Unified telemetry regardless of how many asset types, manufacturers or protocols are behind it. One integration, all assets.

+
+
+

Dispatch with confirmation

+

KERN receives your dispatch command, executes at asset level and reports back whether and how it was fulfilled.

+
+
+

24h flexibility forecast

+

Rolling forecast per asset and portfolio — what flexibility is genuinely available, when. More precise bids, better outcomes for your clients.

+
+
+

More assets in the portfolio

+

Assets currently excluded due to connectivity become available. Your clients grow their dispatchable portfolio without CAPEX.

+
+
+ +

Integration options

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ModelDescriptionEffort
API integrationKERN delivers normalised telemetry and accepts dispatch commands via REST/WebSocket. Your platform remains primary.Low
White-labelKERN runs under your brand as an "Asset Connectivity Module" for your clients.Medium
PilotOne client, one asset class, defined scope — fast to start, low risk.Minimal
+
+ + +
+

Let's discuss the API.

+

30 minutes to go through the spec and identify which of your clients' assets are currently excluded — and how quickly that changes with KERN.

+ +
+ + + + diff --git a/kern/for-utilities.html b/kern/for-utilities.html new file mode 100644 index 0000000..eb31ea1 --- /dev/null +++ b/kern/for-utilities.html @@ -0,0 +1,154 @@ + + + + + KERN for Utilities — Riddle&Code + + + + + + + + + +
+ KERN — For Utilities +

You have the customers.
You have the assets.
KERN connects them.

+

Your customers have PV, storage, heat pumps and EV chargers. Your grid has flexibility requirements. KERN is the autonomous platform layer that turns your customer base into a steerable, monetisable flexibility portfolio — without building an operations team for it.

+ Book a Demo +
+ +
+ + +
+

Where utilities are leaving value on the table

+
+ +
+
Controllable assets without an optimisation platform
+
Smart meters and CLS switches are rolling out — but there is no platform above them. No optimisation, no aggregation, no market access. The potential stays untapped.
+
KERN sits above the meter as the autonomous management layer — real-time optimisation, fleet control, market-ready aggregation.
+
+ +
+
Redispatch 2.0 is manual and costly
+
Grid congestion management requires coordinated control of distributed generation — without a platform this is operationally complex, error-prone and doesn't scale.
+
KERN handles Redispatch 2.0-compliant dispatch autonomously, with confirmation per asset.
+
+ +
+
Customers leaving for smarter energy providers
+
New energy players offer HEMS, community tariffs and flexibility revenues. Utilities without smart services lose the customers who want to actively participate.
+
KERN is your behind-the-meter product — branded as your service, delivered by KERN. Customers stay and engage.
+
+ +
+
No access to flexibility markets from your own customer base
+
You have the customer relationships and the assets — but without an aggregation platform you can't monetise that flexibility.
+
KERN aggregates your customer base into a marketable portfolio. You can run your own aggregator subsidiary — or partner with an external one.
+
+ +
+
+ +
+ + +
+

Three ways to deploy KERN

+
+ +
+
Use case 01
+

HEMS Fleet — Customer Base as Flexible Resource

+

Deploy KERN HEMS with household customers who have PV and storage. Customers benefit from self-consumption optimisation and lower bills. You gain a steerable fleet for Redispatch or flexibility monetisation — without operational load per customer.

+
+ +
+
Use case 02
+

Energy Communities — Compliant, Automatic

+

KERN ESC manages optimisation and autonomous asset control for energy communities. You can offer energy communities as a service — no custom development, no manual billing processes needed from KERN's side.

+
+ +
+
Use case 03
+

Flexibility Monetisation — From Your Customer Base

+

The aggregated flexibility from HEMS fleet, C&I customers and ESC becomes a marketable portfolio via KERN. Route it through your own aggregator subsidiary or an external partner to FCR, aFRR or intraday markets.

+
+ +
+
+ +
+ + +
+

The reference model — running in production

+
+

+ Austria's largest utility built their complete flexibility stack on KERN: +

+
+
+
Grid
+
Live MV/LV microgrid — production system, Lower Austria
+
+
+
Aggregator
+
Utility-owned aggregator securing bids on Austrian energy markets via KERN
+
+
+
Communities
+
Energy community platform — KERN as optimisation layer
+
+
+

Live system — visitable on request in Lower Austria.

+
+ See full reference → +
+ + +
+

Ready to monetise your customer base?

+

30 minutes to map which assets in your network are ready for KERN — and what the flexibility revenue potential looks like.

+ +
+ + + + diff --git a/kern/index.html b/kern/index.html new file mode 100644 index 0000000..ebec617 --- /dev/null +++ b/kern/index.html @@ -0,0 +1,176 @@ + + + + + KERN — Autonomous Energy Platform + + + + + + + + + +
+ KERN +

Autonomous energy
behind the meter.

+

KERN is the platform that sits behind the meter — autonomously optimising, forecasting and dispatching flexibility from households, facilities, microgrids and energy communities.

+ Book a Demo +
+ +
+ + +
+
+
You send a signal.
KERN delivers.
What happens behind the meter is our job.
+

Aggregators, utilities and platforms interact with KERN through a clean API — forecast in, demand signal in, flexibility confirmed out. KERN handles everything in between: rebalancing, asset selection, dispatch, confirmation.

+
+
+ +
+ + +
+

Optimising behind the meter

+

KERN works across four asset contexts — all on one platform.

+
+
+

Households

+

PV + home storage + heat pump + EV charger — optimised as a unit. HEMS fleet management for utilities.

+
+
+

Commercial & Industrial

+

Commercial PV, BESS, CHP, controllable loads on MV/LV level. Peak shaving, load management, flexibility dispatch.

+
+
+

Microgrids

+

Multiple assets behind a shared grid connection point. Coordinated optimisation, island-mode capable.

+
+
+

Energy Communities (ESC)

+

Community optimisation across multiple members and meters. Shared self-consumption maximised, collective flexibility aggregated.

+
+
+
+ +
+ + +
+

Three optimisation modes

+

Configurable per asset or portfolio — combinable.

+
+
+
Mode 01
+

Self-consumption

+

Maximise local self-consumption. Minimise grid import and export. Default mode for households and small C&I.

+
+
+
Mode 02
+

Economic optimisation

+

Maximise monetary yield — intraday arbitrage, FCR/aFRR bids, peak shaving, demand charge reduction. Default for aggregators and C&I flexibility.

+
+
+
Mode 03
+

Community optimisation

+

Maximise shared self-consumption across multiple members. Fair allocation by share. Default for ESC and microgrids.

+
+
+
+ +
+ + +
+

Connectivity by topology

+

The right technology for every asset configuration — both managed as one unified layer in KERN.

+
+
+
Contiguous sites
+

Zigbee Mesh

+

For assets on the same premises — buildings, campuses, industrial sites. Low-cost, easy to deploy, self-healing mesh network. No complex gateway infrastructure required.

+
+
+
Distributed assets
+

MIOTY

+

IEC-standard LPWAN for geographically dispersed assets — rural PV, MV-connected BESS, distributed sites. 10km range, 1.5M messages/day, independent of LTE and WiFi.

+
+
+ Full technology overview → +
+ +
+ + +
+

KERN for your role

+ +
+ + + + diff --git a/references/index.html b/references/index.html new file mode 100644 index 0000000..2ab6406 --- /dev/null +++ b/references/index.html @@ -0,0 +1,124 @@ + + + + + References — R&C KERN + + + + + + + + + +
+ References +

Not a pilot.
Running in production.

+

R&C KERN is live — managing a real MV/LV grid, powering a flexibility aggregator and running an energy community platform. Visitable on request.

+
+ +
+ +
+ + +
+ R&C KERN — live installation +
+ + +
+
+ Live Reference — Austria +

Austria's largest utility built their complete flexibility stack on R&C KERN

+
+
+
+ +
+
Grid
+
Live MV/LV Microgrid
+
Real medium and low-voltage grid in production. KERN managing all assets behind the meter — generation, storage, controllable loads.
+
+ +
+
Aggregator
+
Utility-owned Flexibility Aggregator
+
Utility subsidiary securing bids on Austrian energy markets. KERN provides autonomous dispatch with confirmed execution — enabling reliable bid fulfilment.
+
+ +
+
Community
+
Energy Community Platform
+
Energy community management running on KERN as the optimisation and control layer — autonomous asset coordination, collective self-consumption maximisation.
+
+ +
+ +
+

+ The system is visitable.
+ The live installation is located in Lower Austria and can be visited on request — a real microgrid, running KERN in production. Contact us to arrange a visit. +

+ Request a Visit +
+
+
+ + +
+

More references coming

+

Additional customer references are in preparation. We are currently seeking approval to publish by name.
+ Contact us to speak directly with a reference customer.

+
+ +
+ + +
+

See it running.

+

A 30-minute call or an on-site visit in Lower Austria — whichever is more useful for you.

+ +
+ + + + diff --git a/scripts/main.js b/scripts/main.js index d93f118..61270bc 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -39,8 +39,8 @@ })(window,document); // 2.2 Favicons - addLinkTag({ rel: 'shortcut icon', type: 'image/x-icon', href: prefix + 'images/641436b897f1d137d2d2845d_fav_icon.png' }); - addLinkTag({ rel: 'apple-touch-icon', href: prefix + 'images/641437162f7f81829faa8c24_webclip.png' }); + addLinkTag({ rel: 'shortcut icon', type: 'image/svg+xml', href: prefix + 'images/kern-symbol.svg' }); + addLinkTag({ rel: 'apple-touch-icon', href: prefix + 'images/kern-symbol.svg' }); // 2.3 Analytics & Scripts const gaId = document.documentElement.getAttribute('data-ga-id') || 'G-K86LPV2ZGE'; diff --git a/slides/infrastructure-iq.pdf b/slides/infrastructure-iq.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e1283100345106866654f43c43f2d4d8bb8aa4ec GIT binary patch literal 199008 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

iGL2!D^2^6w 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 + + + + Technology — KERN + + + + + + + +

+ +
+ Technology +

Built for energy infrastructure.
Not adapted from IoT.

+

MIOTY, Zigbee Mesh, a 24h autonomous forecast loop and confirmed dispatch — purpose-built for the demands of flexibility management behind the meter.

+
+ +
+ + +
+
+ KERN hardware device +
+
+ + +
+

Connectivity by topology

+

The technology choice follows the asset topology — not the other way around.

+ +
+
+
Contiguous sites
+

Zigbee Mesh

+

Buildings, campuses, industrial premises, microgrids on one site

+
    +
  • RangeUp to 100m per node, mesh extends coverage
  • +
  • DeploymentNo gateway per room — mesh self-organises
  • +
  • CostLow hardware cost per node
  • +
  • TopologySelf-healing mesh — resilient to node failure
  • +
  • Use caseHEMS, C&I facilities, ESC on one campus
  • +
+
+
+
Distributed assets
+

MIOTY

+

Geographically dispersed assets — rural PV, MV BESS, multiple remote sites

+
    +
  • Range10 km per gateway
  • +
  • Capacity1.5M messages/day per gateway
  • +
  • StandardIEC 62657-1 — purpose-built for energy
  • +
  • IndependenceNo LTE, no WiFi required
  • +
  • Latency<1 second for dispatch commands
  • +
+
+
+ +

MIOTY vs. LoRaWAN

+ + + + + + + + + + + + + + + + +
CapabilityMIOTYLoRaWAN
StandardIEC 62657-1 (international)LoRa Alliance proprietary
RangeUp to 10 kmUp to 5 km
Messages/day/gateway1,500,000~50,000
Designed forEnergy infrastructure, utility gradeGeneral IoT sensing
Dispatch latency<1 secondSeconds to minutes
LTE independence
+
+ +
+ + +
+

The autonomous loop

+

KERN operates continuously — forecasting, reacting and dispatching without manual intervention.

+
+
1. FORECAST  (rolling, 24h ahead)
+   Per asset: state of charge, PV forecast (weather-based),
+   load forecast (historical patterns), available flexibility window.
+   Per portfolio: aggregated flexibility profile (MW, time, confidence).
+   → Delivered to aggregator / platform as API feed.
+
+2. DEMAND  (inbound signal)
+   Flexibility signal received from aggregator, utility or market:
+   volume (kW), time window, direction (increase/decrease).
+
+3. REBALANCE  (real-time delta)
+   KERN compares demand signal against current actual asset state.
+   Detects deviations: weather change, load shift, asset failure.
+   Adjusts dispatch plan autonomously — before deviation becomes critical.
+
+4. DISPATCH  (autonomous asset control)
+   KERN selects assets, determines control sequence, sends commands.
+   Execution via Zigbee Mesh (contiguous) or MIOTY (distributed).
+   Asset protocols: Modbus, SunSpec, EEBUS, proprietary inverter APIs.
+
+5. CONFIRMATION
+   Asset-level execution confirmed back to KERN.
+   Fulfillment status reported to aggregator / platform in real-time.
+   Next forecast cycle starts immediately.
+
+
+ +
+ + +
+

Supported assets and protocols

+

KERN normalises all asset types to a single data model — regardless of manufacturer or protocol.

+ +

Asset types

+
+
PV (residential)
+
PV (commercial)
+
Home storage
+
Commercial BESS
+
Heat pumps
+
EV chargers
+
CHP
+
Biogas
+
Controllable loads
+
MV-connected assets
+
+ +

Communication protocols

+
+
Modbus TCP/RTU
+
SunSpec
+
EEBUS
+
REST API
+
OCPP (EV)
+
Proprietary inverter APIs
+
+
+ +
+ + +
+

Security & compliance

+
+
+

End-to-end encryption

+

All asset communication encrypted end-to-end — from sensor to platform.

+
+
+

Certificate-based authentication

+

Every asset authenticated by certificate — no unauthorised control possible.

+
+
+

Redispatch 2.0

+

Compliant with Redispatch 2.0 requirements for distributed generation control.

+
+
+

§14a / EAG / EnFG

+

Compatible with controllable load regulations in Germany and Austria.

+
+
+
Book a Technical Demo +
+ + + + From a6b8e837d55403c89dd417945ed365434637816d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Sat, 11 Apr 2026 09:45:12 +0200 Subject: [PATCH 02/30] feat: Add workflows for link checking and QA, update HTML files for entity encoding --- .github/workflows/links.yml | 32 +++++++ .github/workflows/qa.yml | 87 ++++++++++++++++++ .htmlvalidate.json | 19 ++++ .lychee.toml | 39 ++++++++ .typos.toml | 52 +++++++++++ ...d-p-1080.png => kern-dashboard-p-1080.png} | Bin ...d-p-1600.png => kern-dashboard-p-1600.png} | Bin ...d-p-2000.png => kern-dashboard-p-2000.png} | Bin ...d-p-2600.png => kern-dashboard-p-2600.png} | Bin ...d-p-3200.png => kern-dashboard-p-3200.png} | Bin ...ard-p-500.png => kern-dashboard-p-500.png} | Bin ...ard-p-800.png => kern-dashboard-p-800.png} | Bin ...MYPWR Dashboard.png => kern-dashboard.png} | Bin includes/footer.html | 2 +- includes/nav.html | 2 +- index.html | 65 ++----------- kern/for-aggregators.html | 2 +- kern/for-communities.html | 2 +- kern/for-platforms.html | 2 +- kern/for-utilities.html | 6 +- kern/index.html | 4 +- lychee/.gitkeep | 0 lychee/out.md | 1 + references/index.html | 12 +-- technology/index.html | 2 +- 25 files changed, 254 insertions(+), 75 deletions(-) create mode 100644 .github/workflows/links.yml create mode 100644 .github/workflows/qa.yml create mode 100644 .htmlvalidate.json create mode 100644 .lychee.toml create mode 100644 .typos.toml rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-1080.png => kern-dashboard-p-1080.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-1600.png => kern-dashboard-p-1600.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-2000.png => kern-dashboard-p-2000.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-2600.png => kern-dashboard-p-2600.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-3200.png => kern-dashboard-p-3200.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-500.png => kern-dashboard-p-500.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard-p-800.png => kern-dashboard-p-800.png} (100%) rename images/{66c5deac08b92464d185375a_MYPWR Dashboard.png => kern-dashboard.png} (100%) create mode 100644 lychee/.gitkeep create mode 100644 lychee/out.md diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml new file mode 100644 index 0000000..39016eb --- /dev/null +++ b/.github/workflows/links.yml @@ -0,0 +1,32 @@ +name: Dead links + +on: + push: + branches: [main] + schedule: + - cron: '0 8 * * 1' # every Monday 08:00 UTC + +jobs: + lychee: + name: Link check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Check links + uses: lycheeverse/lychee-action@v2 + with: + args: > + --config .lychee.toml + '**/*.html' + fail: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create issue on scheduled failure + if: failure() && github.event_name == 'schedule' + uses: peter-evans/create-issue-from-file@v5 + with: + title: 'Dead links detected' + content-filepath: ./lychee/out.md + labels: bug, content diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml new file mode 100644 index 0000000..20adef3 --- /dev/null +++ b/.github/workflows/qa.yml @@ -0,0 +1,87 @@ +name: QA + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + + # ── 1. Typos ──────────────────────────────────────────────────────────────── + typos: + name: Typo check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: crate-ci/typos-action@v1 + + # ── 2. HTML validity ──────────────────────────────────────────────────────── + html: + name: HTML validation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '20' + - run: npm install -g html-validate + - name: Validate HTML + run: | + html-validate \ + index.html \ + kern/ \ + technology/ \ + references/ \ + includes/nav.html \ + includes/footer.html + + # ── 3. Meta descriptions ──────────────────────────────────────────────────── + meta: + name: Meta descriptions + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Every KERN page must have a meta description + run: | + missing=0 + while IFS= read -r file; do + if ! grep -qi '" + exit 1 + fi + echo "All KERN pages have meta descriptions ✓" + + # ── 4. Image size budget ──────────────────────────────────────────────────── + images: + name: Image size budget + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Warn on images > 500 KB + run: | + limit=$((500 * 1024)) + oversized=0 + while IFS= read -r img; do + size=$(stat -c%s "$img") + if [ "$size" -gt "$limit" ]; then + kb=$((size / 1024)) + echo "::warning file=$img::${kb} KB — consider compressing (budget: 500 KB)" + oversized=$((oversized + 1)) + fi + done < <(find images/ -type f \( \ + -iname "*.jpg" -o -iname "*.jpeg" \ + -o -iname "*.png" -o -iname "*.gif" \ + -o -iname "*.webp" \)) + + if [ "$oversized" -gt 0 ]; then + echo "$oversized image(s) over budget — see warnings above" + else + echo "All images within 500 KB budget ✓" + fi diff --git a/.htmlvalidate.json b/.htmlvalidate.json new file mode 100644 index 0000000..aa39ffa --- /dev/null +++ b/.htmlvalidate.json @@ -0,0 +1,19 @@ +{ + "extends": ["html-validate:recommended"], + "rules": { + "attr-quotes": "error", + "no-dup-attr": "error", + "no-dup-id": "error", + + "no-inline-style": "off", + "require-sri": "off", + "void-style": "off", + "no-trailing-whitespace": "off", + "long-title": "off", + "tel-non-breaking": "off", + "script-type": "off", + "no-unknown-elements": "off" + }, + "elements": ["html5"], + "transform": {} +} diff --git a/.lychee.toml b/.lychee.toml new file mode 100644 index 0000000..8342f7d --- /dev/null +++ b/.lychee.toml @@ -0,0 +1,39 @@ +# Lychee link checker configuration +# Docs: https://lychee.cli.rs/usage/configuration/ + +timeout = 20 +max_retries = 3 +retry_wait_time = 3 +threads = 8 + +# 429 = Too Many Requests (rate-limited, not a dead link) +accept = ["200..=299", "429"] + +exclude_loopback = true +include_mail = false + +exclude = [ + # JavaScript pseudo-links + "^javascript:", + "^#$", + + # Google services — blocked in CI environments + "googletagmanager\\.com", + "googleapis\\.com", + "google\\.com/maps", + "google\\.com/recaptcha", + + # Social platforms — aggressively rate-limit CI IPs + "linkedin\\.com", + "twitter\\.com", + "x\\.com", + "instagram\\.com", + "facebook\\.com", + + # Localhost and staging + "localhost", + "127\\.0\\.0\\.1", +] + +# Output dead links to a file so the scheduled issue workflow can attach it +output = "lychee/out.md" diff --git a/.typos.toml b/.typos.toml new file mode 100644 index 0000000..b7af33c --- /dev/null +++ b/.typos.toml @@ -0,0 +1,52 @@ +[files] +extend-exclude = [ + # Binary / generated / legacy directories + "images/**", + "archive/**", + "slides/**", + "ttf/**", + "csv/**", + "data/**", + "showcase/**", + "media/**", + "news/**", + # Old Webflow CSS/JS + "company/css/**", + "company/js/**", + # Backup files + "*.bak", + "*.min.js", +] + +[default.extend-words] +# Energy sector protocols and standards +MIOTY = "MIOTY" +EEBUS = "EEBUS" +SunSpec = "SunSpec" +aFRR = "aFRR" +FCR = "FCR" +SCADA = "SCADA" +OCPP = "OCPP" +BESS = "BESS" +HEMS = "HEMS" + +# Austrian / German regulatory terms +EnFG = "EnFG" +EAG = "EAG" + +# Brands and product names +KERN = "KERN" +Lumenaza = "Lumenaza" +cybergrid = "cybergrid" +VERBUND = "VERBUND" +TTTech = "TTTech" +joulie = "joulie" +egon = "egon" + +# Place names +Heiligenkreuz = "Heiligenkreuz" +Wetzlas = "Wetzlas" +Steiermark = "Steiermark" + +# German words used in content +Stadtwerke = "Stadtwerke" diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-1080.png b/images/kern-dashboard-p-1080.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-1080.png rename to images/kern-dashboard-p-1080.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-1600.png b/images/kern-dashboard-p-1600.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-1600.png rename to images/kern-dashboard-p-1600.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-2000.png b/images/kern-dashboard-p-2000.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-2000.png rename to images/kern-dashboard-p-2000.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-2600.png b/images/kern-dashboard-p-2600.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-2600.png rename to images/kern-dashboard-p-2600.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-3200.png b/images/kern-dashboard-p-3200.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-3200.png rename to images/kern-dashboard-p-3200.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-500.png b/images/kern-dashboard-p-500.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-500.png rename to images/kern-dashboard-p-500.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard-p-800.png b/images/kern-dashboard-p-800.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard-p-800.png rename to images/kern-dashboard-p-800.png diff --git a/images/66c5deac08b92464d185375a_MYPWR Dashboard.png b/images/kern-dashboard.png similarity index 100% rename from images/66c5deac08b92464d185375a_MYPWR Dashboard.png rename to images/kern-dashboard.png diff --git a/includes/footer.html b/includes/footer.html index a98141b..206b333 100644 --- a/includes/footer.html +++ b/includes/footer.html @@ -159,6 +159,6 @@

Legal

-

© 2025 Riddle&Code GmbH. All rights reserved.

+

© 2025 Riddle&Code GmbH. All rights reserved.

diff --git a/includes/nav.html b/includes/nav.html index cddd7c3..bafd4db 100644 --- a/includes/nav.html +++ b/includes/nav.html @@ -232,7 +232,7 @@
- + From 1df61106d39d13ca83ab54d216d15bff1a75bd8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Sun, 12 Apr 2026 19:10:41 +0200 Subject: [PATCH 06/30] feat: Update page titles and add branding elements for KERN by Riddle&Code --- company/get-in-touch.html | 2 +- includes/footer.html | 15 +++++++++++++++ includes/nav.html | 9 ++++----- index.html | 20 ++++++++++---------- kern/index.html | 2 +- references/index.html | 2 +- technology/index.html | 2 +- 7 files changed, 33 insertions(+), 19 deletions(-) diff --git a/company/get-in-touch.html b/company/get-in-touch.html index e700dc0..bb684d2 100644 --- a/company/get-in-touch.html +++ b/company/get-in-touch.html @@ -2,7 +2,7 @@ - Riddle&Code Get in Touch + Contact — KERN by Riddle&Code diff --git a/includes/footer.html b/includes/footer.html index 199b5be..3ce1db8 100644 --- a/includes/footer.html +++ b/includes/footer.html @@ -95,6 +95,21 @@

@@ -495,8 +495,8 @@

Austria's largest utility built their entire flexibility stack on R&C KE

Stop managing assets.
Let KERN deliver.

30 minutes to show you how the autonomous loop works — on a live system.

diff --git a/kern/index.html b/kern/index.html index c925054..a824a4a 100644 --- a/kern/index.html +++ b/kern/index.html @@ -2,7 +2,7 @@ - KERN — Autonomous Energy Platform + KERN by Riddle&Code — Autonomous Energy Platform diff --git a/references/index.html b/references/index.html index 609553e..9dc6420 100644 --- a/references/index.html +++ b/references/index.html @@ -2,7 +2,7 @@ - References — R&C KERN + References — KERN by Riddle&Code diff --git a/technology/index.html b/technology/index.html index 39a8f8f..f0f4e8c 100644 --- a/technology/index.html +++ b/technology/index.html @@ -2,7 +2,7 @@ - Technology — KERN + Technology — KERN by Riddle&Code From 7c7d6ba0d3458ff10ded682663a1018f6372d6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Sun, 12 Apr 2026 19:18:05 +0200 Subject: [PATCH 07/30] feat: Add KERN product bar component and integrate it into multiple pages --- includes/kern-product-bar.html | 58 ++++++++++++++++++++++++++++++++ includes/nav.html | 43 ++++++----------------- index.html | 12 +++---- kern/for-aggregators.html | 2 ++ kern/for-communities.html | 2 ++ kern/for-platforms.html | 2 ++ kern/for-utilities.html | 2 ++ kern/index.html | 4 ++- scripts/load-kern-product-bar.js | 10 ++++++ 9 files changed, 96 insertions(+), 39 deletions(-) create mode 100644 includes/kern-product-bar.html create mode 100644 scripts/load-kern-product-bar.js diff --git a/includes/kern-product-bar.html b/includes/kern-product-bar.html new file mode 100644 index 0000000..2e1d766 --- /dev/null +++ b/includes/kern-product-bar.html @@ -0,0 +1,58 @@ + + +
+
+ + KERN + · + a product by Riddle&Code + Infrastructure for distributed energy. +
+
diff --git a/includes/nav.html b/includes/nav.html index e1fec79..2fd9b8d 100644 --- a/includes/nav.html +++ b/includes/nav.html @@ -20,31 +20,21 @@ .nav-logo { display: flex; align-items: center; - gap: 0.75rem; text-decoration: none; color: var(--text-primary); flex-shrink: 0; } - .nav-logo-symbol { display: block; height: 28px; width: auto; } - - .nav-logo-text { - display: flex; - flex-direction: column; - line-height: 1.1; - } - - .nav-logo-kern { - font-size: 1.1rem; - font-weight: 600; - letter-spacing: 0.15em; + .nav-logo-wordmark { + font-size: 1.15rem; + font-weight: 500; color: var(--text-primary); + letter-spacing: 0.01em; } - .nav-logo-by { - font-size: 0.7rem; - color: var(--text-secondary); - letter-spacing: 0.05em; + .nav-logo-amp { + color: var(--kern-accent); + font-weight: 700; } .nav-menu { @@ -218,31 +208,20 @@ - + + + + +
-

Vienna, Austria

- Infrastructure for
- distributed energy. + Infrastructure for
distributed energy.

- Riddle&Code builds KERN — the platform utilities and aggregators use to connect, manage, and monetise distributed energy assets at scale. We own the full stack: hardware, connectivity, platform, and market access. + Riddle&Code builds KERN — the platform utilities and aggregators use to connect, manage, and monetise distributed energy assets at scale. We own the full stack: hardware, connectivity, platform, and market access.

@@ -35,9 +35,7 @@

The infrastructure gap in the energy transition

- Distributed energy resources are multiplying — rooftop solar, batteries, heat pumps, EV chargers. Utilities face flexibility obligations. Aggregators need scale. Nobody wanted to build the connectivity and compliance layer from scratch. -

- We did. + Distributed energy resources are multiplying — rooftop solar, batteries, heat pumps, EV chargers. Utilities face flexibility obligations. Aggregators need scale. Nobody wanted to build the connectivity and compliance layer from scratch.

We did.

@@ -145,34 +143,34 @@

The team behind KERN

- Manfred Bodner + Manfred Bodner

Manfred Bodner

Co-Founder

- LinkedIn + LinkedIn
- Tom Fürstner + Tom Fürstner

Tom Fürstner

Co-Founder

- LinkedIn + LinkedIn
- Rene Schrittwieser + Rene Schrittwieser

Rene Schrittwieser

Investor

- LinkedIn + LinkedIn
@@ -183,15 +181,13 @@

Rene Schrittwieser

Talk to the team

Executive briefing, technical deep-dive, or partner conversation — we'll match the format to where you are.

- - diff --git a/company/career.html b/company/career.html index e1b97e4..c74f9c7 100644 --- a/company/career.html +++ b/company/career.html @@ -1,39 +1,30 @@ - + - Riddle&Code Career - - - - - - - - - - - - - - - - - - + Career — Riddle&Code + + + + + + + + + + +
-

- Join Our Team
- Build Security by Design for Tomorrow's Distributed World + Join Our Team
Build the Infrastructure for the Energy Transition

- Riddle&Code is Europe's leading company building secure infrastructure for the decentralized and distributed world of tomorrow. We develop hardware & software stacks that provide a blockchain-enabled trust layer, solving real-world challenges like machine identity, product provenance, cyber insurance, and supply chain traceability. From developing our own microcontroller boards to tokenizing solar energy, our employees take pride in solving hard problems with security by design. + Riddle&Code builds KERN — the platform utilities and aggregators use to connect, dispatch and monetise distributed energy assets at scale. We work on hard problems in energy infrastructure, wireless connectivity and autonomous systems.

@@ -46,20 +37,20 @@

The Riddle&Code Spirit

Purpose: Why do we exist?

-

Building Trust for the Distributed World.

-

Our core purpose is to provide secure, blockchain-enabled infrastructure that solves real-world problems by creating verifiable trust in decentralized systems.

+

Building infrastructure for the energy transition.

+

We provide the connectivity and autonomy layer that turns distributed energy assets into manageable, monetisable infrastructure — for utilities and aggregators across Europe.

Vision: Where are we headed?

-

A world of reliable proofs of origin enabling transparent and sustainable production chains.

-

We envision a world where the authenticity and origin of products are verifiable throughout their entire lifecycle - for a trustworthy and sustainable economy.

+

A Europe where every distributed energy asset contributes to grid stability.

+

We envision a grid where flexibility behind the meter is continuously forecasted, dispatched and confirmed — without manual intervention, at any scale.

Mission: How will we get there?

-

500 Global Companies secured by our infrastructure by 2027.

-

Our commitment is to guide, support, and empower 500 global companies with secure, blockchain-enabled infrastructure that provides verifiable trust for their critical operations.

+

KERN in every utility flexibility stack in Europe by 2030.

+

Our commitment is to deliver the autonomous energy management layer that makes distributed flexibility reliable, monetisable and scalable.

@@ -68,12 +59,12 @@

Mission: How will we get there?

Our Core Values

The principles that guide everything we do

- +
Curiosity
- We're constantly exploring, questioning, and learning. Curiosity drives innovation and helps us push boundaries in building secure, decentralized infrastructure. + We're constantly exploring, questioning, and learning. Curiosity drives innovation and helps us push boundaries in building energy infrastructure.
@@ -123,33 +114,33 @@

Why Join Riddle&Code

-

Security by Design

-

Work on developing cutting-edge blockchain and cryptography products with security built-in from the ground up. Expand your skills while solving real-world problems with verifiable trust.

+

Real infrastructure impact

+

Work on a production system managing live energy assets. Your code controls real hardware behind real meters — not a simulation.

-

Vienna & Remote

+

Vienna & Remote

Vienna was ranked the most liveable city for the tenth time in a row, and we know there are other nice places too. Work where you're most productive.

Flexible Environment

-

A modern office or working remotely – enjoy a flexible working environment that adapts to your needs and lifestyle.

+

A modern office or working remotely — enjoy a flexible working environment that adapts to your needs and lifestyle.

-

Global Partners

-

Riddle&Code works with a diverse range of partners and clients from around the globe. Expand your network and perspective.

+

European Energy Market

+

Work at the intersection of wireless technology, energy markets and regulatory frameworks across Austria, Germany and the EU.

Fair Compensation

-

Receive fair compensation that corresponds to your personal qualifications and experience in blockchain and distributed systems.

+

Receive fair compensation that corresponds to your qualifications and experience.

Work-Life Balance

-

A refreshed you is a happy you! We ensure you have enough time for work-life balance and offer various perks to support your wellbeing.

+

A refreshed you is a happy you. We ensure you have enough time for work-life balance and offer various perks to support your wellbeing.

@@ -157,17 +148,15 @@

Work-Life Balance

Ready to Join Us?

-

We're always looking for talented people who share our passion for building secure infrastructure for tomorrow's distributed world.

+

We're always looking for talented people who share our passion for building infrastructure for the energy transition.

- -
diff --git a/company/get-in-touch.html b/company/get-in-touch.html index bb684d2..47a48aa 100644 --- a/company/get-in-touch.html +++ b/company/get-in-touch.html @@ -1,39 +1,30 @@ - + - Contact — KERN by Riddle&Code - - - - - - - - - - - - - - - - - - + Contact — KERN by Riddle&Code + + + + + + + + + + +
-

- Get in Touch
- Let's Build the Future Together + Let's talk.
Get in Touch

- Contact us to find out more about our products, schedule a demo, or discuss potential collaboration opportunities. Whether you're looking to integrate infrastructure-for-decentralized-assets technologies or explore hardware security solutions, we're here to help. + Book a demo, arrange an on-site visit to our live reference installation, or discuss how KERN fits into your utility or aggregator stack.

@@ -46,20 +37,18 @@

Ways to Reach Us

General Inquiries

-

For general questions about our products and services:

+

For general questions about KERN, our technology and partnership options:

office@riddleandcode.com

-

Product Demos

-

Interested in seeing our solutions in action? Schedule a personalized demo with our team.

-

Contact us to arrange a demo

+

Book a Demo

+

30 minutes — live system, real assets. We'll show you the autonomous loop in action and map which assets in your portfolio are ready for KERN.

-

Partnership Opportunities

-

Explore collaboration opportunities and strategic partnerships in the energy and blockchain space.

-

Let's discuss how we can work together

+

Request a Site Visit

+

Our reference installation in Austria is visitable on request — a live MV/LV microgrid with KERN running in production.

@@ -73,11 +62,10 @@

Headquarters

- Riddle & Code GmbH
+ Riddle & Code GmbH
c/o Spaces Icon Central Station
Gertrude-Fröhlich-Sandner-Straße 2-4/Tower 9
- 1100 Vienna
- Austria, Europe + 1100 Vienna, Austria

@@ -91,33 +79,23 @@

What We Can Help With

-

Product Information

-

Learn more about our hardware security modules, key management systems, and decentralized infrastructure solutions.

-
- -
-

Technical Support

-

Get assistance with implementation, integration, and technical questions about our solutions.

-
- -
-

Custom Solutions

-

Discuss custom development and tailored solutions for your specific industry needs and use cases.

+

Executive Briefing

+

Strategic overview of KERN, the market opportunity and how we fit into your flexibility strategy. 45 minutes, C-level format.

-

Industry Partnerships

-

Explore opportunities for collaboration, co-development, and strategic partnerships.

+

Technical Deep Dive

+

API specs, connectivity architecture, integration approach for your specific asset mix. For your technical team.

-

Career Opportunities

-

Interested in joining our team? Learn about open positions and career opportunities at Riddle&Code.

+

Live Reference

+

Visit our production installation in Austria — a real utility deployment with MV/LV microgrid, aggregator and energy community platform.

-

Media & Press

-

For media inquiries, press releases, and partnership announcements, connect with our communications team.

+

Partnership

+

Utility partnerships, aggregator relationships, platform integrations — let's discuss the right commercial model.

@@ -125,17 +103,15 @@

Media & Press

Ready to Connect?

-

Reach out to us at office@riddleandcode.com or explore our products and company information.

+

Reach out to us at office@riddleandcode.com or book a demo directly.

- -
diff --git a/company/media.html b/company/media.html index a6148e7..03544bf 100644 --- a/company/media.html +++ b/company/media.html @@ -1,39 +1,30 @@ - + - Riddle&Code Media - - - - - - - - - - - - - - - - - - + Media — Riddle&Code + + + + + + + + + + +
-

- Media Hub
- Press Kit & Brand Resources + Media Hub.
Press Kit & Brand Resources

- Welcome to Riddle&Code's Media Hub. Here you can find our press kit, brand logos, image materials, and information about our media activities. Download assets and learn about our mission to enable trusted digital verification systems. + Welcome to Riddle&Code's Media Hub. Here you can find our press kit, brand logos, image materials, and information about our media activities.

@@ -46,10 +37,10 @@

Who We Are

- Riddle&Code is a technology company specializing in verifiable proof of origin and asset certification across industries. The company drives the transformation towards trusted digital verification systems by enabling transparent, traceable, and sustainable production chains. + Riddle&Code builds KERN — the infrastructure platform for distributed energy management. We serve utilities, aggregators and energy communities across Europe, providing autonomous asset connectivity, flexibility forecasting and dispatch.

- From renewable energy to industrial sectors like steel and wood, Riddle&Code creates the foundation for trusted digital markets where the authenticity and origin of products can be reliably traced throughout their lifecycle. + Our technology, including MIOTY wireless connectivity and autonomous dispatch, is deployed in production with a leading regional utility in Austria — managing a live MV/LV microgrid, flexibility aggregator and energy community platform.

@@ -85,7 +76,7 @@

Media Partner Logos

-

For Journalists & Media

+

For Journalists & Media

@@ -101,12 +92,12 @@

Media Contact

Interview Requests

-

We're available for expert commentary on decentralized technologies, blockchain security, and sustainable technology topics.

+

We're available for expert commentary on distributed energy management, flexibility markets, MIOTY technology and the energy transition.

Usage Guidelines

-

Please respect our brand guidelines when using Riddle&Code assets. Contact us if you have questions.

+

Please respect our brand guidelines when using Riddle&Code and KERN assets. Contact us if you have questions.

@@ -117,14 +108,12 @@

Need More Information?

Contact our media team for additional resources, interview opportunities, or press inquiries.

- -
diff --git a/company/news.html b/company/news.html index 231ec55..7ff8537 100644 --- a/company/news.html +++ b/company/news.html @@ -1,26 +1,19 @@ - + - Riddle&Code News - - - - - - - - - - - - - - - - - - + News — Riddle&Code + + + + + + + + + + + + + +
+ + +
+

+ Neuigkeiten & Einblicke
Von Riddle&Code +

+

+ Bleiben Sie über unsere neuesten Produktupdates, Marktforschung und Unternehmensnachrichten informiert. +

+
+ +
+
+ +

Latest Content

+
+ +
+ + + + +
+ +
+ +
+
+ +
+
+

Immer auf dem Laufenden bleiben?

+

Abonnieren Sie unseren Newsletter oder folgen Sie uns auf LinkedIn.

+ +
+
+ + + + +
+ + diff --git a/de/index.html b/de/index.html new file mode 100644 index 0000000..31e37f8 --- /dev/null +++ b/de/index.html @@ -0,0 +1,526 @@ + + + + + Riddle&Code — Autonome Energie. Hinter dem Zähler. + + + + + + + + + + + + + + + + + + +
+
+
Riddle&Code — Wien
+

+ Infrastruktur für
verteilte Energie. +

+

+ Wir bauen die Plattform, die Energieversorger und Aggregatoren nutzen, um verteilte Energieanlagen zu verbinden, zu steuern und zu monetarisieren. Unser Produkt ist KERN. +

+ +
+ + + +
+ + +
+ + +
+ + +
+
+

Der autonome Regelkreis

+

Sie senden ein Signal. KERN liefert. Was hinter dem Zähler passiert, ist unsere Aufgabe.

+ +
+
+
1
+
Prognose
+
Rollierendes 24h-Flexibilitätsprofil pro Anlage und Portfolio
+
+
+
+
2
+
Anforderung
+
Flexibilitätssignal von Aggregator, Energieversorger oder Markt
+
+
+
+
3
+
Neuausgleich
+
Echtzeit-Vergleich von Signal und tatsächlichem Anlagenzustand
+
+
+
+
4
+
Steuerung
+
Autonome Anlagensteuerung via MIOTY oder Zigbee-Mesh
+
+
+
+
5
+
Bestätigung
+
Ausführung in Echtzeit an den Aggregator zurückgemeldet
+
+
+ +
+ KERN interagiert mit Ihrer Plattform in Schritt 1 und 2.
Schritte 3–5 sind vollständig autonom — kein manueller Eingriff erforderlich. +
+
+
+ + +
+
+ Live-Referenz +

Ein führender Energieversorger hat seinen Flexibilitäts-Stack auf R&C KERN aufgebaut

+
+
Laufendes MS/NS-Microgrid — Produktivsystem
+
Versorger-eigener Aggregator sichert Marktgebote über KERN
+
Energiegemeinschaftsplattform — KERN-Optimierungsschicht
+
+

+ Livesystem — auf Anfrage besichtigbar. +

+ Vollständige Referenz ansehen → +
+
+ + +
+

Hören Sie auf, Anlagen zu verwalten.
Lassen Sie KERN liefern.

+

30 Minuten, um Ihnen zu zeigen, wie der autonome Regelkreis funktioniert — an einem Livesystem.

+ +
+ + + + + diff --git a/de/kern/for-aggregators.html b/de/kern/for-aggregators.html new file mode 100644 index 0000000..8eca27c --- /dev/null +++ b/de/kern/for-aggregators.html @@ -0,0 +1,162 @@ + + + + + KERN für Aggregatoren — Riddle&Code + + + + + + + + + + + +
+ + +
+ KERN — Für Aggregatoren +

Ihre Gebote sind nur so gut wie
was hinter dem Zähler steht.

+

KERN agiert als autonomer Sub-Aggregator hinter dem Zähler. Sie senden ein Flexibilitätssignal — KERN entscheidet, welche Assets gesteuert werden, führt die Steuerung via MIOTY oder Zigbee aus und bestätigt die Lieferung zurück. Kein manueller Eingriff. Keine verpassten Gebote.

+ Book a Demo +
+ +
+ + +
+

Die fünf Probleme, die KERN löst

+
+ +
+
Unzuverlässige Konnektivität zu verteilten Assets
+
Ländliche BESS-Standorte, Industriegelände, Keller — LTE bricht ab, WLAN ist instabil. Assets können nicht für Gebote eingeplant werden. Die Portfoliogröße wird durch die Infrastruktur begrenzt, nicht durch die Verfügbarkeit.
+
MIOTY (10 km, 1,5 Mio. Nachrichten/Tag, IEC-Standard) und Zigbee Mesh verbinden jedes Asset — unabhängig von LTE und WLAN.
+
+ +
+
Keine Steuerungsbestätigung
+
Gebot platziert, Steuerungsbefehl gesendet — ob das Asset reagiert hat, bleibt bis zur nächsten Messung unbekannt. Abweichungen werden zu spät erkannt.
+
Jede Steuerung wird auf Asset-Ebene bestätigt und in Echtzeit zurückgemeldet. Sie wissen sofort, ob das Gebot erfüllt wird.
+
+ +
+
Manuelle Reaktion auf Prognoseabweichungen
+
Wetterveränderung, Lastverschiebung, Asset-Ausfall — jemand muss es bemerken, entscheiden und eingreifen. Das ist nicht skalierbar.
+
KERN vergleicht kontinuierlich den tatsächlichen Asset-Zustand mit der Gebotsposition und gleicht autonom aus — bevor die Abweichung kritisch wird.
+
+ +
+
Schlechte Prognosequalität ohne Asset-Transparenz
+
Ohne Echtzeit-Telemetrie auf Asset-Ebene sind Flexibilitätsprognosen Schätzungen. Übergebote bedeuten Pönalen. Untergebote bedeuten Umsatzverlust.
+
Rollierende 24-h-Flexibilitätsprognose pro Asset und Portfolio — auf Basis von Live-Telemetrie, Ladezustand, Wetterdaten und historischen Mustern.
+
+ +
+
Betriebsaufwand wächst mit dem Portfolio
+
Jedes neue Asset, jeder neue Standort, jede neue Asset-Klasse erhöht die Komplexität. Wachstum erfordert mehr Personal, mehr Monitoring, mehr manuelle Steuerungsprozesse.
+
Neue Assets werden in KERN aufgenommen — der Aggregator gewinnt mehr Flexibilitätskapazität, keinen höheren Betriebsaufwand.
+
+ +
+
+ +
+ + +
+

Der operative Regelkreis

+
+
1. FORECAST  (rolling, 24h ahead)
+   KERN calculates per asset and portfolio:
+   what flexibility is available, when?
+   → Output: flexibility profile (MW, time window, confidence)
+   → Basis for your bidding strategy
+
+2. DEMAND  (flexibility signal from you / market)
+   You place bids based on the forecast.
+   On award, the demand signal comes back:
+   "X kW, time window T, direction reduce/increase"
+
+3. REBALANCE  (forecast vs. actual state)
+   KERN compares the demand signal against current
+   asset state in real-time: weather, state of charge,
+   current load, failures.
+   Deviation from forecast → KERN reacts autonomously.
+
+4. DISPATCH  (autonomous local control)
+   KERN decides which assets to control — BESS, HVAC,
+   EV chargers, PV curtailment — via Zigbee or MIOTY.
+   Execution confirmed.
+
+5. CONFIRMATION
+   Fulfillment status back to you in real-time.
+   Next forecast cycle starts.
+
+

+ Sie interagieren mit Schritt 1 und 2. Alles andere übernimmt KERN. +

+
+ +
+ + +
+

Bewährt im Produktiveinsatz

+
+
+
+ "Ein führender regionaler Energieversorger setzt KERN ein, um seinen Flexibilitätsaggregator zu betreiben — mit bestätigter Steuerung von MV/LV-Assets für Gebote auf Energiemärkten." +
Live-System · MV/LV-Microgrid · Besichtigung auf Anfrage
+
+
+ See full reference → +
+
+ + +
+

Bereit, jedes Gebot abzusichern?

+

30 Minuten, um Ihnen zu zeigen, wie KERN in Ihren bestehenden Steuerungs-Stack passt — und welche Assets Sie heute zu Ihrem Portfolio hinzufügen können.

+ +
+ + + + diff --git a/de/kern/for-communities.html b/de/kern/for-communities.html new file mode 100644 index 0000000..00b0c8f --- /dev/null +++ b/de/kern/for-communities.html @@ -0,0 +1,176 @@ + + + + + KERN für Energiegemeinschaften — Riddle&Code + + + + + + + + + + + +
+ + +
+ KERN — Für Energiegemeinschaften +

Ihre Gemeinschaft erzeugt Energie.
KERN behält sie in der Gemeinschaft.

+

KERN optimiert Speicher, steuerbare Lasten und Erzeugung aller Gemeinschaftsmitglieder autonom — maximiert den gemeinsamen Eigenverbrauch und prognostiziert die kollektive Flexibilität für Märkte oder Netzbetreiber.

+ Book a Demo +
+ +
+ + +
+

Was Energiegemeinschaften heute zurückhält

+
+ +
+
Eigenverbrauch wird gemessen, nicht optimiert
+
Ohne Echtzeit-Optimierung wird Energie ins Netz eingespeist, obwohl Mitglieder Bedarf haben — das Potenzial der Gemeinschaft bleibt weitgehend ungenutzt.
+
KERN prognostiziert Erzeugung und Verbrauch pro Mitglied (24 h voraus) und steuert Assets, um den Eigenverbrauch zu maximieren.
+
+ +
+
Keine Echtzeit-Transparenz über die Gemeinschaft
+
Betreiber wissen nicht, wie viel gerade erzeugt, verbraucht und geteilt wird — ohne diese Sicht sind Optimierung und Steuerung unmöglich.
+
Echtzeit-Telemetrie von jedem Asset, aggregiert in einem Gemeinschafts-Dashboard. Vollständige Transparenz, pro Mitglied und insgesamt.
+
+ +
+
Speicher und Lasten werden nicht koordiniert
+
Gemeinschaftsspeicher und steuerbare Lasten werden manuell oder gar nicht verwaltet — kein automatisches Laden bei PV-Überschuss, kein Entladen bei Mitgliederbedarf.
+
KERN steuert gemeinsame Speicher und steuerbare Lasten autonom — gleicht Erzeugung, Speicherung und Verbrauch in Echtzeit ab.
+
+ +
+
Konnektivität über mehrere Standorte ist ungelöst
+
Mitglieder an verschiedenen Gebäuden oder Standorten sind schwer zuverlässig zu verbinden — LTE bricht ab, WLAN reicht nicht weit genug.
+
Zigbee Mesh für zusammenhängende Standorte, MIOTY für verteilte Mitglieder (10 km, unabhängig von LTE/WLAN) — beide als eine einheitliche Schicht verwaltet.
+
+ +
+
Kollektives Flexibilitätspotenzial bleibt ungenutzt
+
Eine aktive Gemeinschaft mit PV und Speicher verfügt über echte kollektive Flexibilität — ohne Plattform kann sie weder prognostiziert noch angeboten werden.
+
KERN erstellt rollierende 24-h-Flexibilitätsprognosen für die gesamte Gemeinschaft und verbindet auf Anfrage mit Aggregatoren oder Netzbetreibern.
+
+ +
+
+ +
+ + +
+

Wie KERN die Gemeinschaft betreibt

+
+
1. REAL-TIME MONITORING
+   KERN tracks generation and consumption of all members
+   continuously — at meter level, in real-time.
+
+2. COMMUNITY OPTIMISATION  (24h forecast + real-time)
+   KERN forecasts generation (PV) and consumption per member.
+   Goal: maximise shared self-consumption —
+   who needs what, when, and what is available right now?
+
+3. AUTONOMOUS CONTROL
+   KERN steers shared storage, controllable loads and feed-in
+   points to keep as much energy within the community as possible.
+   No manual intervention required.
+
+4. FLEXIBILITY  (optional)
+   Surplus or forecastable flexibility can be offered as a 24h
+   forecast to an aggregator or grid operator and dispatched
+   on demand — confirmed back to the requesting party.
+
+
+ +
+ + +
+

Was KERN für Gemeinschaften leistet

+
+
+

Gemeinschaftsoptimierung

+

Maximiert den kollektiven Eigenverbrauch aller Mitglieder — in Echtzeit und mit 24-h-Prognose.

+
+
+

Speicher- und Laststeuerung

+

Autonome Steuerung gemeinsamer Speicher und steuerbarer Lasten zum Ausgleich von Angebot und Nachfrage.

+
+
+

Echtzeit-Dashboard

+

Erzeugung, Verbrauch, Eigenverbrauchsquote und Flexibilitätspotenzial — für Betreiber und optional für Mitglieder.

+
+
+

Flexibilitätsprognose

+

Rollierende 24-h-Prognose der verfügbaren Gemeinschaftsflexibilität — Grundlage für Aggregatoren oder Netzbetreiber.

+
+
+

Mehrstandort-Konnektivität

+

Zigbee Mesh für zusammenhängende Standorte, MIOTY für verteilte Mitglieder — jeder Teilnehmer zuverlässig verbunden.

+
+
+

Aggregator-Anbindung

+

Gemeinschaftsflexibilität auf Abruf gesteuert — mit bestätigter Ausführung zurück an die anfragende Partei.

+
+
+ + +
+

Übernehmen Sie bereits die EEG-Abrechnung oder Mitgliederverwaltung?

+

KERN ist die Optimierungs- und Steuerungsschicht — keine Abrechnungsplattform. Wir integrieren uns in Ihre bestehende Abrechnungsinfrastruktur. Gemeinsam bieten Sie das Gesamtpaket: Abrechnung von Ihnen, Optimierung von KERN.

+ Partnerschaft besprechen → +
+
+ + +
+

Mehr Energie bleibt in der Gemeinschaft.

+

30 Minuten, um zu zeigen, wie KERN eine Live-Energiegemeinschaft optimiert — von der Echtzeit-Steuerung bis zu Flexibilitätsmärkten.

+ +
+ + + + diff --git a/de/kern/for-platforms.html b/de/kern/for-platforms.html new file mode 100644 index 0000000..ebbf8bb --- /dev/null +++ b/de/kern/for-platforms.html @@ -0,0 +1,184 @@ + + + + + KERN für VPP-Plattformen — Riddle&Code + + + + + + + + + + + +
+ + +
+ KERN — Für VPP-Plattformen +

Ihre Plattform ist stark
oberhalb der Asset-Ebene.
KERN schließt die Lücke darunter.

+

KERN integriert sich unterhalb Ihres VPP als Asset-Management- und Konnektivitätsschicht. Ihre Plattform erhält einen sauberen, normalisierten API-Feed, bestätigte Steuerung und 24-h-Flexibilitätsprognosen — für alle Assets Ihrer Kunden, einschließlich der bislang nicht erreichbaren.

+ API-Integration besprechen +
+ +
+ + +
+

Wo KERN in Ihren Stack passt

+
+
Market / TSO / Grid Operator
+         ↓
+┌─────────────────────────────────────────────┐
+│         YOUR PLATFORM                       │
+│  VPP optimisation · Bidding · Redispatch    │
+│  Trading · Reporting                        │
+└─────────────────┬───────────────────────────┘
+                  │  Normalised telemetry feed
+                  │  Dispatch commands + confirmation
+                  │  24h flexibility forecast
+┌─────────────────▼───────────────────────────┐
+│         KERN                           │
+│  Asset management · Autonomous dispatch     │
+│  Real-time optimisation · Forecasting       │
+└─────────────────┬───────────────────────────┘
+                  │
+         Zigbee Mesh  ·  MIOTY
+                  │
+┌─────────────────▼───────────────────────────┐
+│  PV · BESS · Heat pumps · EV chargers       │
+│  CHP · Controllable loads · Microgrids      │
+└─────────────────────────────────────────────┘
+
+
+ +
+ + +
+

Drei Lücken, die KERN füllt

+
+ +
+
Assets mit unzuverlässiger Konnektivität bleiben außerhalb des Portfolios
+
Ländliche Standorte, Industriegelände, Keller — LTE bricht ab, WLAN ist instabil. Ihre Kunden können diese Assets nicht in Ihre Plattform einbringen. Potenzial bleibt ungenutzt.
+
MIOTY (10 km, IEC-Standard) und Zigbee Mesh machen jedes Asset erreichbar — Ihre Kunden erweitern ihr Portfolio ohne Infrastrukturinvestitionen.
+
+ +
+
Keine Steuerungsrückmeldung — der Regelkreis ist offen
+
Ihre Plattform sendet Befehle — ob das Asset reagiert hat, bleibt bis zur nächsten Messung unbekannt. Abweichungen werden zu spät erkannt, Pönalen treffen Ihre Kunden.
+
KERN bestätigt jede Steuerung auf Asset-Ebene und meldet in Echtzeit zurück. Ihre Plattform weiß sofort, ob die Flexibilitätsverpflichtung erfüllt wird.
+
+ +
+
Heterogene Assets erhöhen den Integrationsaufwand
+
Jeder neue Asset-Typ, jeder neue Hersteller, jedes neue Protokoll bedeutet Integrationsaufwand. Das verlangsamt das Onboarding und begrenzt die Skalierung.
+
KERN normalisiert alle Asset-Typen auf ein einheitliches Datenmodell. Ihre Plattform spricht mit KERN — nicht mit jedem Asset einzeln.
+
+ +
+
+ +
+ + +
+

Was Ihre Plattform von KERN bekommt

+
+
+

Sauberer, normalisierter API-Feed

+

Einheitliche Telemetrie, unabhängig von Asset-Typen, Herstellern oder Protokollen. Eine Integration, alle Assets.

+
+
+

Steuerung mit Bestätigung

+

KERN empfängt Ihren Steuerungsbefehl, führt ihn auf Asset-Ebene aus und meldet zurück, ob und wie er erfüllt wurde.

+
+
+

24-h-Flexibilitätsprognose

+

Rollierende Prognose pro Asset und Portfolio — welche Flexibilität wirklich verfügbar ist, und wann. Präzisere Gebote, bessere Ergebnisse für Ihre Kunden.

+
+
+

Mehr Assets im Portfolio

+

Assets, die bisher aufgrund von Konnektivitätsproblemen ausgeschlossen waren, werden verfügbar. Ihre Kunden erweitern ihr Portfolio ohne CAPEX.

+
+
+ +

Integrations-optionen

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ModellBeschreibungAufwand
API-IntegrationKERN liefert normalisierte Telemetrie und akzeptiert Steuerungsbefehle via REST/WebSocket. Ihre Plattform bleibt primär.Low
White-LabelKERN läuft unter Ihrer Marke als 'Asset Connectivity Module' für Ihre Kunden.Medium
PilotEin Kunde, eine Asset-Klasse, definierter Umfang — schnell startbar, geringes Risiko.Minimal
+
+ + +
+

Sprechen wir über die API.

+

30 Minuten, um die Spezifikation durchzugehen und zu identifizieren, welche Assets Ihrer Kunden derzeit ausgeschlossen sind — und wie schnell sich das mit KERN ändert.

+ +
+ + + + diff --git a/de/kern/for-utilities.html b/de/kern/for-utilities.html new file mode 100644 index 0000000..90c951e --- /dev/null +++ b/de/kern/for-utilities.html @@ -0,0 +1,159 @@ + + + + + KERN für Energieversorger — Riddle&Code + + + + + + + + + + + +
+ + +
+ KERN — Für Energieversorger +

Sie haben die Kunden.
Sie haben die Anlagen.
KERN verbindet sie.

+

Ihre Kunden haben PV, Speicher, Wärmepumpen und Ladestationen. Ihr Netz hat Flexibilitätsbedarf. KERN ist die autonome Plattformschicht, die Ihren Kundenstamm in ein steuerbares, monetarisierbares Flexibilitätsportfolio verwandelt — ohne dafür ein eigenes Betriebsteam aufzubauen.

+ Demo buchen +
+ +
+ + +
+

Wo Energieversorger Potenzial ungenutzt lassen

+
+ +
+
Steuerbare Anlagen ohne Optimierungsplattform
+
Smart Meter und CLS-Schalter werden ausgerollt — aber es gibt keine Plattform darüber. Keine Optimierung, keine Aggregation, kein Marktzugang. Das Potenzial bleibt ungenutzt.
+
KERN sitzt als autonome Managementschicht über dem Zähler — Echtzeit-Optimierung, Flottensteuerung, marktreife Aggregation.
+
+ +
+
Redispatch 2.0 ist manuell und kostspielig
+
Netzengpassmanagement erfordert koordinierte Steuerung verteilter Einspeiser — ohne Plattform ist das operativ komplex, fehleranfällig und nicht skalierbar.
+
KERN übernimmt Redispatch-2.0-konformes Dispatch autonom, mit Bestätigung pro Anlage.
+
+ +
+
Kunden wechseln zu intelligenteren Energieanbietern
+
Neue Energieanbieter bieten HEMS, Gemeinschaftstarife und Flexibilitätserlöse an. Versorger ohne smarte Services verlieren die Kunden, die aktiv teilnehmen wollen.
+
KERN ist Ihr Behind-the-Meter-Produkt — gebrandmarkt als Ihr Service, geliefert von KERN. Kunden bleiben und engagieren sich.
+
+ +
+
Kein Zugang zu Flexibilitätsmärkten aus dem eigenen Kundenstamm
+
Sie haben die Kundenbeziehungen und die Anlagen — aber ohne Aggregationsplattform können Sie diese Flexibilität nicht monetarisieren.
+
KERN aggregiert Ihren Kundenstamm zu einem vermarktbaren Portfolio. Sie können einen eigenen Aggregator-Tochter betreiben — oder mit einem externen Partner zusammenarbeiten.
+
+ +
+
+ +
+ + +
+

Drei Wege, KERN einzusetzen

+
+ +
+
Anwendungsfall 01
+

HEMS-Flotte — Kundenstamm als flexible Ressource

+

Setzen Sie KERN HEMS bei Haushaltskunden mit PV und Speicher ein. Kunden profitieren von Eigenverbrauchsoptimierung und niedrigeren Rechnungen. Sie erhalten eine steuerbare Flotte für Redispatch oder Flexibilitätsmonetarisierung — ohne operativen Aufwand pro Kunde.

+
+ +
+
Anwendungsfall 02
+

Energiegemeinschaften — Regelkonform und automatisch

+

KERN EEG verwaltet Optimierung und autonome Anlagensteuerung für Energiegemeinschaften. Sie können Energiegemeinschaften als Service anbieten — ohne eigene Entwicklung oder manuelle Abrechnungsprozesse von KERN.

+
+ +
+
Anwendungsfall 03
+

Flexibilitätsmonetarisierung — Aus Ihrem Kundenstamm

+

Die aggregierte Flexibilität aus HEMS-Flotte, G&I-Kunden und EEG wird über KERN zu einem vermarktbaren Portfolio. Leiten Sie es über eine eigene Aggregator-Tochter oder einen externen Partner an FCR-, aFRR- oder Intraday-Märkte.

+
+ +
+
+ +
+ + +
+

Das Referenzmodell — im Produktionsbetrieb

+
+

+ Ein führender regionaler Energieversorger hat seinen kompletten Flexibilitäts-Stack auf KERN aufgebaut: +

+
+
+
Netz
+
Laufendes MS/NS-Microgrid — Produktivsystem, Österreich
+
+
+
Aggregator
+
Versorger-eigener Aggregator sichert Gebote auf österreichischen Energiemärkten über KERN
+
+
+
Gemeinschaften
+
Energiegemeinschaftsplattform — KERN als Optimierungsschicht
+
+
+

Livesystem — auf Anfrage in Österreich besichtigbar.

+
+ Vollständige Referenz ansehen → +
+ + +
+

Bereit, Ihren Kundenstamm zu monetarisieren?

+

30 Minuten, um zu zeigen, welche Anlagen in Ihrem Netz für KERN bereit sind — und wie das Flexibilitätspotenzial aussieht.

+ +
+ + + + diff --git a/de/kern/index.html b/de/kern/index.html new file mode 100644 index 0000000..4e21e69 --- /dev/null +++ b/de/kern/index.html @@ -0,0 +1,176 @@ + + + + + KERN by Riddle&Code — Autonome Energieplattform + + + + + + + + + + + +
+ + +
+ Riddle&Code — Autonome Energieplattform +

Autonome Energie
hinter dem Zähler.

+

KERN ist die Plattform hinter dem Zähler — optimiert, prognostiziert und steuert Flexibilität aus Haushalten, Gewerbebetrieben, Microgrids und Energiegemeinschaften autonom.

+ Demo buchen +
+ +
+ + +
+
+
Sie senden ein Signal.
KERN liefert.
Was hinter dem Zähler passiert, ist unsere Aufgabe.
+

Aggregatoren, Energieversorger und Plattformen interagieren mit KERN über eine saubere API — Prognose eingehend, Flexibilitätssignal eingehend, Bestätigung ausgehend. KERN übernimmt alles dazwischen: Neuausgleich, Anlagenauswahl, Steuerung, Bestätigung.

+
+
+ +
+ + +
+

Optimierung hinter dem Zähler

+

KERN arbeitet in vier Anlagenkontexten — alle auf einer Plattform.

+
+
+

Haushalte

+

PV + Hausspeicher + Wärmepumpe + Ladestation — als Einheit optimiert. HEMS-Flottenmanagement für Energieversorger.

+
+
+

Gewerbe & Industrie

+

Gewerbe-PV, BESS, BHKW, steuerbare Lasten auf MS/NS-Ebene. Lastspitzenkappung, Lastmanagement, Flexibilitätssteuerung.

+
+
+

Microgrids

+

Mehrere Anlagen hinter einem gemeinsamen Netzverknüpfungspunkt. Koordinierte Optimierung, inselbetriebsfähig.

+
+
+

Energiegemeinschaften (EEG)

+

Gemeinschaftsoptimierung über mehrere Mitglieder und Zähler. Gemeinsamer Eigenverbrauch maximiert, kollektive Flexibilität aggregiert.

+
+
+
+ +
+ + +
+

Drei Optimierungsmodi

+

Pro Anlage oder Portfolio konfigurierbar — kombinierbar.

+
+
+
Modus 01
+

Eigenverbrauchsoptimierung

+

Lokalen Eigenverbrauch maximieren. Netzeinspeisung und -bezug minimieren. Standardmodus für Haushalte und kleinere G&I-Anlagen.

+
+
+
Modus 02
+

Wirtschaftliche Optimierung

+

Monetären Ertrag maximieren — Intraday-Arbitrage, FCR/aFRR-Gebote, Lastspitzenkappung, Reduzierung der Leistungspreise. Standard für Aggregatoren und G&I-Flexibilität.

+
+
+
Modus 03
+

Gemeinschaftsoptimierung

+

Gemeinsamen Eigenverbrauch über mehrere Mitglieder maximieren. Faire Zuteilung nach Anteil. Standard für EEG und Microgrids.

+
+
+
+ +
+ + +
+

Konnektivität nach Topologie

+

Die richtige Technologie für jede Anlagenkonfiguration — beide in KERN als einheitliche Schicht verwaltet.

+
+
+
Zusammenhängende Standorte
+

Zigbee-Mesh

+

Für Anlagen am selben Standort — Gebäude, Campusse, Industriegeländer. Kostengünstig, einfach zu installieren, selbstheilendes Mesh-Netz. Keine komplexe Gateway-Infrastruktur erforderlich.

+
+
+
Verteilte Anlagen
+

MIOTY

+

IEC-Standard-LPWAN für geografisch verteilte Anlagen — ländliche PV-Anlagen, MS-angeschlossene BESS, verteilte Standorte. 10 km Reichweite, 1,5 Mio. Nachrichten/Tag, unabhängig von LTE und WLAN.

+
+
+ Vollständige Technologieübersicht → +
+ +
+ + +
+

KERN für Ihre Rolle

+ +
+ + + + diff --git a/de/references/index.html b/de/references/index.html new file mode 100644 index 0000000..71eddb5 --- /dev/null +++ b/de/references/index.html @@ -0,0 +1,127 @@ + + + + + Referenzen — KERN by Riddle&Code + + + + + + + + + + + + +
+ Referenzen +

Kein Pilotprojekt.
Im Produktiveinsatz.

+

R&C KERN ist live — verwaltet ein echtes MV/LV-Netz, betreibt einen Flexibilitätsaggregator und führt eine Energiegemeinschaftsplattform. Besichtigung auf Anfrage.

+
+ +
+ +
+ + +
+ R&C KERN — live installation +
+ + +
+
+ Live-Referenz — Österreich +

Ein führender regionaler Energieversorger hat seinen kompletten Flexibilitäts-Stack auf R&C KERN aufgebaut

+
+
+
+ +
+
Netz
+
Live-MV/LV-Microgrid
+
Echtes Mittel- und Niederspannungsnetz im Produktiveinsatz. KERN verwaltet alle Assets hinter dem Zähler — Erzeugung, Speicher, steuerbare Lasten.
+
+ +
+
Aggregator
+
Versorgereigener Flexibilitätsaggregator
+
Tochtergesellschaft des Versorgers, die Gebote auf österreichischen Energiemärkten absichert. KERN liefert autonome Steuerung mit bestätigter Ausführung.
+
+ +
+
Gemeinschaft
+
Energiegemeinschaftsplattform
+
Energiegemeinschaftsmanagement auf KERN als Optimierungs- und Steuerungsschicht — autonome Asset-Koordination, Maximierung des kollektiven Eigenverbrauchs.
+
+ +
+ +
+

+ Das System ist besichtigbar.
+ Die Live-Installation kann auf Anfrage besichtigt werden — ein echtes Microgrid, das KERN im Produktiveinsatz betreibt. Kontaktieren Sie uns für einen Besuchstermin. +

+ Besuch anfragen +
+
+
+ + +
+

Weitere Referenzen folgen

+

Weitere Kundenreferenzen sind in Vorbereitung. Wir holen derzeit die Genehmigung zur namentlichen Veröffentlichung ein.
+ Kontaktieren Sie uns um direkt mit einem Referenzkunden zu sprechen.

+
+ +
+ + +
+

Sehen Sie es in Betrieb.

+

Ein 30-minütiges Gespräch oder eine Vor-Ort-Besichtigung — was für Sie nützlicher ist.

+ +
+ + + + diff --git a/de/technology/index.html b/de/technology/index.html new file mode 100644 index 0000000..8204c77 --- /dev/null +++ b/de/technology/index.html @@ -0,0 +1,231 @@ + + + + + Technologie — KERN by Riddle&Code + + + + + + + + + + + + +
+ Technologie +

Gebaut für Energieinfrastruktur.
Nicht aus dem IoT adaptiert.

+

MIOTY, Zigbee Mesh, ein autonomer 24-h-Prognose-Regelkreis und bestätigte Steuerung — zweckgebaut für die Anforderungen des Flexibilitätsmanagements hinter dem Zähler.

+
+ +
+ + +
+
+ KERN hardware device +
+
+ + +
+

Konnektivität nach Topologie

+

Die Technologiewahl folgt der Asset-Topologie — nicht umgekehrt.

+ +
+
+
Zusammenhängende Standorte
+

Zigbee Mesh

+

Gebäude, Campusse, Industriegelände, Microgrids an einem Standort

+
    +
  • RangeUp to 100m per node, mesh extends coverage
  • +
  • DeploymentNo gateway per room — mesh self-organises
  • +
  • CostLow hardware cost per node
  • +
  • TopologySelf-healing mesh — resilient to node failure
  • +
  • Use caseHEMS, C&I facilities, ESC on one campus
  • +
+
+
+
Verteilte Assets
+

MIOTY

+

Geografisch verteilte Assets — ländliche PV, MV-BESS, mehrere entfernte Standorte

+
    +
  • Range10 km per gateway
  • +
  • Capacity1.5M messages/day per gateway
  • +
  • StandardIEC 62657-1 — purpose-built for energy
  • +
  • IndependenceNo LTE, no WiFi required
  • +
  • Latency<1 second for dispatch commands
  • +
+
+
+ +

MIOTY vs. LoRaWAN

+ + + + + + + + + + + + + + + + +
CapabilityMIOTYLoRaWAN
StandardIEC 62657-1 (international)LoRa Alliance proprietary
RangeUp to 10 kmUp to 5 km
Messages/day/gateway1,500,000~50,000
Designed forEnergy infrastructure, utility gradeGeneral IoT sensing
Dispatch latency<1 secondSeconds to minutes
LTE independence
+
+ +
+ + +
+

Der autonome Regelkreis

+

KERN arbeitet kontinuierlich — prognostiziert, reagiert und steuert ohne manuelle Eingriffe.

+
+
1. FORECAST  (rolling, 24h ahead)
+   Per asset: state of charge, PV forecast (weather-based),
+   load forecast (historical patterns), available flexibility window.
+   Per portfolio: aggregated flexibility profile (MW, time, confidence).
+   → Delivered to aggregator / platform as API feed.
+
+2. DEMAND  (inbound signal)
+   Flexibility signal received from aggregator, utility or market:
+   volume (kW), time window, direction (increase/decrease).
+
+3. REBALANCE  (real-time delta)
+   KERN compares demand signal against current actual asset state.
+   Detects deviations: weather change, load shift, asset failure.
+   Adjusts dispatch plan autonomously — before deviation becomes critical.
+
+4. DISPATCH  (autonomous asset control)
+   KERN selects assets, determines control sequence, sends commands.
+   Execution via Zigbee Mesh (contiguous) or MIOTY (distributed).
+   Asset protocols: Modbus, SunSpec, EEBUS, proprietary inverter APIs.
+
+5. CONFIRMATION
+   Asset-level execution confirmed back to KERN.
+   Fulfillment status reported to aggregator / platform in real-time.
+   Next forecast cycle starts immediately.
+
+
+ +
+ + +
+

Unterstützte Assets und Protokolle

+

KERN normalisiert alle Asset-Typen auf ein einheitliches Datenmodell — unabhängig von Hersteller oder Protokoll.

+ +

Asset-Typen

+
+
PV (residential)
+
PV (commercial)
+
Home storage
+
Commercial BESS
+
Heat pumps
+
EV chargers
+
CHP
+
Biogas
+
Controllable loads
+
MV-connected assets
+
+ +

Kommunikationsprotokolle

+
+
Modbus TCP/RTU
+
SunSpec
+
EEBUS
+
REST API
+
OCPP (EV)
+
Proprietary inverter APIs
+
+
+ +
+ + +
+

Sicherheit & Compliance

+
+
+

Ende-zu-Ende-Verschlüsselung

+

Alle Asset-Kommunikation Ende-zu-Ende verschlüsselt — vom Sensor bis zur Plattform.

+
+
+

Zertifikatsbasierte Authentifizierung

+

Jedes Asset durch Zertifikat authentifiziert — keine unautorisierten Steuerbefehle möglich.

+
+
+

Redispatch 2.0

+

Konform mit den Redispatch-2.0-Anforderungen für dezentrale Erzeugungssteuerung.

+
+
+

§14a / EAG / EnFG

+

Kompatibel mit den Regelungen für steuerbare Verbrauchseinrichtungen in Deutschland und Österreich.

+
+
+ Technische Demo buchen +
+ + + + diff --git a/includes/nav.html b/includes/nav.html index afb83a7..e3096cb 100644 --- a/includes/nav.html +++ b/includes/nav.html @@ -212,7 +212,7 @@
  • diff --git a/index.html b/index.html index 12f5780..4937e68 100644 --- a/index.html +++ b/index.html @@ -2,15 +2,18 @@ - Riddle&Code — Autonomous Energy. Behind the Meter. + Riddle&Code — Autonomous Energy. Behind the Meter. - - - - + + + + - - + + + + + + + +
    + + +
    +

    + {{ news_h1 }} +

    +

    + {{ news_sub }} +

    +
    + +
    +
    + +

    Latest Content

    +
    + +
    + + + + +
    + +
    + +
    +
    + +
    +
    +

    {{ news_cta_h2 }}

    +

    {{ news_cta_p }}

    + +
    +
    + + + + +
    + + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..1501913 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,526 @@ + + + + + {{ meta_title }} + + + + + + + + + + + + + + + + + + +
    +
    +
    Riddle&Code — {{ hero_location }}
    +

    + {{ hero_h1 }} +

    +

    + {{ hero_sub }} +

    + +
    + + + +
    + + +
    + + +
    + + +
    +
    +

    {{ loop_h2 }}

    +

    {{ loop_sub }}

    + +
    +
    +
    1
    +
    {{ loop_step1_label }}
    +
    {{ loop_step1_desc }}
    +
    +
    +
    +
    2
    +
    {{ loop_step2_label }}
    +
    {{ loop_step2_desc }}
    +
    +
    +
    +
    3
    +
    {{ loop_step3_label }}
    +
    {{ loop_step3_desc }}
    +
    +
    +
    +
    4
    +
    {{ loop_step4_label }}
    +
    {{ loop_step4_desc }}
    +
    +
    +
    +
    5
    +
    {{ loop_step5_label }}
    +
    {{ loop_step5_desc }}
    +
    +
    + +
    + {{ loop_callout }} +
    +
    +
    + + +
    +
    + {{ ref_tag }} +

    {{ ref_h2 }}

    +
    +
    {{ ref_proof1 }}
    +
    {{ ref_proof2 }}
    +
    {{ ref_proof3 }}
    +
    +

    + {{ ref_visit }} +

    + {{ ref_cta }} +
    +
    + + +
    +

    {{ cta_h2 }}

    +

    {{ cta_p }}

    + +
    + + + + + diff --git a/templates/kern/for-aggregators.html b/templates/kern/for-aggregators.html new file mode 100644 index 0000000..8a724f2 --- /dev/null +++ b/templates/kern/for-aggregators.html @@ -0,0 +1,162 @@ + + + + + {{ ka_meta_title }} + + + + + + + + + + + +
    + + +
    + {{ ka_eyebrow }} +

    {{ ka_h1 }}

    +

    {{ ka_lead }}

    + Book a Demo +
    + +
    + + +
    +

    {{ ka_pains_h2 }}

    +
    + +
    +
    {{ ka_pain1_title }}
    +
    {{ ka_pain1_desc }}
    +
    {{ ka_pain1_sol }}
    +
    + +
    +
    {{ ka_pain2_title }}
    +
    {{ ka_pain2_desc }}
    +
    {{ ka_pain2_sol }}
    +
    + +
    +
    {{ ka_pain3_title }}
    +
    {{ ka_pain3_desc }}
    +
    {{ ka_pain3_sol }}
    +
    + +
    +
    {{ ka_pain4_title }}
    +
    {{ ka_pain4_desc }}
    +
    {{ ka_pain4_sol }}
    +
    + +
    +
    {{ ka_pain5_title }}
    +
    {{ ka_pain5_desc }}
    +
    {{ ka_pain5_sol }}
    +
    + +
    +
    + +
    + + +
    +

    {{ ka_loop_h2 }}

    +
    +
    1. FORECAST  (rolling, 24h ahead)
    +   KERN calculates per asset and portfolio:
    +   what flexibility is available, when?
    +   → Output: flexibility profile (MW, time window, confidence)
    +   → Basis for your bidding strategy
    +
    +2. DEMAND  (flexibility signal from you / market)
    +   You place bids based on the forecast.
    +   On award, the demand signal comes back:
    +   "X kW, time window T, direction reduce/increase"
    +
    +3. REBALANCE  (forecast vs. actual state)
    +   KERN compares the demand signal against current
    +   asset state in real-time: weather, state of charge,
    +   current load, failures.
    +   Deviation from forecast → KERN reacts autonomously.
    +
    +4. DISPATCH  (autonomous local control)
    +   KERN decides which assets to control — BESS, HVAC,
    +   EV chargers, PV curtailment — via Zigbee or MIOTY.
    +   Execution confirmed.
    +
    +5. CONFIRMATION
    +   Fulfillment status back to you in real-time.
    +   Next forecast cycle starts.
    +
    +

    + {{ ka_loop_note }} +

    +
    + +
    + + +
    +

    {{ ka_ref_h2 }}

    +
    +
    +
    + "{{ ka_ref_quote }}" +
    {{ ka_ref_meta }}
    +
    +
    + See full reference → +
    +
    + + +
    +

    {{ ka_cta_h2 }}

    +

    {{ ka_cta_p }}

    + +
    + + + + diff --git a/templates/kern/for-communities.html b/templates/kern/for-communities.html new file mode 100644 index 0000000..9d73e66 --- /dev/null +++ b/templates/kern/for-communities.html @@ -0,0 +1,176 @@ + + + + + {{ kc_meta_title }} + + + + + + + + + + + +
    + + +
    + {{ kc_eyebrow }} +

    {{ kc_h1 }}

    +

    {{ kc_lead }}

    + Book a Demo +
    + +
    + + +
    +

    {{ kc_pains_h2 }}

    +
    + +
    +
    {{ kc_pain1_title }}
    +
    {{ kc_pain1_desc }}
    +
    {{ kc_pain1_sol }}
    +
    + +
    +
    {{ kc_pain2_title }}
    +
    {{ kc_pain2_desc }}
    +
    {{ kc_pain2_sol }}
    +
    + +
    +
    {{ kc_pain3_title }}
    +
    {{ kc_pain3_desc }}
    +
    {{ kc_pain3_sol }}
    +
    + +
    +
    {{ kc_pain4_title }}
    +
    {{ kc_pain4_desc }}
    +
    {{ kc_pain4_sol }}
    +
    + +
    +
    {{ kc_pain5_title }}
    +
    {{ kc_pain5_desc }}
    +
    {{ kc_pain5_sol }}
    +
    + +
    +
    + +
    + + +
    +

    {{ kc_loop_h2 }}

    +
    +
    1. REAL-TIME MONITORING
    +   KERN tracks generation and consumption of all members
    +   continuously — at meter level, in real-time.
    +
    +2. COMMUNITY OPTIMISATION  (24h forecast + real-time)
    +   KERN forecasts generation (PV) and consumption per member.
    +   Goal: maximise shared self-consumption —
    +   who needs what, when, and what is available right now?
    +
    +3. AUTONOMOUS CONTROL
    +   KERN steers shared storage, controllable loads and feed-in
    +   points to keep as much energy within the community as possible.
    +   No manual intervention required.
    +
    +4. FLEXIBILITY  (optional)
    +   Surplus or forecastable flexibility can be offered as a 24h
    +   forecast to an aggregator or grid operator and dispatched
    +   on demand — confirmed back to the requesting party.
    +
    +
    + +
    + + +
    +

    {{ kc_features_h2 }}

    +
    +
    +

    {{ kc_feat1_h3 }}

    +

    {{ kc_feat1_p }}

    +
    +
    +

    {{ kc_feat2_h3 }}

    +

    {{ kc_feat2_p }}

    +
    +
    +

    {{ kc_feat3_h3 }}

    +

    {{ kc_feat3_p }}

    +
    +
    +

    {{ kc_feat4_h3 }}

    +

    {{ kc_feat4_p }}

    +
    +
    +

    {{ kc_feat5_h3 }}

    +

    {{ kc_feat5_p }}

    +
    +
    +

    {{ kc_feat6_h3 }}

    +

    {{ kc_feat6_p }}

    +
    +
    + + +
    +

    {{ kc_partner_h3 }}

    +

    {{ kc_partner_p }}

    + {{ kc_partner_cta }} +
    +
    + + +
    +

    {{ kc_cta_h2 }}

    +

    {{ kc_cta_p }}

    + +
    + + + + diff --git a/templates/kern/for-platforms.html b/templates/kern/for-platforms.html new file mode 100644 index 0000000..a45fd3f --- /dev/null +++ b/templates/kern/for-platforms.html @@ -0,0 +1,184 @@ + + + + + {{ kp_meta_title }} + + + + + + + + + + + +
    + + +
    + {{ kp_eyebrow }} +

    {{ kp_h1 }}

    +

    {{ kp_lead }}

    + {{ kp_hero_cta }} +
    + +
    + + +
    +

    {{ kp_stack_h2 }}

    +
    +
    Market / TSO / Grid Operator
    +         ↓
    +┌─────────────────────────────────────────────┐
    +│         YOUR PLATFORM                       │
    +│  VPP optimisation · Bidding · Redispatch    │
    +│  Trading · Reporting                        │
    +└─────────────────┬───────────────────────────┘
    +                  │  Normalised telemetry feed
    +                  │  Dispatch commands + confirmation
    +                  │  24h flexibility forecast
    +┌─────────────────▼───────────────────────────┐
    +│         KERN                           │
    +│  Asset management · Autonomous dispatch     │
    +│  Real-time optimisation · Forecasting       │
    +└─────────────────┬───────────────────────────┘
    +                  │
    +         Zigbee Mesh  ·  MIOTY
    +                  │
    +┌─────────────────▼───────────────────────────┐
    +│  PV · BESS · Heat pumps · EV chargers       │
    +│  CHP · Controllable loads · Microgrids      │
    +└─────────────────────────────────────────────┘
    +
    +
    + +
    + + +
    +

    {{ kp_pains_h2 }}

    +
    + +
    +
    {{ kp_pain1_title }}
    +
    {{ kp_pain1_desc }}
    +
    {{ kp_pain1_sol }}
    +
    + +
    +
    {{ kp_pain2_title }}
    +
    {{ kp_pain2_desc }}
    +
    {{ kp_pain2_sol }}
    +
    + +
    +
    {{ kp_pain3_title }}
    +
    {{ kp_pain3_desc }}
    +
    {{ kp_pain3_sol }}
    +
    + +
    +
    + +
    + + +
    +

    {{ kp_what_h2 }}

    +
    +
    +

    {{ kp_what1_h3 }}

    +

    {{ kp_what1_p }}

    +
    +
    +

    {{ kp_what2_h3 }}

    +

    {{ kp_what2_p }}

    +
    +
    +

    {{ kp_what3_h3 }}

    +

    {{ kp_what3_p }}

    +
    +
    +

    {{ kp_what4_h3 }}

    +

    {{ kp_what4_p }}

    +
    +
    + +

    {{ kp_integ_h2 }}

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ kp_integ_th1 }}{{ kp_integ_th2 }}{{ kp_integ_th3 }}
    {{ kp_integ1_model }}{{ kp_integ1_desc }}Low
    {{ kp_integ2_model }}{{ kp_integ2_desc }}Medium
    {{ kp_integ3_model }}{{ kp_integ3_desc }}Minimal
    +
    + + +
    +

    {{ kp_cta_h2 }}

    +

    {{ kp_cta_p }}

    + +
    + + + + diff --git a/templates/kern/for-utilities.html b/templates/kern/for-utilities.html new file mode 100644 index 0000000..2cc69b6 --- /dev/null +++ b/templates/kern/for-utilities.html @@ -0,0 +1,159 @@ + + + + + {{ ku_meta_title }} + + + + + + + + + + + +
    + + +
    + {{ ku_eyebrow }} +

    {{ ku_h1 }}

    +

    {{ ku_lead }}

    + {{ shared_book_demo }} +
    + +
    + + +
    +

    {{ ku_pains_h2 }}

    +
    + +
    +
    {{ ku_pain1_title }}
    +
    {{ ku_pain1_desc }}
    +
    {{ ku_pain1_sol }}
    +
    + +
    +
    {{ ku_pain2_title }}
    +
    {{ ku_pain2_desc }}
    +
    {{ ku_pain2_sol }}
    +
    + +
    +
    {{ ku_pain3_title }}
    +
    {{ ku_pain3_desc }}
    +
    {{ ku_pain3_sol }}
    +
    + +
    +
    {{ ku_pain4_title }}
    +
    {{ ku_pain4_desc }}
    +
    {{ ku_pain4_sol }}
    +
    + +
    +
    + +
    + + +
    +

    {{ ku_cases_h2 }}

    +
    + +
    +
    {{ ku_case1_num }}
    +

    {{ ku_case1_h3 }}

    +

    {{ ku_case1_p }}

    +
    + +
    +
    {{ ku_case2_num }}
    +

    {{ ku_case2_h3 }}

    +

    {{ ku_case2_p }}

    +
    + +
    +
    {{ ku_case3_num }}
    +

    {{ ku_case3_h3 }}

    +

    {{ ku_case3_p }}

    +
    + +
    +
    + +
    + + +
    +

    {{ ku_ref_h2 }}

    +
    +

    + {{ ku_ref_intro }} +

    +
    +
    +
    {{ ku_ref_grid_label }}
    +
    {{ ku_ref_grid_value }}
    +
    +
    +
    {{ ku_ref_agg_label }}
    +
    {{ ku_ref_agg_value }}
    +
    +
    +
    {{ ku_ref_comm_label }}
    +
    {{ ku_ref_comm_value }}
    +
    +
    +

    {{ ku_ref_note }}

    +
    + {{ shared_see_ref }} +
    + + +
    +

    {{ ku_cta_h2 }}

    +

    {{ ku_cta_p }}

    + +
    + + + + diff --git a/templates/kern/index.html b/templates/kern/index.html new file mode 100644 index 0000000..862b44e --- /dev/null +++ b/templates/kern/index.html @@ -0,0 +1,176 @@ + + + + + {{ ki_meta_title }} + + + + + + + + + + + +
    + + +
    + {{ ki_eyebrow }} +

    {{ ki_h1 }}

    +

    {{ ki_lead }}

    + {{ shared_book_demo }} +
    + +
    + + +
    +
    +
    {{ ki_concept_stmt }}
    +

    {{ ki_concept_sub }}

    +
    +
    + +
    + + +
    +

    {{ ki_contexts_h2 }}

    +

    {{ ki_contexts_sub }}

    +
    +
    +

    {{ ki_ctx_household_h3 }}

    +

    {{ ki_ctx_household_p }}

    +
    +
    +

    {{ ki_ctx_ci_h3 }}

    +

    {{ ki_ctx_ci_p }}

    +
    +
    +

    {{ ki_ctx_micro_h3 }}

    +

    {{ ki_ctx_micro_p }}

    +
    +
    +

    {{ ki_ctx_esc_h3 }}

    +

    {{ ki_ctx_esc_p }}

    +
    +
    +
    + +
    + + +
    +

    {{ ki_modes_h2 }}

    +

    {{ ki_modes_sub }}

    +
    +
    +
    {{ ki_mode1_num }}
    +

    {{ ki_mode1_h3 }}

    +

    {{ ki_mode1_p }}

    +
    +
    +
    {{ ki_mode2_num }}
    +

    {{ ki_mode2_h3 }}

    +

    {{ ki_mode2_p }}

    +
    +
    +
    {{ ki_mode3_num }}
    +

    {{ ki_mode3_h3 }}

    +

    {{ ki_mode3_p }}

    +
    +
    +
    + +
    + + +
    +

    {{ ki_conn_h2 }}

    +

    {{ ki_conn_sub }}

    +
    +
    +
    {{ ki_zigbee_use }}
    +

    {{ ki_zigbee_h3 }}

    +

    {{ ki_zigbee_p }}

    +
    +
    +
    {{ ki_mioty_use }}
    +

    {{ ki_mioty_h3 }}

    +

    {{ ki_mioty_p }}

    +
    +
    + {{ ki_tech_link }} +
    + +
    + + +
    +

    {{ ki_forwhom_h2 }}

    + +
    + + + + diff --git a/templates/references/index.html b/templates/references/index.html new file mode 100644 index 0000000..d06911a --- /dev/null +++ b/templates/references/index.html @@ -0,0 +1,127 @@ + + + + + {{ rp_meta_title }} + + + + + + + + + + + + +
    + {{ rp_eyebrow }} +

    {{ rp_h1 }}

    +

    {{ rp_lead }}

    +
    + +
    + +
    + + +
    + R&C KERN — live installation +
    + + +
    +
    + {{ rp_ref_tag }} +

    {{ rp_ref_h2 }}

    +
    +
    +
    + +
    +
    {{ rp_item1_label }}
    +
    {{ rp_item1_title }}
    +
    {{ rp_item1_desc }}
    +
    + +
    +
    {{ rp_item2_label }}
    +
    {{ rp_item2_title }}
    +
    {{ rp_item2_desc }}
    +
    + +
    +
    {{ rp_item3_label }}
    +
    {{ rp_item3_title }}
    +
    {{ rp_item3_desc }}
    +
    + +
    + +
    +

    + {{ rp_visit_strong }}
    + {{ rp_visit_p }} +

    + {{ rp_visit_cta }} +
    +
    +
    + + +
    +

    {{ rp_soon_h3 }}

    +

    {{ rp_soon_p }}
    + {{ rp_soon_link }} {{ rp_soon_suffix }}

    +
    + +
    + + +
    +

    {{ rp_cta_h2 }}

    +

    {{ rp_cta_p }}

    + +
    + + + + diff --git a/templates/technology/index.html b/templates/technology/index.html new file mode 100644 index 0000000..e1cb677 --- /dev/null +++ b/templates/technology/index.html @@ -0,0 +1,231 @@ + + + + + {{ tech_meta_title }} + + + + + + + + + + + + +
    + {{ tech_eyebrow }} +

    {{ tech_h1 }}

    +

    {{ tech_lead }}

    +
    + +
    + + +
    +
    + KERN hardware device +
    +
    + + +
    +

    {{ tech_conn_h2 }}

    +

    {{ tech_conn_sub }}

    + +
    +
    +
    {{ tech_zigbee_badge }}
    +

    {{ tech_zigbee_h3 }}

    +

    {{ tech_zigbee_use }}

    +
      +
    • RangeUp to 100m per node, mesh extends coverage
    • +
    • DeploymentNo gateway per room — mesh self-organises
    • +
    • CostLow hardware cost per node
    • +
    • TopologySelf-healing mesh — resilient to node failure
    • +
    • Use caseHEMS, C&I facilities, ESC on one campus
    • +
    +
    +
    +
    {{ tech_mioty_badge }}
    +

    {{ tech_mioty_h3 }}

    +

    {{ tech_mioty_use }}

    +
      +
    • Range10 km per gateway
    • +
    • Capacity1.5M messages/day per gateway
    • +
    • StandardIEC 62657-1 — purpose-built for energy
    • +
    • IndependenceNo LTE, no WiFi required
    • +
    • Latency<1 second for dispatch commands
    • +
    +
    +
    + +

    {{ tech_vs_h3 }}

    + + + + + + + + + + + + + + + + +
    CapabilityMIOTYLoRaWAN
    StandardIEC 62657-1 (international)LoRa Alliance proprietary
    RangeUp to 10 kmUp to 5 km
    Messages/day/gateway1,500,000~50,000
    Designed forEnergy infrastructure, utility gradeGeneral IoT sensing
    Dispatch latency<1 secondSeconds to minutes
    LTE independence
    +
    + +
    + + +
    +

    {{ tech_loop_h2 }}

    +

    {{ tech_loop_sub }}

    +
    +
    1. FORECAST  (rolling, 24h ahead)
    +   Per asset: state of charge, PV forecast (weather-based),
    +   load forecast (historical patterns), available flexibility window.
    +   Per portfolio: aggregated flexibility profile (MW, time, confidence).
    +   → Delivered to aggregator / platform as API feed.
    +
    +2. DEMAND  (inbound signal)
    +   Flexibility signal received from aggregator, utility or market:
    +   volume (kW), time window, direction (increase/decrease).
    +
    +3. REBALANCE  (real-time delta)
    +   KERN compares demand signal against current actual asset state.
    +   Detects deviations: weather change, load shift, asset failure.
    +   Adjusts dispatch plan autonomously — before deviation becomes critical.
    +
    +4. DISPATCH  (autonomous asset control)
    +   KERN selects assets, determines control sequence, sends commands.
    +   Execution via Zigbee Mesh (contiguous) or MIOTY (distributed).
    +   Asset protocols: Modbus, SunSpec, EEBUS, proprietary inverter APIs.
    +
    +5. CONFIRMATION
    +   Asset-level execution confirmed back to KERN.
    +   Fulfillment status reported to aggregator / platform in real-time.
    +   Next forecast cycle starts immediately.
    +
    +
    + +
    + + +
    +

    {{ tech_assets_h2 }}

    +

    {{ tech_assets_sub }}

    + +

    {{ tech_assets_label1 }}

    +
    +
    PV (residential)
    +
    PV (commercial)
    +
    Home storage
    +
    Commercial BESS
    +
    Heat pumps
    +
    EV chargers
    +
    CHP
    +
    Biogas
    +
    Controllable loads
    +
    MV-connected assets
    +
    + +

    {{ tech_assets_label2 }}

    +
    +
    Modbus TCP/RTU
    +
    SunSpec
    +
    EEBUS
    +
    REST API
    +
    OCPP (EV)
    +
    Proprietary inverter APIs
    +
    +
    + +
    + + +
    +

    {{ tech_security_h2 }}

    +
    +
    +

    {{ tech_sec1_h4 }}

    +

    {{ tech_sec1_p }}

    +
    +
    +

    {{ tech_sec2_h4 }}

    +

    {{ tech_sec2_p }}

    +
    +
    +

    {{ tech_sec3_h4 }}

    +

    {{ tech_sec3_p }}

    +
    +
    +

    {{ tech_sec4_h4 }}

    +

    {{ tech_sec4_p }}

    +
    +
    + {{ tech_cta }} +
    + + + + From 01a9a7a063651a812cb3cbb8220e811bee2bba8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Sun, 12 Apr 2026 22:53:55 +0200 Subject: [PATCH 13/30] Fix HTML entity encoding for Riddle&Code in various pages and update meta descriptions across the site --- company/about-us.html | 10 +++--- company/career.html | 10 +++--- company/get-in-touch.html | 4 +-- company/media.html | 16 ++++----- company/news.html | 18 +++++----- company/overview.html | 20 +++++------ de/company/about-us.html | 10 +++--- de/company/career.html | 10 +++--- de/company/get-in-touch.html | 4 +-- de/company/media.html | 16 ++++----- de/company/news.html | 18 +++++----- de/index.html | 12 +++---- de/kern/for-aggregators.html | 2 +- de/kern/for-communities.html | 2 +- de/kern/for-platforms.html | 2 +- de/kern/for-utilities.html | 4 +-- de/kern/index.html | 4 +-- de/references/index.html | 4 +-- de/technology/index.html | 2 +- index.html | 12 +++---- kern/for-aggregators.html | 2 +- kern/for-communities.html | 2 +- kern/for-platforms.html | 2 +- kern/for-utilities.html | 4 +-- kern/index.html | 4 +-- locales/de.yaml | 64 ++++++++++++++++++------------------ locales/en.yaml | 64 ++++++++++++++++++------------------ references/index.html | 4 +-- technology/index.html | 2 +- templates/company/news.html | 8 ++--- templates/index.html | 4 +-- 31 files changed, 170 insertions(+), 170 deletions(-) diff --git a/company/about-us.html b/company/about-us.html index d66931e..1d4d3a8 100644 --- a/company/about-us.html +++ b/company/about-us.html @@ -2,10 +2,10 @@ - About Riddle&Code — Infrastructure for Distributed Energy - - - + About Riddle&Code — Infrastructure for Distributed Energy + + + @@ -25,7 +25,7 @@

    Infrastructure for
    distributed energy.

    - Riddle&Code builds KERN — the platform utilities and aggregators use to connect, manage, and monetise distributed energy assets at scale. We own the full stack: hardware, connectivity, platform, and market access. + Riddle&Code builds KERN — the platform utilities and aggregators use to connect, manage, and monetise distributed energy assets at scale. We own the full stack: hardware, connectivity, platform, and market access.

    diff --git a/company/career.html b/company/career.html index c74f9c7..4b7c9c2 100644 --- a/company/career.html +++ b/company/career.html @@ -2,9 +2,9 @@ - Career — Riddle&Code + Career — Riddle&Code - + @@ -24,14 +24,14 @@

    Join Our Team
    Build the Infrastructure for the Energy Transition

    - Riddle&Code builds KERN — the platform utilities and aggregators use to connect, dispatch and monetise distributed energy assets at scale. We work on hard problems in energy infrastructure, wireless connectivity and autonomous systems. + Riddle&Code builds KERN — the platform utilities and aggregators use to connect, dispatch and monetise distributed energy assets at scale. We work on hard problems in energy infrastructure, wireless connectivity and autonomous systems.

    -

    The Riddle&Code Spirit

    +

    The Riddle&Code Spirit

    @@ -109,7 +109,7 @@

    Our Core Values

    -

    Why Join Riddle&Code

    +

    Why Join Riddle&Code

    diff --git a/company/get-in-touch.html b/company/get-in-touch.html index 47a48aa..e5b1a0e 100644 --- a/company/get-in-touch.html +++ b/company/get-in-touch.html @@ -2,9 +2,9 @@ - Contact — KERN by Riddle&Code + Contact — KERN by Riddle&Code - + diff --git a/company/media.html b/company/media.html index 03544bf..d74aa7e 100644 --- a/company/media.html +++ b/company/media.html @@ -2,10 +2,10 @@ - Media — Riddle&Code - - - + Media — Riddle&Code + + + @@ -24,7 +24,7 @@

    Media Hub.
    Press Kit & Brand Resources

    - Welcome to Riddle&Code's Media Hub. Here you can find our press kit, brand logos, image materials, and information about our media activities. + Welcome to Riddle&Code's Media Hub. Here you can find our press kit, brand logos, image materials, and information about our media activities.

    @@ -37,7 +37,7 @@

    Who We Are

    - Riddle&Code builds KERN — the infrastructure platform for distributed energy management. We serve utilities, aggregators and energy communities across Europe, providing autonomous asset connectivity, flexibility forecasting and dispatch. + Riddle&Code builds KERN — the infrastructure platform for distributed energy management. We serve utilities, aggregators and energy communities across Europe, providing autonomous asset connectivity, flexibility forecasting and dispatch.

    Our technology, including MIOTY wireless connectivity and autonomous dispatch, is deployed in production with a leading regional utility in Austria — managing a live MV/LV microgrid, flexibility aggregator and energy community platform. @@ -67,7 +67,7 @@

    Press Kit

    Media Partner Logos

    -

    Logos showing Riddle&Code alongside our press partners and media mentions. Ready for publication use.

    +

    Logos showing Riddle&Code alongside our press partners and media mentions. Ready for publication use.

    Download Partner Logos
    @@ -97,7 +97,7 @@

    Interview Requests

    Usage Guidelines

    -

    Please respect our brand guidelines when using Riddle&Code and KERN assets. Contact us if you have questions.

    +

    Please respect our brand guidelines when using Riddle&Code and KERN assets. Contact us if you have questions.

    diff --git a/company/news.html b/company/news.html index 7ff8537..9bf578f 100644 --- a/company/news.html +++ b/company/news.html @@ -2,10 +2,10 @@ - News — Riddle&Code - - - + News — Riddle&Code + + + @@ -223,7 +223,7 @@

    - News & Insights
    From Riddle&Code + News & Insights
    From Riddle&Code

    Stay up to date with our latest product updates, market research and company news. @@ -237,10 +237,10 @@

    Latest Content

  • - - - - + + + +
    diff --git a/company/overview.html b/company/overview.html index fb78b81..3e6e71f 100644 --- a/company/overview.html +++ b/company/overview.html @@ -2,17 +2,17 @@ - Riddle&Code Company Overview + Riddle&Code Company Overview - + - - + + - - + + @@ -30,10 +30,10 @@

    Company Overview
    - Explore Riddle&Code + Explore Riddle&Code

    - Gain comprehensive insights into the operations, offerings, and story of Riddle&Code. Discover our latest news, explore our media resources, learn about our team, and find opportunities to join us or get in touch. + Gain comprehensive insights into the operations, offerings, and story of Riddle&Code. Discover our latest news, explore our media resources, learn about our team, and find opportunities to join us or get in touch.

    @@ -45,7 +45,7 @@

    Company Resources

    -

    News & Insights

    +

    News & Insights

    Stay up-to-date with our latest research, announcements, and industry insights. Explore articles on tokenization, decentralized infrastructure, and sustainable technology solutions.

    @@ -61,7 +61,7 @@

    Blog

    About Us

    -

    Learn about our mission, vision, and the team behind Riddle&Code. Discover how we're building the infrastructure for the future.

    +

    Learn about our mission, vision, and the team behind Riddle&Code. Discover how we're building the infrastructure for the future.

    diff --git a/de/company/about-us.html b/de/company/about-us.html index 976b065..3b572e8 100644 --- a/de/company/about-us.html +++ b/de/company/about-us.html @@ -2,10 +2,10 @@ - Über Riddle&Code — Infrastruktur für verteilte Energie - - - + Über Riddle&Code — Infrastruktur für verteilte Energie + + + @@ -25,7 +25,7 @@

    Infrastruktur für
    verteilte Energie.

    - Riddle&Code baut KERN — die Plattform, mit der Energieversorger und Aggregatoren verteilte Energieanlagen verbinden, verwalten und monetarisieren. Wir besitzen den gesamten Stack: Hardware, Konnektivität, Plattform und Marktzugang. + Riddle&Code baut KERN — die Plattform, mit der Energieversorger und Aggregatoren verteilte Energieanlagen verbinden, verwalten und monetarisieren. Wir besitzen den gesamten Stack: Hardware, Konnektivität, Plattform und Marktzugang.

    diff --git a/de/company/career.html b/de/company/career.html index 4087713..e032213 100644 --- a/de/company/career.html +++ b/de/company/career.html @@ -2,9 +2,9 @@ - Karriere — Riddle&Code + Karriere — Riddle&Code - + @@ -24,14 +24,14 @@

    Werden Sie Teil des Teams
    Bauen Sie Infrastruktur für die Energiewende

    - Riddle&Code baut KERN — die Plattform, mit der Energieversorger und Aggregatoren verteilte Energieanlagen verbinden, steuern und monetarisieren. Wir arbeiten an schwierigen Problemen in der Energieinfrastruktur, Funkkonnektivität und autonomen Systemen. + Riddle&Code baut KERN — die Plattform, mit der Energieversorger und Aggregatoren verteilte Energieanlagen verbinden, steuern und monetarisieren. Wir arbeiten an schwierigen Problemen in der Energieinfrastruktur, Funkkonnektivität und autonomen Systemen.

    -

    Der Riddle&Code-Geist

    +

    Der Riddle&Code-Geist

    @@ -109,7 +109,7 @@

    Unsere Kernwerte

    -

    Warum Riddle&Code?

    +

    Warum Riddle&Code?

    diff --git a/de/company/get-in-touch.html b/de/company/get-in-touch.html index 552f0f3..9d8512f 100644 --- a/de/company/get-in-touch.html +++ b/de/company/get-in-touch.html @@ -2,9 +2,9 @@ - Kontakt — KERN by Riddle&Code + Kontakt — KERN by Riddle&Code - + diff --git a/de/company/media.html b/de/company/media.html index 873d8a3..8e8ec43 100644 --- a/de/company/media.html +++ b/de/company/media.html @@ -2,10 +2,10 @@ - Medien — Riddle&Code - - - + Medien — Riddle&Code + + + @@ -24,7 +24,7 @@

    Media Hub.
    Pressemappe & Markenressourcen

    - Willkommen im Media Hub von Riddle&Code. Hier finden Sie unsere Pressemappe, Markenlogos, Bildmaterial und Informationen zu unseren Medienaktivitäten. + Willkommen im Media Hub von Riddle&Code. Hier finden Sie unsere Pressemappe, Markenlogos, Bildmaterial und Informationen zu unseren Medienaktivitäten.

    @@ -37,7 +37,7 @@

    Wer wir sind

    diff --git a/de/company/news.html b/de/company/news.html index b980e32..7b3cf24 100644 --- a/de/company/news.html +++ b/de/company/news.html @@ -2,10 +2,10 @@ - Neuigkeiten — Riddle&Code - - - + Neuigkeiten — Riddle&Code + + + @@ -223,7 +223,7 @@

    - Neuigkeiten & Einblicke
    Von Riddle&Code + Neuigkeiten & Einblicke
    Von Riddle&Code

    Bleiben Sie über unsere neuesten Produktupdates, Marktforschung und Unternehmensnachrichten informiert. @@ -237,10 +237,10 @@

    Latest Content

    - - - - + + + +
    diff --git a/de/index.html b/de/index.html index 31e37f8..05f2250 100644 --- a/de/index.html +++ b/de/index.html @@ -2,12 +2,12 @@ - Riddle&Code — Autonome Energie. Hinter dem Zähler. + Riddle&Code — Autonome Energie. Hinter dem Zähler. - - - - + + + + @@ -380,7 +380,7 @@