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. Jalousie Steuerung / Rolladensteuerung • Z-Wave

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    993

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Jalousie Steuerung / Rolladensteuerung • Z-Wave

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 1 Kommentatoren 418 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.
  • M Offline
    M Offline
    mmtnrw
    schrieb am zuletzt editiert von
    #1

    So, nachdem ich jetzt so ziemlich alles probiert habe um die Lamellenstellung zu programmieren und es ja immer funktioniert wenn nur eine und keine Gruppe genutzt wird.

    Poste ich mal meinen Ansatz, damit man sieht was ich versucht habe.

    Das Problem besteht in der Kommunikation, denn ich möchte ja das ich wenn alle Jalousien irgendwo stehen z.b. die Südseite aufgestellt wird für 500ms, mein Problem ist nur, das die erste dann funktioniert und die zweite erst 15 Sekunden später los fährt und nach 100ms stoppt obwohl 500ms angegeben sind.

    Meiner Meinung nach hakt es am Sendepuffer und der dazugehörigen ACK Abfrage, wobei mich danach wiederum wundert, das die Zweite Jalousie ja erst 15 Sekunden später den Befehl annimmt egal ob ich das Callback mit Timeout starte oder auch mit einem Callback innerhalb des setState.

    Wenn ich aber allen Jalousien einen Fahrbefehl erteile dann liegen ms zwischen den Befehlen.

    Meine Ansatz:

    Bei Einzelanbindung wenn also item ein String ist, insofern nur ein Aktor geht alles. Wenn ich das gleiche auf alle anwende wie in dem Einzelaktor fahren die Jalousien nur noch wie wild, eine 500ms, eine 1500ms eine 800ms etc etc. und dann steht ja nichts gleichmässig. Und deswegen lieber so wie ich es gemacht habe.

    Das mit function und return function verhindert ein überschreiben der variablen, dadurch wird es etwas unübersichtlicher aber es bei asyncronem Zugriff der Variablen nichts passieren.

    Also die erste der Schleife fährt genau so wie sie soll 500ms, die anderen maximal 100ms…. bis die zweite etc dann fährt vergehen allerdings auch 15 sekunden.

    ! function pushbutton( item, timeout=200, append='', index=0 )
    ! {
    ! log( 'Item: ' + item);
    ! log( 'timeout: ' + timeout);
    ! log( 'append: ' + append);
    ! log( 'index: ' + index);
    ! if( typeof(item) == 'string' )
    ! {
    ! setState(item + append, true);
    ! setStateDelayed( item + append, false, timeout );
    ! }
    ! else
    ! {
    ! setState( item[index]+append, true, (function(brr_item, brr_timeout, brr_append, brr_index ){
    ! return function () {
    ! setTimeout( (function(crr_item, crr_timeout, crr_append, crr_index) {
    ! return function() {
    ! setState( crr_item[crr_index]+crr_append, false, (function( drr_item, drr_timeout, drr_append, drr_index ) {
    ! return function() {
    ! if( ++drr_index < drr_item.length )
    ! {
    ! pushbutton( drr_item, drr_timeout, drr_append, drr_index );
    ! }
    ! };})(crr_item,crr_timeout,crr_append,crr_index) );
    ! };})(brr_item,brr_timeout,brr_append,brr_index), brr_timeout );
    ! };})(item, timeout,append,index ) );
    ! }
    ! }

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mmtnrw
      schrieb am zuletzt editiert von
      #2

      Hier der erste übersichtlichere Ansatz:

      ! function pushbutton( item, timeout=200, append='', index=0 )
      ! {
      ! if( typeof(item) == 'string' )
      ! {
      ! setState(item, true);
      ! setStateDelayed( item, false, timeout );
      ! }
      ! else
      ! {
      ! setState( item[index], true );
      ! setTimeout( (function(arr_item, arr_timeout, arr_append, arr_index ){ return function () {
      ! setState( arr_item[arr_index], false );
      ! if( ++arr_index < arr_item.length )
      ! {
      ! pushbutton( arr_item, arr_timeout, arr_append, arr_index );
      ! }
      ! }})(item, timeout, append, index ),timeout)
      ! }
      ! }

      mit gleichem Ergebniss.

      Der Aufruf ist z.b. pushbutton( ['zwave.0.NODE6', 'zwave.0.NODE7'], 500, '.SWITCH_MULTILEVEL.Bright_1' );

      So kann ich meine Arrays und der funktionen der Google Home Integration entsprechend klein halten…...

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        mmtnrw
        schrieb am zuletzt editiert von
        #3

        Kein Schwein ruft mich an, keine Sau interessiert sich für mich :)

        Push

        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

        499

        Online

        32.6k

        Benutzer

        82.3k

        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