Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Frage] Visual Studio Code Funktionen aus dem Javascript Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Frage] Visual Studio Code Funktionen aus dem Javascript Adapter

Geplant Angeheftet Gesperrt Verschoben Entwicklung
17 Beiträge 3 Kommentatoren 2.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AlCalzoneA Offline
    AlCalzoneA Offline
    AlCalzone
    Developer
    schrieb am zuletzt editiert von
    #8

    Ja, Bluefox hat meinen PR in der Zwischenzeit gemerged.

    Probier mal folgende Zeile am Anfang des Skripts

    /// 
    

    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #9

      Top! Damit funktioniert es :-)

      Jetzt muss ich nur noch verstehen, warum er die Funktion event() anmeckert…

      Danke Dir!

      327_funktionen_im_javascript-adapter_2.png

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #10

        Wenn ich testweise

        var x = event;
        

        eingebe, zeigt VSCode mir an, dass event eine Variable vom Typ Event sei. Wo die genau herkommt weiß ich auch nicht, scheint aber ein global zu sein, eventuell weil es standardmäßig im Browser definiert ist. Würde den Namen entweder vermeiden oder damit leben ;)

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • frankjokeF Offline
          frankjokeF Offline
          frankjoke
          schrieb am zuletzt editiert von
          #11

          @ruhr70,

          wie machst das überhaupt? Mit js2fs? Dann kann ich auch die globalen scripts nicht verwenden (was ich zumindest mit einem immer tue).

          Leider funktioniert require() von scripts nicht, das wäre sowieso die Lösung für meine Probleme mit dem JS-Adapter.

          p.s.: Habe auch js2fs probiert (am Wochenende), hatte mir aber leider eine Datei zerschossen (war dann leer) und wenn ich Dateien ändere (Globale) starten die scripte 2x neu!

          @AlCalzone

          Krieg auch nach Einbindung von deinem header

          file: 'file://opi/pi/javascript/global/GlobalAdapter.js' severity: 'Warnung' message: ''log' is not defined. (W117)' at: '23,30' source: 'jshint'
          file: 'file://opi/pi/javascript/global/GlobalAdapter.js' severity: 'Warnung' message: ''createState' is not defined. (W117)' at: '298,37' source: 'jshint' 
          file: 'file://opi/pi/javascript/global/GlobalAdapter.js' severity: 'Warnung' message: ''setState' is not defined. (W117)' at: '298,65' source: 'jshint' 
          file: 'file://opi/pi/javascript/global/GlobalAdapter.js' severity: 'Warnung' message: ''getState' is not defined. (W117)' at: '298,90' source: 'jshint'
          
          

          Frank,

          NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
          Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

          1 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #12

            @fsjoke:

            @ruhr70,

            wie machst das überhaupt? Mit js2fs? Dann kann ich auch die globalen scripts nicht verwenden (was ich zumindest mit einem immer tue).

            Leider funktioniert require() von scripts nicht, das wäre sowieso die Lösung für meine Probleme mit dem JS-Adapter.

            p.s.: Habe auch js2fs probiert (am Wochenende), hatte mir aber leider eine Datei zerschossen (war dann leer) und wenn ich Dateien ändere (Globale) starten die scripte 2x neu! `

            Ich zitiere mich mal selbst :-)

            @ruhr70:

            Ich möchte erst einmal recht simpel ein Script in VSCode editieren. Ohne Einbindung zu ioBroker und dem Javascript-Adapter.

            Bei Dir klingt es so, als ob Du in VSCode editieren und das Skript auch direkt von dort starten möchtest. `

            Momentan ging es mir nur darum VSCode als Editor zu nutzen.

            Bei der Adapterentwicklung habe ich mit VSCode gespielt und da kann man auch wunderbar den Adapter drüber starten und debuggen, siehe: https://github.com/ruhr70/ioBroker.Doku … mit-VSCode.

            Hier wollte ich im ersten Schritt ganz banal mit cpoy & paste arbeiten. D.h. in VSCode editieren und dann das Skript nach ioBroker kopieren.

            Direkt die Skripte in VSCode zu bearbeiten und zu starten hätte seinen Charme. Hatte auch schon einmal überlegt js2fs auszuprobieren, Habe mich aber nicht getraut :roll:

            require() nutzen zu können, wäre schon von Vorteil. ggf. über npm?

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #13

              @fsjoke:

              file: 'file://opi/pi/javascript/global/GlobalAdapter.js' severity: 'Warnung' message: ''log' is not defined. (W117)' at: '23,30' source: 'jshint'
              ```` `  
              

              JSHint erkennt die Definitionsdatei wohl nicht. Schau mal http://jshint.com/docs/ unter Configuration, da ist ein Beispiel, wie man globale Variablen bekannt machen kann.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • frankjokeF Offline
                frankjokeF Offline
                frankjoke
                schrieb am zuletzt editiert von
                #14

                Danke AlCalzone & Ruhr!

                Ich entwichle und debugge die Adapter mit VSCode, allerdings remote, inklusive Git-Anbindung.

                Mein PC hat keinen ioBroker, ich hab zwar ein Vritual-Box mit win10 und eine mit Ubuntu, verwend die aber nur zum testen.

                Das Zielsystem auf dem ioBroker läft ist ein Orangepi (habe einen für Entwicklung, einen als Aktives System und euch noch einen Raspi zum Testen.

                Der Unterschied ist nur dass ich den Adapter am OPi starte, z.B. mit:

                 node --inspect=opi:9229 --debug-brk /opt/iobroker/node_modules/iobroker.km200/km200.js --force --logs
                
                

                Das funktioniert seit 6.9 sehr gut, ab V8 gibt's nur noch inspect deshalb braucht man –inspect-brk

                und ich dann VSCode debug 'attach' , Das sourceverzeichnis ist mittels Samba auf dem PC verknüpft und kann von VSCode direkt bearbeitet werden.

                Da ich die Raspi's und OPi's headless betreibe kann ich dort kein

                p.s.: für alle die kein VSCode haben, das geht auch mit dem normalen Chrome mittels chrome://inspect/#devices !

                Natürlich könnte ich den gesamten javascript-Adapter wie oben debuggen was ich nur in Ausnahmefällen tue (und dann mit Chrome da VSCode eben diese Probleme mit den scripts hat).

                Frank,

                NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #15

                  So mach ich das auch, auf dem lokalen Rechner hab ich ein NPM-Skript, das die Adapterdaten per SSH aktualisiert und einen iobroker upload ausführt.

                  Wo du es sagst, könnte ich auch noch die Debug/Inspekt-Zeile integrieren.

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    schrieb am zuletzt editiert von
                    #16

                    @AlCalzone:

                    So mach ich das auch, auf dem lokalen Rechner hab ich ein NPM-Skript, das die Adapterdaten per SSH aktualisiert und einen iobroker upload ausführt.

                    Wo du es sagst, könnte ich auch noch die Debug/Inspekt-Zeile integrieren. `

                    Kannst Du das mit dem NPM Skript näher erläutern? ;-)

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #17

                      Gerne!

                      In der package.json, Abschnitt "scripts":

                      "deploy_local": "node build/deploy_local.js"
                      

                      Das Skript sieht folgendermaßen aus:

                      https://github.com/AlCalzone/ioBroker.t … y_local.js

                      bzw. die TypeScript-Originaldatei:

                      https://github.com/AlCalzone/ioBroker.t ... y_local.ts

                      Im Projektordner liegt noch eine deploy_password.json mit folgendem Inhalt:

                      			{
                      				"host": "<hostname>",
                      				"username": "<username>",
                      				"password": "<password>"
                      			}</password></username></hostname>
                      

                      Per

                      npm run deploy_local
                      

                      aus VSCode wird das, was in den 3 Zeilen ab

                      https://github.com/AlCalzone/ioBroker.t … cal.ts#L19

                      definiert ist, auf den Pi hochgeladen und upload/restart ausgeführt.


                      Edit: Variante 2 per gulp-Skript aus einem älteren Projekt:

                      ! ````
                      "use strict";
                      ! var gulp = require('gulp'),
                      plumber = require('gulp-plumber'),
                      gulpSSH = require('gulp-ssh'),
                      execSync = require('child_process').execSync
                      ;
                      ! gulp.task('raspi-install', () => {
                      ! let packFile;
                      try {
                      packFile = execSync("npm pack");
                      } catch (e) {
                      console.log(Error while doing "npm pack": ${e});
                      return;
                      }
                      ! const conn = {
                      host: "<hostname">,
                      port: 22,
                      username: "<username>",
                      password: "<passwort>"
                      };
                      const ssh = new gulpSSH({
                      ignoreErrors: false,
                      sshConfig: conn
                      });
                      ! return gulp
                      .src([./${packFile}])
                      .pipe(ssh.dest('/opt/iobroker/'))
                      .exec([
                      "cd /opt/iobroker",
                      npm install ${packFile} --production,
                      rm -f ${packFile},
                      ])
                      ;
                      })</passwort></username></hostname">

                      Das führt aber durch die NPM-Installation zu mehr Arbeit auf dem Pi. Und Upload/Restart war da auch noch nicht drin.

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      793

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe