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. Yahka Siemens Logo Jalousie

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Yahka Siemens Logo Jalousie

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 640 Aufrufe 3 Watching
  • Ä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.
  • K Offline
    K Offline
    Karlson 0
    schrieb am zuletzt editiert von
    #1

    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

    paul53P G 2 Antworten Letzte Antwort
    0
    • K Karlson 0

      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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @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);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        Karlson 0
        schrieb am zuletzt editiert von
        #3

        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)

        paul53P 1 Antwort Letzte Antwort
        0
        • K Karlson 0

          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)

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @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.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • K Karlson 0

            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

            G Offline
            G Offline
            GeRei
            schrieb am zuletzt editiert von
            #5

            @karlson-0

            Hallo Karlson,

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

            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

            769

            Online

            32.6k

            Benutzer

            82.0k

            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