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.
    • 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
                        • A
                          A3BWA last edited by

                          Ich hab das gleiche mit meinem HM Dimmer. Extra für mich muss das nicht sein. Funktioniert ja auch so sehr gut und wenn man die Heizung per Sprache bedient fällt es auch nicht auf. Ist halt die Frage wie lange sich google noch anstellt mit der nativen Einbindung.

                          Solltest du dich natürlich dafür entscheiden, dann sag bescheid, ich teste gerne 😉

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

                            Ich schau ob ich dafür Zeit habe, denke Mal die Home Anbindung dauert noch ein bissl

                            Sent from my iPhone using Tapatalk

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

                              Hi Dutchman, nach einigen Tagen Dauertest und alles ausprobieren, fallen mir noch zwei merkwürdige Dinge auf.

                              1. Stelle ich die Heizung per Sprache auf eine Temperatur sagt google "Der Anbieter openHAB kann icht erreicht werden" die Temperatur wird aber in 9 von 10 Fällen gesetzt. in dem einen Fall bei dem es nicht funktioniert reicht ein sync der Geräte. Die Rückmeldung bleibt jedoch die gleiche. Die Temperaturen können aber jederzeit abgefragt werden.

                              2. Beim Ausführen einer GoogleHome-Routine wird eine Lampe als "the Arbeitsplatte" bezeichnet und ist nicht erreichbar. Eingebunden und bennant ist sie jedoch korrekt als "Arbeitsplatte" und lässt sich aus der App als auch per Sprache wunderbar bedienen. Komisch das ganze.

                              Zusätzlich habe ich noch eine Frage: Ich möchte per Sprache den Eingang meines AVR schalten. Dafür habe ich 3 Schalter (je einer Pro Quelle am AVR) in openAHB und iobroker angelegt und eingebunden. Das manuelle Umschalten funktioniert super, sowohl per Sprache als auch per APP oder per ioBroker. Wenn ich google jetzt sage er soll spotify auf dem chromecast abspielen, wird der Eingang nicht sauber geschaltet und es kann zum endlosen durchlaufen des Skrips führen, dass die Die Zustände der Objekte synchronisiert. Wie hast du soche Fälle gelöst?
                              10000_1.png
                              10000_2.png

                              1 Reply Last reply Reply Quote 0
                              • H
                                Hamboo last edited by

                                Hi Dutchman,

                                Als erstes, vielen Dank für diese Eintrag, gut Inspiration 🙂
                                Als zweites, entschuldigung für meine deutsche Sprache, bin auch Holländer....

                                Ich habe schon für einzige Zeit OpenHab gebraucht weil es für OpenHab, Google Assistant unterstützung gibt. Seit 2 Wochen spiele ich herum mit ioBroker und habe, gleich wie du, gedacht OpenHab noch immer zu gebrauchen für die Kommunikation mit Google.
                                Auch will ich gerne das Basic UI von OpenHAB auf meinem Handy nutzen. So verzögerungen zwichen OH and ioBroker müssen wie kurz wie möglich sein.

                                Befor ich diese eintrag von dir gefunden habe, habe ich per script, 2 states direkt mit einander verknüpft.

                                on(OHobjname,IOobjname);
                                on(IOobjname,OHobjname);
                                

                                Ich hatte erwartet das dies zu einem "endless loop" führen sollte, weil die 2 States einander anstoßen, aber dies funktioniert allerdings Prima. Die states werden in beide Richtungen sofort übernommen.

                                Die "naming convention" für die items in OpenHab habe ich von dir übernommen um automatisch die states zu verknüpfen 🙂

                                Ich habe jetzt das folgendes script, was Prima funktioniert:

                                var AllOpenHABChannels = $('state[id=openhab.0.items.*]');
                                
                                AllOpenHABChannels.each(function(obj) {   
                                        var OHobjname = obj
                                
                                        var IOobjname = getObject(obj).native.name
                                
                                        var find = ["____"];
                                        var replace = ['#'];
                                        IOobjname = replaceStr(IOobjname, find, replace);
                                
                                        find = ["___"];
                                        replace = ['-'];
                                        IOobjname = replaceStr(IOobjname, find, replace);
                                
                                        find = ["__"];
                                        replace = ['.'];
                                        IOobjname = replaceStr(IOobjname, find, replace);
                                
                                        log("Linking OpenHAB: " + OHobjname + " to: " + IOobjname + " writable: " + getObject(IOobjname).common.write);
                                        
                                        // only link writable items in ioBroker to OpenHab        
                                        if (getObject(IOobjname).common.write) {
                                          on(OHobjname,IOobjname);
                                        }
                                
                                        on(IOobjname,OHobjname);
                                
                                });
                                
                                // Replacement function to items where reguar replace with split fails 
                                function replaceStr(str, find, replace) {
                                    for (var i = 0; i < find.length; i++) {
                                        str = str.replace(new RegExp(find[i], 'gi'), replace[i]);
                                    }
                                    return str;
                                }
                                

                                Weil ich gerade angefangen bin mit ioBroker möchte ich gerne deine Meinung haben. Habe ich Sache übersehen?

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

                                  @Hamboo sagte in [Workarround] GoogleHome integration iObroker mit hilfe von OpenHab:

                                  Als zweites, entschuldigung für meine deutsche Sprache, bin auch Holländer....

                                  😀 dan ist dein deutsch aber sehr gut !

                                  @Hamboo sagte in [Workarround] GoogleHome integration iObroker mit hilfe von OpenHab:

                                  Weil ich gerade angefangen bin mit ioBroker möchte ich gerne deine Meinung haben. Habe ich Sache übersehen?

                                  Soweit ich die replace function beurteilen kan sieht es ok aus und sollte so gehen.
                                  Du synchronisierst jetzt aber nur zu einer Seite ?

                                  1 Reply Last reply Reply Quote 0
                                  • Peter1980FFM
                                    Peter1980FFM last edited by

                                    @Dutchman,
                                    ich habe jetzt einen Komplett neuen Raspi mit IO Broker und Openhab aufgesetzt, wenn ich eine Staus in Google Home Ändere, wird dieser auch an das Gerät im IO Broker weiter gegeben, jedoch werden keine Werte zurück in den OpenHab gespielt...
                                    Hier die System Infos:
                                    Plattform: linux
                                    Die Architektur: arm
                                    CPUs: 4
                                    Geschwindigkeit: 1500 MHz
                                    Modell: ARMv7 Processor rev 3 (v7l)
                                    RAM: 3.8 GB
                                    System uptime: 14 T. 00:18:00
                                    Node.js: v10.16.3
                                    NPM: 6.9.0
                                    Festplattengröße: 28.9 GiB
                                    Festplatten frei: 18.8 GiB
                                    Adapter zählen: 258
                                    Uptime: 14 T. 00:18:01
                                    Aktivierte Instanzen: 24
                                    db1ac791-6dc2-4898-b922-5f06cc6bbb0a-image.png
                                    3cc87ec4-42bb-4177-bcf8-1cf60e0865bf-image.png
                                    Und hier das LOG:
                                    javascript.0 2019-10-27 12:42:05.882 error script.js.Openhab_neu: Previous change of device hm-rpc.2.000C9A498BC044.1.SET_POINT_TEMPERATUREless than 5 seconds ago, ignoring value change
                                    javascript.0 2019-10-27 12:42:05.815 error script.js.Openhab_neu: Previous change of device hm-rpc.2.000C9A498BC044.1.SET_POINT_TEMPERATUREless than 5 seconds ago, ignoring value change
                                    javascript.0 2019-10-27 12:42:05.774 info script.js.Openhab_neu: Value of item in OpenHab change, syncronizing to device hm-rpc.2.000C9A498BC044.1.SET_POINT_TEMPERATURE with value : 19
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: ###### OpenHab connection = true , ready for processing data ######
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: ############### OpenHab connection = true , ready for processing data ##################
                                    javascript.0 2019-10-27 12:40:45.167 info script.js.Openhab_neu: #### Syncronisation finished, 0 devices and their current states syncronised to OpenHab #####
                                    javascript.0 2019-10-27 12:40:45.166 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.166 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.166 info script.js.Openhab_neu: #####################################################################################################
                                    javascript.0 2019-10-27 12:40:45.166 error script.js.Openhab_neu: Item openhab.0.items.undefined Does not exist, please create item in OpenHab
                                    javascript.0 2019-10-27 12:40:45.166 warn Object "openhab.0.items.undefined" does not exist
                                    javascript.0 2019-10-27 12:40:45.166 info script.js.Openhab_neu: Value of undefined written to openhab.0.items.undefined || with value null
                                    javascript.0 2019-10-27 12:40:45.166 warn at Timer.processTimers (timers.js:223:10)
                                    javascript.0 2019-10-27 12:40:45.165 warn at listOnTimeout (timers.js:263:5)
                                    javascript.0 2019-10-27 12:40:45.165 warn at tryOnTimeout (timers.js:300:5)
                                    javascript.0 2019-10-27 12:40:45.165 warn at ontimeout (timers.js:438:13)
                                    javascript.0 2019-10-27 12:40:45.165 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
                                    javascript.0 2019-10-27 12:40:45.165 warn at Object.<anonymous> (script.js.Openhab_neu:82:133)
                                    javascript.0 2019-10-27 12:40:45.164 warn getState "undefined" not found (3)
                                    javascript.0 2019-10-27 12:40:45.164 info script.js.Openhab_neu: Device name undefined translated to undefined
                                    javascript.0 2019-10-27 12:40:45.164 warn at Timer.processTimers (timers.js:223:10)
                                    javascript.0 2019-10-27 12:40:45.164 warn at listOnTimeout (timers.js:263:5)
                                    javascript.0 2019-10-27 12:40:45.163 warn at tryOnTimeout (timers.js:300:5)
                                    javascript.0 2019-10-27 12:40:45.163 warn at ontimeout (timers.js:438:13)
                                    javascript.0 2019-10-27 12:40:45.163 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
                                    javascript.0 2019-10-27 12:40:45.163 warn at Object.<anonymous> (script.js.Openhab_neu:72:30)
                                    javascript.0 2019-10-27 12:40:45.162 warn getState "undefined" not found (3)

                                    Eine Idee warum es nicht geht?

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

                                      Nachdem es jetzt möglich ist Google Home über den iot Adapter ein zu binden Pflege ich dieses Script nicht mehr 🙂

                                      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

                                      352
                                      Online

                                      31.8k
                                      Users

                                      80.1k
                                      Topics

                                      1.3m
                                      Posts

                                      5
                                      27
                                      3362
                                      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