Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Javascript Adapter 2.03, Feedback

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript Adapter 2.03, Feedback

    This topic has been deleted. Only users with topic management privileges can see it.
    • Lenny.CB
      Lenny.CB Most Active last edited by

      @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 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @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 Reply Last reply Reply Quote 0
        • Lenny.CB
          Lenny.CB Most Active last edited by

          @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 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @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 Reply Last reply Reply Quote 0
            • M
              mctom last edited by

              Ich habe ein ähnliches Problem:

              filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~

              Ich bekomme das WOL-Synology Script einfach nicht gelöscht.

              Gibt es hier einen Tipp ?

              1 Reply Last reply Reply Quote 0
              • Lenny.CB
                Lenny.CB Most Active last edited by

                @Bluefox:

                Gehe zur Objektlasche, schalte Expert Mode an. Was siehst du unter "scrtip.js.*" ? `
                sowas?

                mir ist aber grad noch etwas aufgefallen.

                Habe meinLOWBAT-Script mal wieder angelegt, dann war der Fehler aus dem log weg.

                Lösche ich das LOWBAT-Script wieder ist der Fehler wieder da.

                Mich verwirrt nur im LOG das Script "Skript1" was ich anfangs mal angelegt habe…

                Meine Vermutung ist, der Fehler tritt auf wenn die JavaScript-Instance läuft aber keine Scripte vorhanden sind die ausgeführt werden können.
                983_fehler_javascript_reiter_scripte2.jpg

                1 Reply Last reply Reply Quote 0
                • Lenny.CB
                  Lenny.CB Most Active last edited by

                  @mctom:

                  Ich habe ein ähnliches Problem:

                  filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~

                  Ich bekomme das WOL-Synology Script einfach nicht gelöscht.

                  Gibt es hier einen Tipp ? `

                  probier mal den Workaround von looxer01

                  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 Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    @mctom:

                    Ich habe ein ähnliches Problem:

                    filename="2016-03-15%2017_26_31-ioBroker.admin.png" index="0">~~

                    Ich bekomme das WOL-Synology Script einfach nicht gelöscht.

                    Gibt es hier einen Tipp ? `
                    Entwider ist da in der Konsole ein Fehler (muss ich sehen) oder es wird mit F5 alles gut.

                    1 Reply Last reply Reply Quote 0
                    • M
                      mctom last edited by

                      Auch mit F5 bekomm ich die Seite nicht angepasst. Und den Workaround kann ich nicht testen, da ich hier keinen löschen Button habe.

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

                        @mctom:

                        Auch mit F5 bekomm ich die Seite nicht angepasst. Und den Workaround kann ich nicht testen, da ich hier keinen löschen Button habe. `
                        Bitte in Objektlasche "Expert mode" einschalten.
                        48_2016-03-15_20_07_05-iobroker.admin.png
                        Was sieht man da?

                        1 Reply Last reply Reply Quote 0
                        • M
                          mctom last edited by

                          Ich bekomme da nichts.

                          Es gibt bei mir kein script.js
                          394_2016-03-15_20_45_20-iobroker.admin.png

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

                            @mctom:

                            Ich bekomme da nichts.

                            Es gibt bei mir kein script.js
                            filename="2016-03-15 20_45_20-ioBroker.admin.png" index="0">~~ `
                            Du hast filter "state"

                            1 Reply Last reply Reply Quote 0
                            • blauholsten
                              blauholsten Developer last edited by

                              @Bluefox:

                              @mctom:

                              Ich bekomme da nichts.

                              Es gibt bei mir kein script.js
                              filename="2016-03-15 20_45_20-ioBroker.admin.png" index="0">~~ Du hast filter "state"
                              Weltklasse :!: 😄 …das ist mir auch schon mehrfach passiert mit dem Filter :evil:

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

                                @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 (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 tanz = t.toFixed(1) + "°C"; dp = dp.toFixed(1) + "°C"; var rhanz = rh.toFixed(0) + " %"; x = x.toFixed(2) + " g/kg"; var anz = ''; anz = anz + ' ! | Temper. | rel.F. | Feuchtegeh. | Taupunkt | Enthalpie | | ' + tanz + ' | ' + rhanz + ' | ' + x + ' | ' + dp + ' | ' + 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(); }); ! `

                                Hallo

                                ich habe ein wenig Probleme mit dem node Modul dewpoint.

                                Da ich das Raumnamenkonzept von paul53 noch nicht so ganz durchblickt habe, habe ich bei den getState Abfragen im oben genanntne Script meine konkrete Geräte ID eingefügt.

                                Soweit OK.

                                Führe ich das Script aber aus, erscheint folgender Fehler:

                                ` > 6:17:33.102 [error] javascript.0 script.js.common.entfeuchtung.Skript1: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/dewpoint' at script.js.common.entfeuchtung.Skript1:23:11

                                16:17:33.102 [error] javascript.0 script.js.common.entfeuchtung.Skript1: TypeError: DP is not a function at script.js.common.entfeuchtung.Skript1:26:11 `

                                Das bezieht sich im Code auf

                                var  DP = require('dewpoint');
                                
                                // 70 m über NN
                                var xdp = new DP(70); 
                                

                                Der node-red Adapter ist installiert und aktiv. Das Modul dewpoint ist im Verzeichnis /opt/iobroker/node_modules/iobroker.javascript/node_modules/dewpoint nicht zu sehen.

                                Was ist das Problem?

                                paul53,

                                ich habe ein wenig Probleme mit den Raumnamenkonzept.

                                Irgendwie verstehe ich nicht, wie er dann zB an den Homematic Temperatursensorsensor im Keller zugreifen kann.

                                btw., wofür steht "WT" bei zb "WT-Temperatur"?

                                Vielen Dank!

                                edit

                                Habe jetzt manuell das Modul dewpoint von dort https://www.npmjs.com/package/dewpoint heruntergeladen und in das erwartete Verzeichnis /opt/iobroker/node_modules/iobroker.javascript/node_modules/dewpoint kopiert.

                                Jetzt kommt oben genannter Fehler zwar nicht mehr, dafür ein anderer:

                                > TypeError: t.toFixed is not a function at anzeige (script.js.common.entfeuchtung.Skript1:39:18) at klima (script.js.common.entfeuchtung.Skript1:50:4) at Object. (script.js.common.entfeuchtung.Skript1:58:4) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1206:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:541:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2455:45) at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2449:28) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:537:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:215:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1969:80)

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

                                  @Solear:

                                  Führe ich das Script aber aus, erscheint folgender Fehler: `
                                  Das npm-Modul "dewpoint" muss für die JS-Instanz installiert sein. Das macht man in der Konfiguration der JS-Instanz unter "Zusätzliche NPM-Module":
                                  493_js-config.jpg
                                  @Solear:

                                  Irgendwie verstehe ich nicht, wie er dann zB an den Homematic Temperatursensorsensor im Keller zugreifen kann.

                                  btw., wofür steht "WT" bei zb "WT-Temperatur"? `
                                  Damit sich die Namen zwischen Hardware-Datenpunkt (ohne Offsetkorrektur) und Software-Datenpunkt (mit Offsetkorrektur) unterscheiden, nenne ich die HM-Datenpunkte "Raum.WT-Temperatur", wobei WT für Wandthermostat steht. Der korrigierte Temperaturwert hat den Namen "Raum.Temperatur". Im Keller würden der Temperaturwert "Keller.WT-Temperatur" oder "Keller.Sensor-Temperatur" heißen und der korrigierte JS-Datenpunkt dann "Keller.Temperatur".
                                  493_objekt-namen.jpg

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

                                    Damit das auch mit den Script-Gruppen klappt, ist es entsprechend strukturiert:
                                    493_skript_gruppen.jpg

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

                                      Vielen Dank, paul,

                                      ich probiere das mal aus. Mit devpoint hat geklappt.

                                      Ich werde das aber wohl vereinfachen und nur die absolute Luftfeuchte ermitteln (sonst muss ich meine Systematik der Benennung neu ordnen und das will ich eigentlich nicht) und in eine Variable schreiben und diese anzeigen (für VIS und für ein 2. Programm welches meine Kellerfenster öffnet/schließt). Da ist hier im Thread ja auch eine schöne Anregung von mir.

                                      Mal sehen ob ich das hinbekomme. Ich berichte 🙂

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

                                        paul53,

                                        ich habe das jetzt halbwegs hinbekommen, und lasse mir die absolute Feuchte ausgeben.

                                        Jedoch kommt dort ein anderer Wert heraus als ihn mir CUxD liefert.

                                        Keller rel Feuchte: 64 %

                                        Keller Temperatur: 15,80 °C

                                        ****Ergebnis:

                                        CUxD: 8,62 g/m³

                                        Script: 7,17 g/m³****

                                        Das ist schon eine erhebliche Differenz.

                                        Liegt das an meiner umprogrammierten Anzeige?

                                        Ich habe Dein Script erweitert um:

                                        createState('Keller.Temperatur', 0);
                                        createState('Keller.rel_Feuchte', 0);
                                        createState('Keller.Feuchtegehalt', 0);
                                        createState('Keller.Taupunkt', 0);
                                        createState('Keller.Klima', 0);
                                        

                                        und die var ersetzt mit

                                        var tsid = "hm-rpc.0.LEQ1082995.1.TEMPERATURE"/*Keller.WT-Temperatur*/;
                                        var hsid = "hm-rpc.0.LEQ1082995.1.HUMIDITY"/*Keller.WT-rel.Feuchte*/;
                                        var tid = "Keller.Temperatur";
                                        var rhid = "Keller.rel_Feuchte"
                                        var xid = "Keller.Feuchtegehalt";
                                        var dpid = "Keller.Taupunkt";
                                        var aid = "Keller.Klima";
                                        

                                        Also sozusagen meine Fühler direkt als Gerät eingebunden.

                                        Dann noch die korrigierte Temperatur und relFeuchtigkeit angezeigt.

                                        Hier der gesamte Code

                                        ! ````
                                        // 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];
                                        createState('Keller.Temperatur', 0);
                                        createState('Keller.rel_Feuchte', 0);
                                        createState('Keller.Feuchtegehalt', 0);
                                        createState('Keller.Taupunkt', 0);
                                        createState('Keller.Klima', 0);
                                        ! // Offsets
                                        var toffset = 0.0; // in K
                                        var rhoffset = 0; // in %
                                        ! var tsid = "hm-rpc.0.LEQ1082995.1.TEMPERATURE"/Keller.WT-Temperatur/;
                                        var hsid = "hm-rpc.0.LEQ1082995.1.HUMIDITY"/Keller.WT-rel.Feuchte/;
                                        var tid = "Keller.Temperatur";
                                        var rhid = "Keller.rel_Feuchte"
                                        var xid = "Keller.Feuchtegehalt";
                                        var dpid = "Keller.Taupunkt";
                                        var aid = "Keller.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 tanz = t.toFixed(1) + "°C";
                                        dp = dp.toFixed(1) + "°C";
                                        var rhanz = rh.toFixed(0) + " %";
                                        x = x.toFixed(2) + " g/kg";
                                        var anz = '';
                                        anz = anz + '
                                        ! | Temper. | rel.F. | Feuchtegeh. | Taupunkt | Enthalpie |
                                        | ' + tanz + ' | ' + rhanz + ' | ' + x + ' | ' + dp + ' | ' + h + ' |
                                        ! ';
                                        setState(aid, anz);
                                        setState(tid, t);
                                        setState(rhid, rh);
                                        }
                                        ! 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();
                                        });

                                        
                                        Nicht schön, sondern nur pragmatisch versucht umzusetzen.
                                        
                                        Aber wo kommt die Differenz zum CUxD - Wert her?
                                        
                                        Offset-Werte bei allen Einstellungen auf Null gestellt. Die NN-Höhe habe ich auch mal von 70 auf 0 gestellt, aber die daraus folgende Änderung ist ja nur minimal.
                                        
                                        Mir ist klar, dass die errechneten Werte zum abs. Feuchte alle nur Näherungswerte sind, aber der Unterschied ist schon heftig (ca 1,5 g/m³). Wo ist mein (Denk-)Fehler?
                                        
                                        Vielen Dank!
                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Solear last edited by

                                          Verwechselst du vielleicht gerade g/m³ und g/kg? 8-)

                                          Ging mir genauso…in CUxD kannst du die Einheit anpassen, die angezeigt werden soll. g/kg ist richtig.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          781
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

                                          11
                                          42
                                          9031
                                          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