NEWS
Dichte sensor kalibrierung
-
@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
-
@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 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.
-
@paul53
Der Alias Datenpunkt wird inAqua_Control.0.Sensoren
nicht erstellt, woran kann das liegen ?
Vor allem wo ist jetzt das Script hin !? -
@Aphofis sagte:
wird in
Aqua_Control.0.Sensoren
nihct erstelltDer Alias-Datenpunkt ist unter "alias.0" zu finden. Der js-controller kann ihn nur dort verarbeiten.
ID: "alias.0.Aquarium.Wasser.Leitfaehigkeit" -
@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 OK I try
Kann man den Wert auch auf zwei nachkomma stellen kürzen?
-
@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";
-
-
@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 !? -
@Aphofis sagte:
in Zeile 14 ?
Ja, wenn der Datenpunkt noch nicht erstellt wurde. Sonst in die RAW-Ansicht und korrigieren.
-
@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
-
@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 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
-
@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.
-
@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). -
@paul53
wie füge ich dannSalzgehalt = 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 -
@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(); });