Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Problem] deleteDevice klappt nicht

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Problem] deleteDevice klappt nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by

      @apollon77:

      Ich kläre das mal … `
      Hast du schon neue infos für mich?

      Ich hab die Objekt Struktur geändert und die Devices liegen jetzt direkt unter der Instanznummer. Zwar wird das Device gelöscht, aber die darunter liegenden Objekte nicht.

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Also der oben referenzierte Code erwartet:

        adapter.instanz.device.channel.state

        In dem Fall müsstest Du damit das tut unterhalb der Devices nur channels haben die dürfen wieder states haben. Wenn unter devices direkt states kommen werden die in der aktuellen Implementierung nicht gelöscht.

        Meiner Meinung nach ist das ein Bug … weil in https://github.com/ioBroker/ioBroker/bl ... ject-types steht das Devices auch States enthalten dürfen.

        Wäre ein Issue in js-controller wert ...

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          @apollon77:

          Wäre ein Issue in js-controller wert … `
          Danke für deine Antwort, dann mache ich mal einen Issue auf Github.

          1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 last edited by

            Danke, mal schauen ob ich die Tage mal dazu komme da rein zu schauen

            1 Reply Last reply Reply Quote 0
            • Bluefox
              Bluefox last edited by

              @apollon77:

              Also der oben referenzierte Code erwartet:

              adapter.instanz.device.channel.state

              In dem Fall müsstest Du damit das tut unterhalb der Devices nur channels haben die dürfen wieder states haben. Wenn unter devices direkt states kommen werden die in der aktuellen Implementierung nicht gelöscht.

              Meiner Meinung nach ist das ein Bug … weil in https://github.com/ioBroker/ioBroker/bl ... ject-types steht das Devices auch States enthalten dürfen.

              Wäre ein Issue in js-controller wert ... `
              Es kann natürlich auch falsche Beschreibung sein 🙂

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 last edited by

                :-)) Naja dann muss das "Issue" die Doku fixen 🙂 Aber ich denke hier könnte auch die Realität gewinnen und es ist oft so das unter Devices states existieren. Man kann Sie anlegen … also sollte man auch löschen denke ich

                1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer last edited by

                  Warum einfach wenn es auch Kompliziert geht 😉

                  Bitte nicht die Doku fixen.

                  Gesendet von meinem m8 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • Meistertr
                    Meistertr Developer last edited by

                    ich werde langsam verrückt, seit 3 Tagen versuche ich jetzt die devices zu löschen wenn sie nicht mehr in der Config stehen. aber ich scheitere jedes mal kläglich. Ich hoffe mir kann einer sagen wo mein fehler ist..

                    Hier die Funktion:

                    Es wird erst nach den vorhandenen Devices gesucht und dann die überschüssigen gelöscht

                    `function checkChanges() {
                        adapter.getForeignObjects(adapter.namespace + ".*", 'device', function (err, list) {
                            if (err) {
                                adapter.log.error(err);
                            } else {
                    
                                objects = list;
                    
                                adapter.log.debug("O:_ " + JSON.stringify(objects));
                                for (var element in objects) {
                    
                                    var sid = objects[element].native.sid;
                                    var type = objects[element].native.type;
                    
                                    var isThere = false;
                    
                                    for (var i = 0; i < sel_devices.length; i++) {
                    
                                        if (sel_devices[i].name == sid && sel_devices[i].type == type) isThere = true;
                    
                                        if (i === sel_devices.length - 1 && isThere === false) {
                    
                                            sds(element);
                    
                                            adapter.log.debug('object: ' + objects[element]._id + ' deleded');
                                        }
                    
                                    }
                    
                                }
                    
                            }
                    
                        });
                    
                        function sds(sid) {
                    
                            adapter.getForeignObjects(sid + ".*", function (err, list) {
                                adapter.log.warn("search: " + " tt: " + JSON.stringify(list));
                    
                                var count = Object.keys(list).length - 1;
                    
                                for (var i = 0; i <= count; i++) {
                                    var keyName = Object.keys(list)[i]
                    
                                    adapter.log.debug("search: " + JSON.stringify(list[keyName]));
                    
                                    if (list[keyName].type && list[keyName].type === "state") {
                    
                                        adapter.delObject(list[keyName]._id, function (err, dat) {
                    
                                        });
                                    }
                                    if (i === count) {
                                        if (list[keyName].type && list[keyName].type === "device") {
                    
                                            adapter.deleteDevice(sid.split(".")[2], function (err) {
                                                adapter.log.info(err);
                                            });
                                        }
                                    }
                                }
                            });
                        }
                    }`
                    
                    hier das Device:
                     ![1768_2018-05-19_05h35_23.png](/assets/uploads/files/1768_2018-05-19_05h35_23.png) 
                    
                    es wird alles gelöscht, und auch nicht mehr sichtbar, rufe ich dann aber such ich dann jedoch nach device finde ich sie immernoch[/i][/i][/i]
                    
                    1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 last edited by

                      Hast du mal die logausgabe?

                      1 Reply Last reply Reply Quote 0
                      • Meistertr
                        Meistertr Developer last edited by

                        Hier der log

                        ich habe ein neues hinzu und ein altes gelöscht und ein drittes ist noch drin welches ich heute morgen gelöscht habe.

                        (die logausgaben vom adapter sind sehr durcheinander, da ich zum testen temporär ausgaben eingefügt habe)

                        ! ````
                        2018-05-19 10:51:18.839 - debug: yeelight.0 from_conf: {"useSystemGPS":false,"latitude":"","longitude":"","devices":[{"name":"0x0000000004cae3a0","ip":"192.168.178.62","port":"55443","smart_name":"","undefined":"color","type":"color"}]}
                        2018-05-19 10:51:18.850 - warn: yeelight.0 {"yeelight.0.color-anderegggjj":{"type":"device","common":{"name":"color","icon":"/icons/color.png"},"native":{"sid":"anderegggjj","type":"color"},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-ddd":{"type":"device","common":{"name":"color","icon":"/icons/color.png"},"native":{"sid":"ddd","type":"color"},"from":"system.adapter.yeelight.0","ts":1526700248087,"id":"yeelight.0.color-ddd","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}}
                        2018-05-19 10:51:18.850 - debug: yeelight.0 Create Device: yeelight.0.color-0x0000000004cae3a0
                        2018-05-19 10:51:18.853 - warn: yeelight.0 setObject yeelight.0.color-0x0000000004cae3a0.info (type=channel) property native missing!
                        2018-05-19 10:51:18.853 - warn: yeelight.0 setObject yeelight.0.color-0x0000000004cae3a0.info (type=channel) property common missing!
                        2018-05-19 10:51:18.853 - debug: yeelight.0 setObject yeelight.0.color-0x0000000004cae3a0.info (type=channel) property common.name missing, using id as name
                        2018-05-19 10:51:18.854 - debug: yeelight.0 listen to: 192.168.178.62
                        2018-05-19 10:51:18.870 - debug: yeelight.0 Device:["on","","5500","16711680","","3","89","194","24"]
                        2018-05-19 10:51:19.057 - debug: yeelight.0 listen to: 192.168.178.62
                        2018-05-19 10:51:19.058 - debug: yeelight.0 listen to: 192.168.178.61
                        2018-05-19 10:51:19.059 - debug: yeelight.0 O:
                        {"yeelight.0.color-anderegggjj":{"type":"device","common":{"name":"color","icon":"/icons/color.png"},"native":{"sid":"anderegggjj","type":"color"},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-ddd":{"type":"device","common":{"name":"color","icon":"/icons/color.png"},"native":{"sid":"ddd","type":"color"},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-ddd","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-0x0000000004cae3a0":{"type":"device","common":{"name":"color","icon":"/icons/color.png"},"native":{"sid":"0x0000000004cae3a0","type":"color"},"from":"system.adapter.yeelight.0","ts":1526719878869,"_id":"yeelight.0.color-0x0000000004cae3a0","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}}
                        2018-05-19 10:51:19.059 - debug: yeelight.0 object: yeelight.0.color-anderegggjj deleded
                        2018-05-19 10:51:19.059 - debug: yeelight.0 object: yeelight.0.color-ddd deleded
                        2018-05-19 10:51:19.065 - warn: yeelight.0 search: tt: {"yeelight.0.color-anderegggjj.info.com":{"common":{"name":"Command","role":"state","write":false,"read":true,"type":"string"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.com","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.info.connect":{"common":{"name":"Connect","role":"indicator.connected","write":false,"read":true,"type":"boolean"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.connect","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.info.IPAdress":{"common":{"name":"IP","role":"state","write":false,"read":true,"type":"string"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.IPAdress","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.info.Port":{"common":{"name":"Port","role":"state","write":false,"read":true,"type":"number"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.Port","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.power":{"type":"state","common":{"name":"power","role":"switch","write":true,"read":true,"type":"boolean","smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.power","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.active_bright":{"type":"state","common":{"name":"active_bright","role":"level.dimmer","write":true,"read":true,"type":"number","smartName":{"de":"Dachboden","smartType":"LIGHT","byON":"-"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.active_bright","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.ct":{"type":"state","common":{"name":"ct","role":"level.color.temperature","write":true,"read":true,"type":"number","min":1700,"max":6500,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.ct","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.rgb":{"type":"state","common":{"name":"rgb","role":"level.rgb","write":true,"read":true,"type":"string"},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.rgb","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.hue":{"type":"state","common":{"name":"hue","role":"level.color.hue","write":true,"read":true,"type":"number","min":0,"max":360,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.hue","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}},"yeelight.0.color-anderegggjj.sat":{"type":"state","common":{"name":"sat","role":"level.color.saturation","write":true,"read":true,"type":"number","min":0,"max":100,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.sat","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}}
                        2018-05-19 10:51:19.065 - debug: yeelight.0 search: {"common":{"name":"Command","role":"state","write":false,"read":true,"type":"string"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.com","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"common":{"name":"Connect","role":"indicator.connected","write":false,"read":true,"type":"boolean"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.connect","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"common":{"name":"IP","role":"state","write":false,"read":true,"type":"string"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.IPAdress","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"common":{"name":"Port","role":"state","write":false,"read":true,"type":"number"},"type":"state","native":{},"from":"system.adapter.yeelight.0","ts":1526700248087,"_id":"yeelight.0.color-anderegggjj.info.Port","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"power","role":"switch","write":true,"read":true,"type":"boolean","smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.power","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"active_bright","role":"level.dimmer","write":true,"read":true,"type":"number","smartName":{"de":"Dachboden","smartType":"LIGHT","byON":"-"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.active_bright","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"ct","role":"level.color.temperature","write":true,"read":true,"type":"number","min":1700,"max":6500,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.ct","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"rgb","role":"level.rgb","write":true,"read":true,"type":"string"},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.rgb","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"hue","role":"level.color.hue","write":true,"read":true,"type":"number","min":0,"max":360,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.hue","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - debug: yeelight.0 search: {"type":"state","common":{"name":"sat","role":"level.color.saturation","write":true,"read":true,"type":"number","min":0,"max":100,"smartName":{"de":"Dachboden","smartType":"LIGHT"}},"native":{},"from":"system.adapter.yeelight.0","ts":1526700248101,"_id":"yeelight.0.color-anderegggjj.sat","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{}}
                        2018-05-19 10:51:19.066 - warn: yeelight.0 search: tt: {}
                        2018-05-19 10:51:22.136 - error: yeelight.0 Error: connect EHOSTUNREACH 192.168.178.61:55443
                        2018-05-19 10:51:22.137 - error: yeelight.0 Error: connect EHOSTUNREACH 192.168.178.61:55443

                        1 Reply Last reply Reply Quote 0
                        • Meistertr
                          Meistertr Developer last edited by

                          Bin da leider immer noch nicht weiter.

                          Hab die Struktir jetzt nochmal geändert, dass unter device keine states sind sondern nur channel

                          device:

                          {
                            "type": "device",
                            "common": {
                              "name": "ceiling1",
                              "icon": "/icons/ceiling1.png"
                            },
                            "native": {
                              "sid": "0x00000000049f120b",
                              "type": "ceiling1"
                            },
                            "from": "system.adapter.yeelight.0",
                            "ts": 1527218959378,
                            "_id": "yeelight.0.ceiling1-0x00000000049f120b",
                            "acl": {
                              "object": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          channel:

                          {
                            "type": "channel",
                            "native": {},
                            "common": {
                              "name": "yeelight.0.ceiling1-0x00000000049f120b.control"
                            },
                            "from": "system.adapter.yeelight.0",
                            "ts": 1527218959364,
                            "_id": "yeelight.0.ceiling1-0x00000000049f120b.control",
                            "acl": {
                              "object": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          state:

                          {
                            "common": {
                              "name": "Port",
                              "role": "state",
                              "write": false,
                              "read": true,
                              "type": "number"
                            },
                            "type": "state",
                            "native": {},
                            "from": "system.adapter.yeelight.0",
                            "ts": 1527218959378,
                            "_id": "yeelight.0.ceiling1-0x00000000049f120b.info.Port",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          ich dreh eicht langsam durch… Die Devices verschwinden aus der liste und wenn ich sie aktualisiere sind sie wieder da aber nicht mehr als device sondern ohne role.

                          kann es daran liegen dass die Objekte zum teil mit setObjectNotExists erstellt werden?

                          hier ist die main:

                          https://github.com/MeisterTR/ioBroker.y … er/main.js

                          edit: Problem gelößt, mit keinen states unter device und vreate channel klappt es nun endlich..

                          1 Reply Last reply Reply Quote 0
                          • Jey Cee
                            Jey Cee Developer last edited by

                            So wie ich das jetzt verstanden habe ist die Logik folgende:

                            Devices und Channels werden als Objekte behandelt. Alles andere muss ein State sein. Steht in der Doku ganz oben.

                            Die Funktion deleteDevice löscht also die Objekte nicht wenn sie keine Channels sind.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            836
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            4
                            18
                            1372
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo