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. ioBroker Allgemein
  4. Javascript Adapter 2.03, Feedback

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Javascript Adapter 2.03, Feedback

Scheduled Pinned Locked Moved ioBroker Allgemein
42 Posts 11 Posters 10.3k 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.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    wrote on last edited by
    #2

    Ich frage mich was ich falsch mache, habe immer noch die "alte" Script Oberfläche.

    Es ist alles auf dem neusten Stand. Admin, js-controller und javascript Adapter.

    Habe auch schon diverse Neustarts hinter mir.

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

      @coyote:

      Ich frage mich was ich falsch mache, habe immer noch die "alte" Script Oberfläche.

      Es ist alles auf dem neusten Stand. Admin, js-controller und javascript Adapter.

      Habe auch schon diverse Neustarts hinter mir. `
      Schreib mal:

      iobroker upload javascript

      1 Reply Last reply
      0
      • L Offline
        L Offline
        looxer01
        wrote on last edited by
        #4

        Hi,

        vielen Dankf für die neue JS Version. Das erleichtert die Ordnung erheblich.

        Einen kleinen Punkt habe ich. Wenn ich neue Gruppen anlege und in common zuordne und dann anschliessend loesche,

        dann sind diese Gruppen zunächst mal nicht zu sehen.

        Wenn ich aber dann eine neue Gruppe anlege dann sind die gelöschten Gruppen

        nach wie vor da.

        Das Löschen von Gruppen klappt bei mir also nicht.

        vG Looxer

        EDIT: Workaround ist: nach loeschen die ioBroker Seite neu aufrufen.

        Sofort nach loeschen einer Gruppe. Dann bleibt dies Gruppe auch verschwunden

        getestet mir Firefox und Chrome

        1 Reply Last reply
        0
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          wrote on last edited by
          #5

          Hat funktioniert, Danke.

          1 Reply Last reply
          0
          • andreA Offline
            andreA Offline
            andre
            Developer
            wrote on last edited by
            #6

            Hallo,

            der neue Javascript Adapter ist wirklich schick geworden und funktionier bei mir, soweit ich das bisher beurteilen kann, einwandfrei. :)

            Allerdings stehe ich bei den Gruppen noch auf dem Schlauch.

            Habe bisher nur einfache Scripte geschrieben und mich noch nicht mit den globalen Funktionen/ Scripten auseinander gesetzt.

            Hat da vielleicht jemand ein paar erklärende Worte und ein Beispiel für mich? Und ggf. einen Rat in Richtung "Best Practice"?

            Danke.

            MfG,

            André

            Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

            1 Reply Last reply
            0
            • L Offline
              L Offline
              looxer01
              wrote on last edited by
              #7

              Hi Andre,

              ich habe meine Scripts mit der Gruppen-Funktion etwas sortiert

              Weiss nicht ob das Best Practice ist aber es hilft mir :D

              305_script-grouping.jpg

              1 Reply Last reply
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                wrote on last edited by
                #8

                Hi Andre,

                globale Scripts verwendest Du z.B. wenn Du eine Funktion definierst, die in weiteren Skripten verwendet werden soll.

                Als Beispiel:

                http://forum.iobroker.de/viewtopic.php? … 54d#p21443

                Da habe ich als globales Script eine Funktion logs() definiert, die ich dann in den weiteren Skripten immer wieder verwende.

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

                1 Reply Last reply
                0
                • blauholstenB Offline
                  blauholstenB Offline
                  blauholsten
                  Developer
                  wrote on last edited by
                  #9

                  Hi,

                  finde das Design Spitze!

                  Hätte trotzdem ein Paar fragen wie man es am "besten" macht, bevor ich anfange.

                  1. Global braucht nicht mehr beschriftet werden?

                  2. Global zählt für alle Instanzen?

                  3. Für was ist common?(für häufig gebrauchte Sachen?)

                  Entwickler vom: - Viessman Adapter
                  - Alarm Adapter

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    steinwedel
                    wrote on last edited by
                    #10

                    Mir ist ein Maleur passiert. Habe eine Gruppe erzeugt, die genauso wie das Skript heißt. Dadurch wurde das Skript gelöscht. Eine Sicherung dagegen wäre sinnvoll.

                    1 Reply Last reply
                    0
                    • andreA Offline
                      andreA Offline
                      andre
                      Developer
                      wrote on last edited by
                      #11

                      Hallo,

                      danke für die Tipps. Bin jetzt gerade beim "Umorganisieren" :)

                      Habe mir dazu auch mal eine neue Instanz vom Javascript-Adapter hinzugefügt (Für meine Bastelscripte). Der Adapter (javascript.1) ist auch wunderschön grün geworden, nur leider wurden keine Objekte angelegt. :( Außerdem hätte ich erwartet, dass ich oben einen zusätzlichen Reiter bekomme. Aber da ist nichts… (auch nicht im Editiermodus der Reiter)

                      Mache ich was falsch? Gibt's da nen Bug? Muss ich vielleicht noch was konfigurieren?

                      Wenn ich den Adapter neu lade, dann gibt's auch einträge im Log:

                      javascript-1	2016-03-10 20:34:15	info	received all objects
                      javascript-1	2016-03-10 20:34:14	info	received all states
                      javascript-1	2016-03-10 20:34:12	info	requesting all objects
                      javascript-1	2016-03-10 20:34:12	info	requesting all states
                      javascript-1	2016-03-10 20:34:12	info	starting. Version 2.0.3 in /opt/iobroker/node_modules/iobroker.javascript
                      host-jarvis	2016-03-10 20:34:06	info	instance system.adapter.javascript.1 started with pid 9050
                      host-jarvis	2016-03-10 20:34:04	info	instance system.adapter.javascript.1 terminated with code 0 (OK)
                      host-jarvis	2016-03-10 20:34:03	info	stopInstance system.adapter.javascript.1 killing pid 6603
                      host-jarvis	2016-03-10 20:34:03	info	stopInstance system.adapter.javascript.1
                      host-jarvis	2016-03-10 20:34:03	info	object change system.adapter.javascript.1
                      

                      Weiß jemand Rat? Liegt es vielleicht an der neuen Version?

                      Danke.

                      MfG,

                      André

                      Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #12

                        @blauholsten:

                        3. Für was ist common?(für häufig gebrauchte Sachen?) `
                        Das legt jeder selbst fest. Bei mir bildet jeder Raum eine Gruppe, außerdem "Aussen". common verwende ich für gemeinsame Sachen, wie Feiertage, Servicemeldungen, …

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Reply Last reply
                        0
                        • blauholstenB Offline
                          blauholstenB Offline
                          blauholsten
                          Developer
                          wrote on last edited by
                          #13

                          Hi,

                          kannst jemand noch kurz was zu Frage Nr. 2 sagen(Nr. 1 hat sich quasi erledigt)

                          Denn im Reiter steht eine Instanz Nummer neben den Skript Namen.

                          EDIT

                          Ich habe es gerade ausprobiert, der gilt trotz der Nummer für alle Instanzen.

                          Entwickler vom: - Viessman Adapter
                          - Alarm Adapter

                          1 Reply Last reply
                          0
                          • ruhr70R Offline
                            ruhr70R Offline
                            ruhr70
                            wrote on last edited by
                            #14

                            @andre:

                            Hallo,

                            danke für die Tipps. Bin jetzt gerade beim "Umorganisieren" :)

                            Habe mir dazu auch mal eine neue Instanz vom Javascript-Adapter hinzugefügt (Für meine Bastelscripte). Der Adapter (javascript.1) ist auch wunderschön grün geworden, nur leider wurden keine Objekte angelegt `

                            Hi Andre,

                            Objecte werden erst angelegt, wenn Du in der Instanz welche mit createState() anlegst.

                            Oder wenn Du in der Instanz ein Script erstellst, in dem Du in der Spalte mit dem Scriptnamen die 1 auswählst.

                            Gruß

                            Michael

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

                            1 Reply Last reply
                            0
                            • ruhr70R Offline
                              ruhr70R Offline
                              ruhr70
                              wrote on last edited by
                              #15

                              @steinwedel:

                              Mir ist ein Maleur passiert. Habe eine Gruppe erzeugt, die genauso wie das Skript heißt. Dadurch wurde das Skript gelöscht. Eine Sicherung dagegen wäre sinnvoll. `

                              Das sollte man wirklich besser im Adapter verhindern. Danke für die Warnung.

                              Dann ist mir noch eine Sache aufgefallen:

                              Wenn man ein Script kopiert, taucht im Namen die automatische Nummerierung, wie (1) nirgendwo auf. Nur in den Objekten sieht man das.

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

                              1 Reply Last reply
                              0
                              • andreA Offline
                                andreA Offline
                                andre
                                Developer
                                wrote on last edited by
                                #16

                                @ruhr70:

                                …Oder wenn Du in der Instanz ein Script erstellst, in dem Du in der Spalte mit dem Scriptnamen die 1 auswählst. `
                                Das war es! Ich habe die Ziffern einfach ausgeblendet bzw. nicht mit der Instanz in Verbindung gebracht. :)

                                Jetzt hab ich's aber begriffen. Danke Michael.

                                MfG,

                                André

                                Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                                1 Reply Last reply
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by paul53
                                  #17

                                  Bei mir bildet jeder Raum eine Gruppe, außerdem "Aussen". `
                                  Mit Hilfe der Gruppennamen und der neuen Funktion "name" kann ich Skripte für mehrere Räume kopieren, ohne Änderungen nach dem Kopieren vornehmen zu müssen (außer eventuelle Offsets). Beispiel:

                                  // Sensorwerte um Offset korrigieren, abs. Feuchte und Taupunkt berechnen und (inkl. Enthalpie) anzeigen
                                  // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname
                                  var raum = name.split(".")[2];
                                  // Offsets
                                  var toffset = 0.0; // in K
                                  var rhoffset = 0;  // in %
                                  var tsid = getIdByName(raum + ".WT-Temperatur");
                                  var hsid = getIdByName(raum + ".WT-rel.Feuchte");
                                  var tid = getIdByName(raum + ".Temperatur");
                                  var rhid = getIdByName(raum + ".rel_Feuchte");
                                  var xid = getIdByName(raum + ".Feuchtegehalt");
                                  var dpid = getIdByName(raum + ".Taupunkt");
                                  var aid = getIdByName(raum + ".Klima");
                                  var t = getState(tsid).val + toffset; // Temperatur, korrigiert in °C
                                  var rh = getState(hsid).val + rhoffset; // rel. Feuchte, korrigiert in %
                                  var x;  // Feuchtegehalt in g/kg
                                  var dp; // Taupunkt in °C
                                  var  DP = require('dewpoint');
                                  // 70 m über NN
                                  var xdp = new DP(70); 
                                  function calc() {
                                      var y = xdp.Calc(t, rh);
                                      x = y.x;
                                      dp = y.dp;
                                      setState(xid, x);
                                      setState(dpid, dp);
                                  }
                                  function anzeige() {
                                  	// Enthalpie berechnen
                                      var h = (1.00545 * t + (2.500827 + 0.00185894 * t) * x).toFixed(1) + " kJ/kg";
                                      var anz = "t: " + t.toFixed(1) + " °C" + '   rH: ' + rh + " %" + '   x: ' + x.toFixed(2) + " g/kg" + '   dp: ' + dp.toFixed(1) + " °C" + '   h: ' + h;
                                      setState(aid, anz);
                                  }
                                  function klima() {
                                  	calc();
                                  	anzeige();
                                  }
                                  klima(); // Script start
                                  on(tsid, function (dp) {
                                      t = dp.state.val + toffset; 
                                      setState(tid, t);
                                  	klima();
                                  });
                                  on(hsid, function (dp) {
                                      rh = dp.state.val + rhoffset; 
                                      setState(rhid, rh); 
                                  	klima();
                                  });
                                  

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  1 Reply Last reply
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    wrote on last edited by
                                    #18

                                    @paul53:

                                    @paul53:

                                    Bei mir bildet jeder Raum eine Gruppe, außerdem "Aussen". Mit Hilfe der Gruppennamen und der neuen Funktion "name" kann ich Skripte für mehrere Räume kopieren, ohne Änderungen nach dem Kopieren vornehmen zu müssen.

                                    Super Idee!

                                    Aber auch das Script ist interessant… kannst Du auch die anderen dazugehörigen Scripts posten? ;-)

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

                                    1 Reply Last reply
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by
                                      #19

                                      @ruhr70:

                                      …kannst Du auch die anderen dazugehörigen Scripts posten? `
                                      Hier ein Beispiel für einen 2-Punkt-Regler zur Raumheizung:

                                      ! // 2-Punkt-Regler Raumheizung ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! // halbe Hysterese in K var hh = 0.1; ! var xid = getIdByName(raum + ".Temperatur"); var wid = getIdByName(raum + ".Sollwert"); var yid = getIdByName(raum + ".Heizen"); var x = getState(xid).val; // Istwert in °C var w = getState(wid).val; // Sollwert in °C ! function hys() { if (x <= w - hh) setState(yid, true); else if (x >= w + hh) setState(yid, false); } ! hys(); // Script start ! on(xid, function(dp) { x = dp.state.val; hys(); }); ! on(wid, function(dp) { w = dp.state.val; hys(); }); !

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Reply Last reply
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        wrote on last edited by
                                        #20

                                        @paul53:

                                        @ruhr70:

                                        …kannst Du auch die anderen dazugehörigen Scripts posten? Hier ein Beispiel für einen 2-Punkt-Regler zur Raumheizung:

                                        mmmh.. ;-) und der Teil, in dem die Datenpunkte erstellt und aktualisiert werden.

                                        Ich habe leider keine Heizungssteuerung, sondern nur sieben Thermostate (HM-TC-IT-WM-W-EU und HM-WDS40-TH-I). Die Fußbodenheizung wird manuell geregelt.

                                        Ich dachte, ich könnte mir aus Deinem Script die Visualisierung des Taupunktes, usw. "klauen". Aber irgendwie fehlt mir da noch einiges.

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

                                        1 Reply Last reply
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          wrote on last edited by
                                          #21

                                          @ruhr70:

                                          Ich dachte, ich könnte mir aus Deinem Script die Visualisierung des Taupunktes, usw. "klauen". Aber irgendwie fehlt mir da noch einiges. `
                                          Die HTML-Formaterung in der Funktion "anzeige" dient nur der Anzeige im Admin-Reiter "Zustände". Ich benutze kein VIS.
                                          filename="Anzeige_Zustände.JPG" index="0">~~
                                          Den Feuchtegehalt (x) benutze ich zusammen mit der Temperatur durch Vergleich Aussen-Innen zur Lüftungsempfehlung.

                                          ! // Raumlüftung ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! var tiid = getIdByName(raum + ".Temperatur"); var taid = getIdByName("Aussen.Temperatur"); var xiid = getIdByName(raum + ".Feuchtegehalt"); var xaid = getIdByName("Aussen.Feuchtegehalt"); var lid = getIdByName(raum + ".Lueften"); ! var ti = getState(tiid).val; // Raumtemperatur in °C var ta = getState(taid).val; // Aussentemperatur in °C var xi = getState(xiid).val; // Raumfeuchtegehalt in g/kg var xa = getState(xaid).val; // Aussenfeuchtegehalt in g/kg ! // Lüftung steuern mit 0,3 g/kg und 0,5 K Hysterese function lueften() { if (xa <= (xi - 0.4) && ta <= (ti - 0.6) && ti >= 22.0) setState(lid, true); else if (xa >= (xi - 0.1) || ta >= (ti - 0.1) || ti <= 21.5) setState(lid, false); } ! lueften(); // Script start ! on(xiid, function (dp) { xi = dp.state.val; lueften(); }); ! on(xaid, function (dp) { xa = dp.state.val; lueften(); }); ! on(tiid, function (dp) { ti = dp.state.val; lueften(); }); ! on(taid, function (dp) { ta = dp.state.val; lueften(); }); !

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          455

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          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