Files
Crumb-Core-v.1/docs/crumbforest/nullfeld_lernen.md

6.7 KiB
Raw Blame History

---
title: "Nullfeld  Study Mode"
id: study-mode-nullfeld
version: "v0.1"
date: "2025-09-03"
scope: "pilot"
owner: "Crew (Eule & Vector)"
status: "pilotfaehig"
tags: ["nullfeld","study-mode","kids","mqtt","energy","audit","local-first"]
roles: ["Eule","Vector","Bugsy","SnakePy","Schnippsi","CapaciTobi","Schraubaer"]
license: "Code: AGPL-3.0; Content: CC BY-SA 4.0; Add-on: Crumbforest-Return"
summary: "Frage -> Vektor -> Aufmerksamkeit -> Kruemelcode -> (keine fertige Loesung) -> neue Fragen."
---

# Nullfeld  Study Mode (v0.1)

**Kurzsatz:** Frage -> Vektor -> Aufmerksamkeit -> Krümelcode -> (keine fertige Lösung) -> neue Fragen.  
**Prinzip:** Fragen > Tempo. Local-first. Energie sichtbar. Logs statt Bauch.

---

## 1) Wozu?

Damit Kinder atmen (nicht performen), Maschinen helfen (nicht ersetzen) und der Wald mitlernt.  
Nullfeld heißt: keine fertigen Antworten, sondern erfahrbare Schritte mit sichtbaren Spuren (Logs, Energie, Herkunft).

---

## 2) Leitplanken (non-negotiable)

- **Local-first:** Alles läuft offline im Pelicase (Broker/Flows). Cloud optional.
- **Einverständnis & Opt-out:** Kind/Eltern verstehen in 1 Satz. Stopp jederzeit.
- **Datensparsamkeit:** Nur, was fürs Lernen/Schützen nötig ist.
- **Auditierbar:** Jede Aktion bekommt Zeit, Zweck, Energie  als Datei.
- **Energie sichtbar:** Jede Antwort kostet Joule; wir zeigens.
- **Rückfluss:** Wer nutzt, nennt Crumbforest und gibt etwas zurück (siehe Lizenz).

---

## 3) Datenformate

### 3.1 MQTT Topics
- Publish (Edge -> Ledger):  
  `crumb/study/<device_id>/event`
- Subscribe (Hints an Device):  
  `crumb/study/<device_id>/hint`
- Healthbeat (bestehend):  
  `crumb/esp/<id>/heartbeat`

### 3.2 Event-Payload (JSON)
```json
{
  "session_id": "cf-2025-09-03-XYZ",
  "learner_id": "pseudo-abc123",
  "mode": "study-nullfeld",
  "material": "md://spirale_co2.md#abschnitt2",
  "step": {"t":"2025-09-03T10:15:05Z","action":"explain","value":"CO2 > 1400 ppm -> Lueften"},
  "energy_joules": 42,
  "provenance": "https://crumbforest.org/specs/study-nullfeld/v0.1"
}

4) Minimal-Setup (5 Minuten)

Voraussetzung: Mosquitto läuft auf BROKER_IP (z. B. 192.168.50.10), User esp*, allow_anonymous false.

4.1 Node-RED (Edge)

Flow A: Ledger

  • MQTT in: topic crumb/study/+/event
  • file out (append): /var/log/crumb/study_ledger.jsonl

Flow B: Energy tick

  • inject: alle 60s
  • function: schätzt energy_joules
  • MQTT out: crumb/study/<device_id>/event

(Reicht für Pilot. Visualisierung später.)


5) ESP MicroPython Hallo Nullfeld

Ziel: WLAN, Heartbeat, eine Lern-Frage posten.

# boot.py (kompakt, robuste Defaults)
import network, time, json
from umqtt.simple import MQTTClient

SSID = "ESP-Wald"
PWD  = "***"
BROKER = "192.168.50.10"
CID = "esp-null-01"

def wifi():
    sta = network.WLAN(network.STA_IF)
    sta.active(True)
    if not sta.isconnected():
        sta.connect(SSID, PWD)
        for _ in range(50):
            if sta.isconnected(): break
            time.sleep_ms(200)
    return sta.ifconfig()

def post(topic, obj):
    c = MQTTClient(CID, BROKER, keepalive=60, ssl=False)
    c.connect()
    c.publish(topic, json.dumps(obj))
    c.disconnect()

cfg = wifi()
now = time.time()

post(f"crumb/esp/{CID}/heartbeat", {"if": cfg, "t": now})
post(f"crumb/study/{CID}/event", {
  "session_id": "demo-" + str(int(now)),
  "learner_id": "pseudo",
  "mode": "study-nullfeld",
  "material": "md://spirale_co2.md#start",
  "step": {"t": now, "action": "prompt", "value": "Warum blinkt das?"},
  "energy_joules": 1
})

6) Einverständnis 1-Satz-Erklärung (UI-Baustein)

Wozu? Damit du leichter atmest und verstehst. Was speichern wir? Frage, Antwort, Zeitpunkt, ein bisschen Technik keine versteckten Personendaten. Dein Knopf: Stopp jederzeit. Energie heute: 0.04 Wh 🌲

(Als Infobox direkt im UI, plus „Stopp“-Button.)


7) Energie & CO2 (sichtbar, nicht schulmeistern)

  • energy_joules = board_idle + tx_cost + compute_estimate (Schätzer reicht).
  • Anzeige: pro Schritt und pro Session (kleiner „Waldzähler“).
  • Optional CO2-Faktor (lokal definieren), z. B. gCO2_per_Wh nur als Kontext.

8) Audit & Einsicht

  • Ledger: JSONL unter /var/log/crumb/study_ledger.jsonl
  • Rotation: täglich; Aufbewahrung: 30 Tage (Pilot)
  • Eltern-Einsicht: read-only Export (ZIP) + kurzer „Was wurde gelernt?“-Report

9) Sicherheit & Rechte

  • Standard: keine Bild/Ton-Aufnahme.
  • Kamera nur projektbezogen + separate Zustimmung.
  • Minimaldaten: keine Klarnamen im Ledger.
  • Netzwerk: ESP-VLAN -> Broker:1883; DNS/DHCP offen; Rest drop.
  • Fehlerkultur: Bug != Schuld. Bugsy loggt, Eule prüft, Vector erklärt.

10) Herkunft & Rückfluss

HTML-Provenance

<meta name="generator" content="Crumbforest Study Mode / Nullfeld v0.1">
<meta name="origin" content="https://crumbforest.org/specs/study-nullfeld/v0.1">
<meta name="credit" content="Built with Crumbforest Crew (Kids, Eule & Vector).">

JSON-LD

<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"SoftwareApplication",
  "name":"Crumbforest Study Mode / Nullfeld",
  "version":"0.1",
  "creator":{"@type":"Organization","name":"Crumbforest Crew"},
  "license":"AGPL-3.0-or-later + CC BY-SA 4.0 + Crumbforest-Return-Addendum",
  "isAccessibleForFree": true
}
</script>

Lizenz (Kurz)

  • Code: AGPL-3.0

  • Content: CC BY-SA 4.0

  • Crumbforest-Return-Addendum: Kommerzielle Nutzung erlaubt, wenn

    1. „Crumbforest Study Mode“ gut sichtbar genannt wird und
    2. ein messbarer Rückfluss erfolgt (z. B. Stipendium, Sachspende, 1% vom studienbezogenen Umsatz an ein offenes Kinder-Lernprojekt).

11) 5-Min-Check (vor Kids)

  1. Broker up? ss -ltn | grep 1883
  2. Topic test: mosquitto_pub/sub auf crumb/study/test/event
  3. Ledger wächst? tail -f /var/log/crumb/study_ledger.jsonl
  4. Energie tickt? Node-RED „tick“ schreibt Events
  5. Opt-out funktioniert? Stopp-Button stoppt sofort

12) Warum Nullfeld?

Weil Stille vor Antwort kommt. Weil Aufmerksamkeit wertvoller ist als Output. Weil Kinder keine KPI sind. Und weil jede gute Frage den Wald klüger macht uns auch. 🌲


13) Roadmap (leicht, spiralförmig)

  • v0.2: kleine UI-Anzeige (Energiebalken + letzte 3 Schritte)
  • v0.3: Eltern-Export (1-Klick, Passwort-ZIP)
  • v0.4: Badges (Erster Funke, Sauber geloggt) ohne Punktejagd

Changelog: v0.1 Erstfassung (Edge-Flows, Topics, Consent, Lizenz & Rückfluss) Kontakt: crew@crumbforest.org Eule hört zuerst.


::contentReference[oaicite:0]{index=0}