Hauptmenü

FHEM goes Gemini

Begonnen von tgv_boost, 09 Januar 2026, 11:07:35

Vorheriges Thema - Nächstes Thema

ch.eick

#30
Hallo nochmal,

für die, die sich wundern, dass hier jetzt noch Babble oder andes auftaucht.
Damit man etwas besser mit den Resourcen umgeht, denn die KI im RZ schluckt Unmengen an Energie, habe ich mich für ein mehrstufiges Konzept entschieden.
Die einfachen Anfragen sollen direkt lokal erledigt werden und nur wenn es zu komplex wird könnte man die KI noch hinzuziehen. Hier ist noch der Post von pah dazu.

Mein Ansatz sieht momentan so aus:

- Sprach oder Text Eingabe erfolgt über Signal mit den Handys
- signal-mqtt läuft im Docker Container
- Ein signal-receiver defindet sich im FHEM als MQTT2-Device
- Als ersten Test habe ich da bereits mit Perl Mapping einige direkte FHEM Kommandos umgesetz
- Wird dort nichts gefunden soll es zu Babble weiter gehen
- Mit RiveScript habe ich mich noch nicht befasst, was jedoch auch lokal laufen würde
- Erst ganz zum Schluss kann dann Gemini folgen

Ein Vorteil wäre auch, dass man nicht zuviele Gemini Aufrufe generieren würde, da die meisten Kommandos direkt vorher abgefangen werden.
Zusätzlich ist man so auch noch etwas unabhängiger vom Internet und dessen Dienste.

Der Status ist, wie pah schon so schön geschrieben hat: "Wär schön, das ist aber vorderste Front der Forschung."

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Prof. Dr. Peter Henning

Gemach, ich muss das erstmal nachstellen, bin gerade am Hacken der BOSE-Boxen.

Demnächst mehr hier in diesem Post.

LG


pah

ch.eick

Zitat von: Prof. Dr. Peter Henning am 15 Januar 2026, 14:22:51Gemach, ich muss das erstmal nachstellen, bin gerade am Hacken der BOSE-Boxen.
Ich dachte Du hättest schon einen Fundus von Definitionen in Deinem Babble :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Prof. Dr. Peter Henning

Hab ich auch, war aber gerade mit dem BOSE-Zeug sehr beschäftigt.

ZitatMuss man immer Gerät, Ort, Verb, Ziel angeben, auch wenn weniger Angaben eindeutig wären?
Ich habe z.B. nur eine Zirkulationspumpe, die wir für Heißes Wasser in der Küche zum Spülen verwenden.

Es funktioniert: Zirkulation in der Küche anschalten
Eindeutig wäre : Zirkulation an

Muss man an und ein separat als Ziel definieren, oder geht das auch einfacher?

Erste Frage: Nein, das geht einfacher. Ich habe z.B. auch genau eine Zirkulationspumpe. Die bekommt den Babble-Namen "Zirkulation" und taucht dann automatisch in der Babble-Liste auf. Bei mir etwas komplizierter, das FHEM-Device heißt hier Voice.Zirkulation, weil das von dort noch auf einen anderen FHEM-Server weitergeleitet wird. Siehe Screenshot

Zweite Frage: Nein, "an" und "ein" sind synonym.

LG

pah

ch.eick

#34
Du darfst diesen Dateianhang nicht ansehen.

Input: Zirkulation in der Küche anschalten
Ergebnis: Category=3.4.7: Gerät=zirkulation Ort=küche Verb=schalten Ziel=an / ==> set Zirkulation on

Input: Zirkulation Küche einschalten
Ergebnis: Category=3.4.7: Gerät=zirkulation Ort=küche Verb=schalten Ziel=an / ==> set Zirkulation on

Input: Zirkulation anschalten
Ergebnis: undefined

Input: Zirkulation an
Ergebnis: undefined
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Prof. Dr. Peter Henning

#35
So, ich habe noch ein Goodie.

Im repository steht die Babble-Version 1.42 von 2019.

Ich selbst betreibe die Version 2.3. Die kennt noch eine wesentliche Neuerung, nämlich "generic devices"...

