Neues Modul 98_Gemini.pm

Begonnen von ahlermi, 09 April 2026, 21:59:41

Vorheriges Thema - Nächstes Thema

ahlermi

FHEM-Gemini

FHEM-Modul zur Anbindung der Google Gemini AI API. Ermöglicht Textanfragen, Bildanalyse, Smart-Home-Gerätesteuerung per Sprachbefehl (Function Calling) und mehr – direkt aus FHEM heraus.

Inhaltsverzeichnis
  • Features
  • Voraussetzungen
  • Installation
  • Einrichtung
  • Verwendung
  • Attribute
  • Readings
  • Praxisbeispiele



Features
  • 💬 Textfragen – beliebige Fragen an Gemini stellen
  • 🖼� Bildanalyse – Kamerabilder oder Snapshots direkt analysieren lassen
  • 🏠 Gerätesteuerung – Smart-Home-Geräte per natürlicher Sprache steuern
  • 📋 Geräte-Status – Zusammenfassung aller oder ausgewählter Geräte
  • 🔄 Multi-Turn Chat – Kontext über mehrere Anfragen hinweg erhalten

Installation

Einmalig hinzufügen:
update all https://raw.githubusercontent.com/ahlers2mi/FHEM-Gemini/main/controls_Gemini.txt
shutdown restart
Für automatische Updates (zusammen mit update all)
update add https://raw.githubusercontent.com/ahlers2mi/FHEM-Gemini/main/controls_Gemini.txt


Anwendungsbeispiele

Bild-Analyse (z.B. Füllstand):
set GeminiAI askWithImage /opt/fhem/IBC1.jpeg wie ist der ungefähre füllstand des IBC Containers in Prozent, bitte nur in einer zahl antworten damit es auswertbar ist, wenn du es nicht erkennen kannst, dann mit ERROR
Status-Abfragen:

Steuerung:

Allgemeines:
set GeminiAI ask Wie wird das Wetter morgen? Ich wohne in Coesfeld, Kurzfassung


Wichtige Attribute






AttributBeschreibungStandard
apiKeyGoogle Gemini API Key (Pflicht)
modelGemini-Modellgemini-3.1-flash-lite-preview
controlListWhitelist der steuerbaren Geräte



Versionshistorie

Zitat
  • 3.2.0 (13.04.2026): Neuer Befehl chat (ideal für Telegram).
  • 3.0.0 (13.04.2026): Einführung der readingBlacklist für besseren Datenschutz.

Lizenz: GNU General Public License v2 (FHEM-Lizenz)
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

Dr. Boris Neubert

WTF?  :o

OpenClaw für FHEM.

Das musste kommen  8)

Jetzt noch hiermit verknüpfen: https://forum.fhem.de/index.php?topic=144147
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

ahlermi

Habe Telegram laufen, Alexa Integration mit Custom Skill in den ich alles Sprechen kann, mir fehlt das nicht.  :)
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

schwatter

Nabend,

kurz eingerichtet und eine Frage gestellt. Klappt super. Würdest du bitte direkt im Modul den Response filtern.
Es handelt sich wohl um Markdown.
Beispiel:
21 x 5 ist **105**.
Gruß schwatter

schwatter

Moin,

mit einigen Vorgaben in systemPrompt wird es besser.


Immer kurze Antworten. Datum und Uhrzeit aus dem Internet holen. Aktuelle Fragen im Internet suchen, nicht in deinen Trainingsdaten. Lösche bitte alle Sonderzeichen. Nur Sätze ohne Formatierung.

Vorher war zu viel Kram drinne und das Model hat immer die interne Uhrzei und Datum
von 2024 verwendet.

Gruß schwatter

ahlermi

Zitat von: schwatter am 10 April 2026, 20:17:48Nabend,

kurz eingerichtet und eine Frage gestellt. Klappt super. Würdest du bitte direkt im Modul den Response filtern.
Es handelt sich wohl um Markdown.
Beispiel:
21 x 5 ist **105**.
Gruß schwatter

Es gibt jetzt 2 weitere Readings, Plain und HTML
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

schwatter

Moin,

vielen Dank für die Änderung! Wahrscheinlich hätten wir sie doch nicht gebraucht, aber schaden
kann es auch nicht. Wie ich oben geschrieben habe, hat der systemPrompt geholfen. Darüber hatte
ich vorher nicht richtig nachgedacht.

Direkt in Fhem habe ich jetzt auch lauffähig.
https://forum.fhem.de/index.php?msg=1361781

Noch eine Frage. Heute Morgen hatte ich kein Zugriff. Ich glaube es gab http error 403. Nach dem Update war es wieder
ok. Was hatte Google da geändert?

