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.8k

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

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

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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #33

    @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 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      mctom
      schrieb am zuletzt editiert von
      #34

      Ich bekomme da nichts.

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

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

        @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 Antwort Letzte Antwort
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #36

          @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 :!: :D …das ist mir auch schon mehrfach passiert mit dem Filter :evil:

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Solear
            schrieb am zuletzt editiert von
            #37

            @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)

            iobroker als LXC unter Proxmox

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #38

              @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

              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
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #39

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

                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
                • S Offline
                  S Offline
                  Solear
                  schrieb am zuletzt editiert von
                  #40

                  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 :-)

                  iobroker als LXC unter Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Solear
                    schrieb am zuletzt editiert von
                    #41

                    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!

                    iobroker als LXC unter Proxmox

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Solear
                      schrieb am zuletzt editiert von
                      #42

                      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.

                      iobroker als LXC unter Proxmox

                      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

                      866

                      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