NEWS
Drucksensor mit Tasmota abfragen ?
-
@Fraenki23 Hallo, ja das glaube ich auch. Hier mal meine Konfig.
Siehe Protocol.Aber das sieht doch schon besser aus, wenn schon mal positive Werte kommen.
Gruß UB -
@canim
Danke läuft jetzt, aber warum ?
Sind beim 1 + 1 Block die 1 sen Strings statt Number ? -
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
@canim
Danke läuft jetzt, aber warum ?
Sind beim 1 + 1 Block die 1 sen Strings statt Number ?also noch mal von vorne
im Mathe Block 1+1 sind es natürlich number.WertIn müsste auch Number sein, da du eine Konstante mit dem Wert vom Sonoff multiplizierst
Die Konstante ist eine Zahl, und der DP vom Sonoff ist auch vom Typ Number - hattest du ja das RAW gepostetWas ich immer noch nicht gesehen habe ist das RAW vom ADC_Bar - ist das ebenfalls Number?
Selbst wenn nicht, sollte das Skript laufen, gibt nur dann die von dir gepostete WARN aus.
-
Danke, Groschen ist gefallen.
War der Typ vor dem Bildschirm.
Hatte den Datenpunkt per Hand als Boolean falsch angelegt.
Dachte dann änderste einfach Type von Boolean nach Number im Raw.
Das war wohl ein Irrtum.
Kaum macht man das richtig geht das.
Danke noch einmal. -
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
Kaum macht man das richtig geht das.
und warum muss ich drei!!! mal nachfragen
-
@Bulli-Bultmann Danke auch von meiner Seite. Sieht doch einfach gut aus wenn man Werte sieht und mit denen arbeiten kann. Phuwo man alles Fehler machen kann-
Gruß Fränki -
zu viele Projekte, muss ruhiger werden.
Zum Abschluß, will auch nicht weiter stören,
Sensor am Wemos D1 mit Blockly dazu.
( Für Wemos D1 mit Spannungsteiler 220 K Ohm / 100 K Ohm intern ! )
LäuftBeispiele:
Im Datenpunkt A0 steht der Teiler von 0 bis 1024.Wenn im Datenpunkt eine 1 steht ,
dann wird gerechnet, 1 * 12988 / 1000000 = 0,012988
auf 2 Nachkommastellen ist dann 0,01 Bar.
Wenn im Datenpunkt eine 100 steht ,
dann wird gerechnet, 100 * 12988 / 1000000 = 1,2988
auf 2 Nachkommastellen ist dann 1,29 Bar.
Wenn im Datenpunkt eine 1024 steht ,
dann wird gerechnet, 1024 * 12988 / 1000000 = 13,299712
auf 2 Nachkommastellen ist dann 13,29 Bar. -
@Fraenki23 Gern geschehen.
Bis bald.
Gruß UB -
ich muss hier auch mal nachfragen.
Derzeit hab ich Probleme mit der Umrechnung.
Ich raffs irgendwie nicht.Ausgangslage:
Habe mir 2 dieser Sensoren eingebaut.
1 x 0,5mPa und
1 x 1.2mPaLt. Beschreibung hat der (wie im thread 1) 1.2 mPa die Werte
Ausgang von 0,5V bis 4,5 V entspricht 0 bis 12 BarDer andere:
Ausgang von 0,5V bis 4,5 V entspricht 0 bis 5 BarIch habe beide Sensoren ohne Widerstand eingebaut. Also der Analog Ausgang (gelbes Kabel) an jeweils einen Wemos D1 mini an A0.
Als Werte bekomme ich geliefert:
Sensor 1.2mPa: Wert=309
Sensor 0.5mPa: Wert=558Diese Werte erscheinen nun erst einmal logisch (Wert 0.5 ist höher als 1.2 Sensor).
Nur wie rechne ich diese nun um ?
Das Beispiel 1 Thread vorher funktioniert nicht (oder ich verstehe es nicht).Aber auch mit diesem Beispiel (bei analoger Anwendung):
https://www.letscontrolit.com/wiki/index.php?title=Analog_Pressure_sensor
komme ich nicht klar.
Es kommen da viel zu hohe Werte raus.
Richtig wäre (lt. alter analoger Anzeige bei der Heizung) ca. 1,8 Bar.Kann mir mal jemand auf die Sprünge helfen.
Die Umrechnung ist ein greul; aber bestimmt wieder Error 50 !mfg
Dieter -
@bahnuhr Hey hier ist mein Lösung/ Ansatz
Ich hab das ganze so gemacht! Vielleicht hilf dir das!
Wemos D1 mini mit diesen Drucksensor. Habe bewusst einen größen Sensor genommen.100 Psi = ca 6,89 Bar warum erkläre ich gleich!.Meine Heizung hat einen max Druck von 4 Bar. Laut Datenblatt sollte an den Sensor 5 V liegen,da aber der Analog Einang nur max 3.3 V vertragen kann hab ich deshalb den größeren genommen Sprich. 4,5 V= 6,89 Bar und ich max 4 Bar brauche , entspricht also einen Max Ausgangsspannung am Analogen Eingang ca 3,3V = 5,05 Bar. Damit ich mir den Analogen Eingang ohne Widerstand kaputt mache :). Du Kannst natürlich einen kleineren Sensor nehmen, nur ich wollte es ohne Widerstand nicht Riskieren. Aber!!! , der Sensor funktioniert auch mit 3,3 V !, und somit hätte ich mir den größeren Drucksensor auch sparen können, probieren statt studieren :D, naja egal. Nun zur Rechnung!
Auf mein Wemos läuft Tasmota, habe den Sensor angeschlossen und er zeigte mir ohne einen Druck den Wert "114" an. Ich habe dieses als Korrektur in BLockly subtrahiert damit ich den Wert 0 habe.
Um das ganze zu verstehen hab ich mir das ganze erstmal schriftlicht runtergerechnet also:
liegen 3.3 V an dem Analogen Eingang bekommst du einen Wert von 1024 angezeigt.
3,3V:1024 = 0,0032 Sprich 0,0032V sind 1 Digi Analogwert.
3,3V= 6,89Bar das teilen wir durch sich selbst. einmal 1 V= 2,087 Bar .
So 1 Digit sind 0,0032V und das teilen wir durch 1 V sind ca 312,5 Digits hab das einfach abgerundent auf 310.
Entspricht das ganze 1 Digit=0,0032V=0,0067 Bar und diesen Wert einfach mit deinen Angezeigten Wert von Tasmota ( Drucksensor) Multiplizieren. wobei ich den von 0,0067 auf ca 0,0082 Korrigiert habe ( Toleranz). habe mir das System so gebastellt, passt soweit. Habe jetzt keinen geeichten Manometer am Kessel,aber der Wert passt sowie es angezeigt wird.
Hier ist der Blocklyscript
Die Werte,werden an 2 verschiedenen Datenpunkten geschrieben.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</variable> <variable id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</variable> <variable id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</variable> </variables> <block type="on" id="X;}AU{oP.;@5vkIR0nQ[" x="138" y="138"> <field name="OID">sonoff.0.Heizung-Drucksensor.ANALOG_A0</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="VA.lTh9pC!([~uGlY5]-"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> <value name="VALUE"> <block type="math_arithmetic" id="Y4S#:=V2mha,K56bN.r+"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="i=73j1xn*GCDscbk~$5Z"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/=Sb!!b]Qr#E-/j6,_^r"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Heizung-Drucksensor.ANALOG_A0</field> </block> </value> <value name="B"> <shadow type="math_number" id="rVr?*$}MjY?/6O9!PCn%"> <field name="NUM">114</field> </shadow> <block type="math_number" id=":yU|UQ|vWl-BQ[:s)*7p"> <field name="NUM">114</field> </block> </value> </block> </value> <next> <block type="variables_set" id="J#|e8|X*Hp:{W:|J:8e("> <field name="VAR" id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</field> <value name="VALUE"> <block type="math_arithmetic" id="nh~RxHD$f6FagDb_d4-B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="nLsK:IZ)0Rx).Tg$q,0}"> <field name="NUM">1</field> </shadow> <block type="variables_get" id=")4XcnR.~95$?cia@K~DK"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> </block> </value> <value name="B"> <shadow type="math_number" id="rJqxd@#76P~A9mFhSXr9"> <field name="NUM">32</field> </shadow> <block type="math_number" id="5IbFk[w?SXa[PfAE7/S$"> <field name="NUM">0.004</field> </block> </value> </block> </value> <next> <block type="variables_set" id="SS:Ys[fGR]$PAYH(@s%d"> <field name="VAR" id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</field> <value name="VALUE"> <block type="math_rndfixed" id="c64Q)%T~B7FW4Q:@=#9^"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="jz1ZKogdX%om{D!.^2}N"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="7RT3zXBy2%q0FXoj_kKO"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id=";ma10FV-x7/%Hj2pYq)n"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="J1XJ83QfAj)3lPkX8swd"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> </block> </value> <value name="B"> <shadow type="math_number" id="]vm2GIFm2YT.,iqu:qOZ"> <field name="NUM">1</field> </shadow> <block type="math_number" id="s]?~bd6*[BH(Vl~3Osw1"> <field name="NUM">0.0082</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="!BRWrov~7D^$r.~}YO)n"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Druckanzeige</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="vh]l3AF@nU`z}|ihIFXg"> <field name="VAR" id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</field> </block> </value> <next> <block type="control" id="FSIuu@TjnmHRgVz%31)-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Druckanzeige-Volt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",0#P.WuJ3a^@9.Fv]2`Y"> <field name="VAR" id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on" id="/t!hkN_I,gVA/$:rlX6("> <field name="OID">javascript.0.Druckanzeige</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="I`#7^OVnV`_{Z8wJ%$2a"> <value name="IF0"> <block type="logic_compare" id="b|XCdYFn9mZzkIsu{^q`"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="BbT|b)x!@7P};h10Yyws"> <field name="ATTR">val</field> <field name="OID">javascript.0.Druckanzeige</field> </block> </value> <value name="B"> <block type="math_number" id="}90LO~mJBH6^**YhK?JF"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="e%Nj]-b!.K,B045ShT(9"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="`ZGsxB`m^WK0O7NlAkVA"> <field name="TEXT">Hey! Bitte überprüfen den Druck der Heizungsanlage</field> </shadow> <block type="text_join" id="J-:klG}VIS03)t_7eJ}("> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="8iT+cR;nMf[dq`]`u+O@"> <field name="TEXT">Hey! Bitte überprüfen den Druck der Heizungsanlage. Der Aktuelle Druck beträgt</field> </block> </value> <value name="ADD1"> <block type="get_value" id="1w@lWr-O;xqe]E-(kI3y"> <field name="ATTR">val</field> <field name="OID">javascript.0.Druckanzeige</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>
Hier ist die Vis Vorlage ```
[{"tpl":"tplJqplotGauge","data":{"oid":"javascript.0.Druckanzeige","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","showTickLabels":true,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"min":"0","max":"4","padding":"","needleThickness":"9","needlePad":"0","hubRadius":"10","ringWidth":"8","shadowOffset":"19","shadowAlpha":"0.4","shadowDepth":"23","intervalInnerRadius":"360","intervalOuterRadius":"229","intervals":"1;3;4","intervalColors":"red;green;red","tickPadding":"0","ticks":"","label":"Heizungsdruck","title":"","ringColor":"#9d9f9f"},"style":{"left":"-44px","top":"-262px","width":"1010px","height":"794px","z-index":"1"},"widgetSet":"jqplot"}]``` code_text
Widget von Justgage
-
@canim
Danke für die Info.
Ich schau mir dies an.mfg
-
@bahnuhr wie gesagt meine Werte sind von einem Drucksensor von 100psi= 6,89 sowie 3.3V , wenn du das an 5v dran machst ändert sich ca 100 Digits an Analogwert sowi die Rechnung.
-
@canim sagte in Drucksensor mit Tasmota abfragen ?:
@bahnuhr wie gesagt meine Werte sind von einem Drucksensor von 100psi= 6,89 sowie 3.3V , wenn du das an 5v dran machst ändert sich ca 100 Digits an Analogwert sowi die Rechnung.
Hab versucht das nachzustellen; siehe Excel Screenshot oben.
Aber irgendwie ist mir dies zu hoch.Kannst du mir da mal helfen ?
Wie kommst du auf die 100 Digits mehr ?Wie gesagt; habe ja o.g. Link in der Excel angeglichen (dachte ich zumindest); aber die Werte die rauskommen sind zu hoch.
mfg
-
@bahnuhr ich hab mein Sensor angeschlossen, ohne auf dem Sensor druck drauf zugeben, da zeigte er mir schon den Wert 114 digits, der Sensor arbeitet ab 0,5v, deswegen korrigiere ich den Wert auf 0
-
@canim sagte in Drucksensor mit Tasmota abfragen ?:
deswegen korrigiere ich den Wert auf 0
Ich auch (siehe Excel Tabelle).
Trotzdem alles viel zu hoch.
-
@bahnuhr Hallo Dieter,
nimm mal zwei Wertepaare (Spannung/Druck am Manometer) und trage sie hier ein:
https://www.mathepower.com/geraden.php
Mal sehen was dann raus kommt
PS Mit wieviel Volt befeuerst du den Sensor?
-
@Homoran sagte in Drucksensor mit Tasmota abfragen ?:
PS Mit wieviel Volt befeuerst du den Sensor?
Sensor 1: 0,5 mPa an 5 V
Gelbes Kabel an A0 am Wemos d1 mini
Wemos d1 mini an 5V
Daten von 0,5 bis 4,5V entspricht 0 bis 5 BarSensor 2: 1,2 mPa an 5 V
Gelbes Kabel an A0 am Wemos d1 mini
Wemos d1 mini an 5V
Daten von 0,5 bis 4,5V entspricht 0 bis 12 Bar -
Sensor 2 mit 1,2 mPa hat diese Funktion:
-
@Homoran sagte in Drucksensor mit Tasmota abfragen ?:
nimm mal zwei Wertepaare (Spannung/Druck am Manometer) und trage sie hier ein:
versteh ich nicht was ich da eingeben soll.
Wenn du die Formel meinst, dann ist bei
Sensor 1 mit 0,5 mPa : Bar = (Volt Sensor - 0,5) x 1,25
Sensor 2 mit 1,2 mPa : Bar = (Volt Sensor - 0,5) x 3Problem hierbei ist, dass eben nicht Volt Sensor gemeldet wird sondern ein analoger Wert (wahrscheinlich von 0 bis 1024;
wobei wohl 1024 3,3V sein soll).Und hier hab ich hier und her gerechnet.
Klappt nicht.
(oder ich weiß nicht wie). -
Berechnung analog dem Link von oben:
Hierbei kommt aber 3,03 bar raus; und dies ist viel zu viel.