Künstliche Intelligenz
Kommentar: Reguliert endlich den Smart-Begriff!
Das smarte Home bleibt eine herstellerverursachte Hölle. Nichts deutet darauf hin, dass Kompatibilität über Einzelszenarien hinaus besser wird. Was Frickler und Fachbetriebe freut, ist für Menschen, die Technik vor allem nutzen wollen, ein Graus. Zeit für klare Regeln, was sich „Smart“ nennen darf!
Smart Home, das intelligente Heim, das ist eine Vision, die inzwischen schon einige Jahrzehnte auf dem Buckel hat. Was anfing mit der Idee, nicht mehr im ganzen Haus selbst Rollläden steuern zu müssen, ist für viele Deutsche – und darunter sicher überproportional viele Leser von heise online – inzwischen zur modernen Alternative zur Modelleisenbahn geworden: Irgendwas lässt sich immer optimieren, und an neuen Modellen ist derzeit kein Mangel. Ergänzt wird das zudem von einer ganz anderen Entwicklung: dem Aufkommen von Solaranlagen, insbesondere kleineren solchen, bei denen jede eigenverbrauchte Wattstunde die Stromrechnung spürbar drückt. Wer würde da nicht versuchen, alles aufeinander abzustimmen?
Nur ein Bereich leistet bei den smarten Endgeräten bislang ganze Arbeit: die Marketingabteilungen. Elektrogeräten in jeder Form und Farbe, vom smarten Leuchtmittel über smarte Waschmaschinen bis zur Heizungs- und Stromsteuerung, Rollläden, Fernseher, Stecker, Uhren, Brillen, immer mehr Küchengeräte: Alles wird als smart gelabelt, sobald es einen Account in der Herstellercloud benötigt. Und das nicht mehr nur zur IFA in Berlin, wo die Branche traditionell ihre Neuerungen präsentiert. Und wo auch in diesem Jahr bis zur Fritteuse alles möglichst smart, vernetzt und intelligent sein soll. So schlau, dass der Mensch mit seinen beschränkten Fähigkeiten und daraus resultierenden Bequemlichkeitswünschen daneben schon sehr schlicht wirkt.
Über sieben Bridges solltst du gehen
In der Theorie wirkt dabei (Lichtstimmung: Party) alles schön: Balkonkraftwerk kaufen, anschließen, Strom ernten. Und damit das auch so richtig rund läuft und spart, lässt man bestimmte Geräte hinter smarten Steckdosen laufen. Und genau hier beginnt der harte Aufprall des Durchschnittsbürgers auf die technische Realität: Wolkige Versprechen, welche die meisten „smarten“ Geräte nicht im Ansatz halten (Lichtstimmung: Kalt). Das fängt mit einer banalen Grundfrage an: Wie soll zwischen den Geräten kommuniziert werden? Bluetooth-LE, DECT-ULE, ZigBee, WLAN, Matter oder etwas ganz anderes, proprietäres? Und wenn per WLAN, das Hausnetz, oder ein dafür eingerichtetes zweites Netz? Oder gar ein Insel-Access-Point, wie ihn etwa manche Wechselrichter dauerhaft aufspannen? Mit welcher Lösung soll dieser Zoo anschließend zentral gesteuert werden? App-basiert, per Cloudservice? Vom NAS aus? Welche Geräte sind überhaupt mit welcher Software über welchen Standard ansprechbar? Und wie lassen sich diese dann miteinander verknüpfen? Es ist das pure Chaos.
Lauter leere Versprechungen
Tatsächlich haben die Elektro- und Elektronikgerätehersteller vor allem eines geschafft: Die Lust an der Schlauerwerdung der eigenen vier Wände kräftig auszutreiben (Lichtstimmung: Grim, im Hintergrund beginnt die Waschmaschine zu rotieren). Denn wer sich wochenlang mit der Frage beschäftigen muss, welches Gerät überhaupt mit welchem sprechen kann, wenn die Herstellerangaben bei Geräten im besten Fall unvollständig, im schlechtesten Fall irreführend sind. Oder die mit Versprechungen werben, etwa der schon zur IFA 2023 angekündigten Unterstützung des Matter-Standards durch die Fritz-Produkte (Die Connect-Leuchte schaltet auf Dauerrot).
Zwei Jahre später kann immer noch nur ein Bruchteil der Geräte des Herstellers den gemeinsamen Standard, bei dem sich auch andere Anbieter weiterhin schwertun. Die einzige Frage, die sich bei so etwas dann wirklich stellt: Was soll das? (Der Rauchmelder versucht, aufgrund des Autoren-Schnaubens Qualm zu detektieren, die Dunstabzugshaube schaltet auf Höchstleistung).
Und so müssen sich die Nutzer weiterhin die Frage stellen: Über welche Bridge spricht welches Gerät mit welchem anderen? Wie kann ich die Glühbirne und den Wäschetrockner mit dem Stromspeicher und dem Bewegungssensor koordinieren lassen? Wie den Heizthermostat mit dem Fenstersensor? Was für den einen oder anderen heise-Leser, DIY-Freund, Kommandozeilenelektriker und selbstbewussten Maker primär eine sportliche Herausforderung sein mag, ist für die Nutzbarkeit durch breite Massen eine absolute Katastrophe.
Die EU sollte den „Smart“-Begriff scharf regulieren
Es ist daher höchste Zeit, dass Politik das tut, wofür sie nur selten geliebt wird: klare Regeln vorschreiben. Hier wäre das im Sinne aller Verbraucher. Denn so wie die EU nach Jahren mit den Vorgaben für USB-C-Anschlüsse das Steckerchaos und die Sonderwege zugunsten der Verbraucher beendet hat, ohne dass seitdem die Welt untergegangen ist, so wie die EU mit den Roamingvorschriften das Chaos für Reisende in Europa abgeschafft hat, wäre es jetzt an der Zeit, den Herstellern per Gesetz vorzuschreiben: Wenn ihr ein Gerät als Smart benennen wollt, dann müsst ihr dafür bestimmte Standards erfüllen.
Das kann auch ein Verweis auf technische Normen sein, welche die Branche selbst weiterentwickeln kann. Dann können Verbraucher sich darauf verlassen, dass „Smart“ nicht „Insellösung eines Herstellers der auf keinen Fall interoperabel sein will“ heißt. Und ganz nebenbei noch ein paar Vorgaben zum Thema Cloud-Unabhängigkeit mit auf den Weg geben. Wer Geräte als „Smart“ labeln will, sollte Mindeststandards bei Bedienbarkeit und Interoperabilität wahren müssen. Was spräche etwa gegen die Verpflichtung, die Konfiguration über eine lokal per Browser erreichbare Oberfläche verpflichtend zu machen? Und nicht nur über eine proprietäre App, die vielleicht noch einen Account beim Hersteller voraussetzt?
Der bisherige Wildwuchs, dass alles sich Smart nennt und in Wahrheit kaum etwas miteinander kompatibel ist, führt nur zu zwei Dingen: Frust und jeder Menge vermeidbarem Elektroschrott. Schluss damit! Dann hellt sich die Lichtstimmung in der Verbraucher-Smart-Welt auch wieder auf.
Falk Steiner ist Journalist in Berlin. Er ist als Autor für heise online, Tageszeitungen, Fachnewsletter sowie Magazine tätig und berichtet unter anderem über die Digitalpolitik im Bund und der EU.
(nen)
Künstliche Intelligenz
Analyse: Das wahre Wasserproblem Deutschlands und welche Maßnahmen nötig sind
Sauberes Trinkwasser sprudelt hierzulande wie selbstverständlich aus dem Hahn. Und das soll auch so bleiben. Es wäre falsch zu behaupten, dass Wasser flächendeckend knapp ist in Deutschland. Doch steigende Temperaturen, Dürren und extreme Wetterereignisse bedrohen unsere Talsperren und Grundwasserreserven auf vielfältige Weise.
Laut Deutschem Wetterdienst war es hierzulande seit 1931 noch nie so trocken wie 2025 von Anfang Februar bis Mitte April. Da stellt sich durchaus die Frage, ob das mit dem Trinkwasser auch weiterhin so reibungslos klappt.
- Wasser ist in Deutschland nicht knapp. Der Klimawandel und Stoffeinträge fordern aber eine Wasserwende.
- Beginnender Grundwasserstress und saisonale Extreme erfordern eine intelligentere Infrastruktur, z. B. Speicher und Schwammstadt-Konzepte.
- Wälder spielen eine Schlüsselrolle für die Wasserqualität, doch Waldsterben verschärft die Probleme; klimaresiliente Aufforstung ist ein zentraler Lösungsansatz.
- Chemische Belastungen von Gewässern, insbesondere durch Nitrat und langlebige Schadstoffe (PFAS), treiben die Kosten der Trinkwasseraufbereitung massiv in die Höhe.
- Politisches Handeln, wie das Verursacherprinzip und nachhaltige Managementstrategien, sind essenziell, um Wasserqualität und -verfügbarkeit zu sichern.
Der Artikel erklärt die direkten und indirekten Gefahren für unser Trinkwasser und zeigt auf, welche Lösungsansätze es gibt, um die Versorgung in Quantität und Qualität auch für zukünftige Generationen zu sichern.
Das war die Leseprobe unseres heise-Plus-Artikels „Analyse: Das wahre Wasserproblem Deutschlands und welche Maßnahmen nötig sind“.
Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.
Künstliche Intelligenz
c’t-Webinar: Gamified Hacking – Lernen durch Spielen
Ihre Aufgabe führt Sie direkt in eine digitale Gruft. Mit Kali Linux und einer Portion Neugier jagen Sie versteckte Flaggen und treten am Ende gegen den Necromancer an. Hinter der Spielkulisse steckt ein intensives Hacking-Rätsel in einem abgeschotteten Netzwerk.
Im Webinar „Die Necromancer-Challenge“ führt c’t-Redakteur Wilhelm Drehling durch diese besondere CTF-Challenge (Capture The Flag).
Praxisnahe Einblicke in Hacking-Werkzeuge
Drehling hackt sich im Webinar durch alle elf Level. Um zum Ziel zu gelangen, greift er auf unterschiedliche Hacking-Tools zurück: Er klopft Server mit nmap ab, knackt Passwörter mit Hydra und analysiert den Netzwerkverkehr mit Wireshark. Dabei verzichtet er bewusst auf Fachchinesisch und trockene CVE-Tabellen. Sie gewinnen ein Gefühl dafür, wie man eine solche CTF-Challenge systematisch angeht und erfahren, wie Sie ein eigenes sicheres Hacking-Netzwerk aufsetzen.
Während des Webinars sollten Sie sich zunächst auf das Geschehen am Bildschirm konzentrieren und erst später selbst aktiv werden. Als Teilnehmer erhalten Sie Zugriff auf die Aufzeichnung sowie die begleitenden c’t-Artikel, um das Gelernte im eigenen Tempo nachzuvollziehen.
Vom Zusehen zum Selbermachen
Das c’t-Webinar richtet sich an alle Menschen, die sich fürs Hacken interessieren, egal ob Anfänger oder mit Vorkenntnissen. Sie entwickeln ein Gespür für Angriffsmethoden und lernen, Schwachstellen zu identifizieren. Wilhelm Drehling gibt zudem wertvolle Tipps zu Lernplattformen, Kali-Alternativen und hilfreichen Tools. Allgemeine Verständnisfragen können Sie jederzeit im Chat stellen.
- Datum: 16. September 2025
- Uhrzeit: 15:00 bis 18:00 Uhr
- Preis: 69,00 Euro
Zur Teilnahme benötigen Sie lediglich einen aktuellen Browser. Alle weiteren Informationen sowie Details zur Anmeldung finden Sie auf der Webseite von heise academy.
(abr)
Künstliche Intelligenz
Contracts in C++26: Evaluations-Semantik | heise online
Nachdem ich in meinem letzten Artikel Contracts in C++26: Ein tiefer Einblick in die Verträge kurz die Details von Contracts vorgestellt habe, möchte ich mich nun näher mit der sehr interessanten Evaluations-Semantik befassen.
Rainer Grimm ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. Er schreibt gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne und häufig auf Fachkonferenzen. Auf seinem Blog Modernes C++ beschäftigt er sich intensiv mit seiner Leidenschaft C++.
Wenn eine Contracts Assertion auftritt, wird eine der vier Bewertungssemantiken angewendet: ignore
, observe
, enforce
und quick-enforce
. Die Tabelle gibt einen Überblick über die vier Semantiken:
(Bild: Rainer Grimm)
Leider ist es derzeit nicht möglich, diese Evaluations-Semantiken in vollem Umfang zu sehen.
Checking-Semantik und Terminating-Semantik
Während die Checking-Semantik die Vertrags-Assertion nur auswertet, beendet die Terminating-Semantik auch das Programm.
Eine standardkonforme Implementierung muss nicht jede der vier genannten Evaluations-Semantiken implementieren. Sie kann auch ihre eigene Semantik anbieten.
ignore
Wie der Name schon sagt, ignoriert die ignore
-Semantik die Auswertung des Prädikats. Dennoch muss das Prädikat syntaktisch korrekt sein.
observe
Die observe
-Semantik ist eine Checking-Semantik. Im Allgemeinen können drei Bedingungen zu einer Vertragsverletzung führen:
- Die Auswertung des Prädikats gibt
false
zurück. - Die Auswertung des Prädikats verursacht eine Exception.
- Die Auswertung des Prädikats erfolgt zur Compile-Zeit, aber das Prädikat ist kein konstanter Ausdruck.
Wenn zur Compile-Zeit eine Vertragsverletzung auftritt, wird eine Diagnose ausgegeben und die Kompilierung fortgesetzt.
Wenn eine Vertragsverletzung zur Laufzeit auftritt, wird der Vertragsverletzungs-Handler aufgerufen, der auf ein Objekt vom Datentyp const std::contracts::contract_violation
verweist, das Informationen über die Vertragsverletzung enthält. Wenn der Vertragsverletzungs-Handler normal zurückkehrt, wird die Programmausführung fortgesetzt.
enforce
Die enforce
-Semantik ruft den Vertragsverletzungs-Handler zur Laufzeit auf. Das Programm wird beendet, wenn der Contract-Violation-Handler normal zurückkehrt. Die enforce
-Semantik ist eine sogenannte terminierende Semantik. Das bedeutet, dass im Falle einer Vertragsverletzung die Programmausführung beendet wird. Danach kann eine der folgenden Aktionen erfolgen:
- Aufruf von
std::terminate
, - Aufruf von
std::abort
oder - sofortige Beendigung der Ausführung.
Zur Compile-Zeit wird die Kompilierung abgebrochen.
quick-enforce
Die quick-enforce
-Semantik ruft den Vertragsverletzungs-Handler zur Laufzeit nicht auf. Als terminierende Semantik beendet sie das Programm sofort. In diesem Fall wird beispielsweise __builtin_trap()
verwendet.
Zur Compile-Zeit wird die Kompilierung abgebrochen.
Vertragsverletzungs-Handler
Der Vertragsverletzungs-Handler hat folgende Signatur:
void handle_contract_violation( std::contracts::contract_violation );
Die Implementierung stellt den Standard-Vertragsverletzungs-Handler bereit. Sie kann jedoch auch zulassen, dass dieser Standard-Vertragsverletzungs-Handler durch einen benutzerdefinierten ersetzt wird.
In seiner ausgezeichneten Präsentation Contracts for C++ auf der ACCU 2025 stellt Timur Doumler einige spannende Beispiele für benutzerdefinierte Vertragsverletzungshandler vor:
// Protokollierung
void handle_contract_violation( std::contracts::contract_violation violation ) {
LOG(std::format("Contract violated at: {}\n", violation.location()));
}
// Setze einen Haltepunkt
void handle_contract_violation( std::contracts::contract_violation violation ) {
std::breakpoint();
}
// Warte, bis ein Debugger angeschlossen ist
void handle_contract_violation( std::contracts::contract_violation violation ) {
while (!std::is_debugger_present())
/* spin */
std::breakpoint();
}
// Stacktrace ausgeben
void handle_contract_violation( std::contracts::contract_violation violation ) {
std::cout << std::stacktrace::current(1);
}
// An den Standard-Handler für Vertragsverletzungen übergeben
void handle_contract_violation( std::contracts::contract_violation violation ) {
std::cout << std::stacktrace::current(1);
std::contracts::invoke_default_contract_violation_handler(violation);
}
Abschließend möchte ich die Schnittstelle des Objekts std::contracts::contract_violation
vorstellen, das der Vertragsverletzungs-Handler empfängt:
kind
gibt die Art der Vertragsverletzung zurück.semantic
gibt die Evaluations-Semantik zurück, wenn die Vertragsverletzung auftritt.is_terminating
gibt zurück, ob die Evaluations-Semantik beendet wird.detection_mode
gibt den Grund für die Vertragsverletzung zurück.evaluation_exception
gibt einen std::exception_ptrzur zur Ausnahme zurück, die bei der Prädikatbewertung ausgelöst wurde.comment
gibt eine erklärende Zeichenfolge zur Vertragsverletzung zurück.location
gibt einenstd::source_location
zurück, der den Ort der Vertragsverletzung angibt.
Weitere Informationen zum std::contracts::contract_violation
-Objekt finden sich auf der cppreference-Seite.
Wie geht es weiter?
In meinem nächsten Artikel werde ich mich auf die kleineren Features in C++26 konzentrieren. Ich beginne mit den kleinen Sicherheits-Features in der Kernsprache.
(rme)
-
Datenschutz & Sicherheitvor 3 Monaten
Geschichten aus dem DSC-Beirat: Einreisebeschränkungen und Zugriffsschranken
-
UX/UI & Webdesignvor 3 Wochen
Der ultimative Guide für eine unvergessliche Customer Experience
-
Apps & Mobile Entwicklungvor 3 Monaten
Metal Gear Solid Δ: Snake Eater: Ein Multiplayer-Modus für Fans von Versteckenspielen
-
UX/UI & Webdesignvor 1 Woche
Adobe Firefly Boards › PAGE online
-
Online Marketing & SEOvor 3 Monaten
TikTok trackt CO₂ von Ads – und Mitarbeitende intern mit Ratings
-
Social Mediavor 3 Wochen
Relatable, relevant, viral? Wer heute auf Social Media zum Vorbild wird – und warum das für Marken (k)eine gute Nachricht ist
-
Entwicklung & Codevor 3 Wochen
Posit stellt Positron vor: Neue IDE für Data Science mit Python und R
-
Entwicklung & Codevor 5 Tagen
EventSourcingDB 1.1 bietet flexiblere Konsistenzsteuerung und signierte Events