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. Praktische Anwendungen (Showcase)
  4. Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
alexaansageblocklyfensteriqontroljarvisjavascripttür-fenster-kontakt
524 Beiträge 40 Kommentatoren 121.9k Aufrufe 57 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.
  • L Lucky_ESA

    Wenn du ein neuen Aktor hinzufügst musst du danach den Adapter Javascript neu starten.

    Gruß//Lucky

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #439

    @lucky_esa sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

    Wenn du ein neuen Aktor hinzufügst musst du danach den Adapter Javascript neu starten.

    Danke, das wars.
    Ich hab immer nur das Script neu gestartet.

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    1 Antwort Letzte Antwort
    0
    • dslraserD dslraser


      https://github.com/sbormann/ioBroker.alias-manager


      Im Beispielvideo werden die eigenen Alias ab Zeile 271 eingefügt, also ab dem ersten createAlias. In der Vorlage habe ich jeweils zwei meiner verwendeten Geräte als Beispiel eingefügt.
      Video Beispiel:
      alias_per_script_erstellen.m4v

      /**************************************************************
      Github - https://github.com/xCruziX/ioBroker-Creating-Alias/blob/master/CreateAlias.js
        			Changelog
      Version 1.1.4
      - fix error by using bCreateAliasPath and bConvertExistingPath (has no target 9/Error creating alias-path)
      **************************************************************/
      
      /**************************************
        	Flags /
        	Variablen
      ***************************************/
      
      // typeAlias = 'boolean'; // oder 'number'
      // read = "val == 'Ein' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
      // write = "val ? 'Ein' : 'Aus'";
      // nameAlias = 'Licht Haustür';
      // role = 'switch';
      // desc = 'per Script erstellt';
      // 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)
      
      
      let bCreateAliasPath = true;  // If this flag is true, each folder is created seperately so rooms and functions can be assigned.
      
      /*
      Requirements: bCreateAliasPath == true
      If this flag is true, existing folders in the path will be converted so rooms and functions can be assigned.
      */
      let bConvertExistingPath = false;
      
      /***************************************
        	Don't change anything from here /
        	Ab hier nichts verändern
      ***************************************/
      
      let arEnum = [];
      let arId = [];
      let timeoutAssignEnum;
      var callbackAlias = undefined;
      function createAlias(idSrc, idDst,raum, gewerk,typeAlias, read, write, nameAlias, role, desc, min, max, unit, states) {
      if(!idDst.includes('alias.0.'))
          idDst = 'alias.0.' + idDst;
      if(!existsObject(idSrc))
      {
          log('Source-Id ' + idSrc +' does not exists.','warn');
          return;
      }
      
      // Create the object Path for alias id, 
      // so you can assign rooms and function to the parents
      var createAliasPath = (id) => {
           if(bCreateAliasPath){
                let lisMergedIds = [];
                let mergedId = 'alias.0';
                id = id.replace(mergedId + '.', ''); // Remove prefix alias so it will not be changed
                let split = id.split('.'); 
                for(let i=0;i<split.length-1;i++){
                    mergedId += '.' + split[i];
                    lisMergedIds.push(mergedId);
                }
                
                function path(){
                    if(lisMergedIds.length == 0) {
                        alias();
                        return;
                    }
                    let tmpId = lisMergedIds[0];
                    lisMergedIds.splice(0,1); // remove element
                    if(!existsObject(tmpId) || bConvertExistingPath){ // not exists
                        let obj;
                        if(existsObject(tmpId))
                            obj = getObject(tmpId);
                        else
                            obj = {};
      
                        let bApply = false;
                        if(obj != undefined){
                            if(obj.type == undefined || String(obj.type) != 'meta'){
                                obj.type = 'meta';
                                bApply = true;
                            }
                            if(obj.common == undefined){
                                obj.common = {};
                                obj.common.type = 'meta.folder';
                                bApply = true;
                            }
                            else if(obj.common.type == undefined || String(obj.common.type) != 'meta.folder'){
                                obj.common.type = 'meta.folder';
                                bApply = true;
                            }
                            if(obj.native == undefined){
                                obj.native = {};
                                bApply = true;
                            }
                        }
                        else{
                            path();
                            log('Object is undefined');
                            return;
                        }
                        
      
                        if(bApply){
                            setObject(tmpId, obj, (err) =>{
                            if(!err){
                                log('Created Alias-Path ' + tmpId);
                                path();
                            }
                            else
                                log('Error creating alias-path','error');
                        });
                        }
                        else
                            path();
                        
                    }
                }
                path();
           }
           else
             alias();
      }
      
      
      function alias(){
          // Create alias object
          
            if(!existsObject(idDst)){
                let obj = {};
                obj.type = 'state';
                obj.common = getObject(idSrc).common;
                obj.common.alias = {};
                obj.common.alias.id = idSrc;
                if(typeAlias !== undefined) 
                    obj.common.type = typeAlias;
                if(obj.common.read !== undefined) 
                    obj.common.alias.read = read;
                if(obj.common.write !== undefined) 
                    obj.common.alias.write = write;
                if(nameAlias !== undefined) 
                    obj.common.name = nameAlias;
                if(role !== undefined) 
                    obj.common.role = role;
                if(desc !== undefined) 
                    obj.common.desc = desc;
                if(min !== undefined) 
                    obj.common.min = min;
                if(max !== undefined) 
                    obj.common.max = max;
                if(unit !== undefined) 
                    obj.common.unit = unit;
                if(states !== undefined) 
                    obj.common.states = states;
      
                obj.native = {};
                obj.common.custom = {}; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                log('Created Alias-State ' + idDst);
                setObject(idDst, obj,(err) =>{ 
                    if(!err)
                        startAttach(); 
                    else
                        log('Error creating-alias','error');
                });
            }
            else
                startAttach();
      }
      
      
      // Save ID and Enum (room or function)
      var attach = (id, enu,value) => {
          if(id.length == 0){
              log('ID has lenght 0, can not attach to enum','warn');
              return;
          }
          if(value.length == 0){
              log('Value has lenght 0','warn');
              return;
          }
        
          let sEnuId = 'enum.' + enu + '.' + value;
          if(enu.length > 0 && existsObject(sEnuId)) 
          {
              let obj = getObject(sEnuId)
              let members = obj.common.members;
              if(!members.includes(id)){
                  arEnum.push(sEnuId);
                  arId.push(id);
              }
          }
          else
       	      log('Can not find enum ' + sEnuId,'warn');
      }
      
      function startAttach(){
        let bRoom = raum !== undefined && raum.length > 0;
        let bGewerk = gewerk !== undefined && gewerk.length > 0;
        
        if(bRoom)
            attach(idDst,'rooms',raum);
        if(bGewerk)
            attach(idDst,'functions',gewerk);
        if(bRoom || bGewerk){
                if(timeoutAssignEnum){
                    clearTimeout(timeoutAssignEnum);
                    timeoutAssignEnum = null;
                }
                timeoutAssignEnum = setTimeout(finishScript,100);
        }
      }
      
      createAliasPath(idDst);
      }
      
      function finishScript(){
        assignEnums();
      }
      
      // Add the saved IDs to the rooms/functions
      function assignEnums(){
      if(arEnum.length == 0 || arId.length == 0){
          return;
      }
      
      if(arEnum.length != arId.length){
          log('Arrays have different size','error');
          return;
      }
      let mapEnumId = new Map();
      
      for(let i=0;i < arEnum.length; i++){
         let enu = arEnum[i];
         let id = arId[i];
         if(existsObject(id)){
        	 let obj = getObject(enu)
        	 let members;
        	 if(!mapEnumId.has(enu)){
        		 members = obj.common.members;
        		 mapEnumId.set(enu,members);
        	 }
        	 else
        		 members = mapEnumId.get(enu);    
        	 if(!members.includes(id)){
        		  log("Adding " + id + " to " + enu);
        		  members.push(id);
        	 }	      
         }
         else
             log('Can not find Alias ' + id,'error');
      }
      
      function setMembers(members,enu,map){
          let obj = getObject(enu);
          obj.common.members = members;
          setObject(enu,obj);
      }
      mapEnumId.forEach(setMembers);
      }
      
      /**********************************************************
        	END /
        	ENDE
      **********************************************************/
      
      //////////////////////////////
      //  Fenster
      //////////////////////////////
      //2 x Fenstersensoren HMIP
      //einfache HMIP Fenstersensoren über rpc-Adapter in function fenster_alias
      //{0: 'geschlossen', 1: 'geöffnet'}
      createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
      createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
      
      //2 x Fenstersensoren HM
      //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
      //{false: 'geschlossen', true: 'geöffnet'}
      createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'boolean', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
      createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'boolean',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
      
      
      //2 x Fensterdrehgriffe HMIP
      //HMIP Fensterdrehgriffe über rpc-Adapter in function fenster_alias
      //{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}
      createAlias('hm-rpc.0.xxx.1.STATE'/*Keller W-Baum Fenster STATE*/, 'Fenster.Keller_Weihnachtsbaum_Fenster', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller W Baum', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
      createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Wohnzimmer Fenster mitte STATE*/, 'Fenster.Keller_Wohnzimmer_Fenster_mitte', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Wohnzimmer mitte', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
      
      //2 x Fenster(Türen) Sensoren HMIP
      //einfache HMIP Fenstersensoren über rpc-Adapter in function tueren_alias
      //{0: 'geschlossen', 1: 'geöffnet'}
      createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Terrassentür STATE*/, 'Tueren.Terrassentuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Terrassentür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
      createAlias('hm-rpc.0.xxx.1.STATE'/*Haustür STATE*/, 'Tueren.Haustuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Haustür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
      
      //////////////////////////////
      //  Steckdosen
      //////////////////////////////
      //2 x Steckdosen
      //HMIP Steckdosen über rpc-Adapter in function steckdosen_alias
      //{false: 'aus', true: 'an'}
      createAlias('hm-rpc.0.xxx.3.STATE'/*Waschmaschine STATE*/, 'Steckdosen.Waschmaschine', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Waschmaschine', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      createAlias('hm-rpc.0.xxx.3.STATE'/*Geschirrspueler STATE*/, 'Steckdosen.Geschirrspueler', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Geschirrspüler', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      
      //////////////////////////////
      //  Bewegungsmelder
      //////////////////////////////
      //2 x Bewegungsmelder und 2 x Präsenzmelder und 1 x Erschütterungssensor
      //HMIP Bewegungsmelder und Präsenzmelder über rpc-Adapter in function bewegungsmelder_alias
      //{false: 'inaktiv', true: 'aktiv'}
      createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Weihnachtsbaumkeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Weihnachtsbaumkeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'W Baum Keller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
      createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Heizungskeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Heizungskeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Heizungskeller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
      //ab hier 2 x Präsenzmelder
      createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Badezimmer PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Badezimmer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Badezimmer', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
      createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Dusche PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Dusche', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Dusche', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
      //ab hier 1 x Erschütterungssensor
      createAlias('hm-rpc.0.xxx.1.MOTION'/*Briefkasten MOTION*/, 'Bewegungsmelder.Praesenzmelder_Briefkasten', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Briefkasten', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
      
      //////////////////////////////
      //  Licht
      //////////////////////////////
      //2 x HUE und 5 x HMIP Licht über HUE und rpc-Adapter in function licht_alias
      //{false: 'aus', true: 'an'}
      createAlias('hue.0.Badezimmerlampe_links.on'/*Badezimmerlampe links on*/, 'Licht.Badezimmer_Licht_links', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer links', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      createAlias('hue.0.Badezimmerlampe_rechts.on'/*Badezimmerlampe rechts on*/, 'Licht.Badezimmer_Licht_rechts', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer rechts', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      
      //ab hier 2 x Licht HMIP Steckdosen über rpc Adapter
      createAlias('hm-rpc.0.xxx.3.STATE'/*Kugellampe STATE*/, 'Licht.Wohnzimmer_Kugel_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Kugellicht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      createAlias('hm-rpc.0.xxx.3.STATE'/*Gäste WC Licht STATE*/, 'Licht.Gaeste_WC_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Gäste WC Licht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
      
      //////////////////////////////
      //  Temperaturen
      //////////////////////////////
      //HMIP 2 x Temperaturen über rpc-Adapter in function temperaturen_alias
      createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Schlafzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Schlafzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Schlafzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
      createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Wohnzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Wohnzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Wohnzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
      
      //////////////////////////////
      //  Batterien_voll_leer
      //////////////////////////////
      //2 x Batterien voll-leer über boolean Wert false/true in function batterien_voll_leer_alias
      createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Wohnzimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Wohnzimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
      createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Küche Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Kueche_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Küche Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
      
      //////////////////////////////
      //  Batterien_Volt
      //////////////////////////////
      //2 x Batterien Volt Anzeige in function batterien_volt_alias
      createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Wohnzimmer Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Wohnzimmer_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Wohnzimmer Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
      createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Küche Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Kueche_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Küche Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
      
      
      



      Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" Editor öffnen und den gesamten Inhalt der Textdatei in die Zwischenablage kopieren und anschließend in ein neues leeres Blockly importieren. Nicht direkt im Browser öffnen und kopieren, dann kommt es oft zu Umlaute Fehlern im Blockly.

      Fenster_1_8_1.zip

      Tueren_1_8_1.zip

      Licht_1_8_1.zip

      Temperaturen_1_8_1.zip

      Bewegungsmelder_1_8_1.zip

      Luftfeuchtigkeit_1_8_1.zip

      Steckdosen_1_8_1.zip

      Batterien_Prozent_1_8_1.zip

      Batterien_voll_leer_lowbat_1_8_1.zip

      Batterien_Volt_1_8_1.zip

      RSSI_1_8_1.zip

      Mein iQontrol View für alle Geräte

      2021-04-28_iqontrol_0_selected_views.json.zip

      Screenshot_20210428-091122_Chrome.jpg

      Zusatzblockly zur Anruferansage, Beschreibung folgt. Ursprung ist von hier


      Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" Editor öffnen und den gesamten Inhalt der Textdatei in die Zwischenablage kopieren und anschließend in ein neues leeres Blockly importieren. Nicht direkt im Browser öffnen und kopieren, dann kommt es oft zu Umlaute Fehlern im Blockly.

      Bildschirmfoto 2021-04-28 um 19.40.31.png

      Zwei ECHOS können zur Ansage ausgewählt werden. Wer nur einen ECHO braucht, einfach entsprechend deaktivieren.

      Bildschirmfoto 2021-04-28 um 19.50.51.png

      Bildschirmfoto 2021-04-29 um 21.56.13.png

      meine iQontrol Anwendung dafür

      Bildschirmfoto 2021-04-28 um 20.05.11.png

      Alexa_Anruferansage_Telegram_EMAIL_1.0.0.zip

      H Offline
      H Offline
      helfi9999
      schrieb am zuletzt editiert von helfi9999
      #440

      @dslraser Hi,

      irgendwas stimmt mit dem Blockly von "Temperatur" nicht.

      Immer wenn ich das Blockly starte erscheint folgende Fehlermeldung:


      Image 1.png

      Wie kann ich es ändern??

      Hat sich erledigt habe irgendwas falsch kopiert!!

      Intel NUC mit Iobroker

      1 Antwort Letzte Antwort
      0
      • dslraserD dslraser

        @dominik-f
        Dein alias ist komplett falsch.
        Falscher Typ, falsche Rolle usw.

        T Offline
        T Offline
        TbiBnz
        schrieb am zuletzt editiert von TbiBnz
        #441

        @dslraser @Dominik-F Hallo,

        vorne weg danke für deine Super Arbeit! ohne die Blockys würde ich wohl verzweifeln.

        ich habe nun das Problem das ich meine Homematic Geräte über den HmIp Adapter eingebunden habe und nicht über den RPC. Einfach aus dem Grund das ich keine CCU besitze sondern nur den Acess Point.

        Nun sehen meine Originalen Datenpunkte und dementsprechend auch meine Aliase so aus:

          "type": "state",
          "common": {
            "name": "windowState",
            "type": "string",
            "role": "text",
            "read": true,
            "write": false
          },
          "native": {},
          "from": "system.adapter.hmip.0",
          "user": "system.user.admin",
          "ts": 1661283665554,
          "_id": "hmip.0.devices.xxxxx.windowState",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        

        Nunja ich stehe jetzt vor dem Problem das ich die Blockys für Fenster und Türen nicht richtig nutzen kann, das diese nicht richtig gezählt werden.

        Ich habe nun einige Tage versucht die Aliase wie im unteren Code aussehen zu lassen leider klappt das nicht so richtig.

        {
         "type": "state",
         "common": {
           "name": "Terrassentür",
           "def": 0,
           "type": "number",
           "read": true,
           "write": false,
           "min": 0,
           "max": 2,
           "states": {
             "0": "geschlossen",
             "1": "gekippt",
             "2": "geöffnet"
           },
           "role": "window.value",
           "alias": {
             "id": "hm-rpc.0.xxx.1.STATE"
           },
           "desc": "per Script erstellt",
           "unit": ""
         },
         "native": {},
         "from": "system.adapter.javascript.0",
         "user": "system.user.admin",
         "ts": 1615639660637,
         "_id": "alias.0.Tueren.Terrassentuer",
         "acl": {
           "object": 1636,
           "state": 1636,
           "owner": "system.user.admin",
           "ownerGroup": "system.group.administrator"
         }
        }
        
        

        Nun meine frage liegt das am Adapter, das die Datenpunkte nicht richtig ausgegeben werden?
        Bin ich irgendwo komplett falsch?

        Ich wäre über ein wenig hilfe echt dankbar, bin noch blutiger Anfänger der seid einigen Tagen versucht deine Blockys zu verwenden.

        L Dominik F.D 2 Antworten Letzte Antwort
        0
        • T TbiBnz

          @dslraser @Dominik-F Hallo,

          vorne weg danke für deine Super Arbeit! ohne die Blockys würde ich wohl verzweifeln.

          ich habe nun das Problem das ich meine Homematic Geräte über den HmIp Adapter eingebunden habe und nicht über den RPC. Einfach aus dem Grund das ich keine CCU besitze sondern nur den Acess Point.

          Nun sehen meine Originalen Datenpunkte und dementsprechend auch meine Aliase so aus:

            "type": "state",
            "common": {
              "name": "windowState",
              "type": "string",
              "role": "text",
              "read": true,
              "write": false
            },
            "native": {},
            "from": "system.adapter.hmip.0",
            "user": "system.user.admin",
            "ts": 1661283665554,
            "_id": "hmip.0.devices.xxxxx.windowState",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          

          Nunja ich stehe jetzt vor dem Problem das ich die Blockys für Fenster und Türen nicht richtig nutzen kann, das diese nicht richtig gezählt werden.

          Ich habe nun einige Tage versucht die Aliase wie im unteren Code aussehen zu lassen leider klappt das nicht so richtig.

          {
           "type": "state",
           "common": {
             "name": "Terrassentür",
             "def": 0,
             "type": "number",
             "read": true,
             "write": false,
             "min": 0,
             "max": 2,
             "states": {
               "0": "geschlossen",
               "1": "gekippt",
               "2": "geöffnet"
             },
             "role": "window.value",
             "alias": {
               "id": "hm-rpc.0.xxx.1.STATE"
             },
             "desc": "per Script erstellt",
             "unit": ""
           },
           "native": {},
           "from": "system.adapter.javascript.0",
           "user": "system.user.admin",
           "ts": 1615639660637,
           "_id": "alias.0.Tueren.Terrassentuer",
           "acl": {
             "object": 1636,
             "state": 1636,
             "owner": "system.user.admin",
             "ownerGroup": "system.group.administrator"
           }
          }
          
          

          Nun meine frage liegt das am Adapter, das die Datenpunkte nicht richtig ausgegeben werden?
          Bin ich irgendwo komplett falsch?

          Ich wäre über ein wenig hilfe echt dankbar, bin noch blutiger Anfänger der seid einigen Tagen versucht deine Blockys zu verwenden.

          L Offline
          L Offline
          Lucky_ESA
          Developer Most Active
          schrieb am zuletzt editiert von
          #442

          @tbibnz ich habe mir unter 0_userdata.Fenster alle Datenpunkte aller Kontakte manuell angelegt (wie diese in alias ausehen werden). Dann über Blockly die Kontakte von HMIP getriggert und bei Änderungen den Wert in die Datenpunkte 0_userdata.Fenster.deinepunkte geschrieben. Diese Datenpunkte habe ich dann als alias angelegt und werden somit von dslraser`s Blockly überwacht. Vielleicht hilft dir das weiter.
          Gruß//Lucky

          T 1 Antwort Letzte Antwort
          0
          • T TbiBnz

            @dslraser @Dominik-F Hallo,

            vorne weg danke für deine Super Arbeit! ohne die Blockys würde ich wohl verzweifeln.

            ich habe nun das Problem das ich meine Homematic Geräte über den HmIp Adapter eingebunden habe und nicht über den RPC. Einfach aus dem Grund das ich keine CCU besitze sondern nur den Acess Point.

            Nun sehen meine Originalen Datenpunkte und dementsprechend auch meine Aliase so aus:

              "type": "state",
              "common": {
                "name": "windowState",
                "type": "string",
                "role": "text",
                "read": true,
                "write": false
              },
              "native": {},
              "from": "system.adapter.hmip.0",
              "user": "system.user.admin",
              "ts": 1661283665554,
              "_id": "hmip.0.devices.xxxxx.windowState",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            

            Nunja ich stehe jetzt vor dem Problem das ich die Blockys für Fenster und Türen nicht richtig nutzen kann, das diese nicht richtig gezählt werden.

            Ich habe nun einige Tage versucht die Aliase wie im unteren Code aussehen zu lassen leider klappt das nicht so richtig.

            {
             "type": "state",
             "common": {
               "name": "Terrassentür",
               "def": 0,
               "type": "number",
               "read": true,
               "write": false,
               "min": 0,
               "max": 2,
               "states": {
                 "0": "geschlossen",
                 "1": "gekippt",
                 "2": "geöffnet"
               },
               "role": "window.value",
               "alias": {
                 "id": "hm-rpc.0.xxx.1.STATE"
               },
               "desc": "per Script erstellt",
               "unit": ""
             },
             "native": {},
             "from": "system.adapter.javascript.0",
             "user": "system.user.admin",
             "ts": 1615639660637,
             "_id": "alias.0.Tueren.Terrassentuer",
             "acl": {
               "object": 1636,
               "state": 1636,
               "owner": "system.user.admin",
               "ownerGroup": "system.group.administrator"
             }
            }
            
            

            Nun meine frage liegt das am Adapter, das die Datenpunkte nicht richtig ausgegeben werden?
            Bin ich irgendwo komplett falsch?

            Ich wäre über ein wenig hilfe echt dankbar, bin noch blutiger Anfänger der seid einigen Tagen versucht deine Blockys zu verwenden.

            Dominik F.D Offline
            Dominik F.D Offline
            Dominik F.
            schrieb am zuletzt editiert von Dominik F.
            #443

            @tbibnz

            Wie deine ursprünglichen Datenpunkte aussehen oder über welchen Adapter du die einbindest ist eigentlich egal.
            Ich nutze zum erstellen der Aliase den Alias-Manager. Damit klappt das recht einfach und du kannst die Aliase auch automatisch erstellen lassen und im Nachhinein noch bearbeiten.

            Ein Fensterkontakt bzw. bei mir Terrassentürkontakt der mit dem Skript funktioniert sieht bei mir so aus:

            {
              "common": {
                "alias": {
                  "id": "hm-rpc.2.0007DA49992A68.1.STATE"
                },
                "name": "Terrassentür",
                "def": 0,
                "role": "value.window",
                "type": "number",
                "min": 0,
                "max": 2,
                "read": true,
                "write": false,
                "states": {
                  "0": "geschlossen",
                  "1": "gekippt",
                  "2": "geöffnet"
                }
              },
              "native": {},
              "type": "state",
              "_id": "alias.0.Wohnzimmer.Terrassentür.STATE",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              },
              "from": "system.adapter.admin.0",
              "user": "system.user.admin",
              "ts": 1643150789802
            

            Du hast bei dir z.B. folgendes drin stehen:

              "alias": {
                 "id": "hm-rpc.0.xxx.1.STATE"
            

            Da müsste eigentlich der Datenpunkt drin stehen, auf den sich der Alias bezieht.
            Ich würde dir wirklich raten, dass mit dem Alias-Manager zu machen. Das ist für Leute mit wenig Erfahrung wie unter Anderem auch mich einfacher als per Skript.

            T 1 Antwort Letzte Antwort
            0
            • Dominik F.D Dominik F.

              @tbibnz

              Wie deine ursprünglichen Datenpunkte aussehen oder über welchen Adapter du die einbindest ist eigentlich egal.
              Ich nutze zum erstellen der Aliase den Alias-Manager. Damit klappt das recht einfach und du kannst die Aliase auch automatisch erstellen lassen und im Nachhinein noch bearbeiten.

              Ein Fensterkontakt bzw. bei mir Terrassentürkontakt der mit dem Skript funktioniert sieht bei mir so aus:

              {
                "common": {
                  "alias": {
                    "id": "hm-rpc.2.0007DA49992A68.1.STATE"
                  },
                  "name": "Terrassentür",
                  "def": 0,
                  "role": "value.window",
                  "type": "number",
                  "min": 0,
                  "max": 2,
                  "read": true,
                  "write": false,
                  "states": {
                    "0": "geschlossen",
                    "1": "gekippt",
                    "2": "geöffnet"
                  }
                },
                "native": {},
                "type": "state",
                "_id": "alias.0.Wohnzimmer.Terrassentür.STATE",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1643150789802
              

              Du hast bei dir z.B. folgendes drin stehen:

                "alias": {
                   "id": "hm-rpc.0.xxx.1.STATE"
              

              Da müsste eigentlich der Datenpunkt drin stehen, auf den sich der Alias bezieht.
              Ich würde dir wirklich raten, dass mit dem Alias-Manager zu machen. Das ist für Leute mit wenig Erfahrung wie unter Anderem auch mich einfacher als per Skript.

              T Offline
              T Offline
              TbiBnz
              schrieb am zuletzt editiert von
              #444

              @dominik-f

              "alias": {
                  "id": "hm-rpc.0.xxx.1.STATE"
              
              

              Dort steht natürlich bei mir die Id des Orginalen Datenpunkt. Das oben gezeigte sollte nur als Beispiel dienen.

              Erstellt werden die Aliase auch per Alias Manager, das funktioniert soweit ganz gut.
              Die Datenpunkte sind dann eben identisch zu den Orginalen und dort fehlen z.b. dann eben die verschiedenen Zustände wie geschlossen/geöffnet.

              Im iObroker werden diese bei mir auch nicht als 0 1 oder 2 dargestellt sondern als closed/titled/opened.

              Wenn ich den Alias dann im Nachhinein auf die Sturkur wie du sie auch geschrieben hast ändere, steht dann im State geschlossen(0) wie es sein sollte allerdings wird der State nicht mehr getriggert wenn ich das Fenster dann öffne.

              Dominik F.D 1 Antwort Letzte Antwort
              0
              • L Lucky_ESA

                @tbibnz ich habe mir unter 0_userdata.Fenster alle Datenpunkte aller Kontakte manuell angelegt (wie diese in alias ausehen werden). Dann über Blockly die Kontakte von HMIP getriggert und bei Änderungen den Wert in die Datenpunkte 0_userdata.Fenster.deinepunkte geschrieben. Diese Datenpunkte habe ich dann als alias angelegt und werden somit von dslraser`s Blockly überwacht. Vielleicht hilft dir das weiter.
                Gruß//Lucky

                T Offline
                T Offline
                TbiBnz
                schrieb am zuletzt editiert von
                #445

                @lucky_esa Dankeschön, das hört sich vielversprechend an. Versuche es am Wochenende mal und hoffe damit komme ich weiter.

                1 Antwort Letzte Antwort
                0
                • T TbiBnz

                  @dominik-f

                  "alias": {
                      "id": "hm-rpc.0.xxx.1.STATE"
                  
                  

                  Dort steht natürlich bei mir die Id des Orginalen Datenpunkt. Das oben gezeigte sollte nur als Beispiel dienen.

                  Erstellt werden die Aliase auch per Alias Manager, das funktioniert soweit ganz gut.
                  Die Datenpunkte sind dann eben identisch zu den Orginalen und dort fehlen z.b. dann eben die verschiedenen Zustände wie geschlossen/geöffnet.

                  Im iObroker werden diese bei mir auch nicht als 0 1 oder 2 dargestellt sondern als closed/titled/opened.

                  Wenn ich den Alias dann im Nachhinein auf die Sturkur wie du sie auch geschrieben hast ändere, steht dann im State geschlossen(0) wie es sein sollte allerdings wird der State nicht mehr getriggert wenn ich das Fenster dann öffne.

                  Dominik F.D Offline
                  Dominik F.D Offline
                  Dominik F.
                  schrieb am zuletzt editiert von
                  #446

                  @tbibnz

                  Ich hab festgestellt, dass ich anfangs genau das gleiche Problem wie du hatte.

                  https://forum.iobroker.net/topic/40424/alexa-ansagen-i-telegram-i-email-i-alias-i-visu-i-html/385?_=1661417638450

                  Ich musste im Nachhinein auch meine Datenpunkte anpassen. Wenn du weiter nach unten scrollst findest du auch die Beiträge die mir geholfen haben, vielleicht hilft es dir ja auch

                  T 1 Antwort Letzte Antwort
                  0
                  • Dominik F.D Dominik F.

                    @tbibnz

                    Ich hab festgestellt, dass ich anfangs genau das gleiche Problem wie du hatte.

                    https://forum.iobroker.net/topic/40424/alexa-ansagen-i-telegram-i-email-i-alias-i-visu-i-html/385?_=1661417638450

                    Ich musste im Nachhinein auch meine Datenpunkte anpassen. Wenn du weiter nach unten scrollst findest du auch die Beiträge die mir geholfen haben, vielleicht hilft es dir ja auch

                    T Offline
                    T Offline
                    TbiBnz
                    schrieb am zuletzt editiert von TbiBnz
                    #447

                    @dominik-f danke dir, deswegen habe ich dich auch direkt markiert. Ich habe im Nachhinein meine Alias Datenpunkte auch wie folgt angepasst, dabei natürlich meine id verwendet.

                    
                    {
                      "common": {
                        "alias": {
                          "id": "hm-rpc.2.0007DA49992A68.1.STATE"
                        },
                        "name": "Terrassentür",
                        "def": 0,
                        "role": "value.window",
                        "type": "number",
                        "min": 0,
                        "max": 2,
                        "read": true,
                        "write": false,
                        "states": {
                          "0": "geschlossen",
                          "1": "gekippt",
                          "2": "geöffnet"
                        }
                      },
                      "native": {},
                      "type": "state",
                      "_id": "alias.0.Wohnzimmer.Terrassentür.STATE",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1643150789802
                    

                    Leider Triggert der Alias aber dann nicht mehr wenn ich die Türe dann schließe oder öffne.

                    Dominik F.D 1 Antwort Letzte Antwort
                    0
                    • L Offline
                      L Offline
                      Lucky_ESA
                      Developer Most Active
                      schrieb am zuletzt editiert von Lucky_ESA
                      #448

                      Ich habe doch oben geschrieben wie du das machen musst. Diese Variante verwende ich da ich meine Fenster Alarmüberwache und dazu benötigt man halt 2 Sensoren.
                      Dein RAW vom HMIP hat einen string und keine number oder boolean. Keiner Ahnung was da jetzt für Werte reingeschrieben werden aber diesen Value vom String musst du abfragen und in den Datenpunkt 0_userdata... dann eine 0 oder 1 schreiben. Dann den Alias auf 0_userdata referenzieren.

                      Edit: Wenn in deinem HMIP DP closed und open geschrieben wird dann ändere mal deinen Alias so:

                         "name": "Terrassentür",
                      
                         "role": "value.window",
                      
                         "type": "string",
                      
                         "read": true,
                      
                         "write": false,
                      
                         "states": {
                      
                           "CLOSED": "geschlossen",
                      
                           "OPEN": "gekippt",
                      
                           "TILTED": "geöffnet"
                      
                         }
                      


                      Gruß//Lucky

                      T 1 Antwort Letzte Antwort
                      0
                      • T TbiBnz

                        @dominik-f danke dir, deswegen habe ich dich auch direkt markiert. Ich habe im Nachhinein meine Alias Datenpunkte auch wie folgt angepasst, dabei natürlich meine id verwendet.

                        
                        {
                          "common": {
                            "alias": {
                              "id": "hm-rpc.2.0007DA49992A68.1.STATE"
                            },
                            "name": "Terrassentür",
                            "def": 0,
                            "role": "value.window",
                            "type": "number",
                            "min": 0,
                            "max": 2,
                            "read": true,
                            "write": false,
                            "states": {
                              "0": "geschlossen",
                              "1": "gekippt",
                              "2": "geöffnet"
                            }
                          },
                          "native": {},
                          "type": "state",
                          "_id": "alias.0.Wohnzimmer.Terrassentür.STATE",
                          "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          },
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1643150789802
                        

                        Leider Triggert der Alias aber dann nicht mehr wenn ich die Türe dann schließe oder öffne.

                        Dominik F.D Offline
                        Dominik F.D Offline
                        Dominik F.
                        schrieb am zuletzt editiert von Dominik F.
                        #449

                        @tbibnz

                        Mal ne ganz blöde Frage. Hast du nach dem Editieren des Datenpunktes mal den Javascript Adapter neu gestartet?
                        Ich kann mich aus einem anderen Skript erinnern, dass dies auch manchmal Fehler bei der Erkennung von Datenpunkten behoben hat.

                        Edit:
                        Das was @Lucky_ESA schreibt kann bzw. wird wahrscheinlich der Grund sein. Mein Orginaldatenpunkt ist bei mir ebenfalls vom Typ "Number". Da er bei dir vom Typ String ist und du eine Number draus machst, könnte das das Problem sein.

                        Hab nochmal geschaut woran es damals lag. Ich hatte beim Orginaldatenpunkt Typ Number und beim Alias Typ String. Erst als beiden Number war, ging es. Vielleicht geht es ja bei dir, wenn beides vom Typ String ist.

                        T 1 Antwort Letzte Antwort
                        0
                        • Dominik F.D Dominik F.

                          @tbibnz

                          Mal ne ganz blöde Frage. Hast du nach dem Editieren des Datenpunktes mal den Javascript Adapter neu gestartet?
                          Ich kann mich aus einem anderen Skript erinnern, dass dies auch manchmal Fehler bei der Erkennung von Datenpunkten behoben hat.

                          Edit:
                          Das was @Lucky_ESA schreibt kann bzw. wird wahrscheinlich der Grund sein. Mein Orginaldatenpunkt ist bei mir ebenfalls vom Typ "Number". Da er bei dir vom Typ String ist und du eine Number draus machst, könnte das das Problem sein.

                          Hab nochmal geschaut woran es damals lag. Ich hatte beim Orginaldatenpunkt Typ Number und beim Alias Typ String. Erst als beiden Number war, ging es. Vielleicht geht es ja bei dir, wenn beides vom Typ String ist.

                          T Offline
                          T Offline
                          TbiBnz
                          schrieb am zuletzt editiert von
                          #450

                          @dominik-f habe es mittlerweile hinbekommen, vielen dank für deine Hilfe.

                          Dominik F.D 1 Antwort Letzte Antwort
                          0
                          • L Lucky_ESA

                            Ich habe doch oben geschrieben wie du das machen musst. Diese Variante verwende ich da ich meine Fenster Alarmüberwache und dazu benötigt man halt 2 Sensoren.
                            Dein RAW vom HMIP hat einen string und keine number oder boolean. Keiner Ahnung was da jetzt für Werte reingeschrieben werden aber diesen Value vom String musst du abfragen und in den Datenpunkt 0_userdata... dann eine 0 oder 1 schreiben. Dann den Alias auf 0_userdata referenzieren.

                            Edit: Wenn in deinem HMIP DP closed und open geschrieben wird dann ändere mal deinen Alias so:

                               "name": "Terrassentür",
                            
                               "role": "value.window",
                            
                               "type": "string",
                            
                               "read": true,
                            
                               "write": false,
                            
                               "states": {
                            
                                 "CLOSED": "geschlossen",
                            
                                 "OPEN": "gekippt",
                            
                                 "TILTED": "geöffnet"
                            
                               }
                            


                            Gruß//Lucky

                            T Offline
                            T Offline
                            TbiBnz
                            schrieb am zuletzt editiert von
                            #451

                            @lucky_esa auch dir danke habe es zum laufen gebracht.

                            1 Antwort Letzte Antwort
                            0
                            • T TbiBnz

                              @dominik-f habe es mittlerweile hinbekommen, vielen dank für deine Hilfe.

                              Dominik F.D Offline
                              Dominik F.D Offline
                              Dominik F.
                              schrieb am zuletzt editiert von
                              #452

                              @tbibnz

                              Kannst du deine Lösung hier schreiben? Dann hilft es vielleicht jemanden, der das gleiche Problem hat.

                              T 1 Antwort Letzte Antwort
                              0
                              • Dominik F.D Dominik F.

                                @tbibnz

                                Kannst du deine Lösung hier schreiben? Dann hilft es vielleicht jemanden, der das gleiche Problem hat.

                                T Offline
                                T Offline
                                TbiBnz
                                schrieb am zuletzt editiert von
                                #453

                                @dominik-f Klar ich hatte heute morgen nur nicht so viel Zeit einen größeren Beitrag zu verfassen, wobei die Lösung recht simpel ist.

                                Manchmal sieht man den Wald vor lauter Bäumen einfach nicht und @Lucky_ESA hat es auch schon richtig erklärt.
                                "Dein RAW vom HMIP hat einen string und keine number oder boolean."

                                Der HmIP-Adapter arbeitet mit CLOSED/TITLED/OPENED und wenn man die Datenpunkte als Number editiert funktioniert das logischerweise eben nicht.
                                Also von dem Datenpunkt windowSate einen Alias erstellen und diesen als String editiert und die States anpassen dann erfasst das Blocky die verschiedenen States auch richtig.

                                mein Datenpunkt für eins HmIP Fenstersensor mit offen/geschlossen sieht dann wie folgt aus:

                                {
                                 "type": "state",
                                 "common": {
                                   "name": "Beispielzimmer Fenster",
                                   "def": 0,
                                   "type": "string",
                                   "read": true,
                                   "write": false,
                                   "states": {
                                     "CLOSED": "geschlossen",
                                     "OPEN": "geöffnet"
                                   },
                                   "role": "window.value",
                                   "alias": {
                                     "id": "hmip.0.devices.HIER-ORGINAL-ID-EINTRAGEN.channels.1.windowState"
                                   },
                                   "desc": "per Script erstellt",
                                   "unit": ""
                                 },
                                 "native": {},
                                 "_id": "alias.0.Fenster.Beispielzimmer_Fenster",
                                 "acl": {
                                   "object": 1636,
                                   "state": 1636,
                                   "owner": "system.user.admin",
                                   "ownerGroup": "system.group.administrator"
                                 },
                                 "from": "system.adapter.admin.0",
                                 "user": "system.user.admin",
                                 "ts": 1661453618124
                                }
                                

                                das ganze funktioniert dann natürlich auch als offen/gekippt/geschlossen:

                                {
                                 "type": "state",
                                 "common": {
                                   "name": "Balkotür Beispiel",
                                   "def": 0,
                                   "type": "string",
                                   "read": true,
                                   "write": false,
                                   "states": {
                                     "CLOSED": "geschlossen",
                                     "TILTED": "gekippt",
                                     "OPEN": "geöffnet"
                                   },
                                   "role": "window.value",
                                   "alias": {
                                     "id": "hmip.0.devices.HIER-ORGINAL-ID-EINTRAGEN.channels.1.windowState"
                                   },
                                   "desc": "per Script erstellt",
                                   "unit": ""
                                 },
                                 "native": {},
                                 "_id": "alias.0.Tueren.Balkontuer_Beispiel",
                                 "acl": {
                                   "object": 1636,
                                   "state": 1636,
                                   "owner": "system.user.admin",
                                   "ownerGroup": "system.group.administrator"
                                 },
                                 "from": "system.adapter.admin.0",
                                 "user": "system.user.admin",
                                 "ts": 1661439101526
                                }
                                

                                Wie geschrieben es war einfach zu einfach :nerd_face:

                                Nochmals vielen dan für eure Hilfe ich hoffe das der ein oder andere der den HmIP Adapter nutz und auch vor diesem Problem steht kann es nun lösen.

                                Grüße
                                Tobi

                                dslraserD 1 Antwort Letzte Antwort
                                2
                                • T TbiBnz

                                  @dominik-f Klar ich hatte heute morgen nur nicht so viel Zeit einen größeren Beitrag zu verfassen, wobei die Lösung recht simpel ist.

                                  Manchmal sieht man den Wald vor lauter Bäumen einfach nicht und @Lucky_ESA hat es auch schon richtig erklärt.
                                  "Dein RAW vom HMIP hat einen string und keine number oder boolean."

                                  Der HmIP-Adapter arbeitet mit CLOSED/TITLED/OPENED und wenn man die Datenpunkte als Number editiert funktioniert das logischerweise eben nicht.
                                  Also von dem Datenpunkt windowSate einen Alias erstellen und diesen als String editiert und die States anpassen dann erfasst das Blocky die verschiedenen States auch richtig.

                                  mein Datenpunkt für eins HmIP Fenstersensor mit offen/geschlossen sieht dann wie folgt aus:

                                  {
                                   "type": "state",
                                   "common": {
                                     "name": "Beispielzimmer Fenster",
                                     "def": 0,
                                     "type": "string",
                                     "read": true,
                                     "write": false,
                                     "states": {
                                       "CLOSED": "geschlossen",
                                       "OPEN": "geöffnet"
                                     },
                                     "role": "window.value",
                                     "alias": {
                                       "id": "hmip.0.devices.HIER-ORGINAL-ID-EINTRAGEN.channels.1.windowState"
                                     },
                                     "desc": "per Script erstellt",
                                     "unit": ""
                                   },
                                   "native": {},
                                   "_id": "alias.0.Fenster.Beispielzimmer_Fenster",
                                   "acl": {
                                     "object": 1636,
                                     "state": 1636,
                                     "owner": "system.user.admin",
                                     "ownerGroup": "system.group.administrator"
                                   },
                                   "from": "system.adapter.admin.0",
                                   "user": "system.user.admin",
                                   "ts": 1661453618124
                                  }
                                  

                                  das ganze funktioniert dann natürlich auch als offen/gekippt/geschlossen:

                                  {
                                   "type": "state",
                                   "common": {
                                     "name": "Balkotür Beispiel",
                                     "def": 0,
                                     "type": "string",
                                     "read": true,
                                     "write": false,
                                     "states": {
                                       "CLOSED": "geschlossen",
                                       "TILTED": "gekippt",
                                       "OPEN": "geöffnet"
                                     },
                                     "role": "window.value",
                                     "alias": {
                                       "id": "hmip.0.devices.HIER-ORGINAL-ID-EINTRAGEN.channels.1.windowState"
                                     },
                                     "desc": "per Script erstellt",
                                     "unit": ""
                                   },
                                   "native": {},
                                   "_id": "alias.0.Tueren.Balkontuer_Beispiel",
                                   "acl": {
                                     "object": 1636,
                                     "state": 1636,
                                     "owner": "system.user.admin",
                                     "ownerGroup": "system.group.administrator"
                                   },
                                   "from": "system.adapter.admin.0",
                                   "user": "system.user.admin",
                                   "ts": 1661439101526
                                  }
                                  

                                  Wie geschrieben es war einfach zu einfach :nerd_face:

                                  Nochmals vielen dan für eure Hilfe ich hoffe das der ein oder andere der den HmIP Adapter nutz und auch vor diesem Problem steht kann es nun lösen.

                                  Grüße
                                  Tobi

                                  dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #454

                                  @tbibnz
                                  schön das es jetzt funktioniert.

                                  Ich nutze diese Blocklys aktuell selbst nicht mehr, da ich iQontrol Nutzer bin und dort nun direkt in iQontrol fast alles was diese Blocklys können auch mit dem Adapter erstellen kann.
                                  Das ganze sieht dann bei mir in iQontrol auch ähnlich aus.

                                  Hier mal kurze Beispiele

                                  7F29EA18-CD46-43DE-A7F6-A350EA96DD03.png B19F357D-2C5B-44C3-ACD0-C8CD9BDE8761.png 8EC5C983-C713-4A76-9D8B-498397927439.png

                                  Dominik F.D 1 Antwort Letzte Antwort
                                  0
                                  • dslraserD dslraser

                                    @tbibnz
                                    schön das es jetzt funktioniert.

                                    Ich nutze diese Blocklys aktuell selbst nicht mehr, da ich iQontrol Nutzer bin und dort nun direkt in iQontrol fast alles was diese Blocklys können auch mit dem Adapter erstellen kann.
                                    Das ganze sieht dann bei mir in iQontrol auch ähnlich aus.

                                    Hier mal kurze Beispiele

                                    7F29EA18-CD46-43DE-A7F6-A350EA96DD03.png B19F357D-2C5B-44C3-ACD0-C8CD9BDE8761.png 8EC5C983-C713-4A76-9D8B-498397927439.png

                                    Dominik F.D Offline
                                    Dominik F.D Offline
                                    Dominik F.
                                    schrieb am zuletzt editiert von
                                    #455

                                    @dslraser

                                    Ich nutze aktuell mehrere deiner Skripte und bin total begeistert. Ich würde eines deiner Skripte gerne etwas verändern, nur sind diese so umfangreich, dass ich den Wald vor lauter Bäumen nicht sehe^^

                                    Es geht um das Skript Bewegungsmelder. Hier werden die Datenpunkte die true sind als erstes angezeigt. ich würde das gerne ändern und die Datenpunkte die false sind als erstes anzeigen lassen in der Liste:

                                    0_userdata.0.Geraete_zaehlen.Bewegungsmelder.Haus.01_Anzeigen_und_Listen.06_html_Bewegungsmelder_Liste
                                    

                                    Könntest du mir da vielleicht helfen?

                                    Hintergrund ist, dass ich mir dieses Skript umgeschrieben habe um auf Erreichbarkeit von Geräten zu überprüfen. Ich konnte alles anpassen nur eben nicht diese Liste bzw. die Sortierung davon

                                    dslraserD 1 Antwort Letzte Antwort
                                    0
                                    • Dominik F.D Dominik F.

                                      @dslraser

                                      Ich nutze aktuell mehrere deiner Skripte und bin total begeistert. Ich würde eines deiner Skripte gerne etwas verändern, nur sind diese so umfangreich, dass ich den Wald vor lauter Bäumen nicht sehe^^

                                      Es geht um das Skript Bewegungsmelder. Hier werden die Datenpunkte die true sind als erstes angezeigt. ich würde das gerne ändern und die Datenpunkte die false sind als erstes anzeigen lassen in der Liste:

                                      0_userdata.0.Geraete_zaehlen.Bewegungsmelder.Haus.01_Anzeigen_und_Listen.06_html_Bewegungsmelder_Liste
                                      

                                      Könntest du mir da vielleicht helfen?

                                      Hintergrund ist, dass ich mir dieses Skript umgeschrieben habe um auf Erreichbarkeit von Geräten zu überprüfen. Ich konnte alles anpassen nur eben nicht diese Liste bzw. die Sortierung davon

                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #456

                                      @dominik-f
                                      Ich bin am WE nicht zu Hause, aber ich such Dir die Stelle/Stellen gern raus.

                                      Dominik F.D 1 Antwort Letzte Antwort
                                      0
                                      • dslraserD dslraser

                                        @dominik-f
                                        Ich bin am WE nicht zu Hause, aber ich such Dir die Stelle/Stellen gern raus.

                                        Dominik F.D Offline
                                        Dominik F.D Offline
                                        Dominik F.
                                        schrieb am zuletzt editiert von
                                        #457

                                        @dslraser

                                        Oh super, ich weiß das wirklich zu schätzen. Brauchst du dafür das Skript was ich für Erreichbarkeit umgeschrieben hab fürs testen?

                                        dslraserD 1 Antwort Letzte Antwort
                                        0
                                        • Dominik F.D Dominik F.

                                          @dslraser

                                          Oh super, ich weiß das wirklich zu schätzen. Brauchst du dafür das Skript was ich für Erreichbarkeit umgeschrieben hab fürs testen?

                                          dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #458

                                          @dominik-f
                                          erstmal nicht. Das kann eigentlich nur bei der Sortierung sein.

                                          Dominik F.D 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

                                          790

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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