Gruß schwatter

ahlermi

Sorry, mir ist nichts bekannt zu Google Fehlern, bei mir läufts.
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

schwatter

Wohl einfach Überlastung. Jetzt gerade kam erst 403 timeout. Danach 503 Überlastung.
So ist das halt, wenn man nicht bezahlt  ;D

Gruß schwatter

ahlermi

Es gibt jetzt noch mal ein großes Update.

FHEM-Gemini

  • Es kann jetzt über den Befehl chat alles gesteuert werden, Abfragen zu Geräten, schalten von Geräten und auch Dinge aus dem Internet recherchieren.
    set Gemini chat xxxxxxx
  • Es können jetzt mehrere Geräte auf einmal geschaltet werden.
  • Über den Kommentar am Gerät kann man Gemini dazu bewegen ein Gerät anders zu steuern.
    bsp:
    attr Denon comment für das einschalten des Denon im Wohnzimmer zoneMain setzen
    Damit ist dann fast alles möglich.
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

schwatter

#10
Kannst du bitte folgende Readings generieren
prompt_token_count
candidates_token_count
total_token_count

Danke.

Edit:
Ich bekomme  gerade wieder error, mein Model ist nicht in V1: gemini-3.1-flash-lite-preview. Schaue ich per curl https://generativelanguage.googleapis.com/v1/models -H "x-goog-api-key: YOUR_API_KEY"
schaut das so aus.

{ "models": [ { "name": "models/gemini-2.5-flash", "version": "001", "displayName": "Gemini 2.5 Flash", "description": "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.", "inputTokenLimit": 1048576, "outputTokenLimit": 65536, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 64, "maxTemperature": 2, "thinking": true }, { "name": "models/gemini-2.5-pro", "version": "2.5", "displayName": "Gemini 2.5 Pro", "description": "Stable release (June 17th, 2025) of Gemini 2.5 Pro", "inputTokenLimit": 1048576, "outputTokenLimit": 65536, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 64, "maxTemperature": 2, "thinking": true }, { "name": "models/gemini-2.0-flash", "version": "2.0", "displayName": "Gemini 2.0 Flash", "description": "Gemini 2.0 Flash", "inputTokenLimit": 1048576, "outputTokenLimit": 8192, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 40, "maxTemperature": 2 }, { "name": "models/gemini-2.0-flash-001", "version": "2.0", "displayName": "Gemini 2.0 Flash 001", "description": "Stable version of Gemini 2.0 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in January of 2025.", "inputTokenLimit": 1048576, "outputTokenLimit": 8192, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 40, "maxTemperature": 2 }, { "name": "models/gemini-2.0-flash-lite-001", "version": "2.0", "displayName": "Gemini 2.0 Flash-Lite 001", "description": "Stable version of Gemini 2.0 Flash-Lite", "inputTokenLimit": 1048576, "outputTokenLimit": 8192, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 40, "maxTemperature": 2 }, { "name": "models/gemini-2.0-flash-lite", "version": "2.0", "displayName": "Gemini 2.0 Flash-Lite", "description": "Gemini 2.0 Flash-Lite", "inputTokenLimit": 1048576, "outputTokenLimit": 8192, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 40, "maxTemperature": 2 }, { "name": "models/gemini-2.5-flash-lite", "version": "001", "displayName": "Gemini 2.5 Flash-Lite", "description": "Stable version of Gemini 2.5 Flash-Lite, released in July of 2025", "inputTokenLimit": 1048576, "outputTokenLimit": 65536, "supportedGenerationMethods": [ "generateContent", "countTokens", "createCachedContent", "batchGenerateContent" ], "temperature": 1, "topP": 0.95, "topK": 64, "maxTemperature": 2, "thinking": true } ] }

Daher habe ich jetzt als Model gemini-2.5-flash-lite gewählt und es funktioniert wieder. Wechseln die ab und zu die Modelle in der API?
Abends klappt das eigentlich immer mit gemini-3.1-flash-lite-preview. Sehr merkwürdig...

Gruß schwatter

ahlermi

Ich habe heute den ganzen Tag Rum gespielt mit gemini-3.1-flash-lite-preview und keine Probleme, sehr komisch.

Guck Mal meinen letzten Telegramm Screenshot im Haupt Post.
Dell Optiplex FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisClient, HUE, MQTT, Harmony, Tasmota, JKBMS, EASUN, Roborock S8, Tesla
Modul 98_Gemini.pm

schwatter

Ok,

ich beobachte das, vielleicht einen Fallback einbauen?

Gruß schwatter