Das heißt konkret: Wenn man ein FHEM-Device hat, das den genericDeviceType=thermometer,thermostat,hygrometer
hat (alle möglichen Werte sind durch komma getrennt) und im babbleRoom=arbeitszimmer ist,
versteht Babble die Befehle
-- wie ist die temperatur im arbeitszimmer (gelesen wird das reading temperature oder measured-temp)
-- wie ist die feuchte im arbeitszimmer (gelesen wird das reading humidity)
-- stelle die temperatur im arbeitszimmer auf xx grad (geschrieben wird das Kommando set <device> desired-temp xx

Auch Rollläden und Fensteröffnungen stelle ich auf diese Weise, ohne irgendetwas in Babble explizit zu definieren. Licht kann ich auch ohne explizite Definition einschalten.

Diese Sache funktioniert sogar mit entfernten FHEM-Servern, wenn auf denen eine Datei 99_BabbleUtils.pm installiert ist. Dann holt sich Babble nämlich auf Wunsch alle generic devices des entfernten Servers, und kann sie fortan bedienen.

Nachteil dieses Features: Noch nicht gut dokumentiert, und noch nicht internationalisiert. Also, genau genommen. ewas "Beta".

Also mein Tipp: Babble erst einmal in der stabilen Version zum Laufen bringen, und dann diese aktualisierte Version testen.

LG

pah

Prof. Dr. Peter Henning

#36
ZitatInput:    Zirkulation Küche einschalten
Tipp: Entferne die Zeile mit der Küche ...

Noch ein Tipp: Will man komplexere Sachen auch ohne Rivescript machen, geht das mit dem Attribut babblePreSubs (Vor-Substitutionen)
Beispiel: Mein Device YYY hat den Babble-Namen "Haus" und kennt den Befehl "set YYY mode donotdisturb", um Störungen der Mittagsruhe auszuschalten.
Es gibt also, siehe Screenshot, einen Babble-Befehl "Haus stören aus", dieser setzt (in diesem Fall sogar an einen externen FHEM-Server) das Kommando ab:
defmod dndoff at +01:00 set YYY mode normal;;set YYY mode donotdisturb;;d.h., der Modus wird nach einer Stunde wieder zurückgesetzt.

Nun will ich nicht sagen müssen "Haus stören aus". Sondern "Bitte nicht stören". Also gibt es im Attribut babblepreSubs einen Eintrag
bitte\snicht\sstören:haus\sstören\sausAblauf also: Der Bediener sagt "Bitte nicht stören" => Substituiert durch "Haus stören aus" => von Babble semantisch analysiert und umgesetzt in das o.a. Kommando.

LG

pah

ch.eick

#37
Zitat von: Prof. Dr. Peter Henning am 15 Januar 2026, 15:27:27
ZitatInput:    Zirkulation Küche einschalten
Tipp: Entferne die Zeile mit der Küche ...
Klappt nicht so wirklich mit allen Permutationen.

Es gab vorhin mal eine Konfiguration, bei der zumindest zwei Varianten gingen, dabei war aber die Reihen folge der Zeilen wichtig.
Du darfst diesen Dateianhang nicht ansehen.
Das Problem dabei ist jedoch, dass man das irgendwie nicht beeinflussen kann.
Selbst mit Save und reload kommen die Zeilen dann wieder anders.
Ich wollte meine Vorabfrage, die ich für einige Kurzbefehle hatte, damit dann auch direkt erledigen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Prof. Dr. Peter Henning

Zitat von: ch.eick am 15 Januar 2026, 14:28:30Ich dachte Du hättest schon einen Fundus von Definitionen in Deinem Babble
Ja. 58 "named devices", und folgende generic devices. Alles in Allem also deutlich mehr als 100 Geräte und Aktionen, plus alles das, was die rivescript-datei enthält.
generic_192_168_0_90
AZ.All.Fen AZ.All.Roll AZ.HMTh AZ.Strip BI.All.Roll BI.HMHz BI.Roll.F BI.Roll.T BI.WS BK.OWM BZ.HMHz BZ.Roll BZ.WS EB.HMHz GB.HMHz GB.Roll GZ.All.Roll GZ.Beleuchtung GZ.HMTh JZ.HMHz JZ.Roll JZ.WS K.Roll KB.All.Roll SZ.All.Roll SZ.Clima SZ.HMTh SZ.J SZ.P SZ.Roll.0 SZ.Roll.1 SZ.Roll.2 SZ.Roll.3 TH.Strip VK.D VK.OWM WK.OWM WZ.AC WZ.All.Roll WZ.Clima WZ.OWM WZ.Roll.0 WZ.Roll.1 WZ.Roll.2 WZ.Roll.3 ZK.Beleuchtung ZK.HMTh

generic_local
Alexa.Abwesenheit Alexa.Blind.A Alexa.Blind.F Alexa.Blind.T Alexa.House Alexa.Maindoor Alexa.Nichtstoeren Alexa.Party Alexa.Spracheingabe Alexa.Tab.M Alexa.Tab.OG Alexa.Tab1.EG Alexa.Tab2.EG Alexa.Yarddoor SZ.AC Voice.Beleuchtung Voice.Beleuchtung.Esstisch Voice.Beleuchtung.Fernsehen Voice.Beleuchtung.Schlummern Voice.Beleuchtung.Sitzgruppe Voice.Bewaesserung Voice.Gong Voice.Harmony Voice.Harmony.BluRay Voice.Harmony.Fernseher Voice.Harmony.Musik Voice.Harmony.Programm Voice.Harmony.Radio Voice.Harmony.Stille Voice.Harmony.Volume Voice.Weckzeit Voice.Zirkulation WZ.AC

Gerade habe ich abgesetzt "spiele musik im arbeitszimmer von alison balsom"...

LG

pah