Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Umfrage: "How to" zur ioBroker Entwicklung?

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Umfrage: "How to" zur ioBroker Entwicklung?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Da bin ich leider raus.

      …oder kannst du mir ein "JavaScript in 10 Tagen" empfehlen.

      Viel Erfolg

      Rainet
      264_unbenannt.jpg

      1 Reply Last reply Reply Quote 0
      • B
        bku last edited by

        Finde ich gut, kann aber auch nicht mithalten.

        Mein Ziel hab ich schon fast erreicht - HomeMatic Überwachung und Display.

        Gruß Bernd

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

          @StefSign:

          Hallo,

          wollte mal fragen ob Interesse an einem "How to" zur ioBroker Entwicklungsumgebung besteht. Soll ja keine Liebhaberei sein…

          Falls ja, welcher Inhalt?

          • Angedacht wäre ein "Kochbuch" mit Screendumps und kurzen Erläuterungen

          wie man eine Entwicklungsumgebung für ioBroker und Adapter aufsetzt und debugged.

          • Webstorm bezogen. Ist allerdings nicht free nach 30 Tagen.

          • Ein Beispiel wie man einen ioBroker Adapter entwickelt?

          • Allerdings keine Einführung in Javascript Programmierung, dass würde den Rahmen sprengen. 🙂

          • Welche Sprache? Englisch/Deutsch?

          • Wo ablegen? Ich bin eigentlich ein Fan von Wiki und nicht von Word Dokumenten.

          • Könnten jemand auch das "Review" übernehmen?

          @Bluefox: Vielleicht machen wir hier die Büchse der Pandora auf…auf alle Fälle werden neue Fragen im Forum auftauchen! 🙂

          Bin schon auf Euer Feedback gespannt.

          Danke

          Steve `
          Da bin ich nur dafür.

          Ich habe schon versucht Wiki aufzusetzen:

          https://github.com/ioBroker/ioBroker/wiki

          Es ist aber auf der erste Seite hängen geblieben.

          Anfangen muss man auf jeden Fall mit Englisch (falls möglich), so können auch russische Anwender damit was anfangen.

          Danach konnte man auf Deutsch übersetzen.

          Folgende Kapitell müssen unbedingt drin sein:

            • Directory structure:
            • admin

              • index.html

              xxx.png - optional
              www - optional

            lib - optional

            package.json - mandatory

            io-package.json - mandatory

            main.js - mandatory (can be xxx.js)

          - Naming
           *   ioBroker.xxx (on git),
          
              iobroker.xxx for npm in package.json,
          
              main.js/xxx.js as start file,
          
              name of adapter must be unique and lowercase. 
          
          - Structure of io-package.json
           *   common - [https://github.com/ioBroker/ioBroker/bl … md#adapter](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#adapter) - common settings for all instances(adapters)
          
              native - instance specific settings
          
              objects - static objects for all instances of adapter (xxx.object)
          
              instanceObjects - static objects for one instance (xxx.0.object) 
          
          - Short strucutre of package.json with link to full list ([https://docs.npmjs.com/files/package.json](https://docs.npmjs.com/files/package.json))
           *   ````
              {
                "name": "iobroker.xxx",
                "version": "0.0.1",
                "description": "Adapter XXX",
                "author": "myName<myemail@mail.com>"
                "homepage": "https://github.com/yourgit/ioBroker.xxx",
                "readme": "https://github.com/yourgit/ioBroker.xxx/blob/master/README.md",
                "keywords": ["ioBroker", "xxx"],
                "repository": {
                  "type": "git",
                  "url": "https://github.com/yourgit/ioBroker.xxx"
                },
                "dependencies": {
                    "myPacket1": "~0.3.1",
                    "myPacket2": "~2.1.0"
                },
                "devDependencies": {
                  "grunt": "~0.4.4",
                  "grunt-replace": "~0.7.6",
                  "grunt-contrib-jshint": "~0.10.0",
                  "grunt-jscs": "~0.6.1",
                  "grunt-http": "~1.4.1",
                  "grunt-contrib-clean": "~0.5.0",
                  "grunt-contrib-compress": "~0.8.0",
                  "grunt-contrib-copy": "~0.5.0",
                  "grunt-exec": "~0.4.5"
                },
                "bugs": {
                  "url": "https://github.com/yourgit/ioBroker.xxx/issues"
                },
                "main": "main.js",
                "license": "MIT"
              }</myemail@mail.com> 
              ````
              - All fields are mandatory. devDependencies should be inside too.
          
              - How to publish on npm (Create account, npm init, npm publish)
          
              - Wait with the publish, till the version is really stable.
          
              - You cannot publish twice the same version. Increase version number to publish the changes. 
          
          - How to create own adapter
           *   Take example => rename all example into xxx in all files 
          
          - Structure of main.js
           *   - __var utils = require(__dirname + '/lib/utils'); // Get common adapter utils__ - mandatory
          
              - __var adapter = utils.adapter('example');__ - mandatory
          
              - __var myPacket1= require('myPacket1'); // add own module__
          
              - Most important events:
              ````
              adapter.on('objectChange', function (id, obj) {
                  adapter.log.info('objectChange ' + id + ' ' + JSON.stringify(obj));
              });
          
              ````
              ````
              adapter.on('stateChange', function (id, state) {
                  adapter.log.info('stateChange ' + id + ' ' + JSON.stringify(state));
          
                  // you can use the ack flag to detect if state is desired or acknowledged
                  if (!state.ack) {
                      adapter.log.info('ack is not set!');
                  }
              });
              ````
              - Entry point. Make all initialisations in main, because befor "ready" there is no configuration.
              ````
              adapter.on('ready', function () {
                  main();
              });
              ````
              - Configuration can be read in adapter.config (it is equal to "naitve" of adapter)
          
              - How to read state
          
              - How to write state
          
              - Difference between ack = true or false
          
              - Structure of state (val, akc, ts, lc[, expire, from])
          
              - Logging: console.log, adapter.log.[info, warn, error, debug] 
          
          - How to create instance
           *   Before published to npm: copy into __ioBroker/node_modules__, go to "admin" and add instance
          
              After published at npm: go to ioBroker/ and write "npm install iobroker.xxx –production", go to "admin" and add instance 
          
          - How to debug
           *   Start ioBroker
          
              Add instance of adapter
          
              Disable instance of adapter
          
              Start WebStorm
          
              Create Configuration for Debug with node.js
          
              Flags for application: –force, instance, log level (you can start the adapter as "__node xxx.js 1 debug –force__", 1 is instance index (by default 0, debug is log level and –force means ignore "enabled: false" settings) 
          
          - Best practice
          
          …
          
          - admin.html
          1 Reply Last reply Reply Quote 0
          • S
            StefSign last edited by

            Hallo Bluefox,

            das sind ja viele gute Ideen…

            🙂

            Ich würde gerne erstmal einfach anfangen und danach erweitern. Es wäre auch prima wenn

            wir eine Kommunity Zusammenarbeit hinbekommen, d.h. wenn etwas fehlt, unklar oder falsch

            ist kann es jemand es jederzeit korrigieren.

            In den einzelnen Schritten (siehe unten) kann man dann gerne auf die notwendigen ioBroker

            Details eingehen.

            Was hältst du davon?

            Installation, setup and first steps with an ioBroker Development Environment

            1. Download and install Webstorm on Ubuntu 14.04

            2. Download of the newest ioBroker Sourcen and import into a Webstorm Project.

            3. Config Webstorm for running and debugging ioBroker

            4. Example how to start ioBroker from Webstorm

            5. Example how to debug ioBroker from Webstorm

            6. Example how to debug ioBroker Adapter from Webstorm.

            7. Example how to create the first own Adapter like HMM (Homematic Manager Integration?)

            Ich würde dann auf der Wiki Page https://github.com/ioBroker/ioBroker/wiki mal anfangen…

            Steve

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

              @StefSign:

              Hallo Bluefox,

              das sind ja viele gute Ideen…

              🙂

              Ich würde gerne erstmal einfach anfangen und danach erweitern. Es wäre auch prima wenn

              wir eine Kommunity Zusammenarbeit hinbekommen, d.h. wenn etwas fehlt, unklar oder falsch

              ist kann es jemand es jederzeit korrigieren.

              In den einzelnen Schritten (siehe unten) kann man dann gerne auf die notwendigen ioBroker

              Details eingehen.

              Was hältst du davon?

              Installation, setup and first steps with an ioBroker Development Environment

              1. Download and install Webstorm on Ubuntu 14.04

              2. Download of the newest ioBroker Sourcen and import into a Webstorm Project.

              3. Config Webstorm for running and debugging ioBroker

              4. Example how to start ioBroker from Webstorm

              5. Example how to debug ioBroker from Webstorm

              6. Example how to debug ioBroker Adapter from Webstorm.

              7. Example how to create the first own Adapter like HMM (Homematic Manager Integration?)

              Ich würde dann auf der Wiki Page https://github.com/ioBroker/ioBroker/wiki mal anfangen…

              Steve `
              Es ist gut. Wir können dann das auf jeden Fall erweitern und sogar als Kapitel für großeres Dokument benutzen.

              Und github ist super Plattform dafür. Bin sehr gespannt was daraus kommt 🙂

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

                Hallo Bluefox,

                also meine erste Github Wiki Page https://github.com/ioBroker/ioBroker/wi … nvironment ist live aber noch nicht komplett. Werden schöne Abendarbeiten werden. Ein Kapitel pro Abend...

                Wie gesagt...Feedback erwünscht.

                Steve

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

                  Hallo Ihr Experten,

                  das klingt sehr, sehr interessant was Ihr hier so vorhabt. Ich würde da eigentlich gerne auch was zur Entwicklung beitragen. Allerdings beherrsche ich zwar ziemlich gut die Programmierung mit VB, VBA, .NET mit VisualStudio sowie Datenbanken und SQL nur eben hatte ich mit Java und der ganzen von Euch genutzten Umgebung noch gar nichts zu tun so dass ich befürchte dass meine Lernkurve zu lange dauert um Euch auch nur in Sichtweite hinterherzuhecheln 😉 …

                  Vielleicht installiere ich mir ja mal einen Webstorm und probiere ob ich mit Hilfe Eurer Anleitung hier weiterkomme...

                  Gruß Thilo

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

                    @Thisoft:

                    Hallo Ihr Experten,

                    das klingt sehr, sehr interessant was Ihr hier so vorhabt. Ich würde da eigentlich gerne auch was zur Entwicklung beitragen. Allerdings beherrsche ich zwar ziemlich gut die Programmierung mit VB, VBA, .NET mit VisualStudio sowie Datenbanken und SQL nur eben hatte ich mit Java und der ganzen von Euch genutzten Umgebung noch gar nichts zu tun so dass ich befürchte dass meine Lernkurve zu lange dauert um Euch auch nur in Sichtweite hinterherzuhecheln 😉 …

                    Vielleicht installiere ich mir ja mal einen Webstorm und probiere ob ich mit Hilfe Eurer Anleitung hier weiterkomme...

                    Gruß Thilo `
                    Bitte aber JavaScript und nicht Java lernen 😉 … Die haben mit einander so viel gemeinsam wie c# und c++.
                    144_iobroker_website.jpg

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

                      Hallo Thllo,

                      willkommen an Bord.

                      🙂

                      Ich denke ein guter Einstieg ist es einfach mal auszuprobieren, soll heissen Webstorm aufsetzen und ioBroker laufen lassen. Um ehrlich zu sein habe ich neue Programmiersprachen immer mit dem symbolischen Debugger an einem konkreten Beispiel gelernt.

                      Javascript ist eine sehr einfache funktionale Sprache ähnlich VB,perl, C. Die Konzepte die damit realisiert wurden haben es allerdings in sich…Asynchrone Callbacks (AJAX), REST, JSON um nur einige zu nennen. Die Einarbeitung lohnt sich und zum ersten mal haben wir eine Programmiersprache vom Client (Browser) bis zum Server (NodeJS).

                      BTW, ich habe auch erst mit ioBroker angefangen.

                      🙂

                      Würde mich über eine Rückmeldung freuen ob du mit der Beschreibung zu Webstorm/ioBroker zurecht kommst.

                      Steve

                      1 Reply Last reply Reply Quote 0
                      • V
                        versteckt last edited by

                        Wenn ich mit dem Homematic Manager Adapter fertig bin, kann ich mal liefern wie ich den entwickelt habe.

                        Gesendet von meinem iPhone mit Tapatalk

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

                          @StefSign:

                          Javascript ist eine sehr einfache funktionale Sprache ähnlich VB,perl, C. Die Konzepte die damit realisiert wurden haben es allerdings in sich…Asynchrone Callbacks (AJAX), REST, JSON um nur einige zu nennen. Die Einarbeitung lohnt sich und zum ersten mal haben wir eine Programmiersprache vom Client (Browser) bis zum Server (NodeJS). `

                          reizt mich ja! Gibt es da irgendetwas zum einarbeiten? nicht zu flach (..für dummies) aber trotzdem für beginner.

                          danke

                          Rainer

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

                            Hi Rainer, Versteckt,

                            @Rainer:

                            schau dir doch mal https://github.com/ioBroker/ioBroker/wi … nvironment an. Wie gesagt, am besten lernt man mit einer guten IDE und einem konkreten Beispiel.

                            Sag' einfach bescheid ob dies für Dich passend ist…oder ob etwas fehlt.

                            @Versteckt:

                            Könnten wir Deine HMM Adapter Entwicklung mit aufnehmen oder noch besser könntest du ein paar Zeilen dazu schreiben? Die Idee ist "Die Einstiegshürde für die Adapter Entwicklung zu senken"

                            Danke

                            Steve

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

                              Hallo,

                              @Bluefox: Danke für den Hinweis mit Javascript <-> Java.

                              Wobei mir allgemein das Einarbeiten in eine andere Programmiersprache als solche weniger Sorgen macht als eben das "Drumherum" wie die IDE kennenzulernen, die Möglichkeiten des Debuggings, das Interpretieren von Fehlermeldungen und "unerklärlichen" Effekten und last not least in diesem speziellen Fall das "dranhängen" an ein existierendes, sehr anspruchsvolles Projekt. Obwohl, um nochmal auf die Sprache zurückzukommen, ich eine starke Aversion gegen Programmiersprachen habe die geschweifte Klammern in Massen und Zeilenendezeichen verwenden 😢 Das treibt mich regelmäßig zu Wutausbrüchen wenn ich irgend wo mitten im Code so ein dämliches Semikolon vergessen habe und dann eine Fehlermeldung bekomme die alles mögliche aussagt nur eben nicht dass da ein Semikolon fehlt 😉 Aber was solls - für meine Arduinos musste ich mich ja auch schon an so eine "schreckliche" Sprache gewöhnen.

                              Ich werde mir demnächst wenn ich etwas mehr Zeit habe den Webstorm mal installieren und dann weitersehen. Wobei der Webstorm nach der 30-tägigen Testphase ja richtig Geld kostet…

                              Gruß Thilo

                              1 Reply Last reply Reply Quote 0
                              • V
                                versteckt last edited by

                                Ja klar, der Plan war, meine Schritte bzw. Dateien zu dokumentieren.

                                Komme aber erst am Wochenende dazu weiter zumachen.

                                Gesendet von meinem iPhone mit Tapatalk

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

                                  Hallo Steve,

                                  ich möchte erst einmal vorweg ein paar Infos loswerden:

                                  ich habe mich wegen ccu.io erst seit einem Jahr mit Linux, putty, filezilla & Co. beschäftigt.

                                  Meine Kenntnisse da sind schon einmal ziemlich beschränkt, bin jedoch lernwillig.

                                  Programmieren kann ich ein wenig. Ich habe -abgesehen von den Basic-Versuchen vor 30 Jahren- eine etwas komplexere Datenbank mit Paradox umgestezt, was ja im Prinzip auch Basic-ähnlich ist.

                                  Mit Javascript habe ich die ersten und einzigen Kontakte gehabt, als ich mich bei ccu.io in den rpi-Adapter gehackt habe und daraus (mit Bluefox Hilfe!) einen Cubie-Adapter gemacht habe. NIx verstanden, "einfach" die Struktur nachverfolgt und mit copy/paste Änderungen eingebaut.

                                  Mann war ich stolz darauf!

                                  Sowas macht natürlich Lust auf mehr; Seit Bluefox dann noch den node-red Adapter vorstellte will ich mich in JavaScript einarbeiten (und dann noch russisch lernen 😉 )

                                  Ich bin da ganz deiner Meinung - sowas klappt am Besten, indem man sich ein "Projekt" vornimmt und das versucht umzusetzen. UNd eine Entwicklungsumgebung wie Webstorm hilft da gewiss. Aber Grundlagen zu Javascript sollte man haben und auch zum Nachschlagen immer greifbar sein (da suche ich noch was!)

                                  Das WIKI sieht Spitze aus, ich glaube damit käme ich klar, wenn… (s.o.)

                                  Wenn ich das richtig gesehen habe wäre Webstorm sogar kostenlos, wenn man nachweist, dass man damit open Source entwickeln will.

                                  Jetzt kommt noch was: bei meinen ganzen Linux-Versuchen min ich mit Ubuntu am wenigsten klar gekommen. Wieso arbeiten in der Entwicklung soviele mit Ubuntu?

                                  Gruß

                                  Rainer

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

                                    Hallo Rainer,

                                    Dein Feedback freud' mich sehr, ich sehe auch wie Du sehr engagiert bist in den anderen Foren!

                                    🙂

                                    Webstorm:

                                    Open Source gratis Lizenz wäre klasse, wo hast Du das gesehen?

                                    Ubuntu:

                                    Das ist aus einem Guss, stabil und ist überall verfügbar. Schon allein die Updates mit "apt-get …" sind sehr schön gelöst. Ist auch nicht so überladen wie Red Hat oder Suse. Vertraue mir, die Einarbeitung rentiert sich. Und selbst wenn Du kein Ubuntu für eine ARM/PC Plattform hast...die anderen (Debian) sind sehr ähnlich.

                                    Hast Du ein Ubuntu Device?

                                    Einarbeitung:

                                    Der "Rest" kommt noch…es gibt keinen Zeitdruck, keinen der Druck macht. 🙂 Ich habe jetzt auch schon 30 Jahre Informatik Erfahrungen und möchte jetzt nicht mehr auf was "Proprietäres" setzen was in 1-2 Jahren keiner mehr kennt. Die Techniken die wie hier einsetzen (HTML5, CSS3, Javascript, AJAX und Community Development) werden bleiben und ausgebaut werden (wenn nicht, heiss ich Meier).

                                    So Kaffeepause vorbei...

                                    😞

                                    Steve

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

                                      @StefSign:

                                      Webstorm:

                                      Open Source gratis Lizenz wäre klasse, wo hast Du das gesehen? `
                                      Hier:

                                      https://www.jetbrains.com/webstorm/buy/ … PEN_SOURCE

                                      @StefSign:

                                      Hast Du ein Ubuntu Device? `
                                      Nein, noch nicht, kann aber mein altes Notebook dafür nutzen.

                                      Danke

                                      Rainer

                                      …und was ist mit einem Hand-/Lehrbuch für JavaScript

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

                                        …Handbuch? Also mir haben diese 700 Seiten Javascript Schmöker nicht geholfen, nicht mal als Nachschlagewerk.

                                        Unkonventionell und gut fand ich diese hier, der Stil muss einen aber liegen:

                                        • Head First: JavaScript-Programmierung-von-Kopf-bis-Fuß

                                        • Schrödinger-lernt-HTML5-CSS3-JavaScript

                                        Steve

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

                                          @StefSign:

                                          Hi Rainer, Versteckt,

                                          @Rainer:

                                          schau dir doch mal https://github.com/ioBroker/ioBroker/wi … nvironment an. Wie gesagt, am besten lernt man mit einer guten IDE und einem konkreten Beispiel.

                                          Sag' einfach bescheid ob dies für Dich passend ist…oder ob etwas fehlt.

                                          @Versteckt:

                                          Könnten wir Deine HMM Adapter Entwicklung mit aufnehmen oder noch besser könntest du ein paar Zeilen dazu schreiben? Die Idee ist "Die Einstiegshürde für die Adapter Entwicklung zu senken"

                                          Danke

                                          Steve `
                                          Anfang sieht klasse aus!

                                          Habe auch eine paar Korrekturen verpasst.

                                          Nun bin ich bis zum Kapitel "Config Webstorm to run and debug the ioBroker" gekommen.

                                          Ich denke, dass es keinen Sinn gibt iobroker.js zu debuggen. Erstens iobroker.js besteht aus eine Zeile:

                                          require(__dirname + '/lib/setup.js');
                                          
                                          

                                          Zweitens, das startet nur einen Daemon und beendet sich.

                                          D.h. im Debug mode wird das gar nicht funktionieren.

                                          Ich denke, es ist besser "controller.js" zu nehmen und dann zu erklären, dass in "Run" mode werden alle andere Adapter automatisch mitgestartet und in "Debug-Mode" muss man jeden Adapter selbst starten.

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

                                            @Thisoft:

                                            Hallo,

                                            Wobei mir allgemein das Einarbeiten in eine andere Programmiersprache als solche weniger Sorgen macht als eben das "Drumherum" wie die IDE kennenzulernen, die Möglichkeiten des Debuggings, das Interpretieren von Fehlermeldungen `
                                            Genau so (Meiner Meinung nach) sieht das Dokument hier aus:

                                            https://github.com/ioBroker/ioBroker/wi … nvironment

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            761
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            26
                                            6127
                                            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