Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Gelöst]Alias mit Script erstellen - Button

    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]Alias mit Script erstellen - Button

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

      @paul53
      Hier die RAW Ansicht

      {
        "type": "state",
        "common": {
          "name": "AV-Receiver - Leiser",
          "role": "button",
          "type": "number",
          "write": true,
          "read": true,
          "min": 0,
          "alias": {
            "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown"
          },
          "desc": "per Script erstellt"
        },
        "native": {},
        "from": "system.adapter.javascript.0",
        "user": "system.user.admin",
        "ts": 1611037285630,
        "_id": "alias.0.01_Stube.04_Fernbedienung.AV_Receiver-Leiser",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      und Hier das Blockly wie es funktioniert
      Bildschirmfoto 2021-01-20 um 19.39.28.png
      und hier wie ich es gern hätte (nur im erst falls Block geändert)
      Bildschirmfoto 2021-01-20 um 19.42.42.png

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

        @wszene
        Fehler 1:

            "type": "number",
        

        Fehler 2: "wiederhole 8 mal" sendet 8 mal im ms-Abstand
        Fehler 3: Button schaltet man nicht mit "umschalten", sondern mit "steuere" mit "wahr"

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

          @paul53
          Das Script übernimmt doch aber die Daten vom Original DP oder täusche ich mich da und mit dem funktioniert es

          Das mit der Wiederholung ist weil einmal zu wenig ist
          Wie würdest du das denn machen wenn der der Button 8x gedrückt werden soll?

          Das mit steuere habe ich auch erst gehabt aber das hat leider nicht funktioniert

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

            @wszene sagte: Das mit steuere habe ich auch erst gehabt aber das hat leider nicht funktioniert

            Dann ist es kein Button, also ist die Rolle falsch.

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

              @paul53

              Der Orginal DP ist vom Harmony Adapter da ist es auch ein button

              EDIT:
              Ich habe es jetzt nochmal mit steuere probiert
              Mit dem Originalen DP geht es aber wieder nicht mit dem Alias

              Hier mal das was das Log dazu sagt

              javascript.0	2021-01-20 20:22:30.122	warn	(1070) at processTimers (internal/timers.js:497:7)
              javascript.0	2021-01-20 20:22:30.122	warn	(1070) at listOnTimeout (internal/timers.js:556:17)
              javascript.0	2021-01-20 20:22:30.118	warn	(1070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1475:29)
              javascript.0	2021-01-20 20:22:30.118	warn	(1070) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1417:20)
              javascript.0	2021-01-20 20:22:30.116	warn	(1070) You are assigning a boolean to the state "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeUp" which expects a number. Please fix your code to use a number or change the state type to boolean. T
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Wszene last edited by

                @wszene sagte: Ich kann mit den Alias z.B, Dein AV-Receiver lauter machen. Aber nur wenn ich direkt drauf drucke also im Browser direkt auf den Button

                Prüfe mal mit dem Test-Blockly wie sich der Datenpunkt "VolumeDown" verhält, wenn man den Button manuell (Tab Objekte) betätigt.

                Bild_2021-01-20_203053.png

                dslraser Wszene 2 Replies Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @paul53 last edited by

                  @paul53
                  ich habe bei mir gerade mal nachgesehen. Im Harmony Adapter sind die Button tatsächlich alle mit type number.
                  Ist das eigentlich okay ?

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

                    @dslraser sagte: Im Harmony Adapter sind die Button tatsächlich alle mit type number.
                    Ist das eigentlich okay ?

                    Nein

                    dslraser 2 Replies Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @paul53 last edited by

                      @paul53
                      nur ein Beispiel...

                      Screenshot_20210120-203711_Chrome.jpg

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

                        @wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:

                        Hier mal das was das Log dazu sagt

                        Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.

                        Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:

                          "common": {
                            "name": "AV-Receiver - Leiser",
                            "role": "button",
                            "type": "boolean",
                            "write": true,
                            "read": false,
                            "alias": {
                              "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown",
                              "write": "val ? 1 : 0"
                            },
                            "desc": "per Script erstellt"
                          },
                        
                        Wszene 1 Reply Last reply Reply Quote 0
                        • Wszene
                          Wszene @paul53 last edited by

                          @paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:

                          @wszene sagte: Ich kann mit den Alias z.B, Dein AV-Receiver lauter machen. Aber nur wenn ich direkt drauf drucke also im Browser direkt auf den Button

                          Prüfe mal mit dem Test-Blockly wie sich der Datenpunkt "VolumeDown" verhält, wenn man den Button manuell (Tab Objekte) betätigt.

                          Bild_2021-01-20_203053.png

                          Hier die Ausgabe

                          javascript.0	2021-01-20 20:42:53.243	info	(1070) script.js.Zum_Testen.Test-Skript: Leiser: 0 , ack: true
                          harmony.0	2021-01-20 20:42:53.225	info	(1055) hub busy, stateChange delayed: harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeUp = true
                          
                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Wszene last edited by

                            @wszene sagte: javascript.0 2021-01-20 20:42:53.243 info (1070) script.js.Zum_Testen.Test-Skript: Leiser: 0 , ack: true

                            Da muss vorher noch ein Log mit ack: false kommen.

                            1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @paul53 last edited by

                              @paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:

                              @dslraser sagte: Im Harmony Adapter sind die Button tatsächlich alle mit type number.
                              Ist das eigentlich okay ?

                              Nein

                              ich habe mal ein issue angelegt

                              https://github.com/Pmant/ioBroker.harmony/issues/68

                              dslraser created this issue in Pmant/ioBroker.harmony

                              open Button mit type number #68

                              1 Reply Last reply Reply Quote 1
                              • Wszene
                                Wszene @paul53 last edited by

                                @paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:

                                @wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:

                                Hier mal das was das Log dazu sagt

                                Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.

                                Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:

                                  "common": {
                                    "name": "AV-Receiver - Leiser",
                                    "role": "button",
                                    "type": "boolean",
                                    "write": true,
                                    "read": false,
                                    "alias": {
                                      "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown",
                                      "write": "val ? 1 : 0"
                                    },
                                    "desc": "per Script erstellt"
                                  },
                                

                                Mit der Änderung klappt es
                                Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias?

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

                                  @wszene sagte: Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias?

                                  Ja, außer common.read = false. Hier der Anfang:

                                  // Original-Datenpunkt
                                  const idOrigin = 'sonoff.0.Lichtschalter-Stube.POWER1'; 
                                  // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                                  // Bei Nicht-Verwendung Leerstring '' zuweisen
                                  const idRead = '';
                                   
                                  // Alias-Datenpunkt
                                  const idAlias = '01_Stube.01_Schalter.Schalter-Esstisch';
                                   
                                  var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                   
                                  // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                  nameAlias = 'Schalter - Esstisch';
                                  desc = 'per Script erstellt';
                                  typeAlias = 'boolean'; // oder 'number'
                                  // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                                  write = "val ? 1 : 0";
                                  
                                  Wszene 1 Reply Last reply Reply Quote 0
                                  • Wszene
                                    Wszene @paul53 last edited by

                                    @paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:

                                    common.read = false

                                    Was macht dieses Kommando nur für mein Verständniss

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

                                      @wszene sagte: nur für mein Verständniss

                                      Das bedeutet "write only", hat aber keine Auswirkung auf die Button-Funktionalität.

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

                                        @paul53
                                        OK danke Dir
                                        So funktioniert es
                                        Da werde ich jetzt erstmal all meine Aliase die als Button sind neu anlegen

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        733
                                        Online

                                        31.8k
                                        Users

                                        80.0k
                                        Topics

                                        1.3m
                                        Posts

                                        blockly communication javascript
                                        3
                                        21
                                        682
                                        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