Ankündigung

Einklappen
Keine Ankündigung bisher.

Openhab mit Homematic

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

    Openhab mit Homematic

    Hallo Zusammen,

    ich lese hier schon eine Weile mit. Seit etwa einem Monat habe ich auch Openhab 1.3.1 auf einem Raspberry am laufen. Dank euch bin ich schon recht weit gekommen. Alle verfügbaren Sensoren und Aktoren sind schon mal eingebunden. Aktuell bin ich dabei die eigentliche Automatisierung umzusetzen.

    In nutze aktuell Openhab mit den folgenden Bindings:
    - Philips Hue Binding (Beleuchtung)
    - System Info Binding (Für die Visualisierung der Auslastung)
    - Exec Binding (Sprachausgabe über Google)
    - Fritz!Box Binding (Anrufe)
    - Fritz AHA Binding (Waschmaschinenstatus)
    - Homematic Binding (Alles andere im Haus)

    Ich bin eigentlich schon recht weit, aber es hapert hier und da. Ich bin mir nicht sicher, ob bzw. was ich was falsch gemacht habe. Das sind meine Probleme:

    1) Ich möchte die Anwesenheit sowohl über die GUI in Openhab als auch über Taster in Homematic (Displaytaster HM-PB-4Dis-WM) setzen können. Dazu habe ich zwei Tasten an der virtuellen Verbedienung in Homeatic verwendet.
    Wenn über Openhab die Anwesenheit gesetzt wird, wird über die virtuelle Fernbedienung am Kanal 1 (Anwesend) bzw. 2 (Abwesend) eine Variable Anwesenheit in Homematic gesetzt.
    In die andere Richtung (Homematic zu Openhab) funktioniert es ebenfalls über die Kanäle 1 und 2. Allerdings habe ich hierfür den langen Tastendruck verwendet.
    Auf beiden Seiten (Openhab und Homematic) habe ich entsprechende Regeln erstellt, welche bei Änderung der Variablen die passenden Tasten an der Virtuellen Fernbedienung betätigen. Da liegt auch das Problem. Wenn sich auf einer Seite die Variable sich ändert, dann eine virtuelle Taste über Regeln betätigt. Auf der anderen Seite passiert das gleiche und das Event kommt wieder zurück. Erst einmal ist das

    Wer hat dieses Problem schon mal gelöst? Dieses Problem müssen doch andere auch gehabt haben.

    2) iOS Client von Openhab ist bei mir etwas instabil. Es stürzt öfters mal ab. Manche Abstürze sind reproduzierbar. Immer wenn ich den Colorpicker öffne stürzt es ab. Mit Openhab 1.4.0 treten die Abstürze öfter auf. Im Browser habe ich weniger Probleme. Hier sind zwar manchmal einige Untergruppen nicht anklickbar, aber das verschwindet, wenn man die Seite noch mal aktualisiert. Das ist zwar auch unschön, aber man kann damit arbeiten. Ist das ein bekanntes Problem? Ich habe über die Suchfunktion nichts gefunden.

    Gruß
    Siva

    #2
    Punkt 1 habe ich nach stundenlanges grübeln selbst gelöst.

    Wenn mir jemand was zum iOS Client (Punkt 2) was sagen kann, wäre sehr hilfreich.

    Kommentar


      #3
      Ist das ein bekanntes Problem? Ich habe über die Suchfunktion nichts gefunden.
      Ja, ist ein bekanntes Problem, dazu findest Du in der Mailingliste wohl mehr als hier im Forum, ein paar Issues sind zum Client auch eingetragen.

      Ich benutze auch unter iOS den Browser, dass geht eigentlich ganz gut. Dabei stört nur, dass es lange dauert bis alle Ions geladen sind. Das liegt wohl an der maximalen Anzahl paralleler Verbindungen die in iOS begrenzt sind.

      Kommentar


        #4
        Danke das hilft mir schon mal weiter.

        Kommentar


          #5
          Kurz ne andere Frage, wie machst du das mit der Waschmaschinenerkennung ? Was kannst du alles erkennen ?

          Kommentar


            #6
            Hi,

            ich habe mir das hier "AVM FRITZ!DECT 200" zugelegt, um den Stromverbrauch zu messen. Von Homematic ist zwar sowas angekündigt, aber soweit ich weiß gibt es noch nicht zu kaufen.

            Als erstes habe ich den Stromverbrauch der Waschmaschine an drei Zuständen gemessen: WM Aus (0 Watt), WM fertig bzw. Standby (max. 1,43 Watt), WM läuft (mehr als 1,43 Watt)

            Leider schwanken diese Werte minimal. So kommt es selten vor, dass im Standby auch mal 0 Watt gemessen wird. Das habe ich so gelöst, dass ich alle 2 Minuten den Verbrauch messe. Wenn drei mal hintereinander ein eindeutiger Zustand erkannt wird, dann gehe ich davon aus, dass es korrekt ist. Das habe ich gestern erst umgesetzt. Mal schauen, ob das so funkioniert.

            Daraus kann man dann eine Regel erstellen und entsprechende Meldungen ausgeben. Bei mir wird per TTS eine Meldung ausgesprochen. Und wenn ich nicht zu hause bin, dann wird zusätzlich noch eine Nachricht auf das Handy geschickt.

            Die Regel ist eigentlich nicht so komplex, aber wenn du Interesse hast kann ich es dir auch bereitstellen.

            Kommentar


              #7
              Zitat von Sivarupan Beitrag anzeigen
              Hi,

              ich habe mir das hier "AVM FRITZ!DECT 200" zugelegt, um den Stromverbrauch zu messen. Von Homematic ist zwar sowas angekündigt, aber soweit ich weiß gibt es noch nicht zu kaufen.

              Die Regel ist eigentlich nicht so komplex, aber wenn du Interesse hast kann ich es dir auch bereitstellen.
              Hallo Siva,

              mache heute meine ersten Gehversuche mit openhab, habe auch eine "AVM FRITZ!DECT 200" und hätte interesse an der Regel.

              Danke & Gruss
              Heiko

              Kommentar


                #8
                Zitat von Mysteryland Beitrag anzeigen
                Hallo Siva,

                mache heute meine ersten Gehversuche mit openhab, habe auch eine "AVM FRITZ!DECT 200" und hätte interesse an der Regel.

                Danke & Gruss
                Heiko
                Hallo Heiko,

                hier ist der aktuelle Stand meines Stcripts. Ich bin auch relativ neu in OpenHab. Die Regel gehört zu den ersten, die ich erstellt habe. Verzeiht mir daher, wenn man das Eine oder das Andere viel effizienter umsetzen könnte.

                Als erstes solltest du messen, wie viel deine Waschmaschine jeweils in den Zustanständen Aus, An, und Standby verbraucht. Dann kannst du die beiden Variablen "schwelleWaschmaschineAn" und "schwelleWaschmaschineAus" entsprechend anpassen.

                Code:
                import org.openhab.core.library.types.*
                
                /*
                Gemessende Werte:
                
                Standby
                ------------------------
                Watt    1,43
                Ampere  0,04
                
                
                Aus
                ------------------------
                Watt    0,00
                Ampere  0,03
                */
                
                val Number schwelleWaschmaschineAn = 1.6
                val Number schwelleWaschmaschineAus = 1
                
                val String script = "/home/pi/say.sh "
                val String meldungGeradeFertig = "Die Waschmaschine ist soeben fertig geworden."
                val String meldungFertig = "Die Waschmaschine ist fertig."
                val String meldungWaescheaufhaengen = " Bitte die Waesche aufhaengen."
                
                /*
                 * 0 -> Aus
                 * 1 -> An
                 * 2 -> Standby
                 */
                var int zustandWaschmaschine = 0
                
                var Number letzteMessung = 0
                var Number vorletzteMessung = 0
                
                /*
                 * Versucht den Status der Waschmaschine zu bestimmen
                 */
                rule "Waschmaschinenstatus bestimmen"
                    when
                        Time cron "5 0/2 * * * ?"
                    then
                        var Number aktWatt = Waschmaschine_Power.state as DecimalType
                        
                        if(aktWatt < schwelleWaschmaschineAus) {
                            // Waschmaschine ist aus
                            zustandWaschmaschine = 0
                            
                            letzteMessung = 0
                            vorletzteMessung = 0
                
                        } else if(aktWatt < schwelleWaschmaschineAn && letzteMessung < schwelleWaschmaschineAn && vorletzteMessung < schwelleWaschmaschineAn) {
                            if(zustandWaschmaschine == 1) {
                                // Waschmaschine ist gerade fertig geworden
                                var String command = script + meldungGeradeFertig + meldungWaescheaufhaengen
                                executeCommandLine(command)
                                
                                //if(AnwesenheitSiva.state == OFF || Einstellung_Push_Meldung_Waschmaschine.state == ON) {
                                    //pushNotification("Waschmaschine", meldungGeradeFertig)
                                //}
                            }
                            zustandWaschmaschine = 2
                
                        } else if(aktWatt >= schwelleWaschmaschineAn && letzteMessung >= schwelleWaschmaschineAn && vorletzteMessung >= schwelleWaschmaschineAn) {
                            // Waschmaschine läuft noch
                            zustandWaschmaschine = 1
                        }
                
                        // Werte temporär speichern
                        letzteMessung = aktWatt
                        vorletzteMessung = letzteMessung
                end
                
                /*
                 * Zwischen 8:00 und 22:00 Uhr wird der Status der Waschmaschine stündlich ausgelesen. Wenn es sich im Standbymodus befindet, dann wird eine Meldungs ausgegeben. 
                 */
                rule "Ausgabe Zustand Waschmaschine"
                    when 
                        Time cron "0 5 8-22 * * ?"
                    then
                        if(zustandWaschmaschine == 2) {
                            var String command = script + meldungFertig + meldungWaescheaufhaengen
                            executeCommandLine(command)
                            
                            //if(AnwesenheitSiva.state == OFF || Einstellung_Push_Meldung_Waschmaschine.state == ON) {
                                //pushNotification("Waschmaschine", meldungFertig)
                            //}
                        }
                end
                Der für den Script benötigte Teil vom "AVM FRITZ!DECT 200" ist bei mir so eingebunden:
                Code:
                Number    Waschmaschine_Power            "Waschmaschine akt. Watt [%.1f W]" { fritzaha="fritzbox,16,power" }
                Ich benutze für die Sprachausgabe Google über ein Shellscript, da es deutlich besser klingt. Daher sind da die beiden Aufrufe "executeCommandLine". Die kannst du dann gegen andere Actions wie "pushNotification" oder "say" austauschen.
                Neben der Sprachausgabe habe ich bei mir noch pushNotification eingebaut. Diese werden zusätzluch ausgelöst, wenn ich nicht zu Hause bin (AnwesenheitSiva) oder über einen Schalter explizit die PushNotification (Einstellung_Push_Meldung_Waschmaschine) eingeschaltet habe. Die entsprechenden Zeilen habe ich nur auskommentiert, falls du vor hast auch sowas einzubauen.

                Kommentar


                  #9
                  Hallo Siva,

                  vielen Dank schon mal, wirklich sehr interessant was mit openHAB so alles möglich ist

                  Gruss
                  Heiko

                  Kommentar

                  Lädt...
                  X