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.
    • paul53
      paul53 @Aphofis last edited by paul53

      @Aphofis sagte:

      Das Messgerät mist in µs/cm ich benötige ms/cm also durch 100

      Nein, durch 1000. Deshalb schrieb ich, dass der Wert viel zu klein ist.

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

        @paul53
        Wäre das so korekt ???

        // 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.Dichte';
        var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
        // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
        nameAlias = 'Dichte Meerwasser';
        desc = 'per Script erstellt';
        // typeAlias = 'boolean'; // oder 'number'
        read = "a + b * val"; // a und b durch Zahlen ersetzen !
        // write = "val ? true : true";
        role = 'value';
        // min = 0; // nur Zahlen
        // max = 100; // nur Zahlen
        unit = 'g/ml'; // 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('Aqua_Control.0.Sensoren.Dichte_kalibrierung' + idAlias, idOrigin, idRead);
        

        Das sind nun mal die Werte die ich habe! Anders kann das Messgerät nicht messen und ich brauche ms/cm um es in meine App zu tippseln damit ich weiss wie viel salz ich in mein Becken bringen muss oder wie viel Meerwasser ich durch Osmose Wasser ersetzen muss.

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

          @Aphofis sagte in Dichte sensor kalibrierung:

          Wäre das so korekt ???

          Nein. Das Ergebnis soll die Leitfähigkeit in mS/cm sein.

          // 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 = 'Leitfähigkeit 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('Aqua_Control.0.Sensoren.Dichte_kalibrierung' + idAlias, idOrigin, idRead);
          
          Aphofis 1 Reply Last reply Reply Quote 0
          • Aphofis
            Aphofis @paul53 last edited by

            @paul53
            OK und als Javascript in Blockly erstellen?
            Die Datenpunkte sind so OK ?

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

              @Aphofis Nach deiner Tabelle wird die Leitfähigkeit in mc/cm angegeben. Eine mir gar nicht geläufige Einheit.
              Habe daraufhin mal gesucht und folgendes gefunden:

              Der Ausdruck EC wird als allgemeine Bezeichnung für die elektrische Leitfähigkeit benutzt (Electrical Conductivity = EC). Bei manchen Leitfähigkeitsmessgeräten wird die tatsächliche Leitfähigkeit in "EC" Einheiten angegeben, 1 EC ist hierbei gleichbedeutend mit milliS/cm.

              demnach wären milliCondukivitäten gleichbedeutend mit µS.

              Bei 29°C und einer Ziel-Salinität im grünen Bereich müsste die Leitfähigkeit laut Tabelle (extrapoliert) irgendwo bei 59 sein. Bei deinen 45.41 tun mir deine Fische richtig leid. Die sind kurz vor einem osmotischen Schock.
              Das Wasser entzieht den Fischen dann die Eelktrolyte, die Kiemen kommen da kaum noch gegen an

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

                @Homoran
                Also zum Verständnis.
                Bitte genau lesen!!!
                Ich habe ein Messgerät, was eigentlich für Pflanzen ist und den Leitwert des in der Erde befindlichen Wassers ist!!!
                Dieser Wert soll kalibriert werden zu dem normalen Wert der in meinem Becken herscht.
                Gemessen bei 29,5 Grad habe ich einen Leitwert von 57,52 ms/cm einen PSU von 34,8 einne Dichte von 1,0217 also ein sehr sehr guter Wert bei der Temperatur!!!! Wie gesagt ich habe einen Wert per Spindel gemessen um den Wert den das Messgeät ermittelt umzurechnen in der eigentlichen Leitwert!!!!

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

                  @Aphofis sagte in Dichte sensor kalibrierung:

                  Bitte genau lesen!!!
                  Ich habe ein Messgerät, was eigentlich für Pflanzen ist und den Leitwert des in der Erde befindlichen Wassers ist!!!
                  Dieser Wert soll kalibriert werden zu dem normalen Wert der in meinem Becken herscht.

                  Wo stehen diese Informationen denn, dass man sie hätte lesen können?

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

                    @Homoran aller erster post:

                    gemessene Werte:
                    Spindel 52,73 ms/cm
                    Dichte messgerät 4541 us/cm bei 29,5 Grad gemessen.
                    es fehlen um die 300 Gramm Salz was bei einer Tonne Wasser ein leicht zu dünner wert ist 4541 ist die messung vom messgerät was für pflanzen ist dieInfo habe ich vllt verschluckt!😧 😲

                    Homoran paul53 2 Replies Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Aphofis last edited by

                      @Aphofis sagte in Dichte sensor kalibrierung:

                      aller erster post:

                      da lese ich nichts von:

                      @Aphofis sagte in Dichte sensor kalibrierung:

                      Ich habe ein Messgerät, was eigentlich für Pflanzen ist und den Leitwert des in der Erde befindlichen Wassers ist!!!
                      Dieser Wert soll kalibriert werden zu dem normalen Wert der in meinem Becken herscht.

                      Aber jetzt weiß ich es ja

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

                        @Homoran sagte in Dichte sensor kalibrierung:

                        @Aphofis sagte in Dichte sensor kalibrierung:

                        aller erster post:

                        da lese ich nichts von:

                        @Aphofis sagte in Dichte sensor kalibrierung:

                        Ich habe ein Messgerät, was eigentlich für Pflanzen ist und den Leitwert des in der Erde befindlichen Wassers ist!!!
                        Dieser Wert soll kalibriert werden zu dem normalen Wert der in meinem Becken herscht.

                        Aber jetzt weiß ich es ja

                        Danje für dein Verständnis, das ich ne Info vergessen hatte.

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

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

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

                            @Aphofis sagte:

                            Die Temperatur schwankt zwischen 25-30 Grad

                            Dann sollte eine lineare Interpolation ausreichend genau sein.

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

                              @Aphofis sagte in Dichte sensor kalibrierung:

                              Danje für dein Verständnis, das ich ne Info vergessen hatte.

                              es geht um Verständnis deines ganzen Vorhabens, dass ohne diese Info nicht möglich war.
                              Auch @paul53 hatte anscheinend Probleme mit dem Wert:

                              @paul53 sagte in Dichte sensor kalibrierung:

                              Dieser Wert ist viel zu klein !

                              Ob es jedoch sinnvoll ist diesen Sensor für Bodenleitfähigkeit im Aquarium (dauerhaft unter Wasser??) zu nutzen und über eine einfache Formel zu "kalibrieren" ist eine andere Frage

                              1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            564
                                            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