Beiträge von Satalaner

    funktioniert leider auch nicht. Ich hatte auch schon die Vermutung es liegt daran das die calls nicht fertig sind und aber der BWM schon ausschaltet.


    [script] [/script]

    [script]Status: started Script _[ Treppenlichsteuerung ]_ 13:32:14 [/script]

    [script]Calls finish 13:32:35 [/script]

    [script]bmw unten an 13:32:35 [/script]

    [script]bmw oben aus 13:32:35 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf 13:32:35 [/script]

    [script]Calls not finish 13:32:41 [/script]

    [script]bmw unten aus 13:32:41 [/script]

    [script]bmw oben aus 13:32:41 [/script]

    [script]Calls not finish 13:32:43 [/script]

    [script]bmw unten aus 13:32:43 [/script]

    [script]bmw oben an 13:32:43 [/script]

    [script]Calls finish 13:32:53 [/script]

    [script]bmw unten aus 13:32:53 [/script]

    [script]bmw oben aus 13:32:53 [/script]

    [script]LEDs werden ausgeschaltet, Sequenz Alles_Aus 13:33:13 [/script]

    [script]Calls not finish 13:33:19 [/script]

    [script]bmw unten aus 13:33:19 [/script]

    [script]bmw oben an 13:33:19 [/script]

    [script]Calls finish 13:33:27 [/script]

    [script]bmw unten aus 13:33:27 [/script]

    [script]bmw oben aus 13:33:27 [/script]

    [script]Calls finish 13:33:34 [/script]

    [script]bmw unten an 13:33:34 [/script]

    [script]bmw oben aus 13:33:34 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf 13:33:34 [/script]

    [script]Calls not finish 13:33:39 [/script]

    [script]bmw unten aus 13:33:39 [/script]

    [script]bmw oben aus 13:33:39 [/script]

    [script]
    [/script]

    [script][/script]

    Error: Event_Loop() ---> ReferenceError "callFin" is not defined

    bekomme ich mit dem neuen Code

    Sequenz rauf ---> geht ---> Aus nach 20 Sekunden geht? ja

    Sequenz runter ---> geht ----> Aus nach 20 Sekunden geht? nein ging bei dem "alten script nicht"

    Das mit den 2 LED auf einmal anschalten geht ? ja

    Das mit den Zeiten wäre super:


    so wie es aktuell ist soll zwischen 22-8 Uhr ausgelöst werden:

    und zwischen 8-22 Uhr sollen dann zwei Sequenzen identisch wie oben nur mit

    '/white/0?turn=on&brightness=100'  ausgelöst werden

    Ich habe noch ein paar print eingefügt, hier mal der LOG dazu:


    [script] [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf 12:39:07 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf fertig 12:39:07 [/script]

    [script]BWM unten an 12:39:07 [/script]

    [script]BWM oben aus 12:39:07 [/script]

    [script]Timer zurückgesetzt 12:39:07 [/script]

    [script]BWM unten aus 12:39:12 [/script]

    [script]BWM oben aus 12:39:12 [/script]

    [script]Timer zurückgesetzt 12:39:12[/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Runter 12:39:14 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Runter fertig 12:39:15 [/script]

    [script]BWM unten aus 12:39:15 [/script]

    [script]BWM oben an 12:39:15 [/script]

    [script]Timer zurückgesetzt 12:39:15 [/script]

    [script]BWM unten aus 12:39:25 [/script]

    [script]BWM oben aus 12:39:25 [/script]

    [script]Timer zurückgesetzt 12:39:25 [/script]

    [script]LEDs werden ausgeschaltet, Sequenz Alles_Aus 12:39:37 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Runter 12:39:42 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Runter fertig 12:39:42 [/script]

    [script]BWM unten aus 12:39:42 [/script]

    [script]BWM oben an 12:39:42 [/script]

    [script]Timer zurückgesetzt 12:39:42 [/script]

    [script]BWM unten aus 12:39:51 [/script]

    [script]BWM oben aus 12:39:51 [/script]

    [script]Timer zurückgesetzt 12:39:51 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf 12:39:56 [/script]

    [script]LEDs werden eingeschaltet, Sequenz Treppe_Rauf fertig 12:39:56 [/script]

    [script]BWM unten an 12:39:56 [/script]

    [script]BWM oben aus 12:39:56 [/script]

    [script]Timer zurückgesetzt 12:39:56 [/script]

    [script]BWM unten aus 12:40:01 [/script]

    [script]BWM oben aus 12:40:01 [/script]

    [script]Timer zurückgesetzt 12:40:01 [/script]

    [script]
    [/script]

    [script][/script]

    Mit einem HTTP Request geht auch die brightness an einem RGBW2

    einfach mit übergeben, z.B.

    gain=50

    Code
    http://192.168.xxx.xxx/color/0?turn=on&gain=50

    Danke für deinen Hinweis. Wie gesagt, die Helligkeit geht, mir geht es um die Tageszeitsteuerung in diesem Abschnitt. Wenn ich drauf hinweisen darf, gain ist für Color. Ich habe Weiße LEDs, daher ist wie @De kat schon schrieb, der brightness Befehl richtig.

    Danke für die tolle Arbeit! Es funktioniert soweit, an BWM oben und dann an BWM unten vorbei gehe, startet die Sequenz "alles aus" nicht, andersrum jedoch schon.

    Ich vermute das liegt daran, weil er nachdem ich an BWM unten vorbei bin, er dann die Sequenz unten startet und diese Blockiert dann das ausführen der Sequenz "alles aus" allerdings würde ich erwarten das Callsfin genau das verhindert oder?

    Delay steht auf 10 sekunden die bwm schaltet nach ca 5 sekunden von ein auf aus.

    Die brightness anfügung geht allerdings frage ich mich ob sowas tagsüber und abend irgendwie unterscheidbar gemacht werden kann. z.b. Tags 100% und ab Zeit x 10%. Kann man das realisieren? Der RGBW hat ja leider keine Möglichkeit wie der Dimmer2.

    vielen Dank!

    Dein Skript funktioniert!

    Kann man die Dimmwerte bei den Calls mitsenden?

    Code
    function Treppe_Runter(){
        print('LEDs werden eingeschaltet, Sequenz Treppe_Runter');
        callLimit= 1, cSp= 1.5; //Active Call Limit and speed betwinn calls
        Call('HTTP.get',{url: 'http://' + rgbw_2 + '/white/2?turn=on', timeout: cTimeout},null,null,debug);
        Call('HTTP.get',{url: 'http://' + rgbw_2 + '/white/1?turn=on', timeout: cTimeout},null,null,debug);
        Call('HTTP.get',{url: 'http://' + rgbw_2 + '/white/0?turn=on', timeout: cTimeout},null,null,debug);
        Call('HTTP.get',{url: 'http://' + rgbw_1 + '/white/2?turn=on', timeout: cTimeout},null,null,debug);
        Call('HTTP.get',{url: 'http://' + rgbw_1 + '/white/1?turn=on', timeout: cTimeout},null,null,debug);
        Call('HTTP.get',{url: 'http://' + rgbw_1 + '/white/0?turn=on', timeout: cTimeout},null,null,debug);
    }

    Die zweite funktion führt hintereinander aus in deinem Skript. Ich würde gerne immer zwei parallel anschalten und dann die nächsten zwei, wenn möglich. Ich probiere mal mit timeouts rum.

    Vorher muss auch noch geklärt werden was passieren soll, wenn jemand einen der Beiden BWM auslöst während der Timer noch nicht ausgelöst hat, also gerade bis 20 Zählt.

    Dann soll die Zeit neu starten. Erst wenn keine Bewegung +20 Sekunden dann aus.

    Vielen Dank für die abermals schnelle Hilfe.

    Das ist absolut richtig:

    Wenn ---> "bwm_Unten && not"bwm_Oben" ---> do Sequens ---> "Treppe_Rauf"

    Wenn ---> "bwm_Oben && not"bwm_Unten" ---> do Sequens ---> "Treppe_Runter"

    Wenn ---> not"bwm_Oben" && not"bwm_Unten" ---> do Sequens --> "Alles_Aus"

    mir geht es nur um die Ausschaltsequenz. Ich möchte hier nicht nur auf die BWM reagieren sondern „Alles_Aus“ soll nach einer Zeit z.b. 20 Sekunden ausgehen, nachdem die BWM beide aus sind. Somit Regel ich die Nachlaufzeit über den i4 und nicht komplett über die BMW. Dazu habe ich den Dimmer2 nutzen wollen, da dieser nach 20 Sekunden ausschaltet, da mir ein Timer einbauen recht kompliziert erscheint oder?

    Oder kann man das in einer if lösen, in etwa:

    Wenn ---> not"bwm_Oben" && not"bwm_Unten" ---> do Sequens “Timer_20_sekunden“

    Wenn ---> not"bwm_Oben" && not"bwm_Unten" && Timer_20_sekunden--->

    do Sequens --> "Alles_Aus"

    Wenn ja, wie baut man das in dein Schleifensystem?

    sry für die späte Antwort und danke für die Unterstützung.

    Du hattest mir zum Dimmer2 netterweise auch eine Erklärung geschickt das ich ihn über http://ip_des_Shellys/status abfragen kann aber wie frage ich ihn in der if als bedingung ab?

    Also, ich habe 3 If abfragen

    if(event.info.id === REMOTE.BWM_unten && "abfrage Status Dimmer zwei ob aus") ------> do function RGBW012345 (diese enthält die Ausgänge der RGBW hintereinander mit Zeitverzug einzuschalten)

    Also diese function:

    Code
    function RGBW012345(ip,ip2){
      print('LEDs werden eingeschaltet');
        callLimit= 1, cSp= 1; //active Call Limit and speed betwinn calls
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/1?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/0?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/3?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/2?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/1?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/0?turn=on', timeout: 1});
    }

    if(event.info.id === REMOTE.BWM_oben && "abfrage Status Dimmer zwei ob aus") ------> do functionRGBW22 (diese enthält immer zwei gleichzeitig an und dann die nächsten 2 einschalten)

    also die function müsste evtl. so aussehen (muss ich noch testen):

    Code
    function RGBW22(ip,ip2){
      print('LEDs werden eingeschaltet');
        callLimit= 1, cSp= 1; //active Call Limit and speed betwinn calls
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/1?turn=on'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/0?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/3?turn=on'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/2?turn=on', timeout: 1});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/1?turn=on'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/0?turn=on', timeout: 1});
    }

    Hier wird etwas kompliziert denn eigentlich muss die IF, NOT sein (wärein Java !=, können die Shellys das), also

    if(event.info.id !== REMOTE.BWM_unten "ist aus" && event.info.id !== REMOTE.BWM_oben "ist aus" && "abfrage Status Dimmer zwei ob aus") ------> do function Aus


    Code
    function Aus(ip,ip2){
      print('LEDs werden ausgeschaltet');
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/1?turn=off'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip2 + '/white/0?turn=off'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/1?turn=off'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/0?turn=off'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/3?turn=off'});
        Call('HTTP.get',{url: 'http://' + REMOTE.ip + '/white/2?turn=off'});
        
    }

    Das funktioniert. Die Frage ist nur, die Zeilen unterhalb Main erwartet bzw reagieren auf die Function Main. Wie zu sehen muss ich mehrere Functionen anlegen. Wie kann diese den Funktionen unterhalb Main zuordnen ohne für jede weitere Main alle Funktionen nochmal aufzulisten?

    Das was in der "Main" Funktion steht wird zuerst ausgeführt, das ist so zu sagen der Hauptteil.

    Danke für deine Antwort. Kann ich das denn irgendwie mit einem Aufruf aus dem if Teil "umgehen"?

    Ich möchte ja erreichen das erst wenn if (event.info.id === REMOTE.BWM_unten)die Calls ausgeführt werden.

    Das Skript führt jeden Call mit einer Sekunde Abstand aus, plus der Zeit, die der Call für die Antwort benötigt. Wenn die LEDs ungleichmäßig angehen, liegt das möglicherweise an deinem WLAN oder daran, dass die Shellys, an denen die LEDs angeschlossen sind, nicht schnell genug die Calls bearbeiten. Versuch mal den

    Ich habe den Teil mit den Calls mal hinter die IF Schleife gehangen, dann funktioniert es kurioserweise sauberer.

    Wenn das Skript nicht funktioniert, sehe ich nicht, wie es überhaupt klappen soll. Du könntest versuchen, mehrere Calls mit einem "Turnoff-Timer" gleichzeitig zu verschicken (callLimit von 1 auf 5 stellen), also das parallele Call-Limit erhöhen und nen Timer in die Calls einbauen. Den richtigen Wert musst du selbst ermitteln. Ob das dann gleichmäßig funktioniert, hängt stark von deinem WLAN ab.

    Wie meinst du das genau, also wo soll ich das dranhängen?

    Hab es jetzt mal so eingefügt. Wie verhinder ich das er in die Functions? Ich dachte eigentlich das erst zur Function gesprungen wird wenn der Aufruf erfolgt?

    Danke für den Code, allerdings führt er das Einschalten der LEDs nicht gleichmäßig aus sondern mal geht der erste langsam und der zweite schnell danach an und mal andersrum oder der vierte dauert dann ewig bis er eingeschaltet wird. Manchmal geht es aber auch zügig.

    Woran könnte das liegen?

    Ich komm enur hier nicht weiter die Verzögerung von 1 Sekunde einzubauen. Wie kann ich das aus deinem Code hier nutzen?

    Ich habe den haken bei Fulllog nicht gesetzt. Das kommt so wie ich es geschrieben habe im log, es sei denn ich muss noch etwas anderes einstellen, damit der log nicht so aussieht?

    Ich möchte vor dem Thema dimmer2 erstmal die schleife machen, da dein Code funktioniert fehlt mir jetzt nur die Erklärung warum ich mit meinen Schleifen und deinem teil den Hinweis zur url bekomme?

    ja die Zeit passt allerdings kommen ne ganze Menge Meldungen: