Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Workarround] GoogleHome integration iObroker mit hilfe von OpenHab

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Workarround] GoogleHome integration iObroker mit hilfe von OpenHab

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      Hi community,

      Da in Holland die benutzung von Alexa sehr eingeschraenkt ist und Google im Oktober hier officiel released wurde musste natuerlich ein ghome-mini (naja…. 8 :mrgreen: :mrgreen: :mrgreen: ) ins Hause kommen. Wie gesagt so getan.

      Leider gibt es noch keine unterstuetzung hierzu und die IFTTT loesung war fuer mich nicht ausreichend (NL-Sprache wird nicht Unterstuetzt).

      Da ich leider der Adapter entwicklung nicht maechting bin habe ich mir folgende Workarround ausgedacht welcher super funtioniert ! 😄

      Forrausetzungen :

      • iObroker installation mit geraeten

      • Seperate OpenHab installation (installation selber hiervon behandele ich nicht)

      • OpenHab cloud eingerichtet (https://myopenhab.org/login)

      Das princiep :

      iObroker ist mein centrales system fuer alle geraete, dazugehoerigen scripen usw....

      Ich "missbrauche" jetzt OpenHab sozusagen als "Cloud Adapter" um die verbindung mit Google her zu stellen.

      Dafuer ist es notwendig sogenannte "items" in OpenHab zu erstellen, die kette ist also :

      Geraete ==> Iobroker (Objecte) ==> openhab(items) ==> GoogleCloud (Geraete)

      Wir erstelen uns also in openhab "dummy" items welche verknuepft werden mit den wirklichen geraeten in iObroker, der status wird per cloud an google uebertragen und aenderungen von google aus fliessen ueber die cloud zurueck womit die geraetee geschaltet werden.

      Das syncronisieren der originalen geraete mit den openhab items erledige ich ueber ein script.

      also :

      1. iObroker einrichten

      2. OpenHab Installation einrichten und mit OpenHab cloud verbinden

      3. in iobroker eine enum.function erstellen genammt GoogleHome
        979_enum.jpg

      4. Alle geraete die wir per GoogleHome steuern moechten der Function "GoogleHome" zuweisen
        979_func.jpg

      5. Fuer jedes geraet was wir der funktion zugewiesen haben ein entsprechendes item in OpenHab erstellen. Hier ein Beispiel von 2 Schaltern und 2 Thermostaten. Bitte beachtet die item strukturen fuer openhab, fuer thermostate z.b. muss man eine gruppen erstellen.

      Gruppen muessen immer mit "g" anfangen sonst werden diese von google nicht erkannt !

      // Living Room Spot-Lights
      Switch sonoff__0__Woonkamer_Kast__POWER "Kast" (gWoonkamer) [ "Lighting" ]
      
      // Kitchen Spot-Lights
      Switch sonoff__0__Keuken_Spot__POWER "Keuken Spot" (gKeuken) [ "Lighting" ]
      
      //Thermostat Setup (Google requires a mode, even if you manually set it up in Openhab)
      // Kitchen
      Group g_Keuken_TSTAT "Keuken Thermostaat" [ "Thermostat", "Celsius" ]
      Number hm___rpc__0__MEQ0236452__2__ACTUAL_TEMPERATURE "Keuken Temperatuur [%.1f °C]" (g_Keuken_TSTAT) [ "CurrentTemperature" ]
      Number hm___rpc__0__MEQ0236452__2__SET_TEMPERATURE "Keuken Setpoint [%.1f °C]" (g_Keuken_TSTAT) [ "TargetTemperature" ]
      
      // Living Room
      Group g_Woonkamer_TSTAT "Woonkamer Thermostaat" [ "Thermostat", "Celsius" ]
      Number hm___rpc__0__LEQ0593829__2__ACTUAL_TEMPERATURE "Woonkamer Temperatuur [%.1f °C]" (g_Woonkamer_TSTAT) [ "CurrentTemperature" ]
      Number hm___rpc__0__LEQ0593829__2__SET_TEMPERATURE "Woonkamer Setpoint [%.1f °C]" (g_Woonkamer_TSTAT) [ "TargetTemperature" ]
      
      

      Mehr dazu findet ihr hier : https://www.openhab.org/docs/ecosystem/ … figuration

      Im moment kan man die folgende typen benutzen : Lighting,Switchable, CurrentTemperature, Thermostat

      1. In der google home APP eine device hinzufuegen

      2. Hier den openhab auswaehlen und die cloud login daten hinterlegen
        979_img_5800.jpg

      3. Jetzt werden alle objecte aus OpenHab in GoogleHome eingelesen und muessen dan manuel raeumen zugeordnet werden.

      (ab jetzt kan man diese auch bedienen und damit den wert in openhab aendern)
      979_img_5801.jpg
      10) OpenHab adapter in iobroker installieren/aktivieren

      1. Ein script erstellen welches die datenpunkte der OpenHab (items) mit den wirklichen geraeten verbindet.

      Auf meinem github account habe ich das dazugehoerige script hinterlegt, welches :

      • Nach erstellen der datenpunkte den jetzigen wert auf OpenHab uebertragen

      • Aenderungen in iObroker nach OpenHab ueberragen

      • Aenderungen in OpenHab auf iobroker uebertragen

      Da OpenHab nur "_" als sonderzeichen in namen erlaubt musste ich sonderzeichen erstzen, das ist noch eine baustelle.

      Im moment sind "." und "-" abgefangen

      Script hier : https://github.com/DutchmanNL/ioBroker.scriptlibrary

      Und somit reden wir mit unseren iObroker ueber GoogleHome.

      Die moeglichkeiten sind im moment leider begrenzt, aber zum schalten von geraeten klappt das ganz gut !

      Wen man sprachbefehle auswerten moechte geht meines wissens nach nur der weg ueber IFTTT

      Viel Spass damit ! Fuer fragen immer her damit und wer vorschlaege hat auch gerne. Finde den workarround ziemlich effectief und ich muss mich nicht mit node red, IFTTT oder den genauen sprach-commando matching auseinander setzen :mrgreen:

      To-Do im script:

      • bessere abhandlung von sonderzeichen

      • code-cleanup und comments

      • automatische erstelling der items file fuer openhab

      1 Reply Last reply Reply Quote 1
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        reserviert

        1 Reply Last reply Reply Quote 0
        • U
          Unbekannt last edited by

          Ich finde es richtig cool, dass du uns an deiner Methode teil haben lässt. Daumen hoch 🙂

          Aktuell nutze ich IFTTT, aber evtl. probiere ich den Umweg über OpenHab mal aus.

          Falls du ioBroker auf einem Raspi nutzt, ist Openhab dann ebenfalls auf dem gleichen Raspi installiert, oder passt das von den Recourcen nicht, da ioBroker ja schon sehr Recourcenhungrig ist (zumindest in meiner Koniguration).

          Gruß Markus

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            Hi Markus,

            Ich habe selber alles auf einem NAS in docker laufen, OpenHab frisst auch einiges an speicher und benoetigd java ich wuerde es dan nicht auf dem selben pi betreiben.

            ~Dutch

            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              Script updated in github :

              - initial value syncronisation when openhab connected is activated
              - do not process value changes when openhab connection is inactive
              - better error handling
              - special character replacement included to support shelly device
              - small code cleanup
              - minor improvements
              
              
              1 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators last edited by

                script update nach version 0.7:

                version 0.7, several bug and syncronisation fixes still in BETA state !
                
                
                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  version 1.0 ist raus (siehe github)

                  BTW: benutzt es ueberhaupt jemand ?

                  1 Reply Last reply Reply Quote 0
                  • Dutchman
                    Dutchman Developer Most Active Administrators last edited by

                    @Dutchman:

                    BTW: benutzt es ueberhaupt jemand ? `

                    Hmm Antwort auf diese Frage ist wohl nein 😉

                    1 Reply Last reply Reply Quote 0
                    • A
                      A3BWA last edited by

                      Hallo Dutchman, erst einmal vielen Dank für den Workaround und deine Arbeit. Ich bin erst in den letzten Tagen und Wochen von openHAB zu ioBroker gewechselt. Daher freut es mich, dass meine openHAB installation noch einen Wert haben kann.

                      Leider bekomme ich den Sync nicht hin:

                      openHAB läuft und ist auch in der googleHome App eingerichtet.

                      ioBroker läuft auch und alle Geräte lassen sich daraus wunderbar schalten.

                      Wie müssen den die items in OH benannt werden, damit dein Script diese Synchronisieren kann?

                      1 Reply Last reply Reply Quote 0
                      • Dutchman
                        Dutchman Developer Most Active Administrators last edited by

                        Hi,

                        Freut mich das ich wenigstens einen (mich nicht mitgezählt :)) Freude bereiten kann

                        Stell im script das logging mal auf „yes“.

                        Hast du eine function „GoogleHome“ erstellt und diesen den gewünschten states zugeteilt?

                        Dann sollten eigentlich im log Fehlermeldungen auftauchen mit den Namen welche erstellt werden müssen

                        Sent from my iPhone using Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • A
                          A3BWA last edited by

                          Hi, ja eine enum.functions.googlehome mit dem Namen GoogleHome ist erstellt und allen states zugewiesen. Ich versuche das erstmal mit einem Homematic Dimmer.

                          Das Logging hab ich im Skript auf true gesetzt. Leider ohne Erfolg, weiterhin keine Logausgabe und keine Funktion wenn ich den Status des Dimmers verändere.

                          1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators last edited by

                            Hmm im log sollten mit logging=true aber bereits beim start ne Menge Informationen kommen.

                            Sicher das die JavaScript Instanz und Script laufen?

                            Sent from my iPhone using Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • A
                              A3BWA last edited by

                              So erster Teilerfolg. Den Homematic Dimmer kann ich ansprechen. Einen Thermostat leider nicht. Es kommt folgender log:

                              javascript.0	2018-11-26 23:25:30.683	error	script.js.Komfort_Funktionen.GoogleHome_Sync: Previous change of device hm-rpc.0.OEQ1696517.4.ACTUAL_TEMPERATUREless than 5 seconds ago, ignoring value change
                              javascript.0	2018-11-26 23:25:30.681	error	script.js.Komfort_Funktionen.GoogleHome_Sync: Previous change of device hm-rpc.0.OEQ1696517.4.ACTUAL_TEMPERATUREless than 5 seconds ago, ignoring value change
                              javascript.0	2018-11-26 23:25:30.649	info	script.js.Komfort_Funktionen.GoogleHome_Sync: Value of origin changed, syncronizing to OpenHab : hm___rpc__0__OEQ1696517__4__ACTUAL_TEMPERATURE || with value 18.8
                              javascript.0	2018-11-26 23:25:30.649	info	script.js.Komfort_Funktionen.GoogleHome_Sync: Device trigger hm-rpc.0.OEQ1696517.4.ACTUAL_TEMPERATURE with value 18.8 and previous change time diff = 2143982
                              

                              diese error Meldung wird auch ausgegeben wenn der Dimmer reagiert wie er soll, komisch.

                              Edit: Kannst du mir sagen wie ich die Geräte im GoogleHome aktualisiere ohne die OH Verknüpfung immer wieder neu einrichten zumüssen?

                              1 Reply Last reply Reply Quote 0
                              • Dutchman
                                Dutchman Developer Most Active Administrators last edited by

                                Hmm dein log sieht OK aus er spuckt keinen Error fürs object.

                                Zeig Mal deine item Konfiguration, hast du mit Google syncronisiert befojr die Geräte in openhab mit werten gefüllt waren ?

                                Zum neu synchronisieren : hey Google, syncronisiere Geräte

                                Nachtrag : werden die objecte in ioBroker mit den richtigen werten gefüllt ?

                                Sent from my iPhone using Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • A
                                  A3BWA last edited by

                                  So hab mal ein paar Geräte mehr hinzugefügt. die Items sehen wie folgt aus:
                                  10000_items.png

                                  Die Lampen/Dimmer funktionieren alle, manchmal dauert es einige Zeit bis der Status ankommt und schnelle Wechsel hintereinander werden geren ignoriert. Es kann auch Wechselseitig gesteuert werden. Die Aktuelle Temperatur wird für auch alle Räume korrekt angezeigt. Nur die Werte für Set_Temperature werden nicht weitergeben und kommen auch in iobroker bzw. im log nicht an. OH zeigt mir aber alle items in der cloud korrekt an.

                                  1 Reply Last reply Reply Quote 0
                                  • Dutchman
                                    Dutchman Developer Most Active Administrators last edited by

                                    ok danke 🙂

                                    Also das mit dem hintereinander ausfuehren : Stimmt ich habe eine blockade von 5 sekunden fuer geraete eingebaut, das war noetig um loops zu vermeiden, beispiel : Ich stelle dimmer auf 20, aber homematic macht daraus 19.8 das wurde dan ne endlos schleife.

                                    Also darf jeder state sich nicht innerhalb von 5 sekunden nochmal aender, das wird halt ignoriert.

                                    Das mit der themperatur ist ne komische sachen deine einstellungen stimmen.

                                    Ich hatte das auch einmal, das problem hatte ich verursacht durch erst die items zu erstellen, dan mit google zu syncronisieren und erst dan das script die werte setzen zu lassen.

                                    Google kan mit diesen NULL werten nicht umgehen und auch wen man dan spaeter einen wert setzt kommt er nicht an.

                                    Loesung : Item loeschen/auskommentieren, syncronisieren mit google. Item wider einfuegen, werte mit dem script syncroniseren und erst dan wieder mit google die geraete aktualisieren.

                                    Frage am Rande : Die object in iObroker unter OpenHab haben aber die richtigen werte ? Also das script syncronisiert die objecte oder ist da bereits ne luecke ?

                                    Greetz, Dutch

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      A3BWA last edited by

                                      Keine Ahnung was passiert ist aber über die Nacht hat es sich eingependelt. Alle Werte kommen in iB an. Die Heizungssteuerung funktioniert nun auch, ohne das ich noch etwas tun musste. Als Tipp für andere die evtl ähnliche Probleme haben. Zum einstellen in der Temperatur entweder per Sprache oder in der Home App den Slider nutzen. Die Plus und Minus Buttons werden größtenteils ignoriert, wenn mehr als ein Befehl in 5 Sekunden abgesetzt wird.

                                      Zwei Fragen habe ich jedoch noch:

                                      1. Wie kann ich in GH die aktuelle Temperatur in einem Raum abfragen? Mir wird immer nur die eingestellte Temperatur angesagt, aber nicht die gemessene. Die Werte sind aber überall korrekt hinterlegt.

                                      2. Jetzt muss ich nur noch herausfinden wie ich am einfachsten Szenen und Farben für die Hue schalten kann. Macht es Sinn Hue selbst in GH einzubinden? ioBroker müsste doch die Statusänderungen von der Bridge trotzdem bekommen oder werden das dann zuviele Zugriffe für die Bridge? Hatte in der Zeit des Wechsel zu iB teilweise openHAB und ioBroker gleichzeitig laufen, wobei jedesmal die ccu2 ausgestiegen ist. Alternativ müsste man über switch items gehen können. Hast du sowas bei dir umgesetzt?

                                      Nochmals herzlichen Dank für deine Arbeit an dem Skript und das Teilen in der Community/mit mir 😉

                                      1 Reply Last reply Reply Quote 0
                                      • Dutchman
                                        Dutchman Developer Most Active Administrators last edited by

                                        @A3BWA:

                                        1. Wie kann ich in GH die aktuelle Temperatur in einem Raum abfragen? Mir wird immer nur die eingestellte Temperatur angesagt, aber nicht die gemessene. Die Werte sind aber überall korrekt hinterlegt. `

                                        Ich sage dazu : Hey google, wie ist die temperatur im wohnzimmer. Dan bekomme ich jetzige und eingestellte temperatur

                                        @A3BWA:

                                        2. Jetzt muss ich nur noch herausfinden wie ich am einfachsten Szenen und Farben für die Hue schalten kann. Macht es Sinn Hue selbst in GH einzubinden? ioBroker müsste doch die Statusänderungen von der Bridge trotzdem bekommen oder werden das dann zuviele Zugriffe für die Bridge? Hatte in der Zeit des Wechsel zu iB teilweise openHAB und ioBroker gleichzeitig laufen, wobei jedesmal die ccu2 ausgestiegen ist. Alternativ müsste man über switch items gehen können. Hast du sowas bei dir umgesetzt? `

                                        Hmm also die OpenHab implementierung von google home kennt keine farben, eigentlich nur schalter (switch) oder nummern welche dan als zal oder IST/SOLL definiert werden koennen.

                                        Du koenntest dir ein object erstellen und diesen als switch einbinden und damit dan eine farbe triggeren ist aber meiner meinung nach ein ziemlich haesslicher workarround.

                                        (Fuer meine Harmony activitaeten habe ich es aber genau so gemacht, TV an usw)

                                        Mit dem jetzigen stand der OpenHab schnitstelle zu GoogleHome wuerde ich die Hue einfach gerade wegs implementieren.

                                        iObroker ist es dan egal ob du jetzt werde in der Hue APP aenderst welche er dan ueber die bridge bekommt oder GoogleHome==>HueBridge==> iObroker.

                                        Andersum genauso, schaltest aus iObroker die Hue wird google das sehen.

                                        Die verknuepfung zwischen iObroker und Google wird bestimmt besser und mehr moeglichkeiten haben als OpenHab, ist irgendwie nur zu einem bruchteil realisiert (leider)

                                        @A3BWA:

                                        Nochmals herzlichen Dank für deine Arbeit an dem Skript und das Teilen in der Community/mit mir 😉 `

                                        Gerne und freut mich das zu hoeren dan macht einem die muehe doch direkt mehr spass !

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          A3BWA last edited by

                                          Hey so nach ein paar Tagen testen funktioniert das ganze sehr stabil. Auch die Hue direkt einzubinden stört das ganze System nicht. Läuft…. 😄

                                          1 Reply Last reply Reply Quote 0
                                          • Dutchman
                                            Dutchman Developer Most Active Administrators last edited by

                                            Na super!

                                            Ich habe mir noch überlegt ob ich diesen 5 Sekunden Lock eventuell nur auf Dimmer setze den ich hatte nur Probleme mit HM dimmern.

                                            Dan könnte man für zB Temperaturen und alle andere states diese 5sec Pause Weck lassen.

                                            Macht es Sinn das rein zu bauen ?

                                            Sent from my iPhone using Tapatalk

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            798
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            27
                                            3347
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo