ChatGPT in openHAB: Ein technischer Leitfaden
Bist du bereit, dein Smart Home auf die nĂ€chste Stufe zu heben? Stell dir vor, du hast einen virtuellen Assistenten, der deine Sprachbefehle versteht, deine Lichter steuert, die Raumtemperatur anpasst und sogar deine Fragen beantwortet â alles nahtlos in dein openHAB Smart Home-System integriert. đđĄ
In diesem Blog-Beitrag werden wir erkunden, wie du ChatGPT, ein leistungsstarkes Sprachmodell, mit openHAB â einer Open-Source-Plattform fĂŒr Hausautomatisierung â verknĂŒpfen kannst. Egal, ob du ein erfahrener openHAB-Nutzer bist oder gerade erst anfĂ€ngst, du wirst neue Möglichkeiten entdecken, dein Zuhause zu automatisieren und deinen Alltag zu verbessern. Lass uns eintauchen!
FĂŒr diesen Beitrag habe ich ein Beispiel aus der Dokumentation verwendet. Ich bin jetzt dabei AnwendungsfĂ€lle zu finden und diese zu integrieren. Die Details zum Binding findet ihr hier. Im Forum gab es hier auch noch ein paar ergĂ€nzende Hinweise.
OpenAI Account
Im ersten Schritt muss ein kostenpflichtiger Account bei OpenAI erstellt werden. Die Integration der API funktioniert nicht mit dem Free Account. Nach der Anmeldung kann man wie folgt Guthaben aufladen und das Abo wieder beenden:
- Settings – Personal – Billing (https://platform.openai.com/settings/organization/billing/overview)
- Add payment method (Kreditkarte, ohne automatische Aufladung)
- Danach 5 $ Guthaben aufladen
- Kreditkarte löschen
Installation
Die Installation drfolgt wie gewohnt ĂŒber die Web-OberflĂ€che:
- Add-on Store – Binding – ChatGPT Binding – INSTALL
Danach muss ein API-Key fĂŒr ChatGPT generiert werden
- https://platform.openai.com/account/api-keys
- Create new secret key
- Name: openHAB
- Project: Default Project
- Permissions: All
- Den generierten API-Key entsprechend sicher aufbewahren
Thing
Eine mögliche ChatGPT.things kann wie folgt aussehen:
Thing chatgpt:account:1 [apiKey="xxx"] { Channels: Type chat : chat "Weather Advice" [ model="gpt-3.5-turbo", temperature="1.5", systemMessage="Answer briefly, in 2-3 sentences max. Behave like Eddie Murphy and give an advice for the day based on the following weather data:" ] Type chat : morningMessage "Morning Message" [ model="gpt-3.5-turbo", temperature="0.5", systemMessage="You are Marvin, a very depressed robot. You wish a good morning and tell the current time." ] }
Items
Die ChatGPT.items kann entsprechend aus der Dokumentation ĂŒbernommen werden:
String Weather_Announcement { channel="chatgpt:account:1:chat" } String Morning_Message { channel="chatgpt:account:1:morningMessage" } Number Temperature_Forecast_Low Number Temperature_Forecast_High
Rules
Nun kann man in der Regeldatei ChatGPT.rules seine entsprechenden Regeln parametrieren:
rule "Weather forecast update" when Item Temperature_Forecast_High changed then Weather_Announcement.sendCommand("High: " + Temperature_Forecast_High.state + "°C, Low: " + Temperature_Forecast_Low.state + "°C") end rule "Good morning" when Time cron "0 0 7 * * *" then Morning_Message.sendCommand("Current time is 7am") end
Ergebnis
Das Ergebnis sieht in der events.log wie folgt aus:
2024-04-29 20:56:01.004 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Morning_Message' received command Current time is 7am 2024-04-29 21:07:02.424 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Morning_Message' changed from NULL to Good morning. It is currently 7am.
In der openhab.log wird auch ein Teil protokolliert:
2024-04-29 20:55:29.188 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ChatGPT.rules' 2024-04-29 20:56:01.006 [INFO ] [org.openhab.core.model.script.INFO ] - ChatGPT.rules - Current time is 7am 2024-04-29 20:56:01.282 [ERROR] [ding.chatgpt.internal.ChatGPTHandler] - ChatGPT request resulted in HTTP 429 with message: Too Many Requests 2024-04-29 21:06:11.314 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ChatGPT.rules' 2024-04-29 21:07:01.238 [INFO ] [org.openhab.core.model.script.INFO ] - ChatGPT.rules - Current time is 7am 2024-04-29 21:17:00.537 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Morning_Message' received command Current time is 7am 2024-04-29 21:17:00.541 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Temperature_Forecast_Low' changed from NULL to 7 2024-04-29 21:17:00.542 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Temperature_Forecast_High' changed from NULL to 15 2024-04-29 21:17:00.547 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'Weather_Announcement' received command High: 15°C, Low: 7°C 2024-04-29 21:17:01.524 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Morning_Message' changed from Good morning. It is currently 7am. Another day to exist in this meaningless existence. to Good morning. It is currently 7am. Another day to exist in this meaningless universe. 2024-04-29 21:17:03.627 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Weather_Announcement' changed from "Hey folks, it's waking up time! Grab yourself a strong cup of coffee and get your day off to a great start. Sow some positive vibes so you can reap a beautiful day ahead. And remember, go out there and slay like a sunbeamâbe bright, shine and spread some warmth!" to "Hey there! Today's weather is sounding like a smooth jazz song so play some calming tunes, grab a cozy sweater, and sip on a hot beverage. Embrace the brisk air, take a deep breath, and have a breezy day."
In meinem Fall wird dann auch auf einem Alexa-EndgerÀt eine Sprachausgabe entsprechend ausgegeben.
Fazit
Die technische Integration von ChatGPT in openHAB ist mit den aktuellen Versionen ziemlich einfach möglich. Ein einfaches Beispielszenario ist schnell eingerichtet.
Weitere Szenarien fĂŒr den produktiven Betrieb in unserem SmartHome habe ich noch nicht weiter evaluiert. Zu Szenarien im SmartHome in Kombination mit kĂŒnstlicher Intelligenz werde ich noch einen eigenstĂ€ndigen Beitrag erstellen.
Nutzt Ihr ChatGPT in openHAB? Welche Szenarien und AnwendungsfÀlle fallen euch ein?
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!