Ankündigung

Einklappen
Keine Ankündigung bisher.

SmarthomeNG und ChatGPT

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    SmarthomeNG und ChatGPT

    Hallo zusammen.

    Ich verwende jetzt schon seit mehreren Jahren erfolgreich SmarthomeNG und bin eigentlich soweit echt happy. Vielen Dank daher erstmal an alle, die hier so engagiert an dem Projekt gearbeitet haben und immer noch arbeiten. Hut ab, vor dieser Leistung. Leider ist die Programmierung von Logiken in Python für mich (sobald es etwas komplizierter wird) immer noch eine echte Hürde. Das liegt nicht daran, dass es nicht zugänglich oder verständlich beschrieben wäre, sondern einfach weil ich zu faul und unmotiviert bin mich hier neben meinem Job (bin kein Softwareentwickler oder habe sonst was mit IT zu tun) und der Familie ernsthaft damit auseinenaderzusetzen. Trotzdem wäre zeitweise eine Logik schon ne coole Sache.

    Nun zu meiner Frage:
    Hat sich eventuell schon mal mal wer von euch an ein entsprechendes GPT "gewagt" welches mit Informationen zu Python und SmarthomeNG gefüttert wurde? Ich dachte mir in etwa, wenn ich das GPT zusätzlich mit meinen Items aus SmarthomeNG "füttere" und die Aufgabe beschreibe, "spuckt" es die passende Logik einfach aus.🙂

    SG
    Markus

    #2
    Hast du mal gefragt, ob es sich mit SmarthomeNG auskennt?

    Habe für die Arbeit ein Programm gebraucht, dass im wesentlichen Daten aus vielen Excel dateien ausliest und diese dann in eine neue Exceltabelle reinschreibt. Das hat mit etwas menschlicher Unterstützung recht gut funktioniert.

    Kommentar


      #3
      Sieht doch nicht schlecht aus:
      https://chatgpt.com/share/670f93b8-3...f-8afbcd53d940

      Kommentar


        #4
        Super Idee. Da github ebenso wie smarthomeNG.de Trainingsmaterial für das zugrundeliegende LLM ist, kennt sich ChatGPT grundsätzlich schon mit smarthomeNG aus.

        Ein Kurztest mit der kostenlosen Version:
        Ich habe SmartHomeNG für meine KNX Steuerung im Einsatz. Das item für das Wohnzimmerlicht heißt eg.wozi.licht. Das item für die Tür heißt eg.tuer. Schreibe mir eine Logik, die das Wohnzimmerlicht einschaltet, wenn die Tür geöffnet wird.
        Ergebnis:
        Um dein SmartHomeNG-System zu erweitern und eine Logik zu erstellen, die das Wohnzimmerlicht einschaltet, sobald die Tür geöffnet wird, kannst du eine Python-Logik innerhalb der SmartHomeNG-Plattform verwenden.

        Hier ist ein Beispiel für eine Logik in SmartHomeNG:
        Code:
        #Trigger: Wenn die Tür geöffnet wird (eg.tuer == True)
        
        # Bedingungen:
        # 1. Die Tür wird geöffnet (eg.tuer wird auf True gesetzt).
        # 2. Das Wohnzimmerlicht ist ausgeschaltet (eg.wozi.licht == False).
        
        # Aktion:
        # 1. Schalte das Wohnzimmerlicht ein (eg.wozi.licht wird auf True gesetzt).
        
        # Python Code in der Logik-Datei:
        if trigger['eg.tuer'] and not sh.eg.wozi.licht():
            sh.eg.wozi.licht(True)​
        Erklärung:
        • trigger['eg.tuer']: Dies überprüft, ob das eg.tuer-Item (Türsensor) den Wert True hat, was bedeutet, dass die Tür geöffnet wurde.
        • sh.eg.wozi.licht(): Dies liest den aktuellen Zustand des Wohnzimmerlichts.
        • sh.eg.wozi.licht(True): Diese Zeile schaltet das Wohnzimmerlicht ein, indem sie den Wert des Items auf True setzt.
        Logik aktivieren:

        Diese Logik kannst du entweder in deiner logics.conf oder in einem separaten Logik-Skript speichern. Stelle sicher, dass du die Logik korrekt in dein SmartHomeNG-System einbindest und aktivierst.

        Wenn du Fragen hast oder mehr Details benötigst, stehe ich gerne zur Verfügung!
        Da ist ein grober Fehler drin. Also weiter:
        trigger[] erlaubt keine item Namen als Argument. Um das auslösende item zu ermitteln, muss man trigger['by'] verwenden
        Antwort:
        Du hast vollkommen recht! In SmartHomeNG wird das auslösende Item tatsächlich durch trigger['by'] ermittelt. Hier ist eine angepasste Version der Logik, die den Türstatus überprüft und das Wohnzimmerlicht entsprechend schaltet.

        Beispiel für die Logik:
        Code:
        # Diese Logik schaltet das Wohnzimmerlicht ein, wenn die Tür geöffnet wird (eg.tuer).
        
        # Überprüfe, ob das auslösende Item die Tür (eg.tuer) ist und ob die Tür geöffnet wurde.
        if trigger['by'] == 'eg.tuer' and sh.eg.tuer() and not sh.eg.wozi.licht():
            # Schalte das Wohnzimm[erlicht ein.
            sh.eg.wozi.licht(True)​
        Erklärung:
        • trigger['by'] == 'eg.tuer': Dies stellt sicher, dass die Logik nur ausgeführt wird, wenn die Tür (eg.tuer) das auslösende Item ist.
        • sh.eg.tuer(): Überprüft den aktuellen Status der Tür (ob sie geöffnet ist). Wenn True, ist die Tür geöffnet.
        • not sh.eg.wozi.licht(): Stellt sicher, dass das Wohnzimmerlicht ausgeschaltet ist, bevor es eingeschaltet wird.
        • sh.eg.wozi.licht(True): Schaltet das Wohnzimmerlicht ein.
        Integration in SmartHomeNG:
        • Stelle sicher, dass du diese Logik in einer .py-Datei speicherst oder sie in die entsprechende Logikdatei innerhalb von SmartHomeNG integrierst.
        • Achte darauf, dass die Items eg.tuer und eg.wozi.licht korrekt in deinem System definiert sind.

        Falls du weitere Anpassungen oder Erweiterungen benötigst, helfe ich gerne weiter!
        Fazit:
        so ganz findet sich ChatGPT in den Feinheiten der Syntax noch nicht zurecht und auch die Angaben zur Einbindung der Logik sind nicht konsistent. Dennoch kann man auf den Ergebnissen recht gut aufsetzen.

        Gruß
        Wolfram

        EDIT: henfri war mal wieder schneller
        Zuletzt geändert von wvhn; 16.10.2024, 11:34.

        Kommentar


          #5
          Wow.
          Daran, dass ChatGPT ja bereits SmarthomeNG kennen könnte hab ich gar nicht gedacht... 🤦‍♂️
          Erstmal vielen Dank euch allen für die Rückmeldung. Ich werds ausprobieren 😊

          SG
          Markus

          Kommentar


            #6
            Vielleicht klappt GitHub CoPilot noch besser... Kann das die Tage mal testen.

            Kommentar

            Lädt...
            X