Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. On mit mehreren State Trigger

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    On mit mehreren State Trigger

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

      Tut bei mir nur leider nicht … aber er weiss es schon 🙂

      1 Reply Last reply Reply Quote 0
      • M
        Marty56 last edited by

        So eine schnelle Reaktion habe ich noch nie erlebt. Ich bin beeindruckt.

        Die Syntax, die jetzt möglich ist, von meinem Beispiel am Anfang ist dann

        
         on(["hm-rpc.0.JEQ0092995.1.STATE","hm-rpc.0.KEQ0165510.1.STATE"] , function (obj) {
                  ....
            });
        
        

        Ist mein Verständnis korrekt?

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

          Genau. Und on({id: […], change: "ne"}, function (obj) { sollte auch tun, aber das hat bei mir nicht geklappt. Aber wie geschrieben schaut duh das Bluefox schon an.

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

            Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8

            Bitte testen wer mag

            1 Reply Last reply Reply Quote 0
            • blauholsten
              blauholsten Developer last edited by

              @apollon77:

              Ich habe Array Subscribe auf Github gefixt. wird dann 3.3.8

              Bitte testen wer mag `
              Klappt!

              nice

              1 Reply Last reply Reply Quote 0
              • M
                Marty56 last edited by

                Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme.

                Auf meinem Mac mache ich das Update der Platform mit

                sudo ./iobroker stop
                sudo ./iobroker update
                sudo ./iobroker upgrade self
                sudo ./iobroker upgrade
                sudo ./iobroker start
                
                

                Damit bekomme ich die Production Version.

                Vermutlich benötige ich bei einem der Befehle eine "– xxxx " extension.

                Noch eine (dumme) Frage:

                Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC?

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

                  @Marty56:

                  Ich würde auch gern testen, mir ist aber nicht ganz klar, wie ich an die Pre Release herankomme. `

                  Geht in der Admin UI.

                  Oben sind kleine Buttons und das dritte von Links ist ein Github-Symbol. Da drauf - ist "Custom Install" und dort im ersten tab den Adapter wählen den Du willst (in dem Fall hier "Javascript") und dann updated er direkt vom Github.

                  @Marty56:

                  Noch eine (dumme) Frage:

                  Zur Ausgabe eines Mp3 Files muss man sein File unter Linux wohl in das OPT Verzeichnis kopieren, in dem auch die Sprachausgabe ihr Mp3 Files ablegt. Wo liegt dieses Verzeichnis auf dem MAC? `
                  Machst DU dazu bitte nen extra Thread auf ?! Wollen nicht zuviele Themen mischen 🙂

                  1 Reply Last reply Reply Quote 0
                  • M
                    Marty56 last edited by

                    Ich sehe kein "Custom install", wenn ich das GitHub Symbol anklicke.

                    Muss ich da noch eine URL eintragen?
                    2722_bildschirmfoto_2017-05-23_um_09.22.19.png
                    2722_bildschirmfoto_2017-05-23_um_09.23.26.png

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

                      "von github" und dort im dropdown Javascript und Installieren

                      Der Mouse-Over von dem Github Button sagt an sich "Custom Install" :-))

                      1 Reply Last reply Reply Quote 0
                      • M
                        Marty56 last edited by

                        Hallo

                        Das Hatte ich schon so gemacht. Jetzt sehe ich aber immer noch die alte Version und rechts daneben die neue Version. Leider bekomme ich nicht die neue Version installiert. Ich habe auch schon iobroker heruntergefahren und wieder gestartet ohne Erfolg.

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

                          Wenn du den javascript_Adapter neu startest was steht denn dann im Log? Da ist in einer der ersten zeilen die Version drin.

                          1 Reply Last reply Reply Quote 0
                          • M
                            Marty56 last edited by

                            Ok.

                            Da steht Version 3.3.8.

                            Dann werde ich mal die neuen Listentrigger testen.

                            Danke!!

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

                              In der UI wird in einer Spalte immer die Version aus dem entsprechenden gewählten Repository angezeigt und daneben die installierte Version. Bei manuellen Updates aus dem Github kann es da anzeigetechnisch zu komischen Situationen kommen 😉

                              1 Reply Last reply Reply Quote 0
                              • M
                                Marty56 last edited by

                                Es scheint, dass die Funktion funktioniert, wenn man keine weiteren Parameter wie zum Beispiel change: 'gt' hinzufügt.

                                Wenn ich Letztes tue, werden andauernd irgendwelche Phantom- Events getriggert, die keinen Sinn machen.

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

                                  Hast Du mal deinen Code?!

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    Marty56 last edited by

                                    Das ist der Code der funktioniert.

                                    `var KE_Fenster                       = [K1_Fenster_Nord,   K3_Fenster_Sued_links,K3_Fenster_Sued_rechts];
                                    var KE_Fenster_namen           = ["Fenster Keller 1","Fenster Keller 3 links","Fenster Keller 3 links"];
                                    
                                    var Fenster_offen                    = "javascript.0.Fenster_offen"; createState('Fenster_offen','');
                                    var KE_Fenster_offen               = "javascript.0.KE_Fenster_offen"; createState('KE_Fenster_offen','');
                                    var KE_Fenster_offen_namen  = "javascript.0.KE_Fenster_offen_namen"; createState('KE_Fenster_offen_namen','');
                                    
                                    function checkwindow(Fenster,Fenster_namen,Fenster_offen) {
                                        var delimiter = "";
                                        var offen = "";
                                    
                                        Fenster.forEach.call(Fenster, function (item, i, arr) 
                                            {   if (getState(item).val === true) {
                                                    offen = offen + delimiter + Fenster_namen[i];
                                                    delimiter = ", ";
                                                }
                                            }
                                        );
                                        setState(Fenster_offen,offen);
                                    }
                                    
                                    on(KE_Fenster , function(obj) { 
                                        checkwindow(KE_Fenster,KE_Fenster_namen,KE_Fenster_offen);
                                        console.log("offene Fenster KE: " + getState(KE_Fenster_offen).val);});` 
                                    
                                    und wenn ich die untere Funktion mit "change: " erweitere bekomme ich eine endlos Schleife
                                    
                                    `~~[code]~~on({KE_Fenster, change: "gt" }, function(obj) { 
                                        checkwindow(KE_Fenster,KE_Fenster_namen,KE_Fenster_offen);
                                        console.log("offene Fenster KE: " + getState(KE_Fenster_offen).val);});
                                    [/code]`
                                    
                                    Es würde mich nicht wundern, wenn ich einen Fehler habe. Mein Erfahrungszeitraum mit iobroker ist erst 2 Tage.[/i]
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 last edited by

                                      Vor KE_Fenster fehlt "id:" … wenn du die Daten als Objekt übergibst dann braucht er ja die Info was das Array ist

                                      Also: on({id:KE_Fenster, change:"gt"}, ...

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Marty56 last edited by

                                        Danke!.

                                        😄 Mit der korrigierten Syntax geht es.

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          tempestas last edited by

                                          Hallo Apollon, hallo Marty,

                                          villeicht könnt ihr mir helfen.

                                          Ich bekomme beim updaten des JS Adapters folgende Fehler

                                          ! iobroker 2017-07-23 13:25:48.327 info exit 1
                                          ! iobroker 2017-07-23 13:25:48.317 error at null._onTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpload.js:321:29)
                                          ! iobroker 2017-07-23 13:25:48.317 error at upload (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpload.js:280:57)
                                          ! iobroker 2017-07-23 13:25:48.317 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:675:40
                                          ! iobroker 2017-07-23 13:25:48.317 error at Upload.uploadAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpload.js:214:23)
                                          ! iobroker 2017-07-23 13:25:48.317 error at require (internal/module.js:12:17)
                                          ! iobroker 2017-07-23 13:25:48.317 error at Module.require (module.js:353:17)
                                          ! iobroker 2017-07-23 13:25:48.317 error at Function.Module._load (module.js:300:12)
                                          ! iobroker 2017-07-23 13:25:48.317 error at Module.load (module.js:343:32)
                                          ! iobroker 2017-07-23 13:25:48.317 error at Object.Module._extensions..json (module.js:424:27)
                                          ! iobroker 2017-07-23 13:25:48.317 error at Object.parse (native)
                                          ! iobroker 2017-07-23 13:25:48.317 error SyntaxError: /opt/iobroker/node_modules/iobroker.javascript/io-package.json: Unexpected token }
                                          ! iobroker 2017-07-23 13:25:48.317 error ^
                                          ! iobroker 2017-07-23 13:25:48.317 error module.js:427 throw err;
                                          ! iobroker 2017-07-23 13:25:39.787 info upload [0] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/adminWords.js adminWords.js application/javascript
                                          ! iobroker 2017-07-23 13:25:39.709 info upload [1] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/blockly.png blockly.png image/png
                                          ! iobroker 2017-07-23 13:25:39.647 info upload [2] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/coffeescript.png coffeescript.png image/png
                                          ! iobroker 2017-07-23 13:25:39.586 info upload [3] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/cron/jquery-cron.css cron/jquery-cron.css text/css
                                          ! iobroker 2017-07-23 13:25:39.523 info upload [4] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/cron/jquery-cron.js cron/jquery-cron.js application/javascript
                                          ! iobroker 2017-07-23 13:25:39.450 info upload [5] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/cron2text.js cron2text.js application/javascript
                                          ! iobroker 2017-07-23 13:25:39.388 info upload [6] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/LICENSE google-blockly/LICENSE application/octet-stream
                                          ! iobroker 2017-07-23 13:25:39.177 info upload [7] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/blockly_compressed.js google-blockly/blockly_compressed.js application/javascript
                                          ! iobroker 2017-07-23 13:25:39.105 info upload [8] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/blocks_compressed.js google-blockly/blocks_compressed.js application/javascript
                                          ! iobroker 2017-07-23 13:25:39.033 info upload [9] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/javascript_compressed.js google-blockly/javascript_compressed.js application/javascript
                                          ! iobroker 2017-07-23 13:25:38.973 info upload [10] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/1x1.gif google-blockly/media/1x1.gif image/gif
                                          ! iobroker 2017-07-23 13:25:38.913 info upload [11] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/accessible.css google-blockly/media/accessible.css text/css
                                          ! iobroker 2017-07-23 13:25:38.853 info upload [12] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/click.mp3 google-blockly/media/click.mp3 audio/mpeg
                                          ! iobroker 2017-07-23 13:25:38.792 info upload [13] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/click.ogg google-blockly/media/click.ogg audio/ogg
                                          ! iobroker 2017-07-23 13:25:38.731 info upload [14] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/click.wav google-blockly/media/click.wav audio/x-wav
                                          ! iobroker 2017-07-23 13:25:38.669 info upload [15] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/delete.mp3 google-blockly/media/delete.mp3 audio/mpeg
                                          ! iobroker 2017-07-23 13:25:38.608 info upload [16] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/delete.ogg google-blockly/media/delete.ogg audio/ogg
                                          ! iobroker 2017-07-23 13:25:38.546 info upload [17] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/delete.wav google-blockly/media/delete.wav audio/x-wav
                                          ! iobroker 2017-07-23 13:25:38.486 info upload [18] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/disconnect.mp3 google-blockly/media/disconnect.mp3 audio/mpeg
                                          ! iobroker 2017-07-23 13:25:38.426 info upload [19] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/disconnect.ogg google-blockly/media/disconnect.ogg audio/ogg
                                          ! iobroker 2017-07-23 13:25:38.367 info upload [20] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/disconnect.wav google-blockly/media/disconnect.wav audio/x-wav
                                          ! iobroker 2017-07-23 13:25:38.309 info upload [21] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/handclosed.cur google-blockly/media/handclosed.cur application/octet-stream
                                          ! iobroker 2017-07-23 13:25:38.251 info upload [22] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/handdelete.cur google-blockly/media/handdelete.cur application/octet-stream
                                          ! iobroker 2017-07-23 13:25:38.193 info upload [23] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/handopen.cur google-blockly/media/handopen.cur application/octet-stream
                                          ! iobroker 2017-07-23 13:25:38.135 info upload [24] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/quote0.png google-blockly/media/quote0.png image/png
                                          ! iobroker 2017-07-23 13:25:38.079 info upload [25] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/quote1.png google-blockly/media/quote1.png image/png
                                          ! iobroker 2017-07-23 13:25:38.019 info upload [26] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/sprites.png google-blockly/media/sprites.png image/png
                                          ! iobroker 2017-07-23 13:25:37.957 info upload [27] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/media/sprites.svg google-blockly/media/sprites.svg image/svg+xml
                                          ! iobroker 2017-07-23 13:25:37.893 info upload [28] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/msg/js/de.js google-blockly/msg/js/de.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.829 info upload [29] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/msg/js/en.js google-blockly/msg/js/en.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.759 info upload [30] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/msg/js/ru.js google-blockly/msg/js/ru.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.677 info upload [31] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/msg/js/uk.js google-blockly/msg/js/uk.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.600 info upload [32] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/msg/messages.js google-blockly/msg/messages.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.541 info upload [33] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_action.js google-blockly/own/blocks_action.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.475 info upload [34] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_convert.js google-blockly/own/blocks_convert.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.386 info upload [35] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_procedures.js google-blockly/own/blocks_procedures.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.276 info upload [36] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_sendto.js google-blockly/own/blocks_sendto.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.193 info upload [37] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_system.js google-blockly/own/blocks_system.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.130 info upload [38] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_time.js google-blockly/own/blocks_time.js application/javascript
                                          ! iobroker 2017-07-23 13:25:37.062 info upload [39] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_timeout.js google-blockly/own/blocks_timeout.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.995 info upload [40] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/blocks_trigger.js google-blockly/own/blocks_trigger.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.932 info upload [41] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/field_cron.js google-blockly/own/field_cron.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.871 info upload [42] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/field_oid.js google-blockly/own/field_oid.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.810 info upload [43] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/field_script.js google-blockly/own/field_script.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.745 info upload [44] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/msg/de.js google-blockly/own/msg/de.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.273 info upload [45] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/msg/en.js google-blockly/own/msg/en.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.200 info upload [46] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/msg/ru.js google-blockly/own/msg/ru.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.138 info upload [47] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/google-blockly/own/msg/uk.js google-blockly/own/msg/uk.js application/javascript
                                          ! iobroker 2017-07-23 13:25:36.070 info upload [48] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/index.html index.html text/html
                                          ! iobroker 2017-07-23 13:25:36.010 info upload [49] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/jquery.cron.css jquery.cron.css text/css
                                          ! iobroker 2017-07-23 13:25:35.924 info upload [50] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/jquery.cron.js jquery.cron.js application/javascript
                                          ! iobroker 2017-07-23 13:25:35.842 info upload [51] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/js.jpeg js.jpeg image/jpeg
                                          ! iobroker 2017-07-23 13:25:35.779 info upload [52] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/js.png js.png image/png
                                          ! host.raspberrypi 2017-07-23 13:25:35.774 info instance system.adapter.tankerkoenig.0 terminated with code 0 (OK)
                                          ! iobroker 2017-07-23 13:25:35.369 info upload [53] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/bootstrap.css query-builder/bootstrap.css text/css
                                          ! iobroker 2017-07-23 13:25:35.212 info upload [54] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/glyphicons-halflings-regular.eot query-builder/glyphicons-halflings-regular.eot application/vnd.ms-font
                                          ! iobroker 2017-07-23 13:25:35.141 info upload [55] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/glyphicons-halflings-regular.ttf query-builder/glyphicons-halflings-regular.ttf application/x-font-ttf
                                          ! iobroker 2017-07-23 13:25:35.056 info upload [56] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/glyphicons-halflings-regular.woff query-builder/glyphicons-halflings-regular.woff application/font-woff
                                          ! iobroker 2017-07-23 13:25:34.911 info upload [57] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/query-builder.default.min.css query-builder/query-builder.default.min.css text/css
                                          ! iobroker 2017-07-23 13:25:34.822 info upload [58] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/query-builder/query-builder.standalone.min.js query-builder/query-builder.standalone.min.js application/javascript
                                          ! iobroker 2017-07-23 13:25:34.188 info upload [59] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/rule.png rule.png image/png
                                          ! iobroker 2017-07-23 13:25:34.115 info upload [60] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/tab.html tab.html text/html
                                          ! iobroker 2017-07-23 13:25:33.986 info upload [61] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/tab.js tab.js application/javascript
                                          ! iobroker 2017-07-23 13:25:33.750 info upload [62] javascript.admin /opt/iobroker/node_modules/iobroker.javascript/admin/words.js words.js application/javascript

                                          Als Alterantive habe ich die Array Version von Apollon probiert zu nutzen, aber ich bin zu blöd dafür. Zum einen sagt er mir immer "don't make functions inside a loop". Wobei das doch genau so von Apollon vorgeschlagen war?

                                          Hier mein Mini Versuch. Eigentlich wollte ich nur mein "Sonos Boxen zählen" Skript etwas eleganter machen.

                                          `var c;
                                          var liste = [   "sonos.0.root.192_168_2_6.state_simple", 
                                                          "sonos.0.root.192_168_2_7.state_simple", 
                                                          "sonos.0.root.192_168_2_8.state_simple", 
                                                          "sonos.0.root.192_168_2_9.state_simple",
                                                          "sonos.0.root.192_168_2_10.state_simple"];
                                          
                                          for (var i=0; i<liste.length;i++) {/on(liste[i],/function(){/if/(i.state.val="==" true)/c="c" +/1;/}/else{/-1;/if(c/<0){c="0}" setstate('javascript.0.sonos.playing',/c);/});/<e=""></liste.length;i++)>`
                                          
                                          Hilfe wäre sehr nett. Danke vorab[/i]
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by

                                            Hallo,

                                            du hast da eine Subscription ("on") innerhalb der Zählschleife. Das klappt so nicht.

                                            Deine Schleife zähl durch von 0 bis Menge der Einträge im Array. Und wenn es gerade bei einem Eintrag ist, dann wird schnell eine Subscription gemacht, für den Fall, dass sich etwas ändert, bis zum nächsten Zähler. Das geht nicht.

                                            Wenn du nur abfragen willst, welche States gerade auf true sind, verwende doch getState() in dem Skript.

                                            `var c;
                                            var liste = [   "sonos.0.root.192_168_2_6.state_simple", 
                                                            "sonos.0.root.192_168_2_7.state_simple", 
                                                            "sonos.0.root.192_168_2_8.state_simple", 
                                                            "sonos.0.root.192_168_2_9.state_simple",
                                                            "sonos.0.root.192_168_2_10.state_simple"];
                                            
                                            for (var i=0; i<liste.length;i++) {/if/(getstate(liste[i]).val)/wenn/true/im/moment/der/abfrage/c="c" +/1;/}/else/false/-1;/(c/<0)/setstate('javascript.0.sonos.playing',/c);/<e=""></liste.length;i++)>`
                                            
                                            Achso, damit das auch angestoßen wird, brauchst du noch eine Subscription auf alle STATE_SIMPLE Datenpunkte. 
                                            `~~[code]~~var regex_vol = /^sonos\.[0-9]\.root\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.state_simple$/;
                                            [/code]`Hab mal meinen Code aus einem andere Skript verwendet (die IP muss valide sein).
                                            
                                            Also hier das ganze Skript (ungetestet und hier im Forum Editor geschrieben  8-) ):
                                            `~~[code]~~
                                            var c;
                                            var liste = [   "sonos.0.root.192_168_2_6.state_simple", 
                                                            "sonos.0.root.192_168_2_7.state_simple", 
                                                            "sonos.0.root.192_168_2_8.state_simple", 
                                                            "sonos.0.root.192_168_2_9.state_simple",
                                                            "sonos.0.root.192_168_2_10.state_simple"];
                                            
                                            var regex_vol = /^sonos\.[0-9]\.root\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.state_simple$/;
                                            
                                            function countSonos () {
                                              for (var i=0; i<liste.length;i++) {/if/(getstate(liste[i]).val)/wenn/true/im/moment/der/abfrage/c="c" +/1;/}/else/false/-1;/(c/<0)/setstate('javascript.0.sonos.playing',/c);/on({/id:/regex_vol,/change:/'ne'/},/countsonos);/<e=""></liste.length;i++)>`
                                            
                                            Gruß
                                            
                                            Pix[/i][/code][/i]
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            767
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            48
                                            11346
                                            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