Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Gelöst] Scheduler-Trigger löst mehrere Male aus

    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

    [Gelöst] Scheduler-Trigger löst mehrere Male aus

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

      @roga sagte: Kann mir das jemand erklären?

      Nicht ohne das komplette Skript zu sehen.

      R 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @ROGA last edited by

        @roga sagte in Scheduler-Trigger löst mehrere Male aus:

        07:18:36.678 info javascript.0 (2502319) script.js._Licht.Wegbeleuchtung: Wegbeleuchtung wird ausgeschaltet!

        das ist ja die gleiche ms..sehr merkwürdig...

        1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @ROGA last edited by

          @roga sagte in Scheduler-Trigger löst mehrere Male aus:

          Die Log-Ausgabe

          Schleif die mal durch 'uniq' durch.

          iob logs | uniq
          
          R 1 Reply Last reply Reply Quote 0
          • R
            ROGA @paul53 last edited by

            @paul53 hier mein Script ...

            let     DebugLogging             = true,	
                    idWegbeleuchtungSwitch   = 'alias.0.Licht.Wegbeleuchtung.Switch',
            	BaseDPpath               = 'javascript.0.Vis.Licht.Wegbeleuchtung.',
            	currentTime,
            	onTimeHour               = 5,
            	onTimeMinute             = 30,
            	offTimeHour              = 21,
            	offTimeMinute            = 0,
            	sunriseOffset	         = 20,
            	sunsetOffset             = 30;
            
            	// Die Wegbeleuchtung soll frühestens um 05:30h eingeschaltet werden, vorausgesetzt 
            	// es ist noch dunkel (Sunrise - 20 Minuten)
            	schedule({hour: onTimeHour, minute: onTimeMinute}, function () {
            
            		console.log('Wegbeleuchtung soll eingeschaltet werden, wenn es noch dunkel ist ...');
            		
            		currentTime = new Date();
            
            		// Die Wegbeleuchtung soll nur dann eingeschaltet werden, wenn die aktuelle Zeit kleiner bzw.
            		// noch vor dem Sonnenaufgangs ist.
            			
            		if (compareTime({astro: 'sunrise', offset: - sunriseOffset}, {astro: 'sunset', offset: sunsetOffset}, '<', currentTime)) {
            
            			console.log('Wegbeleuchtung wird eingeschaltet!');
            			setState(idWegbeleuchtungSwitch, true, false);
            		} else {
            			console.log('Wegbeleuchtung wird nicht mehr eingeschaltet!');
            		};
            
            
            	});
            
            	// Bei Sonnenaufgang die Wegbeleuchtung ausschalten
            	schedule({astro: "sunrise", shift: - sunriseOffset}, function () {
            		
            		console.log('Wegbeleuchtung wird ausgeschaltet!');
            		setState(idWegbeleuchtungSwitch, false, false);
            
            	});
            	
            	// Die Wegbeleuchtung soll nach Sonnenuntergang eingeschaltet werden, wenn die aktuelle Zeit kleiner bzw.
            	// noch vor 21:00h ist.
            	schedule({astro: "sunset", shift: sunsetOffset}, function () {
            	
            		console.log('Wegbeleuchtung soll eingeschaltet werden, wenn es noch nicht 21:00h ist ...');
            		
            		currentTime = new Date();
            		offTime = new Date();
            		offTime.setHours(offTimeHour,offTimeMinute,0,0);
            		
            		// Die Wegbeleuchtung soll nur dann eingeschaltet werden, wenn die aktuelle Zeit vor 21:00h ist
            			
            		if (compareTime(offTime, offTime, '<', currentTime)) {
            			
            			console.log('Wegbeleuchtung wird eingeschaltet!');
            			setState(idWegbeleuchtungSwitch, true, false);
            		} else {
            			console.log('Wegbeleuchtung wird nicht mehr eingeschaltet!');
            		};
            	});
            
            	// Die Wegbeleuchtung soll spätestens um 21:00h ausgeschaltet werden
            	schedule({hour: offTimeHour, minute: offTimeMinute}, function () {
            
            		console.log('Wegbeleuchtung wird ausgeschaltet!');
            		
            		setState(idWegbeleuchtungSwitch, false, false);
            	
            	});
            
            
            	if (DebugLogging == true) {
            		Time = new Date();
            		Time.setHours(21,0,0,0);
            		console.log('Zeit=' + Time);
            	
            
            		sunrise=getAstroDate('sunrise');
            		sunrise.setMinutes(sunrise.getMinutes() - sunriseOffset);
            		console.log('Sonnenaufgang - Offset ' + sunriseOffset + ' Min. = ' + sunrise );
            	
            		sunset=getAstroDate('sunset');
            		sunset.setMinutes(sunset.getMinutes() + sunsetOffset);
            		console.log('Sonnenuntergang + Offset ' + sunsetOffset + ' Min. = ' + sunset );
            	};
            
            1 Reply Last reply Reply Quote 0
            • R
              ROGA @Thomas Braun last edited by

              @thomas-braun : habe ich gemacht. Die Ausgabe war sehr lang, weshalb ich diese vorerst noch nicht gepostet habe. Was hätte ich hier sehen sollen?

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @ROGA last edited by

                @roga sagte in Scheduler-Trigger löst mehrere Male aus:

                Was hätte ich hier sehen sollen?

                Nur noch einfache Einträge. uniq filtert Doppelungen aus LogFiles heraus.

                R 1 Reply Last reply Reply Quote 0
                • R
                  ROGA @Thomas Braun last edited by

                  @thomas-braun : ich habe die Ausgabe von uniq untersucht und festgestellt, dass darin keine Einträge von dem aktuellen Script für meine Wegbeleuchtung enthalten sind. Jedoch jede Menge Einträge von anderen Scripts, die ich am Laufen habe. Wie soll ich das jetzt bewerten bzw. wie löse ich damit das Problem, dass der Trigger mehrfach ausgelöst wird?

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @ROGA last edited by

                    @roga

                    hattest du fehler beim programmieren und es laufen noch verschiedene teile des script im hintergrund und unbekannt - jvascript adapter neustarten oder ganzen iob - schon versucht

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      ROGA @liv-in-sky last edited by

                      @liv-in-sky : Ich habe deinen Vorschlag umgesetzt und dabei tatsächlich feststellen können, dass nach dem Neustart des javascript Adapters danach der Trigger nur noch ein einziges Mal ausgelöst wurde.

                      Für's erste bin ich beruhigt, doch die grosse Frage stellt sich mir: Wie konnte das passieren? Was genau ist da geschehen? Falls jemand eine Vermutung hat, kann er es gerne hier verkünden, würde mich brennend interessieren.

                      Ich möchte mich bei allen ganz herzlich für die angebotene Hilfe bedanken und markiere diesen Thread hiermit als gelöst.

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @ROGA last edited by

                        @roga leider keine vermutung - ich knne nur das problem - existiert schon ewig und wurde nicht besser mit der zeit 😞

                        arteck 1 Reply Last reply Reply Quote 0
                        • arteck
                          arteck Developer Most Active @liv-in-sky last edited by

                          @liv-in-sky gibts ein issue dafür auf GIT ?

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @arteck last edited by liv-in-sky

                            @arteck

                            ne - von mir nicht - ist schon sehr lange so - kann bei meinem programmierstil öfter auftreten 😞

                            ziemlich häufig kommt es vor, wenn man bei promises einen fehler macht - dann bleibt sehr oft ein teil eines scriptes aktiv und läuft doppelt

                            "kann dich bei fehlersuche um den verstand bringen"

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            873
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            5
                            15
                            408
                            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