Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine Sammlung, die sich von allein fuellt. Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert — ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten, gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte, Stufen und 15 Abzeichen. Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto, keine Telemetrie; die Bilder verlassen das eigene Netz nicht. Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und braucht deshalb weder eine erreichbare Adresse noch einen offenen Port — er laeuft hinter einem gewoehnlichen Router. Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs. AGPL-3.0.
26 lines
611 B
Python
26 lines
611 B
Python
"""Gemeinsame Struktur der Steckbriefe.
|
|
|
|
Deutsch und Englisch stehen in einem Datensatz, weil sie zusammen geschrieben
|
|
werden — nicht übersetzt. Eine wörtliche Übertragung liest sich in beiden
|
|
Richtungen schlecht: „Streuobstwiese" hat kein Gegenstück, und „Stormcock"
|
|
ist im Deutschen kein Begriff.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Zusatz:
|
|
kategorie: str
|
|
nahrung: str
|
|
lebensraum: str
|
|
stimme: str
|
|
text: str
|
|
kategorie_en: str
|
|
nahrung_en: str
|
|
lebensraum_en: str
|
|
stimme_en: str
|
|
text_en: str
|