NEWS


  • @paul53 Nein, ioBroker empfängt den Wert nur, wenn ich das richtig sehe


  • @xxx_turbo_xxx sagte:

    ioBroker empfängt den Wert nur

    Dann benötigst Du einen Alias-Datenpunkt mit getrenntem Kommando / Status.

    • alias.id.write: "0_userdata.0.Pool.Pumpe"
    • alias.id.read: "mqtt.0.ESP_Easy_pro_11.Pumpe.State"
    • alias.read: "!!val"

  • @paul53 Ok. Kannst du mir das bitte etwas genauer darstellen? Wo trage ich die Werte ein?


  • @xxx_turbo_xxx
    Kopiere folgendes Script und starte es kurz einmal:

    // Original-Datenpunkt
    const idOrigin = '0_userdata.0.Pool.Pumpe'; 
    // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
    // Bei Nicht-Verwendung Leerstring '' zuweisen
    const idRead = 'mqtt.0.ESP_Easy_pro_11.Pumpe.State';
     
    // Alias-Datenpunkt
    const idAlias = 'Pool.Pumpe';
    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
    // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
    nameAlias = 'Pool Pumpe';
    desc = 'per Script erstellt';
    typeAlias = 'boolean'; // oder 'number'
    read = "!!val";   
    // write = "val ? true : true";
    role = 'switch';
    // 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(min !== undefined) obj.common.min = min;
          if(max !== undefined) obj.common.max = max;
          if(unit) obj.common.unit = unit;
          if(states) obj.common.states = states;
          if(custom && obj.common.custom) obj.common.custom = custom;
          obj.native = {};
          setObject(idDst, obj);
          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, idOrigin, idRead);
    

  • @paul53 ok... hab ich


  • @xxx_turbo_xxx sagte:

    hab ich

    Dann sollte ein Datenpunkt "alias.0.Pool.Pumpe" vorhanden sein, den Du mit Yahka verwenden kannst.


  • @xxx_turbo_xxx Wenn ich das richtig verstehe legt das Script nur den Datenpunkt unter alias an, richtig?


  • @paul53 Läuft! Danke!!! Dann kann ich das Skript theoretisch wieder löschen bzw. deaktivieren? Jetzt muss ich nur noch verstehen, was da im Hintergrund läuft 🙂


  • @paul53 eines ist mir allerdings noch aufgefallen. Wenn ich die Pumpe manuell per Browserkommando starte kann ich sie nicht per Homekit deaktivieren...


  • @xxx_turbo_xxx sagte:

    Dann kann ich das Skript theoretisch wieder löschen bzw. deaktivieren?

    Nein, das Skript wandelt das Kommando (false/true) vom Datenpunkt in eine gesendete URL, wird also weiterhin benötigt.

Suggested Topics

2.2k
Online

37.0k
Users

42.7k
Topics

592.2k
Posts