Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Dunstabzugshaube mit Homekit steuern

    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

    Dunstabzugshaube mit Homekit steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • oberfragger
      oberfragger last edited by oberfragger

      Hallo,

      ich habe gerade etwas rumgefrickelt und bin auf ein paar Probleme gestoßen. Diese habe ich nun m.E. lösen können und sollen anderen ggf. helfen.

      Vielen Dank auch an @paul53.

      Ziel: Die Lüftung und das Licht der Haube sowohl via Gerät, als per Bosch-App und Homekit steuern

      Gerät: Bosch DWK97JR60 (geht sicher auch mit anderen Dunstabzugshauben/ Geräten)
      Adapter: Yahka 0.92, Homeconnect 0.0.26

      1. Problem - Lüfter an/aus homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState steuert man den Datenpunkt nicht via true/false sondern via BSH.Common.EnumType.PowerState.On/ BSH.Common.EnumType.PowerState.Off

      Okay - das kann man via Mapping im Yahka-Service erledigen... irgendwie

      1. Problem - Das Arbeitslicht homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting darf nicht via true/false MIT ACK geändert werden, sondern nur ohne ACK, sonst geht das nicht

      2. Problem - Die direkte Verknüpfung der DP mit Homekit hat leider dazu geführt, dass die Kopplung zwischen Dunstabzugshaube und Herd ständig aufwendig neu hergestellt werden musste.

      Aufgrund der 3 Probleme habe ich ein eigenes Gerät erstellt... aber nun von Beginn an:

      1. Erstellen eines eigenen Objektes. Hierzu oben auf + drücken, wegen der Übersichtlichkeit habe ich ein Gerät mit 2 Tochterobjekten erstellt (states)
        bcc2c032-d00a-4278-9495-4e9b4df5e30b-image.png

      2. Erstellen des Gerätes in Yahka und verknüpfen mit den eigenen Datenpunkten
        1700a06a-2712-4091-a8db-535ea399f025-image.png

      2 Zusätzliche Services (zuerst den Fan, dann den Lightbulb) und mit den DP verknüpfen
      28fb55d3-8bd4-4438-93f5-ecb73cf1f50c-image.png
      747cd4f4-f5a5-4bc4-a0fc-e299b34dc180-image.png

      1. Erstellen eines Scriptes, welches die Status zwischen eigenen DP und den originalen DP syncronisiert. Hierbei ist wichtig, dass die eigenen DP nicht durch JavaScript-Anpassungen getriggert werden dürfen, da sich das Script ansonsten selbst steuert.

      In dem Script wird dann auch das Mapping erledigt (wenn BSH.Common.EnumType.PowerState.Off dann setze false usw.)

      Außerdem wird mit den Script sichergestellt, dass kein ACK gesendet wird (setState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting"/Arbeitslicht/, 'true', false). Deshalb ist das Script aus meiner Sicht nur mit Blockly nicht möglich. Falls doch, bitte Rückmeldung hier, dann weiss ich das für die Zukunft. Grundlage bildete natürlich Blockly...

      Jetzt nur noch das untere Script einbinden und starten. In den ersten beiden Blöcken übertrage ich die Änderung des Lichtes aus dem eigenen Datenpunkt an den original Datenpunkt und zurück. In den letzten beiden Blöcken das Ganze mit dem Lüfter.

      Bei Optimierungsmöglichkeiten - gern her damit.

      Das Ganze hier soll Euch als Unterstützung für eigene Dinge dienen. Ich hoffe ich war ausführlich genug und es hilft jemanden.

      // Uebertragen der Datenpunkt-Anderung des Lichtes (z.B. aus Homekit) auf Original Datenpunkt und damit steuern des Geraetes, Wichtig: Kein ACK setzen, da es im Adpater sonst nicht funktioniert
      on({id: '0_userdata.0.Dunstabzugshaube.Licht', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.from : "") != 'system.adapter.javascript.0') {
        if (getState("0_userdata.0.Dunstabzugshaube.Licht").val == true) {
          setState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting"/*Arbeitslicht*/, 'true', false);
        }
        if (getState("0_userdata.0.Dunstabzugshaube.Licht").val == false) {
          setState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting"/*Arbeitslicht*/, 'false', false);
        }
        }
      });
      
      // Uebertragen der Aenderungen am Original Datenpunkt bzgl. Licht (App, Bedienung am Geraet) zum setzen im eigenen Datenpunkt
      on({id: 'homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting").val == true) {
          setState("0_userdata.0.Dunstabzugshaube.Licht"/*Licht*/, true, true);
        }
        if (getState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.Cooking_Common_Setting_Lighting").val == false) {
          setState("0_userdata.0.Dunstabzugshaube.Licht"/*Licht*/, false, true);
        }
      
      // Uebertragen der Datenpunkt-Aenderungen des Luefters (z.B. aus Homekit) und steuern des Geraetes  
      on({id: '0_userdata.0.Dunstabzugshaube.Luefter', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.from : "") != 'system.adapter.javascript.0') {
        if (getState("0_userdata.0.Dunstabzugshaube.Luefter").val == true) {
          setState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState"/*Energiezustand*/, 'BSH.Common.EnumType.PowerState.On', false);
        }
        if (getState("0_userdata.0.Dunstabzugshaube.Luefter").val == false) {
          setState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState"/*Energiezustand*/, 'BSH.Common.EnumType.PowerState.Off', false);
        }
        }
      });
      
        // Uebertragen der Aenderung am Geraet (Bedienung oder APP) zum setzen im eigenen Datenpunkt  
      on({id: 'homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState").val == 'BSH.Common.EnumType.PowerState.On') {
          setState("0_userdata.0.Dunstabzugshaube.Luefter"/*Luefter*/, true, true);
        }
        if (getState("homeconnect.0.BOSCH-DWK97JR60-68A40E08BCBC.settings.BSH_Common_Setting_PowerState").val == 'BSH.Common.EnumType.PowerState.Off') {
          setState("0_userdata.0.Dunstabzugshaube.Luefter"/*Luefter*/, false, true);
        }
      });
      });
      

      So sieht das dann im iPhone aus. In der Übersicht sieht mann dann einen schönen drehenden Lüfter.!!IMG_2426.PNG IMG_2425.PNG

      paul53 2 Replies Last reply Reply Quote 1
      • paul53
        paul53 @oberfragger last edited by

        @oberfragger sagte:

        Deshalb ist das Script aus meiner Sicht nur mit Blockly nicht möglich.

        Doch ist es, denn der Block "steuere" ist setState(id, val), wobei ack = false ist, denn es ist die Voreinstellung, wenn kein ack angegeben wird.

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @oberfragger last edited by

          @oberfragger sagte:

          Bei Optimierungsmöglichkeiten - gern her damit.

          Blockly_temp.JPG

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

          Support us

          ioBroker
          Community Adapters
          Donate

          948
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          blockly bosch homeconnect adapter homekit javaskript adapter yahka
          2
          3
          993
          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