Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Geht das überhaupt mit iobroker??

    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

    Geht das überhaupt mit iobroker??

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

      In dem Skript fehlt der Trigger auf idMarker (unten in meinem Skript).

         var key = 'false'; // aus
         if(dp.state.val) key = 'true'; //ein
      
      

      Bist Du sicher das dies richtig ist ? Es widerspricht den Angaben in Deinem ersten Beitrag.

      1 Reply Last reply Reply Quote 0
      • D
        dos1973 last edited by

        :oops:

        ?? kann dir nicht folgen

        1 Reply Last reply Reply Quote 0
        • D
          dos1973 last edited by

          Ich möchte nicht anzweifeln, dass ich nicht alles richtig bedenke/ beschreibe …

          javascript.0.lmair.marker.04

          wird von aussen geschaltet - das zeigt den wirklichen Status an

          javascript.0.lmair.szenenr.04

          Ist auf mein Vis Button gemappt.

          wenn dieser Status sich verändert

          javascript.0.lmair.marker.04

          dann soll dieser Status den Wert annehmen

          javascript.0.lmair.szenenr.04

          und dabei aber dann keine Befehle

          http://192.168.10.71/control?key=xx

          ausführen, das soll nur passieren dmit der VIS Button in der Oberfläche eben als "ein" angezeigt wird (oder aus, was eben vom Marker kommt)

          Der weg soll sein

          LM->javascript.0.lmair.marker.04 -> javascript.0.lmair.szenenr.04 -> VIS Buttun ändern nur Darstellung, keine Aktion

          Aus IOBroker

          VISButton -> javascript.0.lmair.szenenr.04 - http://192.168.10.71/control?key=xx ( ab hier übernimmt der LM die Funktion licht ein und Visualisierung der Schaltzustände

          *Edit

          diese beiden müssen synchron sein,

          javascript.0.lmair.marker.04

          javascript.0.lmair.szenenr.04

          ausgehen nur von javascript.0.lmair.marker.04 , der gibt den zustand vor.

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

            @dos1973:

            Der weg soll sein

            LM->javascript.0.lmair.marker.04 -> javascript.0.lmair.szenenr.04 -> VIS Buttun ändern nur Darstellung, keine Aktion

            Aus IOBroker

            VISButton -> javascript.0.lmair.szenenr.04 - http://192.168.10.71/control?key=xx ( ab hier übernimmt der LM die Funktion licht ein und Visualisierung der Schaltzustände `
            Genau das macht das Skript in meinem ersten Post (mit Szene 01). Du musst also nur in den ersten zwei Zeilen .01 –> .04 ändern.

            EDIT: Und vermutlich den Key für aus und ein anpassen, z.B. (die richtigen Werte kenne ich nicht)

               var key = '12'; // aus
               if(dp.state.val) key = '11'; //ein
            
            
            1 Reply Last reply Reply Quote 0
            • D
              dos1973 last edited by

              ich probiere das morgen Abend sofort aus…

              und poste dann wieder.

              1 Reply Last reply Reply Quote 0
              • D
                dos1973 last edited by

                klappt zum Teil,

                ich kann über den VIS Button Lampen ein und ausschalten.

                • Der Schalter zeigt ON an

                • Durch die ausgeführte Szene zeigt auch der Lightmanager ON an

                Abschalten der gleiche weg - funktioniert.

                Was geht nicht.

                Beispiel: ich schalte via VIS das Licht ein, alle Visualisierung sind gesetzt.

                = beide DP haben den gleichen Wert (TRUE)

                const idVis = 'javascript.0.lmair.szenenr.xx';

                const idMarker = 'javascript.0.lmair.marker.x'

                jezt schalte das Licht am <u>Lightmanager</u> aus - und das bekommt Vis nicht mehr mit.

                jetzt steht "const idMarker = 'javascript.0.lmair.marker.x" auf "FALSE" weil Lampe aus

                der DP

                const idVis = 'javascript.0.lmair.szenenr.xx'; steht weiterhin auf TRUE

                hier fehlt ein Sync der beiden Werte und immer nur ausgehend aus Richtung des DP "javascript.0.lmair.marker.x""

                wie bereits gesagt, wenn auf diese Art der DP umgesetzt wird, dann darf nicht der Szenenaufruf kommen (http://192.168.10.71/control?key=xx)

                da sonst eine Dauerschleife aufkommt …

                ich hoffe es ist einigermaßen verständlich 😉

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

                  Poste bitte das Skript, so wie Du es jetzt verwendest.

                  1 Reply Last reply Reply Quote 0
                  • D
                    dos1973 last edited by

                    const idVis = 'javascript.0.lmair.szenenr.03'; // ID des Datenpunktes, der auf Vis reagiert (false/true)
                    const idMarker = 'javascript.0.lmair.marker.03';
                    const request = require('request');
                    const url = 'http://192.168.10.71/control?key=';
                    const js = 'system.adapter.javascript.' + instance;
                    
                    on({id: idVis, change: 'ne', fromNe: js}, function(dp) { // Triggern bei Wertänderung durch Vis
                       var key = '5'; // aus
                       if(dp.state.val) key = '4'; //ein
                       request(url + key, function(error, response, body) {
                          if(error) log('Fehler Request Steckdose', 'error');
                       });
                    });
                    

                    noch ein Hinweis - eine Szene und eine Marker haben keine 1:1 Beziehung.

                    d.h ich kann in einer Szene z.b 1 Lampe schalte und x Marker ein/auschalten. oder auch mixen, zB 3 marker ein/ und 3 marker aus…

                    daher ist es mir wichtig die Szenen via "lmair.szenenr" auszulösen, Aber die VIS Darstellung der On/off zustände via "lmair.marker" abzubilden.

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

                      @dos1973:

                      hier fehlt ein Sync der beiden Werte `
                      Ja, der fehlt immer noch, obwohl ich geschrieben habe
                      @paul53:

                      In dem Skript fehlt der Trigger auf idMarker (unten in meinem Skript). `
                      Richtig:

                      const idVis = 'javascript.0.lmair.szenenr.03'; // ID des Datenpunktes, der auf Vis reagiert (false/true)
                      const idMarker = 'javascript.0.lmair.marker.03';
                      const request = require('request');
                      const url = 'http://192.168.10.71/control?key=';
                      const js = 'system.adapter.javascript.' + instance;
                      
                      on(idMarker, function(dp) { // Triggern bei Wertänderung
                         setState(idVis, dp.state.val, true);
                      });
                      
                      on({id: idVis, change: 'ne', fromNe: js}, function(dp) { // Triggern bei Wertänderung durch Vis
                         var key = '5'; // aus
                         if(dp.state.val) key = '4'; //ein
                         request(url + key, function(error, response, body) {
                            if(error) log('Fehler Request Steckdose', 'error');
                         });
                      });
                      
                      1 Reply Last reply Reply Quote 0
                      • D
                        dos1973 last edited by

                        ach du Schande, ich habe ja das halbe Script vergessen… war das schon die ganze Zeit da :lol:

                        Aber hey, es sieht gut aus... ich muss zugeben, es sieht sehr sehr gut aus. :mrgreen:

                        ich konnte jetzt in meinen ersten Tests keinen Fehler finden. ich habe sogar, mit einer Szene mehrer Lampen und Marker aktualisiert.

                        auch der auf LM einschalten und auf Vis abschalten hat funktioniert.(das synchrone

                        ich muss jetzt die nächsten Tage mal etwas komplexere Szenen einbinden.

                        Am Wochenende werde ich leider nicht dazu kommen, aber ich gebe auf jedenfalls nochmals Feedback, spät. Anfang nächster Woche.

                        Bis hierher erstmal ein Riesen Dankeschön, habe um ehrlich zu sein nicht dran geglaubt... :oops:

                        1 Reply Last reply Reply Quote 0
                        • D
                          dos1973 last edited by

                          Hallo,

                          ich habe getestet und auch etwas verändert.

                          ich spare mir den DP: 'javascript.0.lmair.szenenr.01'

                          Fazit:bisher läuft gut

                          const idVis = 'javascript.0.lmair.marker.01'; // ID des Datenpunktes, der auf Vis reagiert (false/true)
                          const idMarker = 'javascript.0.lmair.marker.01';
                          const request = require('request');
                          const url = 'http://192.168.10.71/control?key=';
                          const js = 'system.adapter.javascript.' + instance;
                          
                          on({id: idVis, change: 'ne', fromNe: js}, function(dp) { // Triggern bei Wertänderung durch Vis
                             var key = '08'; // aus
                             if(dp.state.val) key = '07'; //ein
                             request(url + key, function(error, response, body) {
                                if(error) log('Fehler Request Steckdose', 'error');
                             });
                          });
                          

                          ich reagiere jetzt nur auf den Markerpunkt, für den VIS Button und die Visualisierung

                          const idVis = 'javascript.0.lmair.marker.01'; // ID des Datenpunktes, der auf Vis reagiert (false/true)
                          const idMarker = 'javascript.0.lmair.marker.01';
                          

                          das brauche ich nicht mehr (glaube ich)

                          /*on(idMarker, function(dp) { // Triggern bei Wertänderung
                             setState(idMarker, dp.state.val, true);
                          });*/
                          

                          MARKER HOL Script

                          Um den Lightmanager nicht unnötig zu belasten, gibt es denn die Möglichkeit, dass Script welches sich die Marker zustände holt nicht permanent laufe zu lassen, sondern nur wenn die VIS Button gedrückt werden, bzw. nur alle Minute etc.

                          Das Script holt sich alle Marker Daten

                          javascript.0.scriptEnabled.Lightmanager.params_json
                          

                          aktuell steht das im Script

                          // Start und Intervall:sekunden 
                          // --------------------------------------------------------------------------
                          setTimeout(DatenAuslesen, 1000);        // 
                          schedule('*/15 * * * * *', DatenAuslesen);  // 
                          

                          das scheint für den LM schon etwas viel, oder was bedeutet das - ich interpretiere 15 Sekunden. wenn es weniger wird, dann dauert es zu lange bis die buttons ihre status ändern.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          901
                          Online

                          31.7k
                          Users

                          79.9k
                          Topics

                          1.3m
                          Posts

                          2
                          16
                          1054
                          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