iSpindel Kalibrierung

Antworten
jobrew
Neuling
Neuling
Beiträge: 3
Registriert: Mittwoch 22. August 2018, 16:28

iSpindel Kalibrierung

#1

Beitrag von jobrew »

Hallo,
ich habe mir auch eine iSpindel gebaut, bin von der Idee und der Umsetzung sehr begeistert,
und möchte noch 2 weitere Spindeln verwenden.
Leider komme ich aber mit der Kalibrierung nicht klar !

Ich habe die für meine Messwerte erhaltene Platoformel aus der Excelliste in die Spindelkonfiguration unter "Polynominal" rein kopiert.
Die Werte für "Gravity" in der Info stimmen dann ziemlich gut mit meinen Werten von der Glasspindel als auch mit dem Exceldiagramm überein.

Scheinbar ist Gravity der Platowert ! oder ?

Ich sende die Werte zu meinem Fhem-Server. Auch da habe ich die Platoformel hinterlegt.
Die Spindel sendet außer Batterie,Neigung und Temperatur noch 2 Werte die ich nicht kenne.
Der Platowert der angezeigt wird hat keinen Bezug zum realen Wert.
Die Temperaturkompensation erfolgt im Fhem. Muss ich da noch was ändern ?

Die Firmware die ich verwende ist 5.8.6
Was habe ich falsch verstanden oder falsch gemacht ?
Könnt Ihr mir da bitte weiterhelfen ?


Vielen Dank im Voraus
Jo
Benutzeravatar
igami
Posting Junior
Posting Junior
Beiträge: 76
Registriert: Mittwoch 21. Februar 2018, 05:34
Wohnort: Gütersloh

Re: iSpindel Kalibrierung

#2

Beitrag von igami »

Helfen kann ich leider nicht, aber wie sendest du die Daten an FHEM? Habe das bei mir auch eingerichtet, aber das geht ja soweit ich weiß nur mit einer FHEMWEB Instanz ohne csrf und login.
jobrew
Neuling
Neuling
Beiträge: 3
Registriert: Mittwoch 22. August 2018, 16:28

Re: iSpindel Kalibrierung

#3

Beitrag von jobrew »

Hallo Igami,

danke für die Antwort!
Ja das geht mit Fhemweb, wie in der Anleitung.
Leider hab ich das mit dem Token der ab neueren Fhemversionen verlangt wird nicht hingekriegt. Das verlangt wohl eine Änderung in der Firmware der Spindel.
Habe ich also ausgeschaltet.

Ich habe in der Zwischenzeit durch rumprobieren rausgekriegt dass der 4.Wert der aus der Spindel kommt, dem Platowert entspricht.

In Fhem wird der Platowert über den Winkel neu berechnet, deswegen muss man da auch nochmal die Excel-Formel hinterlegen, was ich anfangs übersehen hatte.
Das macht durchaus Sinn, da die Werte nachträglich leichter über Fhem korrigiert werden können. Bei Ubidots wird das auch gemacht wie ich gesehen habe.
Bei den temperaturkompensierten Werten bin ich mir noch nicht sicher ob die stimmen,
kann ich aber auch nicht ändern, dazu fehlt mir leider der mathematische Hintergrund.

Danke nochmal
Jo
Benutzeravatar
igami
Posting Junior
Posting Junior
Beiträge: 76
Registriert: Mittwoch 21. Februar 2018, 05:34
Wohnort: Gütersloh

Re: iSpindel Kalibrierung

#4

Beitrag von igami »

Ich muss doch irgendwann noch mal den iSpindel Server anschauen, das muss man doch auch direkt in FHEM implementieren können :D

Hier mal meine Raw definition, welche einzele Readings erzeugt und die Werte per MQTT an CraftBerrPi weiterleitet:

Code: Alles auswählen

defmod iSpindel000 dummy
attr iSpindel000 userReadings ChipID {(split(/[\s]+/, ReadingsVal($NAME, "state", "")))[4]},\
battery {(split(/[\s]+/, ReadingsVal($NAME, "state", "")))[2]},\
gravity {\
  my $value = (split(/[\s]+/, ReadingsVal($NAME, "state", "")))[3];;\
  fhem(\
    "set myBroker publish CraftBeerPi/iSpindel/gravity ".\
    $value\
  );;\
  return $value;;\
},\
temperature {\
  my $value = (split(/[\s]+/, ReadingsVal($NAME, "state", "")))[1];;\
  fhem(\
    "set myBroker publish CraftBeerPi/iSpindel/temperature ".\
    $value\
  );;\
  return $value;;\
},\
tilt {(split(/[\s]+/, ReadingsVal($NAME, "state", "")))[0]}
Alles in allem funktioniert es, aber ist meiner Meinung nach noch nicht wirklich schön.

Gravity Berechnung wollte ich auch noch in FHEM auslagern, ebenso wie die Temperaturkompensation. Vielleicht kommt ja noch ein Modul dabei raus :)
jobrew
Neuling
Neuling
Beiträge: 3
Registriert: Mittwoch 22. August 2018, 16:28

Re: iSpindel Kalibrierung

#5

Beitrag von jobrew »

Du könntest doch in fhem den folgenden Code dazwischen hängen bevor du die Werte an CraftbeerPi weiterschickst !?

###################################################################
# Extrakt abhängig von Temperatur und Neigung in Plato umrechnen !
###################################################################


sub CorrectPlato($$) #(P, T)
{
my $mPlato=shift;
my $Temp=shift;
my @k=(56.084, -0.17885, -0.13063);
if ($mPlato>=5) { @k=(69.685, -1.367, -0.10621);};
if ($mPlato>=10){ @k=(77.782, -1.7288, -0.10822);};
if ($mPlato>=15){ @k=(87.895, -2.3601, -0.10285);};
if ($mPlato>=20){ @k=(97.052, -2.7729, -0.10596);};

my $cPlato=$k[0]+$k[1]*$Temp+$k[2]*$Temp*$Temp;
return $mPlato-$cPlato/100;
}

sub CalcPlato($$) #(Angle, T)
{
my $tilt=shift;
my $Temp=shift;
# Get this from Excel Calibration at 20 Degrees
#my $mPlato=0.00438551*($tilt)*($tilt) + 0.13647658*($tilt) - 6.968821422;
my $mPlato=0.015623882*($tilt)*($tilt) - 0.950333569*($tilt) + 14.44858844;
return CorrectPlato($mPlato,$Temp);
}

Übrigens stimmen die temperaturkorrigierten Werte sehr genau.
Der der das gemacht hat, hat tolle Arbeit geleistet.
Antworten