Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Viewwechsel script (Timeout)

    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

    Viewwechsel script (Timeout)

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

      Hallo zusammen,

      ich hab probleme mit meinem Script und komme nicht richtig weiter:

      Ich möchte durch einen Trigger (Lichtschranke) das aktuelle Bild auf dem Tablet zur Kamera Eingang leiten.
      Nach einer Zeit von 3min soll zurück zur Übersicht.

      Wenn allerdings jemand klingelt soll das Bild auf eine andere Kamera (Haustüre) wechseln.
      Wenn die Türe geöffnet wird (Türkontakt) soll die Zeit unterbrochen werden und direkt zur Übersicht.

      Ich hab folgendes Script im (Test-)Einsatz (eigentlich schon länger...):

      // Datenpunkt-ID
      var idLichtschranke = "s7.0.DBs.DB20.Lichtschranke_Haustuere"/*Lichtschranke Eingangstür wurde unterbrochen*/;
      var idTuer = "s7.0.DBs.DB4.Haustuere_offen"/*Status Haustüre geöffnet*/;
      var idKlingel = "hm-rpc.1.LEQ001XXXX.1.PRESS_SHORT"/*Tuerklingel.PRESS_SHORT*/;
      var idKlingel2 ='hm-rpc.1.LEQ001XXXX.1.PRESS_LONG'/*Tuerklingel PRESS LONG*/
      var S7TuerFlur = "s7.0.DBs.DB1.Tuerkontakt_Flur"/*Türkontakt Hausflur*/;
      
      
      
      var request = require('request');
      var html = 'http://192.168.178.XXX:2323/?cmd=screenOn&password=XXX&type=json';
      var view1 = 'main/Eingang';
      var view2 = 'main/Uebersicht';
      
      var timerEK = null;
      
      function viewwechsel() {
          
          try {
          request( html, function (err, resp, body) {
          	// analyse answer
          }).on('error', function (err) {
      	     console.error('Cannot request');
          });
      } catch (e) {
      	console.error('Cannot request');
      }
      
          // Funktion Bildwechsel (aufruf durch Trigger)
              setState("vis.0.control.instance", 'FFFFFFFF');                         // Visualisierung auswählen (FFFFFFFF = alle)
                 setState("vis.0.control.data",     view1);                           // Ziel, auf welches Bild soll das Kommando verweisen
                 setState("vis.0.control.command",  'changeView');                    // Kommando
                 
      
      
                 //Nach x Sekunden, zeige wieder Start View
                 /*if(timer) clearTimeout(timer);                                       // Lösche alten Timer
                  timer = setTimeout(function() {                     
                      timer = null;                                                   //Zeitverzögerung für nachfolgende funktion
                      */
      
                  if (!timerEK) {
      			    timerEK = setTimeout(function () {
      				    timerEK = null;
      				    setState("vis.0.control.instance", 'FFFFFFFF');
                          setState("vis.0.control.data", view2);
                          setState("vis.0.control.command", 'changeView');  
                      }, 1 *90 * 1000);                                               // Dauer der Verzögerung in millisekunden
         }
      }
      
      // Funktion abbrechen (wenn Tür geöffnet wurde, oder geklingelt wird) 
      function cancel() {                                                           // Trigger
      
              setState("vis.0.control.instance", 'FFFFFFFF');                         // Visualisierung auswählen (FFFFFFFF = alle)
              setState("vis.0.control.data", view2);                               // Ziel, auf welches Bild soll das Kommando verweisen
              setState("vis.0.control.command", 'changeView');
              if(timerEK) {clearTimeout(timerEK);                                          // Lösche Timer
              timerEK = null;                                                           // Setze Zeiger (timer) auf null
          }
          }     
      
      // Trigger
      on({id: idLichtschranke, change: 'ne'}, viewwechsel);                           // Trigger 
      //on({id: S7TuerFlur, val: true, ack: true}, viewwechsel);                          // Trigger 
      
      // Der Rücksetztrigger
      on({id: idKlingel, change: 'ne'}, cancel);                                      // Trigger
      on({id: idKlingel2, change: 'ne'}, cancel);                                     // Trigger
      on({id: idTuer, change: 'ne'}, cancel);                                         // Trigger
      

      Was passiert:
      Bei auslösung des Triggers wird umgeschaltet. Auch der 2. Trigger (Cancel) funktioniert (Übersicht). Aber nach kurzer Zeit kommt das 1. Kamerabild wieder zurück bis die Zeit abgelaufen ist.
      Irgentwas mache ich mit den Timern falsch oder mit dem zurücksetzen.

      Ich hab auch schon mal mit Blocky herum experimentiert (hab ich noch weniger Ahnung als von Java), geht auch nicht.
      Unbenannt.jpg
      Erster Wechsel geht, 2. Umschalten nicht, obwohl der Timer zurück gesetzt wird (LOG) aber den 2. Wechsel macht er einfach nicht.

      Ich habe zur Zeit 2 Tablets mit einer VIS in Betrieb. Über Fully Kiosk Browser.

      Gruß
      Thomas

      1 Reply Last reply Reply Quote 0
      • Mr. Burns
        Mr. Burns last edited by

        Mahlzeit,

        darf ich das Thema noch mal hochholen?
        Würde gerne verstehen, was ich falsch mache, oder wenn im Script kein Fehler ist, wo kann ich ansetzen um den Fehler woanders zu finden?

        Darf ich mehrere Tablets mit einem Projekt verwenden oder gibt das Probleme?
        Dürfen mehrere Scripte die Views umschalten oder gibt das Probleme?

        Gruß

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

        Support us

        ioBroker
        Community Adapters
        Donate

        907
        Online

        31.8k
        Users

        80.0k
        Topics

        1.3m
        Posts

        1
        2
        246
        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