Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Adapter-Entwicklung Dokumentation

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter-Entwicklung Dokumentation

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

      @kleinerDrache:

      1. Wie Debuge ich z.B. das Admin zu meinem Adapter ? `
      Nach jeder Änderung "iobroker upload adapterName" aufrufen.

      Und dann im admin F5 zu drucken. (Wichtig)

      Ich benutze Chrome fürs debuggen.
      48_2016-08-14_10_39_02-iobroker.admin.png

      @kleinerDrache:

      2. auf welche events reagiert Adapter.0n('message'…...? `
      auf alle die mit sendTo('adapterName.0', …) gesendet werden. Z.B. aus javascript Adapter (aus admin Seite, oder aus anderen Adapter)

      @kleinerDrache:

      3. wie genau funktioniert das mit "getForeignObjects"? `
      Wenn du getForeignObjects('')* aufrufst, dann bekommst du nur die Objekte für alle Adapter (kann SEHR viel sein)

      Die Objekte sehen dann wie folgt aus:

      getForeignObjects(adapter.namespace + '.*', function (err, objs) {
          console.log(JSON.stringify(objs, null, 2));
      });
      =>
      {
        "sonos.0.root.192_168_1_55.state_simple": {
          "type": "state",
          "common": {
            "def": "false",
            "type": "boolean",
            "read": "true",
            "write": "true",
            "role": "media.state",
            "desc": "Play or pause",
            "name": "state_simple",
            "mobile": {
              "visible": true,
              "admin": {}
            }
          },
          "native": {
            "topic": "sonos/0/root/192_168_1_55/state_simple"
          },
          "_id": "sonos.0.root.192_168_1_55.state_simple",
          "enums": {},
          "children": []
        },
        "sonos.0.root.192_168_1_55.state": {
          "type": "state",
          "common": {
            "def": "stop",
            "type": "string",
            "read": "true",
            "write": "true",
            "values": "stop,play,pause,next,previous,mute,unmute",
            "role": "media.state",
            "desc": "Play, stop, or pause, next, previous, mute, unmute",
            "name": "state",
            "mobile": {
              "visible": true,
              "admin": {}
            }
          },
          "native": {
            "topic": "sonos/0/root/192_168_1_55/state"
          },
          "_id": "sonos.0.root.192_168_1_55.state",
          "enums": {},
          "children": []
        },
        ...
       }
      
      

      Normalerweise muss ein Adapter auf die andere Objekte nicht zugreifen.

      Ich empfehle die Funktion getStatesOf zu nutzen:

      adapter.getStatesOf(function (err, _states) {
      	console.log(JSON.stringify(_states, null, 2));
      });
      

      Zurück kommt ein Array mit der Liste von allen Objekten, die zu dieser Instanz gehören:

      [
        {
          "type": "state",
          "common": {
            "name": "Sensor1",
            "def": 0,
            "type": "number",
            "read": true,
            "write": false,
            "role": "level.temperature",
            "desc": "1wire sensor",
            "unit": "°C"
          },
          "native": {
            "id": "10.C8F148010800",
            "property": "temperature"
          },
          "_id": "owfs.0.wires.Sensor1"
        },
        {
          "type": "state",
          "common": {
            "name": "Sensor2",
            "def": 0,
            "type": "number",
            "read": true,
            "write": false,
            "role": "level.temperature",
            "desc": "1wire sensor",
            "unit": "°C"
          },
          "native": {
            "id": "10.040349010801",
            "property": "temperature"
          },
          "_id": "owfs.0.wires.Sensor2"
        }
      ]
      
      1 Reply Last reply Reply Quote 0
      • K
        kleinerDrache last edited by

        Danke damit komme ich erstmal weiter hoffe ich 😉

        1 Reply Last reply Reply Quote 0
        • S
          simpixo last edited by

          @kleinerDrache:

          Danke damit komme ich erstmal weiter hoffe ich 😉 `

          Das hoffe ich auch [emoji12][emoji23]

          Gesendet von meinem iPhone mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • K
            kleinerDrache last edited by

            hmpf

            Ich denke ich werds wohl aufgeben. Ich kapiere einfach die Struktur von ioBroker nicht (iss ja auch nirgends beschreiben) welche Funktionen gibt es überhaupt ??

            Gibt es irgendwo ne KOMPLETTE Funktionsliste von ioBroker ? (mit Parametern bitte)

            Bin leider nur Javascript Anfänger.

            Sorry ioBroker ist ein erstklassiges Projekt aber ohne vernünftige Doku ist jeder der nicht mindestens Studiert hat aufgeschmissen. Und ich hab weder Lust noch Zeit den ganzen Code erst zu durchforsten (wer macht was) um einen Adapter zu bauen den Ihr als Profis wahrscheinlich in 20 Minuten dahinklatscht.

            Soll jetzt keine Abwertung eurer Arbeit sein. Der Broker ist allemal besser als z.B. Fhem oder Openhab aber ohne Doku geht mal gar nicht.

            Trotz allem meine Hochachtung an die Programmierer von ioBroker ich bin dafür anscheinend zu blöde 😉

            1 Reply Last reply Reply Quote 0
            • S
              simpixo last edited by

              Ohh nein …... [emoji22][emoji25][emoji21]

              Gesendet von meinem iPhone mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators last edited by

                @kleinerDrache:

                Bin leider nur Javascript Anfänger. `
                Da bist du schon mal 100fach weiter als ich. Leider bin ich immer noch js-Legastheniker.

                Bitte nicht aufgeben. Ich weiss, dass du hier alle nötige Unterstützung bekommen wirst!

                Meines Wissens gab es mal einen default Adapter oder so ähnlich, an dem.man sich hätte orientieren können.

                Du hast das Pech, dass genau zu der Zeit in der du angefangen hast alle die dir hätten helfen können anscheinend in Urlaub waren. Von Bluefox weiss ich es, von ruhr70 und pix nehme ich es an. Auch weitere Adapterentwickler waren die letzte Zeit ziemlich ruhig.

                Was brauchst du denn vorrangig für Unterstützung?

                Seinem posting entnehme ich, Fass du gerne ein Telefonbuch mit Rezepten hättest, durch das du dich in einem stillen kämmerlein durcharbeiten willst.

                Ich glauve nicht, dass es do ezwas gibt und denke, Fass der Lernprozess mit "interaktiver" Hilfe besser sein würde.

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • K
                  kleinerDrache last edited by

                  Na ein Kochbuch muss es nicht gerade sein lach aber so ein paar grundlegende Infos wären schon schön.

                  Ein gut mit Kommentaren durchsetzter Demo-Adapter wäre ein Traum. Hab jetzt gefühlte 1000 Adapter in meine Dev Umgebung installiert und die laufen auch alle. Nur Dumm das jeder anders aufgebaut ist, (nicht was das Programmieren an sich angeht ist klar das die alle anders sind) aber irgendwie fehlt ne saubere Grundstruktur. Im Template sind z.B. ein Paar Funktionen angegeben die immer vorhanden sein sollen aber gefunden hab ich die nur im Template in fast jedem anderen Adapter fehlen sie entweder ganz oder teilweise. Stehe gerade da wie Ochs vorm Berg.

                  Ein Teil der Funktionen die aufgerufen werden, haben irgendwie gar keinen Bezug zur Aktuellen JS Datei, da mir die Beschreibungen zu diesen Funktionen fehlen kann ich nicht nachvollziehen was die überhaupt machen. Ich will halt nicht nur irgendwas halbes zusammenkopieren das Irgendwie funktioniert (siehe LaCrosse Adapter). Ich will auch verstehen und meine JavaScript Kenntnise erweitern (komme ja von Python).

                  Und nochmal zum Kochbuch gg in C/C++ gibt es z.B. Doxygen womit ich wenigstens ne liste mit vorhandenen Funktionen und deren Parametern bekomme. Sowas wäre halt schon mal Endgeil.

                  Und nein werde wohl nicht aufgeben war nur der Frust das nicht einmal die einfachsten Sachen Die ICH in JavaScript kenne hier für mich verwendbar sind.

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

                    @kleinerDrache:

                    Na ein Kochbuch muss es nicht gerade sein lach aber so ein paar grundlegende Infos wären schon schön.

                    Ein gut mit Kommentaren durchsetzter Demo-Adapter wäre ein Traum. Hab jetzt gefühlte 1000 Adapter in meine Dev Umgebung installiert und die laufen auch alle. Nur Dumm das jeder anders aufgebaut ist, (nicht was das Programmieren an sich angeht ist klar das die alle anders sind) aber irgendwie fehlt ne saubere Grundstruktur. Im Template sind z.B. ein Paar Funktionen angegeben die immer vorhanden sein sollen aber gefunden hab ich die nur im Template in fast jedem anderen Adapter fehlen sie entweder ganz oder teilweise. Stehe gerade da wie Ochs vorm Berg.

                    Ein Teil der Funktionen die aufgerufen werden, haben irgendwie gar keinen Bezug zur Aktuellen JS Datei, da mir die Beschreibungen zu diesen Funktionen fehlen kann ich nicht nachvollziehen was die überhaupt machen. Ich will halt nicht nur irgendwas halbes zusammenkopieren das Irgendwie funktioniert (siehe LaCrosse Adapter). Ich will auch verstehen und meine JavaScript Kenntnise erweitern (komme ja von Python).

                    Und nochmal zum Kochbuch gg in C/C++ gibt es z.B. Doxygen womit ich wenigstens ne liste mit vorhandenen Funktionen und deren Parametern bekomme. Sowas wäre halt schon mal Endgeil.

                    Und nein werde wohl nicht aufgeben war nur der Frust das nicht einmal die einfachsten Sachen Die ICH in JavaScript kenne hier für mich verwendbar sind. `
                    Frage gezielt was du machen willst. Dann werde ich auch versuchen alles zu erklären.

                    Natürlich Doku ist ein Manko. Ich kann aber nichts machen. Wurde aber an der Stelle letzte Zeit SEHR viel gemacht. Nur aber Anwenderdoku.

                    Ich will Javadoc einsetzten. …. Irgendwann.

                    1 Reply Last reply Reply Quote 0
                    • K
                      kleinerDrache last edited by

                      ok das hört sich schon mal gut an grins

                      im Moment erstmal lernen wie ioBroker im Grunde funktioniert.

                      States anlegen lassen und automatisch löschen ,

                      wiederkehrende Datenpunkte als Templates anlegen und z.B. nur die ID ändern,

                      wie prüfen ob ein Datenpunkt schon existiert und weiter nutzen,

                      wie Dropdown Auswahl im Admin für z.B. USB Port (wie in MYSensors als Beispiel),

                      und natürlich die ganzen zusammenhänge welche JS ist für was zuständig.

                      Du hast mir ja schon mal nen Tip gegeben mit der on('Message'… Funktion . Da hab ich auch nicht durchgeblickt. Hast ja geschrieben die reagiert auf 'sendTo' nur find ich in MySensors nix mit 'sendTo' ausser in der Funktion die ja mit 'sendTo' erst ausgelösst werden soll verwirrtbin.

                      JavaDoc hört sich gut an. Dann musst Du ja überall erstmal die ganzen Kommentare anlegen zu JEDER Funktion!!! OMG das dürfte ein ziemlicher Aufwand werden.

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

                        @kleinerDrache:

                        States anlegen lassen und automatisch löschen , `
                        Das kann man bei ping, mysensors, sonos, owfs usw

                        https://github.com/ioBroker/ioBroker.ow … in.js#L258

                        @kleinerDrache:

                        wiederkehrende Datenpunkte als Templates anlegen und z.B. nur die ID ändern, `
                        So?

                        https://github.com/ioBroker/ioBroker.ow … in.js#L208

                        @kleinerDrache:

                        wie prüfen ob ein Datenpunkt schon existiert und weiter nutzen, `
                        Sehe erstes Link

                        @kleinerDrache:

                        wie Dropdown Auswahl im Admin für z.B. USB Port (wie in MYSensors als Beispiel),

                        Du hast mir ja schon mal nen Tip gegeben mit der on('Message'… Funktion . Da hab ich auch nicht durchgeblickt. Hast ja geschrieben die reagiert auf 'sendTo' nur find ich in MySensors nix mit 'sendTo' ausser in der Funktion die ja mit 'sendTo' erst ausgelösst werden soll verwirrtbin. `
                        https://github.com/ioBroker/ioBroker.my … .html#L118

                        @kleinerDrache:

                        JavaDoc hört sich gut an. Dann musst Du ja überall erstmal die ganzen Kommentare anlegen zu JEDER Funktion!!! OMG das dürfte ein ziemlicher Aufwand werden. `
                        OMG. 😮

                        1 Reply Last reply Reply Quote 0
                        • K
                          kleinerDrache last edited by

                          OMG "OhMeinGOTT" in sinne von das iss aber ne menge arbeit 😉

                          die ersten paar schau ich mir an danke.

                          Das mit dem sendTo iss ja genau die Funktion die ich meine hab sie übernommen und wird nicht ausgeführt. "sendTo(NULL" heißt ja in endefeckt sende an nix und das reicht ?

                          1 Reply Last reply Reply Quote 0
                          • B
                            Bernado.Eco last edited by

                            Hallo,

                            wo genau beantragt man die kostenlose Lizenz für Open Source, ist das die Studenten-Lizenz?

                            Gruß

                            Bernado

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

                              Webstorm? Hier: https://www.jetbrains.com/buy/opensourc … t=webstorm

                              Aber das geht nur wenn du ein aktives projekt hast das min 3 Monate existiert.

                              Gesendet von meinem Jolla mit Tapatalk

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              358
                              Online

                              31.7k
                              Users

                              79.8k
                              Topics

                              1.3m
                              Posts

                              14
                              51
                              16263
                              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