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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Javascript Adapter 2.03, Feedback

NEWS

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

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

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

Javascript Adapter 2.03, Feedback

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
42 Beiträge 11 Kommentatoren 10.2k 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        steinwedel
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • andreA Offline
          andreA Offline
          andre
          Developer
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • blauholstenB Offline
              blauholstenB Offline
              blauholsten
              Developer
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • andreA Offline
                    andreA Offline
                    andre
                    Developer
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • ruhr70R Offline
                            ruhr70R Offline
                            ruhr70
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • Lenny.CBL Offline
                                Lenny.CBL Offline
                                Lenny.CB
                                Most Active
                                schrieb am zuletzt editiert von
                                #22

                                Gestern Abend ist mir was komisches passiert.

                                Wollte ein neues Script anlegen. Blöderweise habe ich eine Gruppe angelegt.

                                Naja, wieder gelöscht und das selbe Phänomen wie bei anderen - nix gelöscht… Workaround funktionierte.

                                Nun aber wirklich ein neues Script angelegt und etwas mit dem Code rumgespielt.

                                Dann Script wieder gelöscht --> Workaround...

                                Nun das Komische:

                                alle Scripte bis auf "common" und "global" sind weg (auch die Alten!), ABER das von mir gelöschte wird im Log weiterhin alle 5 Minuten als "gestartet" aufgeführt...

                                Meine 2 Fragen:

                                Wo sind meine ursprünglichen Scripte hin?

                                Warum wird ein gelöschtes Script gestartet?

                                Vielen Dank für eure Antworten!

                                1 Antwort Letzte Antwort
                                0
                                • BluefoxB Offline
                                  BluefoxB Offline
                                  Bluefox
                                  schrieb am zuletzt editiert von
                                  #23

                                  @Lenny.CB:

                                  Gestern Abend ist mir was komisches passiert.

                                  Wollte ein neues Script anlegen. Blöderweise habe ich eine Gruppe angelegt.

                                  Naja, wieder gelöscht und das selbe Phänomen wie bei anderen - nix gelöscht… Workaround funktionierte.

                                  Nun aber wirklich ein neues Script angelegt und etwas mit dem Code rumgespielt.

                                  Dann Script wieder gelöscht --> Workaround...

                                  Nun das Komische:

                                  alle Scripte bis auf "common" und "global" sind weg (auch die Alten!), ABER das von mir gelöschte wird im Log weiterhin alle 5 Minuten als "gestartet" aufgeführt...

                                  Meine 2 Fragen:

                                  Wo sind meine ursprünglichen Scripte hin?

                                  Warum wird ein gelöschtes Script gestartet?

                                  Vielen Dank für eure Antworten! `
                                  Hoch Wahrscheinlich sind deine Scripte weg :?

                                  Ich werde aber die Prüfung, ob Name frei ist, einbauen.

                                  1 Antwort Letzte Antwort
                                  0
                                  • Lenny.CBL Offline
                                    Lenny.CBL Offline
                                    Lenny.CB
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #24

                                    @Bluefox:

                                    Hoch Wahrscheinlich sind deine Scripte weg :? `
                                    Damit habe ich schon gerechnet… leider... :oops:

                                    aber warum läuft ein Script was bereits gelöscht und auch in der Übersicht nicht mehr zu sehen ist?

                                    1 Antwort Letzte Antwort
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      schrieb am zuletzt editiert von
                                      #25

                                      @Lenny.CB:

                                      aber warum läuft ein Script was bereits gelöscht und auch in der Übersicht nicht mehr zu sehen ist? `
                                      Fehler… :(

                                      Starte instance neu.

                                      1 Antwort Letzte Antwort
                                      0
                                      • Lenny.CBL Offline
                                        Lenny.CBL Offline
                                        Lenny.CB
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #26

                                        @Bluefox:

                                        Fehler… :(

                                        Starte instance neu. `

                                        führt immer noch zum Fehler…

                                        Selbst dann noch wenn ich die Instance (javascript.0, habe nur die eine) lösche und neu anlege...

                                        Neustart des Banana hat auch nichts gebracht...
                                        983_fehler_javascript_reiter_scripte.jpg
                                        983_fehler_javascript_log.jpg

                                        1 Antwort Letzte Antwort
                                        0
                                        • BluefoxB Offline
                                          BluefoxB Offline
                                          Bluefox
                                          schrieb am zuletzt editiert von
                                          #27

                                          @Lenny.CB:

                                          @Bluefox:

                                          Fehler… :(

                                          Starte instance neu. `

                                          führt immer noch zum Fehler…

                                          Selbst dann noch wenn ich die Instance (javascript.0, habe nur die eine) lösche und neu anlege...

                                          Neustart des Banana hat auch nichts gebracht... `
                                          Gehe zur Objektlasche, schalte Expert Mode an. Was siehst du unter "scrtip.js.*" ?

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

                                          413

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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