Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Yahka Siemens Logo Jalousie

    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

    Yahka Siemens Logo Jalousie

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Karlson 0 last edited by

      Hallo Zusammnen,

      Habe jetzt Yahka für mich entdeckt und finde die kombination mit iobroker super.
      So kann ich alle Geräte Zentral Verbinden und von einem Gerät mit einer App steuern.

      Habe mein ganzes Licht eingefügt mit hilfe von der Alias funktion.
      Da hat mich folgender Beitrag weiter gebracht:

      https://forum.iobroker.net/topic/39617/yahka-lightbulb-mit-verschiedenen-datenpunkten/10?_=1616930178050

      Jetzt würde ich auch gerne meine Jalousie in Yahka bekommen.
      Miene Jalousien laufen über LOGO 8 und dem S7 Adapter. Habe für meine Jalousie 3 Netzwerkeingänge (Buttons) die ich ansteuern kann.

      AUF; AB und Sonnenschutz

      Bei betätigung des jeweiligen Buttons fährt das Programm in der LOGO Zeit X ab.

      Eine Rückmeldung kriege ich über den UDF Baustein als WORD. 1=ZU 2=Sonnenschutz 3=Offen
      Dieser Word Wert ist ebenfalls im S7 Adapter vorhanden.

      Habe viel im forum gesehn dass Leute ihre Jalousien von 0-100% fahren können, das wäre natürlich ein Traum, aber so wie es jetzt ist, reicht es mir aus.

      Vielen Dank

      paul53 G 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Karlson 0 last edited by

        @karlson-0 sagte: (Buttons) die ich ansteuern kann. AUF; AB und Sonnenschutz
        Rückmeldung kriege ich über den UDF Baustein als WORD. 1=ZU 2=Sonnenschutz 3=Offen

        Vorschlag (nicht getestet):

        const idStatus = '...';
        const idAuf = '...';
        const idAb  = '...';
        const idSonne = '...';
        
        on({id: idStatus, change: 'ne', ack: false}, function(dp) {
           if(dp.state.val == 1) setState(idAb, true);
           else if(dp.state.val == 2) setState(idSonne, true);
           else if(dp.state.val == 3) setState(idAuf, true);
        });
        
        1 Reply Last reply Reply Quote 0
        • K
          Karlson 0 last edited by

          Vielen Dank für die Antwort, habe es gerade eingefügt.

          // Original-Datenpunkt, der zu schreibende, der Taster
          
          
          const idStatus = 's7.0.DBs.DB1.U002_1';
          
          const idAuf = 's7.0.DBs.DB1.NI9';
          
          const idAb  = 's7.0.DBs.DB1.NI7';
          
          const idSonne = 's7.0.DBs.DB1.NI8';
          
           
          
          // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt, der zu lesende, der shellly
          
          // Bei Nicht-Verwendung Leerstring '' zuweisen
          
          on({id: idStatus, change: 'ne', ack: false}, function(dp) {
          
             if(dp.state.val == 0) setState(idAb, true);
          
             else if(dp.state.val == 1) setState(idSonne, true);
          
             else if(dp.state.val == 2) setState(idAuf, true);
          
          });
          
          
           
          
          // Name des neuen Alias-Datenpunkt
          
          const idAlias = 'Jal Test';
          
           
          
          //Name des Alias
          
          nameAlias = 'Jal Test';
          
           
          
          var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
          
          desc = 'per Script erstellt';
          
           
          
          // Folgende befehle auskommentieren, wenn keine Änderung der Eigenschaft erforderlich
          
           
          
          // typeAlias = 'boolean'; // oder 'number'
          
          // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
          
          write = "val ? true : true";  //wichtig bei Tastern
          
          // role = 'value';
          
          // min = 0; // nur Zahlen
          
          // max = 100; // nur Zahlen
          
          // unit = '%'; // nur für Zahlen
          
          // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
          
          // custom = []; // verhindert doppelte Ausführung von history, ...
          
          // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
          
          // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
          
           
          
          // Ab hier nichts ändern !!
          
          function createAlias(idDst, idSrc, idRd) {
          
             if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
          
             else {
          
                var obj = {};
          
                obj.type = 'state';
          
                obj.common = getObject(idSrc).common;
          
                obj.common.alias = {};
          
                if(idRd) {
          
                    obj.common.alias.id = {};
          
                    obj.common.alias.id.read = idRd;
          
                    obj.common.alias.id.write = idSrc;
          
                    obj.common.read = true;
          
                } else obj.common.alias.id = idSrc;
          
                if(typeAlias) obj.common.type = typeAlias;
          
                if(obj.common.read !== false && read) obj.common.alias.read = read;
          
                if(obj.common.write !== false && write) obj.common.alias.write = write;
          
                if(nameAlias) obj.common.name = nameAlias;
          
                if(role) obj.common.role = role;
          
                if(desc) obj.common.desc = desc;
          
                if(obj.common.type == 'number') {
          
                   if(min !== undefined) obj.common.min = min;
          
                   if(max !== undefined) obj.common.max = max;
          
                   if(unit) obj.common.unit = unit;
          
                } else {
          
                   if(obj.common.min !== undefined) delete obj.common.min;
          
                   if(obj.common.max !== undefined) delete obj.common.max;
          
                   if(obj.common.unit) delete obj.common.unit;
          
                }
          
                if(states) obj.common.states = states;
          
                if(custom && obj.common.custom) obj.common.custom = custom;
          
                obj.native = {};
          
                setObject(idDst, obj, function() {
          
                   if(idRd) setState(idRd, getState(idRd).val, true);
          
                   else setState(idSrc, getState(idSrc).val, true); 
          
                });
          
                if(raum && existsObject('enum.rooms.' + raum)) {
          
                   let obj = getObject('enum.rooms.' + raum)
          
                   obj.common.members.push(idDst);
          
                   setObject('enum.rooms.' + raum, obj);
          
                }
          
                if(gewerk && existsObject('enum.functions.' + gewerk)) {
          
                   let obj = getObject('enum.functions.' + gewerk)
          
                   obj.common.members.push(idDst);
          
                   setObject('enum.functions.' + gewerk, obj);
          
                }
          
             } 
          
          }
          
          createAlias('alias.0.' + idAlias, idStatus, idAuf, idAb, idSonne);
          
           
          
          

          So sieht das ganze Script jetzt aus, habe diesen Alias probiert bei Yahka einzufügen, aber da tat sich leider bei der bedineung nichts.
          Habe es unter Position state eingefügt.

          Irgendetwas mache ich doch falsch, weil warum kann man bei Yahka unter Jalousie so viele Punkte einfügen ?

          Noch ein kleiner Nachtrag von mir:

          Habe den WORD Wert falsch definiert: Offen= 2 Sonnenschutz=1 Geschlossen=0
          Habe es aber schon im script richtig geschriben (denke ich zumindest)

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Karlson 0 last edited by

            @karlson-0 sagte: habe diesen Alias probiert bei Yahka einzufügen

            Weshalb einen Alias? Das Skript soll dafür sorgen, dass die Jalousie über den Status-Datenpunkt "s7.0.DBs.DB1.U002_1" bedient werden kann.
            Von Yahka habe ich keine Ahnung.

            1 Reply Last reply Reply Quote 0
            • G
              GeRei @Karlson 0 last edited by

              @karlson-0

              Hallo Karlson,

              wie weit bist du mit einer Rollladensteuerung.
              Stehe gerade auch vor dem Problem und suche eine Lösung

              Gruß

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

              Support us

              ioBroker
              Community Adapters
              Donate

              559
              Online

              31.9k
              Users

              80.1k
              Topics

              1.3m
              Posts

              3
              5
              538
              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