Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter: alle Objekte/States eines Adapters löschen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    416

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

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

Adapter: alle Objekte/States eines Adapters löschen

Scheduled Pinned Locked Moved Entwicklung
27 Posts 6 Posters 9.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Pman
    wrote on last edited by
    #6

    Ja, fast jeder Adapter macht so was. Deswegen die Frage ob man das irgendwie verallgemeinern kann, damit es nicht in jedem Adapter implementiert werden muss.

    1 Reply Last reply
    0
    • P Offline
      P Offline
      Pman
      wrote on last edited by
      #7

      Bei dem Harmony Adapter ist die Struktur so:

      
      - Hub Name
       +---activities
             +---activity 1
                   +------- State 1
             +---activity 2
                   +------- State 2
       +---devices
             +---device 1
                   +------- State 3
                   +------- State 4
                   +------- State 5
             +---device 2
                   +------- State 6
                   +------- State 7
                   +------- State 8
      
      

      adapter.getChannels() gibt es nicht, nur getChannelsOf():

      adapter.getChannelsOf(adapter.config.hub.replace(/\s/g,'_'),function (err, channels) {
          adapter.log.info('channels: ' + JSON.stringify(channels));
      });
      
      

      gibt mir:

      [
         {
            'type':'channel',
            'common':{
               'name':'activities',
               'role':'channel.activities'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.activities'
         },
         {
            'type':'channel',
            'common':{
               'name':'activities.Nintendo_Wii',
               'role':'media.activity'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.activities.Nintendo_Wii'
         },
         {
            'type':'channel',
            'common':{
               'name':'activities.Fire_TV',
               'role':'media.activity'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.activities.Fire_TV'
         },
         {
            'type':'channel',
            'common':{
               'name':'activities.Fernsehen',
               'role':'media.activity'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.activities.Fernsehen'
         },
         {
            'type':'channel',
            'common':{
               'name':'activities.Musik',
               'role':'media.activity'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.activities.Musik'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices',
               'role':'channel.devices'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Dish-DVR',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Dish-DVR'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Wii_Schalter',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Wii_Schalter'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.HTPC',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.HTPC'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.TV',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.TV'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Fire_TV_Stick',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Fire_TV_Stick'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Pause_Pause',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Pause_Pause'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Subwoofer',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Subwoofer'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Wii',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Wii'
         },
         {
            'type':'channel',
            'common':{
               'name':'devices.Receiver',
               'role':'media.device'
            },
            'native':{
            },
            '_id':'harmony.0.Wohnzimmer_Hub.devices.Receiver'
         }
      ]
      

      Ich vergleiche dann die activities.* und devices.* mit den neuen Daten vom Hub, wenn etwas nicht mehr vorhanden ist will ich es löschen, z. B.:

      adapter.deleteChannel(channels[1]._id);
      

      Das funktioniert aber leider nicht:

      channel undefined
      
      1 Reply Last reply
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        wrote on last edited by
        #8

        Probiere so:

        adapter.deleteChannel('', channels[1]._id);
        
        1 Reply Last reply
        0
        • P Offline
          P Offline
          Pman
          wrote on last edited by
          #9
          Delete	2015-08-15 11:55:33	info	channel harmony.0.Wohnzimmer_Hub.devices.Dish-DVR
          harmony-0	2015-08-15 11:55:33	info	deleting old devices Dish-DVR
          

          Leider wird aber nichts gelöscht. Bis auf das deleteChannel funktioniert sonst alles korrekt:

              //delete old activities and devices
              adapter.getChannelsOf(adapter.config.hub.replace(/\s/g,'_'),function (err, channels) {
                  adapter.log.info('channels: ' + JSON.stringify(channels));
                  channels.forEach(function(channel){
                      var tmp = channel._id.split('.');
                      var id = tmp.pop();
                      var type = tmp.pop();
                      if (type != 'activities' && type != 'devices'){
                          return;
                      }
                      if (!activities.hasOwnProperty(channel.native.id) && !devices.hasOwnProperty(channel.native.id)){
                          adapter.log.info('deleting old ' + type + ' ' + id);
                          adapter.deleteChannel('',channel._id);
                      }
                  });
              });
          
          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #10

            Falls du diese Datei austauschst?

            https://raw.githubusercontent.com/ioBro … adapter.js

            Wird es besser?

            1 Reply Last reply
            0
            • P Offline
              P Offline
              Pman
              wrote on last edited by
              #11

              Reicht es die Datei auszutauschen, oder muss ich rebooten um js-controller neuzustarten?

              Austauschen hat nicht geholfen.

              Ich glaube es fehlen Punkte:

              Delete	2015-08-15 12:14:37	info	channel harmony.0.Wohnzimmer_Hub_devices_Dish-DVR
              harmony-0	2015-08-15 12:14:37	info	deleting old devices Dish-DVR
              
              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #12

                @Pman:

                Reicht es die Datei auszutauschen, oder muss ich rebooten um js-controller neuzustarten?

                Austauschen hat nicht geholfen.

                Ich glaube es fehlen Punkte:

                Delete	2015-08-15 12:14:37	info	channel harmony.0.Wohnzimmer_Hub_devices_Dish-DVR
                harmony-0	2015-08-15 12:14:37	info	deleting old devices Dish-DVR
                ```` `  
                

                Der Channel - Name stimmt aber, oder?

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  Pman
                  wrote on last edited by
                  #13

                  raw vom channel:

                  {
                    "type": "channel",
                    "common": {
                      "name": "devices.Dish-DVR",
                      "role": "media.device"
                    },
                    "native": {
                      "Transport": 1,
                      "suggestedDisplay": "DEFAULT",
                      "deviceTypeDisplayName": "PVR",
                      "label": "Dish-DVR",
                      "id": "28521212",
                      "Capabilities": [
                        1,
                        3,
                        5,
                        6,
                        9,
                        10
                      ],
                      "type": "PVR",
                      "DongleRFID": 0,
                      "ControlPort": 7,
                      "IsKeyboardAssociated": false,
                      "model": "Hopper",
                      "deviceProfileUri": "svcs.myharmony.com/res/device/28521212-njRwAyB/wOPfT7VSsSuvx+V4eiPJah/Ss9ZlchCTYz4=",
                      "manufacturer": "Dish Network",
                      "icon": "18",
                      "isManualPower": "false"
                    },
                    "_id": "harmony.0.Wohnzimmer_Hub.devices.Dish-DVR",
                    "acl": {
                      "object": 1638
                    }
                  }
                  

                  bei der delete Meldung kommt das hier:

                  Delete 2015-08-15 12:14:37 info channel harmony.0.Wohnzimmer_Hub****devices****Dish-DVR

                  1 Reply Last reply
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    wrote on last edited by
                    #14

                    @Pman:

                    "name": "devices.Dish-DVR",

                    "_id": "Wohnzimmer_Hub.devices.Dish-DVR",

                    }

                    bei der delete Meldung kommt das hier:

                    Delete 2015-08-15 12:14:37 info channel harmony.0.Wohnzimmer_Hub****devices****Dish-DVR `
                    Also… Hier ist was in der Benennung falsch.

                    So sollte es sein und dafür auch gemacht:

                    • Wohnzimmer_Hub - Device

                    • devices.Dish-DVR - ist channel und muss "Dish-DVR" oder "devices_Dish-DVR" heisen. (Kiene Punkte)

                    Falls man diese Namensschema hat, dann werden auch getChannelsOf, deleteChannel und so weiter funktionieren,

                    sonst muss man manuell alle Objekte pflegen mit setObject, getObject, delObject.

                    1 Reply Last reply
                    0
                    • P Offline
                      P Offline
                      Pman
                      wrote on last edited by
                      #15

                      Ah, Danke für die super Erklärung, ich dachte name wäre ganz frei wählbar und nicht wichtig für die Funktionalität.

                      Also, damit ich es komplett richtig mache frage ich besser nochmal vorher:

                      Device:

                      {
                        "type": "device",
                        "common": {
                          "name": "Wohnzimmer_Hub"
                        },
                        "native": ...
                        "_id": "harmony.0.Wohnzimmer_Hub"
                      }
                      

                      Channel devices:

                      {
                        "type": "channel",
                        "common": {
                          "name": "devices",
                          "role": "channel.devices"
                        },
                        "native": {},
                        "_id": "harmony.0.Wohnzimmer_Hub.devices"
                      }
                      

                      Channel dish-dvr:

                      {
                        "type": "channel",
                        "common": {
                          "name": "devices_Dish-DVR",
                          "role": "media.device"
                        },
                        "native": ...
                        "_id": "harmony.0.Wohnzimmer_Hub.devices.Dish-DVR",
                      }
                      

                      State dish-dvr

                      {
                        "type": "state",
                        "common": {
                          "name": "devices_Dish-DVR_ChannelDown",
                          "role": "button",
                          "type": "boolean",
                          "write": true,
                          "read": true
                        },
                        "native": ...
                        "_id": "harmony.0.Wohnzimmer_Hub.devices.Dish-DVR.ChannelDown",
                      }
                      
                      1 Reply Last reply
                      0
                      • BluefoxB Offline
                        BluefoxB Offline
                        Bluefox
                        wrote on last edited by
                        #16

                        Warum zwei channels?

                        Device=>channel=>state.

                        Kannst du so schaffen? Ich weiß nicht wie die Struktur von Harmony aussieht, sonst konnte ich dir sofort sagen, wie es am besten zu machen ist. ;)

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          Pman
                          wrote on last edited by
                          #17

                          Es gibt den Hub, der sendet Infrarot und Bluetooth befehle an Devices.

                          Es gibt Devices (Fernseher, Receiver, Playstation usw.). Devices haben commands (VolUp, VolDown usw.)

                          Es gibt Activities (Fernseh gucken, Playstation spielen), startet man eine Activity werden alle benötigten Geräte gestartet (Playstation spielen: Playstation an, Tv an, Tv auf Eingang HDMI 1). Activities haben einen Zustand (off,starting,on,ending).

                          Es ist nötig Devices und Activities zu trennen, da sie die gleichen Bezeichnungen haben können und auch ganz unterschiedlich funktionieren.

                          Kann man Channels nicht verschachteln?

                          1 Reply Last reply
                          0
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            wrote on last edited by
                            #18

                            @Pman:

                            Es gibt den Hub, der sendet Infrarot und Bluetooth befehle an Devices.

                            Es gibt Devices (Fernseher, Receiver, Playstation usw.). Devices haben commands (VolUp, VolDown usw.)

                            Es gibt Activities (Fernseh gucken, Playstation spielen), startet man eine Activity werden alle benötigten Geräte gestartet (Playstation spielen: Playstation an, Tv an, Tv auf Eingang HDMI 1). Activities haben einen Zustand (off,starting,on,ending).

                            Es ist nötig Devices und Activities zu trennen, da sie die gleichen Bezeichnungen haben können und auch ganz unterschiedlich funktionieren.

                            Kann man Channels nicht verschachteln? `

                            Hub => device

                            Devices => channel

                            commands => states

                            activities => channel "activities"

                            activities commands => states von channel "activities"

                            ???
                            > Kann man Channels nicht verschachteln?
                            Man kann die verschachteln, aber dann werden die Befehle deleteChannel, createChannel usw nicht funktionieren. Ich habe die geschrieben für

                            device=>channel=>states oder

                            channel=>states oder

                            nur states

                            Man kann doch nicht alles abdecken. :?

                            1 Reply Last reply
                            0
                            • P Offline
                              P Offline
                              Pman
                              wrote on last edited by
                              #19

                              Ich kenne die interne Datenstruktur von Objects nicht, aber könnte man nicht rekursiv über die ids laufen, so dass man adapter.deleteObjectById("Hub.devices.dish-dvr") machen kann und er dann alle devices/channels/states mit id "Hub.devices.dish-dvr.*" und "Hub.devices.dish-dvr" selbst löscht?

                              Ich mache es jetzt aber so wie du gesagt hast Boss :lol: .

                              1 Reply Last reply
                              0
                              • P Offline
                                P Offline
                                Pman
                                wrote on last edited by
                                #20

                                Ich bekomme es trotzdem nicht hin, der Channel wird nicht gelöscht :evil: .

                                Device:

                                {
                                  "type": "device",
                                  "common": {
                                    "name": "Wohnzimmer_Hub"
                                  },
                                  "native": ...
                                  "_id": "harmony.0.Wohnzimmer_Hub",
                                  "acl": {
                                    "object": 1638
                                  }
                                }
                                

                                Channel:

                                {
                                  "type": "channel",
                                  "common": {
                                    "name": "Sony_PS3",
                                    "role": "media.device"
                                  },
                                  "native": ...
                                  "_id": "harmony.0.Wohnzimmer_Hub.Sony_PS3",
                                  "acl": {
                                    "object": 1638
                                  }
                                }
                                

                                State:

                                {
                                  "type": "state",
                                  "common": {
                                    "name": "Angle",
                                    "role": "button",
                                    "type": "boolean",
                                    "write": true,
                                    "read": true
                                  },
                                  "native": ...
                                  "_id": "harmony.0.Wohnzimmer_Hub.Sony_PS3.Angle",
                                  "acl": {
                                    "object": 1638,
                                    "state": 1638
                                  }
                                }
                                

                                Channel löschen mit:

                                adapter.deleteChannel(channel._id);
                                

                                Log:

                                Delete	2015-08-16 13:57:47	info	channel harmony.0.Wohnzimmer_Hub_Sony_PS3
                                harmony-0	2015-08-16 13:57:47	info	deleting old device: Sony_PS3
                                
                                1 Reply Last reply
                                0
                                • P Offline
                                  P Offline
                                  Pman
                                  wrote on last edited by
                                  #21

                                  Okay ich habe es rausgefunden.

                                  Funktioniert nicht:

                                  deleteChannel(channel._id)
                                  
                                  deleteChannel('',channel._id)
                                  

                                  Funktioniert:

                                  deleteChannel(hubName,channel.common.name)
                                  

                                  Sollte es mit _id funktionieren? Wenn ja, dann ist es ein Bug.

                                  1 Reply Last reply
                                  0
                                  • F Offline
                                    F Offline
                                    Fitti
                                    wrote on last edited by
                                    #22

                                    Will mal keinen neuen Thread aufmachen, da die Überschrift passt.

                                    Meine Frage ist etwas einfacher, es geht um das allgemeine Aufräumen, nach rumspielen mit node-red.
                                    578_2015-09-10_1719.png
                                    Nachdem ich die Variablen gelöscht habe, bleibt noch das Objekt stehen.

                                    Wie kann ich dieses löschen? Hier gibt es keinen Mülleimer,

                                    Danke wie immer.

                                    Fitti

                                    "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                                    Plural von Status ist auch Status!

                                    1 Reply Last reply
                                    0
                                    • F Offline
                                      F Offline
                                      Fitti
                                      wrote on last edited by
                                      #23

                                      Hmmm, nach einer Weile ist es einfach verschwunden. Räumt sich also das alleine auf?

                                      Wodurch?

                                      Fitti

                                      "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                                      Plural von Status ist auch Status!

                                      1 Reply Last reply
                                      0
                                      • V Offline
                                        V Offline
                                        versteckt
                                        wrote on last edited by
                                        #24

                                        Meine leeren Objekte sind mit einem Refresh weg.

                                        Gesendet von meinem iPhone mit Tapatalk

                                        Raspi 1, Raspi 2, iobroker, Mac Mini: alles mit aktueller ioBroker Version

                                        homegear für Homematic und MAX!

                                        occ, zWave, rpi, hmm und homekit Entwickler

                                        1 Reply Last reply
                                        0
                                        • BluefoxB Offline
                                          BluefoxB Offline
                                          Bluefox
                                          wrote on last edited by
                                          #25

                                          @versteckt:

                                          Meine leeren Objekte sind mit einem Refresh weg.

                                          Gesendet von meinem iPhone mit Tapatalk `
                                          Genau. Es ist noch ein nice2have Bug.

                                          Falls ein Objekt "baum.0.letzteImBaum" gelöscht wird und es keine Objekte im "baum.0" sind, dann wird noch "baum.0" angezeigt. Aber nur angezeigt als Zweig. Mit refresh ist das weg.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          617

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe