Script-Time: Nachricht bei Paket vor dem Haus

Durch die Integration von KI und Hausautomation kann ich nun erkennen, ob eine Person vor dem Haus ein Paket oder einen Brief in der Hand hält. Dies ermöglicht eine präzisere Überwachung und erleichtert zukünftige Erweiterungen.

Script-Time: Nachricht bei Paket vor dem Haus
Photo by Mohammad Rahmani / Unsplash

Wenn ein Postbote mit einem Paket vor dem Haus steht, wäre es gut das zu erfahren. Ich hatte schon einen Server bestellt, der dann mehrere Tage am "Ablageort" vor der Tür gelegen hat...

Aber auch hier kann ich nachhelfen. Soll doch meine KI die Situation bewerten 🧐.

Welche Daten stehen zur Verfügung?

Mein Grundstück wird ja auf verschiedene Arten überwacht. Zum Einen über die Probe-Requests der Smartphones in der Umgebung, aber auch mit frigate.

KI: Kleine Fortschritte auf meinem Weg...
Frigate: Intelligente Objekterkennung für private Haussicherheit und Automatisierung mit ioBroker Nachdem ich nun von Hand meine KI trainiert habe und die Trainingsdaten auf Videostreams angewendet habe, habe ich jetzt auch fertige Tools gefunden, die sich leicht in die Automation einbinden lassen.…
KI auf dem Vormarsch: Multi-Objekt-Erkennung
Auf meiner Reise in die Welt der KI bin ich nun auf YOLO (You Only Look Once) gestoßen. Das ist für meine Projekte sehr nützlich, denn die Aufgabenstellung war: Benachrichtige die Hausautomation sofort, sobald ungewöhnliche Aktivitäten auf dem Grundstück passieren. Folgendes ist dabei herausgekomme…

Wenn meine Hausautomation von frigate die Information bekommt, dass eine Person vor dem Haus ist, hat diese dann ein Paket/Brief in der Hand?

Mal sehen, was die KI dazu sagt:

Auf dem Bild hält offenbar jemand ein Paket in der Hand. Es sieht so aus, als hätte die Person eine Lieferung erhalten, erkennbar an der Art des Behälters und daran, dass sie ihn öffnet oder überprüft. Der Inhalt des Pakets lässt sich jedoch ohne zusätzliche Informationen nicht feststellen.

Wie habe ich das gemacht?

curl http://ai-server:11434/api/generate -d '{
  "model": "llava",
  "prompt":"Kommt hier gerade eine Lieferung mit der Post?",
  "stream": false,
  "images": ["FlVDLUMsaQTaQ9j3g2+k+hvvhrKs71AvTzRtoG927unmSR5YeNXTRRxJUPUxRma9QsEm+nSRttvz
5eWBkeU5bmEVSskPYOS8fvCMImcg8jbn06YpcIJ8oH19fR1ddPUU9LHBGx5Riwbxa3nj0M0LKwjC
gHcjCH4RrI43bJq5K1FJ10lSNE8e3K/JvEHa+GqWgqiv7wCFg2gh0KnVa5G/h16YJUuBLuwnTV81
E8NVR3E1LIJI2U8rdPTyxYeOK2WuyvLa9C0pr6yWeFVINo9Kiw+exHjiqe6SQswVrydNwMWHL458
9zrLaGQRR0UNOrCOJezHZsFdmNtr7gfLFZIqS5HQdIy7Pq3s5xJur/CysLEfLEvJc6mrqaWm70s8
f7yIKLlvEfr8sfR/EfB+Q8UZasceXUplhQmmuNwbfA3hf8yMYjWJl+UvF+y6VKSYsRIg5krtv6YW
k1wwdzbBclFmdcO7F2S6d5JDpVb8r+HjgPJV1NBMaLMI9E4NlAIINzsQRi75ZmbRQR5fTgkTVPag
...
"]
}'

Aber diese Anwort ist zu unvorhersehbar. Soetwas, wie true/false wäre gut.

Damit das von iobroker leichter auszuwerten ist, habe ich also die Anfrage leicht abgeändert:

curl http://ai-server:11434/api/generate -d '{
  "model": "llava",
  "prompt":"Hält auf diesem Bild jemand ein Paket oder einen Brief in der Hand? Anworte nur mit 'Ja' oder 'Nein'.",
  "stream": false,
  "images": ["FlVDLUMsaQTaQ9j3g2+k+hvvhrKs71AvTzRtoG927unmSR5YeNXTRRxJUPUxRma9QsEm+nSRttvz
5eWBkeU5bmEVSskPYOS8fvCMImcg8jbn06YpcIJ8oH19fR1ddPUU9LHBGx5Riwbxa3nj0M0LKwjC
gHcjCH4RrI43bJq5K1FJ10lSNE8e3K/JvEHa+GqWgqiv7wCFg2gh0KnVa5G/h16YJUuBLuwnTV81
E8NVR3E1LIJI2U8rdPTyxYeOK2WuyvLa9C0pr6yWeFVINo9Kiw+exHjiqe6SQswVrydNwMWHL458
9zrLaGQRR0UNOrCOJezHZsFdmNtr7gfLFZIqS5HQdIy7Pq3s5xJur/CysLEfLEvJc6mrqaWm70s8
f7yIKLlvEfr8sfR/EfB+Q8UZasceXUplhQmmuNwbfA3hf8yMYjWJl+UvF+y6VKSYsRIg5krtv6YW
k1wwdzbBclFmdcO7F2S6d5JDpVb8r+HjgPJV1NBMaLMI9E4NlAIINzsQRi75ZmbRQR5fTgkTVPag
...
"]
}'

Ja

Und schon kann das in der Automation berücksichtigt werden:

Ab jetzt hängt an einer erkannten Person ein label, ob sie ein Paket/Brief in der Hand hält. Daher muss ich künftig nurnoch Post von Pizza unterscheiden... 🍕😳

Fazit

Es ist schön, wenn man ein System von Anfang an strukturiert aufgebaut hat. Das macht es einem später leichter, neue Funktionen einzubauen.

Ich nutze KI inzwischen auch in der Hausautomation an anderen Stellen. Dies hier ist nur ein einfaches Beispiel, das einem Lust machen kann, etwas vergleichbares in seinen eigenen Abläufen zu verbessern...