Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe bei Scripterstellung!

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    925

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Hilfe bei Scripterstellung!

Scheduled Pinned Locked Moved Skripten / Logik
37 Posts 7 Posters 5.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    djtale2003
    wrote on last edited by
    #21

    UPDATE:

    Ich habe das Denon Script jetz in den Ordner common verschoben und neu gestartet. Jetzt reagiert er auf die Wertänderung. Lediglich das Dimmen des Display geht nicht.

    Das Script von paul53 funktioniert aber leider auch nicht. Die Werte des Denon bekomme ich ja mittlerweile in Homematic angezeigt, und die dort hinterlegten Programme funtionieren auch.

    Wenn mir jetzt noch jemand das Script von paul53 anpasst, wäre super. Es geht dabei nur noch um die Lautstärke. Der AVR startet mit einem Wert von 30. Der Kanal MPLAY soll aber mit 50 starten. Beim Wechsel des Kanals soll die Lautstärke wieder auf die vorherige Lautstärke (wenn nicht vorhanden auf 30) gesenkt werden. In dem vorhanden Script kann alles, was mit Leinwand zu tun hat gelöscht werden.

    Die Laustärkeregelung des Scriptes funktioniert soweit. Die Werte ändern sich in iobroker auch korrekt, nur am reciever nicht. Der Haken zum Bestätigen der Änderung muss wohl noch durch das Script betätigt werden. Wie kann ich dem script einen Startwert für die Laautstärke der anderen Kanäle svorgeben. Das müsste ja die Zeile````
    var level = getState(idLevel).val;

    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #22
      var level = getState(idLevel).val;
      

      Damit wird die Skriptvariable level mit dem aktuellen Lautstärkewert bei Skriptstart initialisiert.

          if(select === 7 && power) {
              level = getState(idLevel).val;
      
      

      merkt sich den eingestellten Lautstärkewert in der Skriptvariablen level.

             setState(idLevel, level);  // alte Lautstärke
      

      setzt die Lautstärke wieder auf den gemerkten Wert.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • D Offline
        D Offline
        djtale2003
        wrote on last edited by
        #23

        Die Wertänderung wird durch das Script nicht bestätigt:
        3384_unbenannt-2.jpg

        Ich habe jetzt mal alles mit Leinwand gelöscht. Nun geht gar nix mehr. Was habe ich falsch gemacht?

        var idSVPower = getIdByName('Denon Power');
        var idSVInput = getIdByName('Denon Input');
        var idPower = 'javascript.0.Denon.Zone_Main.Power'; 
        var idSelect = 'javascript.0.Denon.Zone_Main.Select_Input';
        var idLevel = 'javascript.0.Denon.Zone_Main.Master_Volume';  //ID für Lautstärke-Datenpunkt
        
        var power = getState(idPower).val;
        var select = getState(idSelect).val;
        var level = getState(idLevel).val;
        
        function Leinwand() {
            if(select === 7 && power) {
                level = getState(idLevel).val;
                setState(idLevel, 50);
            } else {    
               setState(idLevel, level);  // alte Lautstärke
            }
        }       
        
        // bei Script start in SV schreiben
        setState(idSVPower, power);
        setState(idSVInput, select);
        Leinwand();
        
        // bei Änderung in SV schreiben
        on(idPower, function(dp) {
            power = dp.state.val;
            setState(idSVPower, power);
        });
        on(idSelect, function(dp) {
            select = dp.state.val;
            setState(idSVInput, select);
        });       
        
        1 Reply Last reply
        0
        • L Offline
          L Offline
          Lucky
          wrote on last edited by
          #24

          es ist sollte zusätzlich immer beachtet werden, das nicht jeder AVR alle Funktionen unterstützt !

          was passiert wenn du die States manuell mit den State UPDATE aktualisierst ? die, die nicht geupdatet werden, sind auch nicht unterstützt ! Welche Firmware hast du ?

          Alles States die als Role"Button" haben, sollten auch als Button dargestellt werden, bei mir sieht das so aus ..

          Übrigens, der "State Command to AVR" dient dazu per Hand Kommandos aus der API an den Denon zu senden, und hat für den normalen Ablauf keine Relevanz !
          2611_denon_states.png

          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #25

            @djtale2003:

            Nun geht gar nix mehr. Was habe ich falsch gemacht? `
            Nichts, denn das Skript macht was es soll: Es hat den Wert für Master_Volume auf 50 mit ack=false gesetzt.
            @djtale2003:

            Die Wertänderung wird durch das Script nicht bestätigt: `
            Diese Bestätigung sollte durch das Denon-Skript erfolgen, nachdem der Lautstärkewert gesendet und vom Denon quittiert wurde. Das passiert anscheinend aber nicht. Offenbar ist das Denon-Skript nicht (voll) kompatibel zu Deinem Denon AVR.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • D Offline
              D Offline
              djtale2003
              wrote on last edited by
              #26

              @paul53:

              Nichts, denn das Skript macht was es soll: Es hat den Wert für Master_Volume auf 50 mit ack=false gese ` Das vonm mir überarbeitete Script ändert leider keine Werte.

              @Lucky:

              was passiert wenn du die States manuell mit den State UPDATE aktualisierst ? ` Der Wert in iobroker wird auf den tatsächlichen Wert des Denon geändert.

              @Lucky:

              die, die nicht geupdatet werden, sind auch nicht unterstützt ! Welche Firmware hast du ? ` Der Denon hat die aktuellste Version 4800-8776-1654. Warum werden de Werte dann von dem Verstärker geändert, wenn ich die Eingabe in iobroker mit dem Häckchen bestätige?

              @Lucky:

              Alles States die als Role"Button" haben, sollten auch als Button dargestellt werden, bei mir sieht das so aus .. ` Das liegt offensichtlich an Firefox. Mit Microsoft Edge sind die Button da.

              1 Reply Last reply
              0
              • paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #27

                @djtale2003:

                Das vonm mir überarbeitete Script ändert leider keine Werte. `
                Du musst weiterhin bei jeder Änderung die Funktion Leinwand() aufrufen, obwohl der Name jetzt unpassend ist. Habe leider übersehen, dass Du die Funktionsaufrufe gelöscht hast.

                // bei Änderung in SV schreiben und Funktion aufrufen
                on(idPower, function(dp) {
                    power = dp.state.val;
                    setState(idSVPower, power);
                    Leinwand();
                });
                on(idSelect, function(dp) {
                    select = dp.state.val;
                    setState(idSVInput, select);
                    Leinwand();
                });
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  djtale2003
                  wrote on last edited by
                  #28

                  Ok. das ist ja kein Problem. da passiert ja nix.

                  Jetzt muss das Script nur noch den Wert bestätigen können…

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    Lucky
                    wrote on last edited by
                    #29

                    die States werden bestätigt wenn vom AVR eine Quittierung erfolgt !

                    Allerdings werden nur Wertänderungen zurück gemeldet

                    Beispiel:

                    1.Skript ändert Lautstärke von 44 auf 45 -> AVR Quittiert dies, State wird bestätigt

                    2.Fernbedienung ändert die Lautstärke von 44 auf 45 -> AVR Quittiert dies, State wird Aktualisiert und bestätigt.

                    3.Lautstärke am AVR ist 44 und das Skript schreibt erneut 44, dies Quittiert der AVR nicht, da es für ihn keine Wertänderung darstellt, entsprechend wird auch der State nicht bestätigt !

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      Lucky
                      wrote on last edited by
                      #30

                      suche diese Passage und ändere wie folgt

                      on({id:"javascript.0.Denon.Zone_Main.Master_Volume",change:"any"}, function (obj){
                          if (!obj.state.ack) { 
                          sendMessage('MV'+obj.state.val+'');
                      
                          if(obj.state.val==obj.oldState.val){sendMessage('MV?')}
                      
                          }
                      

                      Das sollte dein Problem beheben

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        djtale2003
                        wrote on last edited by
                        #31

                        Vielen dank nochmal für den Megasupport!

                        Jetzt wird es komisch. Ich habe das Denonscript wie von lucky vorgegeben geändert. Nun passiert folgendes:

                        Mit einem Tastendruck auf der Fernbedienung Media Player schaltet sich der Reciever ein:

                        Kanal -> Mediaplayer

                        Vol. -> 50

                        Schalte ich den Reciever mit einem anderen Eingang ein, passiert foglendes:

                        Kanal -> Media Player

                        Vol. -> 30

                        Wenn ich von einem anderen Kanal mit z.B. Vol. 30 auf den Media Player Kanal schalte, ändert sich die Lautstärke nicht.

                        1 Reply Last reply
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by
                          #32

                          @djtale2003:

                          Wenn ich von einem anderen Kanal mit z.B. Vol. 30 auf den Media Player Kanal schalte, ändert sich die Lautstärke nicht. `
                          Den Funktionsaufruf Leinwand() hast Du wieder drin bei Select_Input ?

                          on(idSelect, function(dp) {
                              select = dp.state.val;
                              setState(idSVInput, select);
                              Leinwand();
                          });
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #33

                            @djtale2003:

                            Schalte ich den Reciever mit einem anderen Eingang ein, passiert foglendes:

                            Kanal -> Media Player

                            Vol. -> 30 `
                            Nach Power on brauchen die anderen Zustände wahrscheinlich erst ein Update. Dann ersetze mal den Funktionsaufruf Leinwand() bei Power:

                            on(idPower, function(dp) {
                                power = dp.state.val;
                                setState(idSVPower, power);
                                if(power) setState('Denon.System.UPDATE', true);
                            });
                            

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              Lucky
                              wrote on last edited by
                              #34
                              Nach Power on brauchen die anderen Zustände wahrscheinlich erst ein Update. Dann ersetze mal den Funktionsaufruf Leinwand() bei Power:
                              

                              brauchen sie im Normalfall nicht, bei start des Skript wird das update einmal automatisch durchgeführt um alle States zu aktualisieren, danach wird bei Änderung aktualisiert

                              1 Reply Last reply
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by
                                #35

                                @Lucky:

                                danach wird bei Änderung aktualisiert `
                                Bekommt das Skript den Kanalwechsel mit, wenn der Denon während des Betriebes von Kanal "Media Player" ausgeschaltet und mit einem anderen Kanal wieder eingeschaltet wird ?

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  Lucky
                                  wrote on last edited by
                                  #36

                                  Ja das Skript bekommt es mit, da der Denon nach einem Power on request selbständig eine Reihe an Statusinformationen sendet, u.a auch Lautstärke und Quelle.

                                  Die Kommunikation ist auf beiden Seiten grundsätzlich Event gesteuert und läuft ohne Pollen ab. Sobald sich am Gerät etwas ändert, sendet es den neuen Status.

                                  1 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    djtale2003
                                    wrote on last edited by
                                    #37

                                    Guten Abend.

                                    Ich habe das Script von Paul53 deaktiviert. Zum einen bin ich zu keiner Lösung gekommen, und hier im Forum konnte mir auch keiner helfen. Zum Anderen hat sich beim Einschalten des Denon immer die IP im Script geändert, sie wurde erweitert mit <u>NSET1SNM 255</u>. Danach war der Denon logischerweise nicht mehr mit ioBroker verbunden. Mit der Deaktivierung des Scriptes hat sich das Problem gelöst.

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    769

                                    Online

                                    32.6k

                                    Users

                                    82.2k

                                    Topics

                                    1.3m

                                    Posts
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Home
                                    • Recent
                                    • Tags
                                    • Unread 0
                                    • Categories
                                    • Unreplied
                                    • Popular
                                    • GitHub
                                    • Docu
                                    • Hilfe