Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Einstieg in Adapterentwicklung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Einstieg in Adapterentwicklung

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

      Hallo,

      ich beschäftige mich interessehalber gerade mit der Entwicklung von Adaptern. Dazu wollte ich ein Skript nutzen, mittels dem ich derzeit meine Smartphones anpinge. Die ersten Schritte habe ich auch schon mal hinbekommen und verfüge nun grundsätzlich über einen Adapter, den ich installieren und instanziieren kann. Danach wird es leider schwierig. :roll:

      In der io-package.js habe ich unter native zwei Geräte defniert:

      "devices": [
                  {"devId":"note4","name":"Galaxy Note 4","ip":"192.168.2.22","status":false},
                  {"devId":"xperia","name":"Sony Xperia","ip":"192.168.2.24","status":false}
              ],
      

      In meiner main.js spreche ich sie dann an über:

      var devices = adapter.config.devices || [];
      
          devices.forEach(function(device) {
              adapter.log.info('device: ' + device['devId']);
              adapter.setObject('devices.' + device['devId'], {
                  type: 'state',
                  common: {
                      name: 'present',
                      type: 'boolean',
                      role: 'value',
                      value: false
                  },
                  native: {}
              });
          });
      
      

      Danach tauchen sie auch im Reiter Objekte auf.

      Für mein Verständnis müsste ich sie allerdings nicht als State, sondern besser als Device oder Channel anlegen. Und genau das bekomme ich derzeit nicht hin. Kann mich vielleicht jemand in die richtige Richtung schubsen?

      Danke und Gruß

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

        Eigentlich ganz einfach:

        var devices = adapter.config.devices || [];
        
            devices.forEach(function(device) {
                adapter.log.info('device: ' + device['devId']);
                adapter.setObject('devices.' + device['devId'], {
                   type: 'device',
                    common: {
                        name: 'present',
                        type: 'boolean',
                        role: 'value',
                        value: false
                    },
                    native: {}
                });
            });
        

        Der Type definiert ob es ein "device2, ein "state" oder "channel" ist.

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

          Danke sehr. Das hatte ich schon versucht, aber leider keine Einträge unter "Objekte" erhalten. Nach deinem Hinweis hab ich das nun erneut probiert. Dabei ist mir aufgefallen, dass es wohl ein anderes Problem gibt.

          Tatsächlich wird kurz nach dem Neustart der Instanz ein Pfad "devices" unter "Objekte" mit den gewünschten Channels angelegt. Der verschwindet allerdings nach einigen Sekunden wieder komplett!? Woran kann das denn liegen?

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

            @dabbeljuh:

            Der verschwindet allerdings nach einigen Sekunden wieder komplett!? `
            Das liegt daran das du kein Value/Native schreibst oder ein Unterobjekt mit Value.

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

              Ok, das erklärt das. Allerdings mir nicht so ganz … :lol:

              Wie genau mach ich das denn? Kannst du mir das evtl. anhand des obigen Codes zeigen? Muss ich den value in den Knoten native schreiben? Irgendwie steh ich da auf dem Schlauch. Egal, wie ich es versuche, kommt nach dem Upload kein Eintrag unter Objekte zustande. :oops:

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

              Support us

              ioBroker
              Community Adapters
              Donate

              823
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              2
              5
              994
              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