Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. [1\. Gelöst - 2\. offen] Szene mit Alexa Dimmen und Szene Heizung 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

    [1\. Gelöst - 2\. offen] Szene mit Alexa Dimmen und Szene Heizung steuern

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

      Ich bekomme es einfach nicht hin 😞

      Ich habe 4 Homematic IP Heizkörperthermostate.

      Wenn ich sage, schalte die Heizung "An", möchte ich, dass sie in das Profil 1 wechselt. Dort ist tageszeitenabhängig die Temperatur hinterlegt.

      Wenn ich sage, schalte die Heizung "Aus", möchte ich, dass sie in das Profil 2 wechselt. Dort sind andere Einstellungen hinterlegt.

      Das funktioniert auch mittels einer Szene die ich angelegt habe.

      Nun möchte ich aber noch zusätzlich die Temperatur per Sprache steuern. Das klappt leider nicht 😞 Auch unabhängig von der "neuen" Version die du mir angehängt hast, klappt es bei der Alten auch immer noch "nur" mit den '%'. Eine Änderung auf 'Grad' hatte keine Auswirkungen und ging immer noch nur mit den '%'.

      Hast du eine Idee, was ich falsch mache? Ich habe auch noch nicht so ganz verstanden ob ich das nun in ein Skript packe oder in zwei unterschiedliche?

      Lieben Gruß, Karim.

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

        @Karim:

        (…)

        Ich habe 4 Homematic IP Heizkörperthermostate.

        Wenn ich sage, schalte die Heizung "An", möchte ich, dass sie in das Profil 1 wechselt. Dort ist tageszeitenabhängig die Temperatur hinterlegt.

        Wenn ich sage, schalte die Heizung "Aus", möchte ich, dass sie in das Profil 2 wechselt. Dort sind andere Einstellungen hinterlegt.

        Das funktioniert auch mittels einer Szene die ich angelegt habe.

        Nun möchte ich aber noch zusätzlich die Temperatur per Sprache steuern. Das klappt leider nicht 😞 Auch unabhängig von der "neuen" Version die du mir angehängt hast, klappt es bei der Alten auch immer noch "nur" mit den '%'. Eine Änderung auf 'Grad' hatte keine Auswirkungen und ging immer noch nur mit den '%'.

        Hast du eine Idee, was ich falsch mache? Ich habe auch noch nicht so ganz verstanden ob ich das nun in ein Skript packe oder in zwei unterschiedliche?

        (...) `
        Benutze dann dieses Skript:

        ! ````
        var forecreation = false; // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
        ! // Pfad der Lampen oder Szenen, welche Du schalten möchtest:
        // -----------------------------------------------------------------------------
        var Lampe1 = ""; // Pfad zwischen Anführungszeichen eintragen.
        var Lampe2 = ""; // Pfad zwischen Anführungszeichen eintragen.
        var Lampe3 = ""; // Pfad zwischen Anführungszeichen eintragen.
        var Lampe4 = ""; // Pfad zwischen Anführungszeichen eintragen.
        ! // Datenpunkte anlegen:
        // -----------------------------------------------------------------------------
        var idDatenpunkt = "alexa.Heizung"; // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
        createState(idDatenpunkt, 0, forecreation, { // Datenpunkt wird angelegt
        name: 'Szenario 1',
        desc: 'Szenario 1 an und aus',
        type: 'number',
        unit: 'Grad',
        def: 0,
        min: 0,
        max: 100,
        role: 'value'
        });
        ! // Funktionen:
        // -----------------------------------------------------------------------------
        ! // Check ob an, aus oder Zahl
        // -----------------------------------------------------------------------------
        function checking(dp) {
        dpWert = dp.state.val;

         if (dpWert == 100) { // <-- Wird ausgeführt wenn AN.
        	setState(Lampe1, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe2, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe3, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe4, dpWert /* dpWert durch gewünschten WERT ersetzen */);
         } else if (dpWert === 0) { // <-- Wird ausgeführt wenn AUS.
        	setState(Lampe1, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe2, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe3, dpWert /* dpWert durch gewünschten WERT ersetzen */);
        	setState(Lampe4, dpWert /* dpWert durch gewünschten WERT ersetzen */);
         } else { // <-- Wird ausgeführt wenn eine Zahl zwischen 1 und 99 genannt wird und die Zahl ist über "dpWert" abrufbar.
            setState(Lampe1 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
         }
        

        }

        ! // Abfrage des Datenpunkts:
        // -----------------------------------------------------------------------------
        on({id: "javascript.0." + idDatenpunkt, change:'any'}, function (dp) {
        checking(dp);
        });

        Ich habe leider selbst keine Heizung die "Smart Home" ist. Daher müsste hier bitte jemand anderes berichten, bei welchen Datenpunkt-Einstellungen die Einheit "Grad" funktioniert.
        
        Mit diesem Skript funktioniert aber "AN", "AUS" und "Stelle XYZ auf 21 (oder eine andere Zahl zwischen 1 und 99)" ohne Einheit.
        1 Reply Last reply Reply Quote 0
        • K
          Karim last edited by

          Ein ganz großen dank an dich!

          Jetzt funktioniert es zu 99% 😄

          Das Ganze sieht nun folgendermaßen aus:

          var forecreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
          
          // Pfad der Lampen oder Szenen, welche Du schalten möchtest:
          // -----------------------------------------------------------------------------
          var Heizkörperthermostat1 = "hm-rpc.1.000397098A3EDA.1.SET_POINT_TEMPERATURE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat2 = "hm-rpc.1.000397098A3ED9.1.SET_POINT_TEMPERATURE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat3 = "hm-rpc.1.000A15699FE877.1.SET_POINT_TEMPERATURE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat4 = "hm-rpc.1.000397098A3FCC.1.SET_POINT_TEMPERATURE";            // Pfad zwischen Anführungszeichen eintragen.
          var Wandthermostat5 = "hm-rpc.1.000313C99548B8.1.SET_POINT_TEMPERATURE";                   // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat11 = "hm-rpc.1.000397098A3EDA.1.ACTIVE_PROFILE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat21 = "hm-rpc.1.000397098A3ED9.1.ACTIVE_PROFILE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat31 = "hm-rpc.1.000A15699FE877.1.ACTIVE_PROFILE";            // Pfad zwischen Anführungszeichen eintragen.
          var Heizkörperthermostat41 = "hm-rpc.1.000397098A3FCC.1.ACTIVE_PROFILE";            // Pfad zwischen Anführungszeichen eintragen.
          var Wandthermostat51 = "hm-rpc.1.000313C99548B8.1.ACTIVE_PROFILE";                   // Pfad zwischen Anführungszeichen eintragen.
          
          // Datenpunkte anlegen:
          // -----------------------------------------------------------------------------
          var idDatenpunkt = "alexa.Heizung";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
          createState(idDatenpunkt, 0, forecreation, {                                  // Datenpunkt wird angelegt
               name: 'Heizung Szenario 1',
               desc: 'Heizung Szenario 1 an und aus',
               type: 'number',
               unit: 'Grad',
               def:  0,
               min:  0,
               max:  100,
               role: 'value'
          });
          
          // Funktionen:
          // -----------------------------------------------------------------------------
          
          // Check ob an, aus oder Zahl
          // -----------------------------------------------------------------------------
          function checking(dp) {
              dpWert = dp.state.val;
          
               if (dpWert == 100) { // <-- Wird ausgeführt wenn AN.
                setState(Heizkörperthermostat11, 1 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat21, 1 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat31, 1 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat41, 1 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Wandthermostat51, 1 /* dpWert durch gewünschten WERT ersetzen */);
               } else if (dpWert === 0) { // <-- Wird ausgeführt wenn AUS.
                setState(Heizkörperthermostat11, 2 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat21, 2 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat31, 2 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Heizkörperthermostat41, 2 /* dpWert durch gewünschten WERT ersetzen */);
                setState(Wandthermostat51, 2 /* dpWert durch gewünschten WERT ersetzen */);
               } else { // <-- Wird ausgeführt wenn eine Zahl zwischen 1 und 99 genannt wird und die Zahl ist über "dpWert" abrufbar.
                setState(Heizkörperthermostat1 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
                setState(Heizkörperthermostat2 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
                setState(Heizkörperthermostat3 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
                setState(Heizkörperthermostat4 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
                setState(Wandthermostat5 /* Lampe1 durch gewünschten Heizkörper ersetzen */, dpWert);;
               }
          }
          
          // Abfrage des Datenpunkts:
          // -----------------------------------------------------------------------------
          on({id: "javascript.0." + idDatenpunkt, change:'any'}, function (dp) {
              checking(dp);
          });
          

          Das einzige was spinnt ist die Bezeichnung mit "Grad" und "%".

          Ich sage: Stell die Heizung auf 15 –> Sie stellt die Heizung auf 15 Grad

          Ich sage: Stell die Heizung auf 15 % --> Sie stellt die Heizung auf 15 Grad

          Ich sage: Stell die Heizung auf 15 Grad --> Sie Antwortet: sie kann das nicht :?

          Mit An und Aus klappt es genau so wie eich es mir vorgestellt habe 😄

          Vielen Lieben Dank und Viele Grüße, Karim.

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

            @Karim:

            (…)Das einzige was spinnt ist die Bezeichnung mit "Grad" und "%".

            Ich sage: Stell die Heizung auf 15 --> Sie stellt die Heizung auf 15 Grad

            Ich sage: Stell die Heizung auf 15 % --> Sie stellt die Heizung auf 15 Grad

            Ich sage: Stell die Heizung auf 15 Grad --> Sie Antwortet: sie kann das nicht :? (...) `
            Ja, bei sowas ist die Gute etwas zickig 😉

            Freud mich aber, dass wir die 99% erreicht haben! 😄

            Vielleicht kann ja jemand mit einer funktionierenden Heizung sagen, wie das mit Alexa und dem Wort "Grad" funktioniert?!

            1 Reply Last reply Reply Quote 0
            • K
              Karim last edited by

              Ja, das wäre schön…Also Aufruf an alle anderen, wo liegt der Fehler? 😛

              Irgendwie möchte man ja dann doch schon die 100% erreichen 😛

              Aber dir nochmal 1000 Dank 😄

              Lieben Gruß, Karim.

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

                @Karim:

                (…)Aber dir nochmal 1000 Dank 😄 (...) `
                Sehr gerne! 🙂

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

                  Hatte noch eine Idee.

                  Da ich aber - wie gesagt - noch keinen entsprechenden Thermostat habe, kann ich sie leider nicht testen…

                  Definiere den Datenpunkt mal so:

                  // Datenpunkte anlegen:
                  // -----------------------------------------------------------------------------
                  var idDatenpunkt = "alexa.Heizung";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                  createState(idDatenpunkt, 0, forecreation, {                                  // Datenpunkt wird angelegt
                       name: 'Heizung Szenario 1',
                       desc: 'Heizung Szenario 1 an und aus',
                       type: 'number',
                       unit: '°C',			// <- NEU / GEÄNDERT
                       def:  0,
                       min:  0,
                       max:  100,
                       role: value.temperature	// <- NEU / GEÄNDERT
                  });
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • K
                    Karim last edited by

                    Danke dir, leider hat es mir diesen Werten auch nicht geklappt 😞

                    value.temperature kommt aber noch in '…' oder? Habe es zumindest so gemacht, da es sonst eine Fehlermeldung gab.

                    Lieben Gruß, Karim.

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

                      @Karim:

                      (…)value.temperature kommt aber noch in '...' oder? Habe es zumindest so gemacht, da es sonst eine Fehlermeldung gab.(..) `
                      stimmt :oops:

                      ok, wir arbeiten weiter daran… 😄

                      1 Reply Last reply Reply Quote 0
                      • K
                        Karim last edited by

                        Hehe ja, ich werde brav immer alles ausprobieren, was du vorschlägst 🙂

                        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

                        946
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        3
                        26
                        5508
                        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