Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Virtueller Schalter funktioniert nicht

    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

    [gelöst] Virtueller Schalter funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      HeliosFan @paul53 last edited by HeliosFan

      @paul53
      Also wenn ich den virtuellen Schalter über die Alexa App betätige geht er auf "true" wechselt aber auf rot.
      Im Log kommen Fehler

      a7782fd3-da06-4054-bd17-f3b647d98c78-grafik.png

      Dabei ist Zeile 3 der Oberschwachsinn. Das Object ist sehr wohl definiert.
      Und wenn ich über Alexa wieder ausschalte ist auch "false" rot.
      Mehr passiert einfach nicht.
      Keine Sprachausgabe, keine Wertänderung an den Thermostaten.

      paul53 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @HeliosFan last edited by

        @HeliosFan sagte:

        geht er auf "true" wechselt aber auf rot.

        Der Wechsel auf rot ist normal.

        @HeliosFan sagte in Virtueller Schalter funktioniert nicht:

        Im Log kommen Fehler

        Was steht in Zeile 24 des von Blockly erzeugten Javascript-Codes ?

        @HeliosFan sagte in Virtueller Schalter funktioniert nicht:

        Mehr passiert einfach nicht.

        Bei Fehlern wird die Skriptausführung abgebrochen.

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

          @paul53 ```

          var zuletzt_eingestelle_Temperatur, timeout;
          
          
          on({id: 'javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen', change: "any"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen").val == true) {
              zuletzt_eingestelle_Temperatur = getState("fritzdect.0.Hgroup_3D:48:6F-900.lasttarget").val;
              setState("alexa2.0.Echo-Devices.G090P3088455013L.Commands.speak"/*speak*/, 'schnelles auheizen gestartet');
              setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, 28);
              console.log('schnellheizen');
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              timeout = setTimeout(function () {
                if (compareTime('06:00', '12:00', "between", null) || compareTime('17:00', '22:00', "between", null)) {
                  setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, getState("fritzdect.0.Hgroup_3D:48:6F-900.comfytemp").val);
                } else {
                  setState("fritzdect.0.Hgroup_3D:48:6F-900.targettemp"/*Target Temp*/, zuletzt_eingestelle_Temperatur);
                }
                setStateDelayed("alexa2.0.Echo-Devices.G090P3088455013L.Commands.speak"/*speak*/, 'schnelles auheizen beendet', 1000, false);
              }, 1800000);
            }
          });
          
          obj.id;
          
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @HeliosFan last edited by

            @HeliosFan

            Da lungert irgendwo noch ein Block "Objekt ID" rum, der gelöscht werden muss.

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

              @paul53
              ok, aber wo ?
              ich finde nichts
              {
              "from": "system.adapter.javascript.0",
              "user": "system.user.admin",
              "ts": 1573659650120,
              "common": {
              "name": "Virtueller Schalter Schnelles_Aufheizen",
              "type": "boolean",
              "role": "switch",
              "read": true,
              "write": true,
              "def": false,
              "smartName": {
              "de": "schnellheizen",
              "smartType": "SWITCH"
              }
              },
              "native": {},
              "acl": {
              "object": 1638,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator",
              "state": 1638
              },
              "_id": "javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen",
              "type": "state"
              }

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

                @HeliosFan sagte:

                ok, aber wo ?

                Im Blockly. Vielleicht hat sich der verwaiste Block hinter dem Trigger-Block versteckt ? Dann verschiebe mal den gesamten Triggerblock, damit er zum Vorschein kommt.

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

                  @paul53
                  ja das wars.
                  Ändert aber nicht, das Blockly wird nicht abgearbeitet.
                  Es wird nur die Bedingung erfüllt, die im Timeout steht:
                  17d57c05-a7a9-4087-9845-867428293b68-grafik.png
                  Und die Heizung auf 23 Grad regelt (Comfort Temp)

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

                    @HeliosFan sagte:

                    virtuellen Schalter über die Alexa App betätige geht er auf "true" wechselt aber auf rot.

                    Dann tut sich nichts und im Reiter "Log" erscheint kein 'schnellheizen' ?

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

                      @paul53 so ist es. Leider

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        HeliosFan @HeliosFan last edited by

                        Hat vielleicht sonstwer noch eine Idee

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

                          @HeliosFan
                          Kleines Testskript:

                          log('Start Testskript');
                          on({id: 'javascript.0.Eigene_Datenpunkte.01Virtuelle_Schalter.01Schnelles_Aufheizen'}, function(dp) {
                             log('Test virtuellen Schalter: ' + dp.state.val);
                          });
                          
                          H 1 Reply Last reply Reply Quote 0
                          • H
                            HeliosFan @paul53 last edited by HeliosFan

                            @paul53 said in Virtueller Schalter funktioniert nicht:

                            log('Start Testskript');

                            javascript.0 2019-11-14 17:37:16.043 info script.js.Skripte.Heizung.Test: registered 1 subscription and 0 schedules
                            javascript.0 2019-11-14 17:37:16.042 info script.js.Skripte.Heizung.Test: Start Testskript
                            javascript.0 2019-11-14 17:37:16.007 info Start javascript script.js.Skripte.Heizung.Test

                            mehr passiert nicht
                            44ddcc1c-69ec-40b4-80f2-06dd923d741a-grafik.png

                            Hab den DP zwischenzeitlich mal gelöscht und neu erstellt

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

                              @HeliosFan sagte:

                              mehr passiert nicht

                              Damit was passiert, muss erst der Wert des Datenpunktes aktualisiert werden (im Reiter "Objekte" abschicken). Wenn Du beides (Reiter "Objekte" und Reiter "Skript") im gleichen Browser-Tab hast, siehst Du Log-Einträge nach Reiter-Wechsel nicht bei den Skripten, sondern nur im Reiter "Log".

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

                                @paul53
                                Wenn ich den Wert manuell ändere erscheint nur das im Log, sonst nichts

                                890c79ec-d73e-40fa-8070-7dd8275e77d1-grafik.png

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

                                  @HeliosFan sagte:

                                  erscheint nur das im Log

                                  Mehr wollten wir nicht sehen: Der Trigger funktioniert !

                                  Ist das Blockly-Skript deaktiviert ? Wenn nicht, hätte ich einen weiteren Log-Eintrag 'schnellheizen' um 17:48:42 Uhr erwartet.

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

                                    @paul53
                                    wenn das Blockly läuft und ich den Datenpunkt manuell auf true setzte, wird das Blockly durchlaufen.
                                    Per Sprachbefehl passiert nichts weiter als dass Alexa meldest OK.

                                    paul53 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @HeliosFan last edited by

                                      @HeliosFan sagte:

                                      wird das Blockly durchlaufen.

                                      Das ist schon mal gut.

                                      @HeliosFan sagte in Virtueller Schalter funktioniert nicht:

                                      Per Sprachbefehl passiert nichts weiter als dass Alexa meldest OK.

                                      Da kann ich nicht mitreden, denn ich verwende keine Sprach-Adapter.

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

                                        @HeliosFan
                                        Kennst Du das hier ?

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

                                          @paul53 Nochmal recht herzlichen Dank für Deine Geduld mit mir alten Esel.
                                          Manchmal sieht man den Wald vor Bäumen nicht, oder vielleicht denke ich auch zu umständlich 😊 😊
                                          Ich hab es gelöst.
                                          Zunächt habe ich den virtuellen Schalter neu erstellt (auch im cloud.0 Adapter) und neu von Alexa suchen lassen.
                                          Da Alexa jeden Befehl erst mal mit OK beantwortet (sofern nichts anderes eingestellt) ging die Ausgabe über den speak Befehl unter, da die Verzögerung fehlte.
                                          Dann fehlte noch die Rückstellung des virtuellen Schalter auf false, nachdem das Blockly durchgelaufen ist und die Synchronisation mit meinen HMIP Wandthermostat, der die vom Script vorgenommene Temperatur Anhebung nicht mitbekommen hatte.

                                          Nun für alle die mit der selben oder ähnlich gelagerten Problematik zu kämpfen haben hier das finale Blockly:

                                          8c87c9b9-6a93-489c-867f-828cf03f56f9-grafik.png

                                          der funktionierende Schalter:

                                          0feaea4c-ed14-4690-82b9-38bc665eca88-grafik.png

                                          Und die Cloud Anbindung für Alexa:

                                          c8a3f600-e4d4-4da9-bf3f-d21117f71474-grafik.png

                                          Und aufrufen kann man es mit: "Alexa schalte schnellheizen ein"

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          789
                                          Online

                                          31.9k
                                          Users

                                          80.3k
                                          Topics

                                          1.3m
                                          Posts

                                          3
                                          33
                                          1656
                                          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