Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Dichte sensor kalibrierung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Dichte sensor kalibrierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @paul53 last edited by Homoran

      @paul53 sagte in Dichte sensor kalibrierung:

      @Aphofis sagte:

      Dichte messgerät 4541 us/cm bei 29,5 Grad gemessen.

      Wenn es 4541 µS/cm (=4,541 mS/cm) im Meerwasser anzeigt: Ist es dann überhaupt für Meerwasser geeignet ? Der Wert ist um ca. den Faktor 12 zu klein !

      ich nahm bei meiner ganzen Argumentation an, dass das von dem Faktor 100 statt 1000 kommt

      Aphofis 1 Reply Last reply Reply Quote 0
      • Aphofis
        Aphofis @Homoran last edited by

        @Homoran
        möglich ist es!
        Es ist ja nur zur allgemeinen Übersicht für mich einmal im Monat messe ich ja normal mit Spindel.
        Ich vertraue Technik auch nicht in allen Dingen.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Aphofis last edited by

          @Aphofis dann wird das hier wohl etwas oversized sein 😉

          Aphofis 1 Reply Last reply Reply Quote 0
          • Aphofis
            Aphofis @Homoran last edited by

            @Homoran finde ich nicht! muss jeder ja selbst wissen. nur richtig gute Leitwert Messgeräte kosten verdammt viel Geld und dieser Pflanzen Messwert Sensir ist für den Dauereinsatz in einer Pflanze geeignet. Ich hatte für das Messgerät ein gehäuse gedruckt und die Messtäbe müssen ja dauerhaft eingetaucht sein egal ob in der Erde oder im Becken und der obere Gehäuse teil ist in einer kleinen einhausung. Damit nicht all zu viel Luftfeuchtigkeit an die Elektronik kommt.

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

              @paul53
              Der Alias Datenpunkt wird in

              Aqua_Control.0.Sensoren
              

              nicht erstellt, woran kann das liegen ?
              Vor allem wo ist jetzt das Script hin !?

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

                @Aphofis sagte:

                wird in
                Aqua_Control.0.Sensoren
                nihct erstellt

                Der Alias-Datenpunkt ist unter "alias.0" zu finden. Der js-controller kann ihn nur dort verarbeiten.
                ID: "alias.0.Aquarium.Wasser.Leitfaehigkeit"

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

                  @paul53
                  Also so ?

                  // Original-Datenpunkt
                  const idOrigin = 'ble.0.c4:7c:8d:6b:b7:5a.fertility'; 
                  // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                  // Bei Nicht-Verwendung Leerstring '' zuweisen
                  const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status'/*Wohnen Licht Esstisch Status*/;
                   
                  // Alias-Datenpunkt
                  const idAlias = 'Aquarium.Wasser.Leitfaehigkeit';
                  var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                  // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                  nameAlias = 'Leitfaehigkeit Meerwasser';
                  desc = 'per Script erstellt';
                  // typeAlias = 'boolean'; // oder 'number'
                  read = "0.0116 * val"; // 
                  // write = "val ? true : true";
                  role = 'value';
                  // min = 0; // nur Zahlen
                  // max = 100; // nur Zahlen
                  unit = 'mS/cm'; // nur für Zahlen
                  // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                  // custom = []; // verhindert doppelte Ausführung von history, ...
                  // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                  // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                  
                  // Ab hier nichts ändern !!
                  function createAlias(idDst, idSrc, idRd) {
                     if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                     else {
                        var obj = {};
                        obj.type = 'state';
                        obj.common = getObject(idSrc).common;
                        obj.common.alias = {};
                        if(idRd) {
                            obj.common.alias.id = {};
                            obj.common.alias.id.read = idRd;
                            obj.common.alias.id.write = idSrc;
                            obj.common.read = true;
                        } else obj.common.alias.id = idSrc;
                        if(typeAlias) obj.common.type = typeAlias;
                        if(obj.common.read !== false && read) obj.common.alias.read = read;
                        if(obj.common.write !== false && write) obj.common.alias.write = write;
                        if(nameAlias) obj.common.name = nameAlias;
                        if(role) obj.common.role = role;
                        if(desc) obj.common.desc = desc;
                        if(min !== undefined) obj.common.min = min;
                        if(max !== undefined) obj.common.max = max;
                        if(unit) obj.common.unit = unit;
                        if(states) obj.common.states = states;
                        if(custom && obj.common.custom) obj.common.custom = custom;
                        obj.native = {};
                        setObject(idDst, obj);
                        if(raum && existsObject('enum.rooms.' + raum)) {
                           let obj = getObject('enum.rooms.' + raum)
                           obj.common.members.push(idDst);
                           setObject('enum.rooms.' + raum, obj);
                        }
                        if(gewerk && existsObject('enum.functions.' + gewerk)) {
                           let obj = getObject('enum.functions.' + gewerk)
                           obj.common.members.push(idDst);
                           setObject('enum.functions.' + gewerk, obj);
                        }
                     } 
                  }
                   
                  createAlias('alias.0.Aquarium.Wasser.Leitfaehigkeit' + idAlias, idOrigin, idRead);
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Aphofis last edited by

                    @Aphofis sagte:

                    Also so ?

                    Ja, das Script zum Erstellen des Alias einmal starten.

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

                      @paul53 OK I try

                      Kann man den Wert auch auf zwei nachkomma stellen kürzen?

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

                        @Aphofis sagte in Dichte sensor kalibrierung:

                        Kann man den Wert auch auf zwei nachkomma stellen kürzen?

                        Man kann.

                        read = "Math.round(1.16 * val) / 100";
                        
                        Aphofis 2 Replies Last reply Reply Quote 0
                        • Aphofis
                          Aphofis @paul53 last edited by

                          @paul53 sagte in Dichte sensor kalibrierung:

                          read = "Math.round(1.16 * val) / 100";

                          in Zeile 14 ?

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

                            @paul53
                            eigentlich braucht der Wert garnicht gegen die Temperatur gemessen werden, da das Messgerät das schon macht.
                            wie kann ich jetzt den wert kalibrieren
                            was wird aus der zahl zb 4433 mit dem faktor 1.16damit der wert bei 51,42 landet !?

                            paul53 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @Aphofis last edited by

                              @Aphofis sagte:

                              in Zeile 14 ?

                              Ja, wenn der Datenpunkt noch nicht erstellt wurde. Sonst in die RAW-Ansicht und korrigieren.

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

                                @Aphofis sagte:

                                was wird aus der zahl zb 4433 mit dem faktor 1.16damit der wert bei 51,42 landet !?

                                ?? 1,16 * 4433 / 100 = 51,42 mS/cm

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

                                  @paul53
                                  Das ist Top nur ich stehe gerade völlig auf dem Schlauch!
                                  wie kann man den Wert nun ermitteln, damit wenn ich den salzgehalt dann ausgeglichen habe per gemessener Spindel und dann auf den selben wert bekommen will!?
                                  vermutlich einfacher Dreisatz aber ich blicke gerade nicht durch

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

                                    @paul53 sagte in Dichte sensor kalibrierung:

                                    @Aphofis sagte:

                                    was wird aus der zahl zb 4433 mit dem faktor 1.16damit der wert bei 51,42 landet !?

                                    ?? 1,16 * 4433 / 100 = 51,42 mS/cm

                                    das habe ich mir so auch gedacht und gerechnet auf die selbe summe gekommen

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

                                      @Aphofis sagte:

                                      per gemessener Spindel und dann auf den selben wert bekommen will!?

                                      Berechne den Salzgehalt (eigener Datenpunkt) per Script. Korrigiere bei Abweichung den Faktor 1,16.

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

                                        @Aphofis sagte:

                                        eigentlich braucht der Wert garnicht gegen die Temperatur gemessen werden, da das Messgerät das schon macht.

                                        Ist es ein Leitfähigkeits-Messgerät und/oder ein Salzgehalt-Messgerät ?
                                        Wenn es nur die Leitfähigkeit misst, wird auch nur dieser Wert korrigiert. Für die Berechnung des Salzgehalts ist eine weitere Korrektur erforderlich (Script).

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

                                          @paul53
                                          wie füge ich dann

                                          Salzgehalt = 15.75 + 0.68 (LF - T)
                                          

                                          in das script ein!?
                                          Nein es mist die Leitfähigkeit, Temperatur, Lux und Feuchtigkeit es ist kein Salzwert Messgerät

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

                                            @Aphofis
                                            Erstelle ein neues Script und einen eigenen Datenpunkt für den Salzgehalt.

                                            // IDs anpassen !
                                            const idTemp = '...'; // Wassertemperatur
                                            const idSalz = '...';
                                            const idLeit = 'alias.0.Aquarium.Wasser.Leitfaehigkeit';
                                            
                                            var temp = getState(idTemp).val;
                                            var leit = getState(idLeit).val;
                                            
                                            function Salzgehalt() {
                                               setState(idSalz, 15.75 + 0.68 * (leit - temp), true);
                                            }
                                            
                                            Salzgehalt(); 
                                            on(idTemp, function(dp) {
                                               temp = dp.state.val;
                                               Salzgehalt();
                                            });
                                            on(idLeit, function(dp) {
                                               leit = dp.state.val;
                                               Salzgehalt();
                                            });
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            662
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            44
                                            1482
                                            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