Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Viewwechsel script (Timeout)

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Viewwechsel script (Timeout)

Geplant Angeheftet Gesperrt Verschoben JavaScript
2 Beiträge 1 Kommentatoren 302 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Mr. BurnsM Offline
    Mr. BurnsM Offline
    Mr. Burns
    schrieb am zuletzt editiert von Mr. Burns
    #1

    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 Antwort Letzte Antwort
    0
    • Mr. BurnsM Offline
      Mr. BurnsM Offline
      Mr. Burns
      schrieb am zuletzt editiert von
      #2

      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 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      483

      Online

      32.5k

      Benutzer

      81.6k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe