MQTT und HTTPS
Schon die Veroboard-Cartridge zeigt eine neue Richtung von Oxon auf, nämlich die Oxon-Karten nicht nur als Lerncomputer, sondern auch für tatsächliche Anwendungen einzusetzen. Das kann auch bis zur Cloud gehen – also mit Hilfe von ESP32-Mikrocontrollern Sensoren abzufragen, die Werte zu einer Cloud senden, und dort zu speichern, sie mit den Daten anderer Sensoren zu verknüpfen und abhängig von den Ergebnissen Aktuatoren wie Rolladenmotoren, Heizungsventile, Licht und vieles mehr zu steuern.
Mit MQTT kann man zum Beispiel Home Assistant, eine Open-Source-Plattform für Heimautomatisierung, verwenden, um abhängig von Sensorwerten Automatisierungen im Smart Home durchzuführen.
Wenn sich aber Home Assistant, die Cloud oder einfach eine Datenbank nicht im eigenen Haus befinden, stellt das ein potenzielles Sicherheitsproblem dar. Denn theoretisch können die Daten abgefangen und von nicht autorisierten Personen gelesen werden.
Die Oxocard Connect unterstützt aber seit kurzem auch HTTPS und kann darum eine verschlüsselte Verbindung aufbauen. Damit ist es zum Beispiel möglich, ChatGPT direkt in eine IoT-Anwendung zu integrieren – ohne Umweg über einen Server. Was man damit machen könnte, habe ich mir einmal direkt von ChatGPT sagen lassen:
1. Intelligentes Überwachungssystem: Ein ESP32, der mit verschiedenen Sensoren verbunden ist, könnte ein Überwachungssystem für zu Hause oder für Gewächshäuser darstellen. Wenn bestimmte Werte über- oder unterschritten werden, könnte der ESP32 eine Anfrage an GPT-4 senden, um zu ermitteln, welche Pflanzenkrankheiten wahrscheinlich vorliegen oder welche Umweltbedingungen optimiert werden sollten.
2. Präventives Instandhaltungssystem: In einem präventiven Wartungsszenario könnte der ESP32 Daten von Maschinen sammeln und, wenn Anomalien festgestellt werden, GPT-4 konsultieren, um mögliche Ursachen und Lösungen zu analysieren, bevor ein Fachmann vor Ort gerufen wird.
3. Interaktive Kunstinstallationen: Der ESP32 könnte Teil einer Kunstinstallation sein, die auf Umweltreize wie Bewegung, Licht oder Geräusche reagiert. GPT-4 könnte dabei helfen, poetische oder philosophische Texte zu generieren, die dann in der Installation dargestellt werden.
4. Sprachgesteuerte Assistenz für Werkstätten: In einer Werkstatt könnte ein ESP32 eine Schnittstelle zu GPT-4 bieten, um Anfragen zu Werkzeugen, Materialien oder Arbeitsabläufen zu stellen. Die Antworten könnten in einfachen, kurzen Anweisungen bestehen, die direkt am Arbeitsplatz bereitgestellt werden.
5. Erweiterte Fehlerdiagnose: Ein ESP32 in einem Gerät könnte Fehlercodes auslesen und an GPT-4 senden, das daraufhin eine verständlichere Erklärung und Vorschläge zur Fehlerbehebung liefert. (Anmerkung des Autors: Das wäre doch etwas für OBD2-Fehlercodes bei Fahrzeugen?)
6. Umweltgesteuerte Musikschöpfung: Der ESP32 könnte Umweltdaten erfassen und diese in musikalische Kompositionen umwandeln, wobei GPT-4 als Inspirationsquelle für die Wahl von Instrumenten, Harmonien und Rhythmen dient.
7. Smartes Recycling-Hilfsmittel: Ein mit einem Kameramodul ausgestatteter ESP32 könnte Bilder von Müll erfassen und GPT-4 zur Identifizierung und Klassifizierung nutzen, um Anweisungen für das richtige Recycling zu geben.
8. Verhaltensmodifikation für Gewohnheiten: Der ESP32 könnte genutzt werden, um die Einhaltung guter Gewohnheiten wie Händewaschen oder Trinkwasserzufuhr zu überwachen und Feedback oder Ermutigung durch GPT-4 zu erhalten, um Verhaltensänderungen zu fördern.
Bei meinen Versuchen bin ich aber mehrmals an der Beschränkung auf 119 Zeichen für Strings von NanoPy hängengeblieben, da die für derartige Versuche notwendige Funktion readRequestJSON offenbar nur 119 Zeichen zurückliefert, obwohl sich in NanoPy Strings mit byte[size] auch größer erstellen lassen.
Eine Nachfrage bei den Entwicklern führte zur Empfehlung von blockweisem Einlesen, was aber zu diesem Zeitpunkt in der NanoPy-Entwicklungsumgebung noch nicht dokumentiert war. Für viele Problemstellungen ist es aber gar nicht notwendig, einen langen Text zurückzubekommen.
In einem Python-Experiment ließ ich ChatGPT meine E-Mails auf Spam prüfen und gab an, dass ich als Antwort nur ein "[Ja]" oder ein "[Nein]" wollte. Für ähnliche Aufgaben reicht dann auch die Begrenzung auf 119 Zeichen.
Hier entsteht aber möglicherweise ein anderes und für klassische Programmierer ungewohntes Problem: ChatGPT garantiert keine solchen Antworten. Meistens macht es, was man sich von ihm wünscht, aber gelegentlich auch nicht. Dann kommt vielleicht ein Ja ohne eckige Klammern oder noch ein längerer Text dazu. Das wird in Zukunft dazu führen, dass Entwickler die Antworten in irgendeiner Weise prüfen müssen, bevor sie sie verwenden können.