NEWS
Drucksensor mit Tasmota abfragen ?
-
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
warum bekomme ich im Log die Warnung Wrong Type Number ?
die screenshots sind leider schlecht zu lesen
kann es sein, dass der sonoff Strings sendet und du erst in number wandeln müsstest?
oder ist der Typ von dem Datenpunkt falsch?? -
@Bulli-Bultmann Ichhabe doch tatsächlich den A0 verwechselt. Nun habe ich den unteren Wert mit 151 kalibriert.
Bei der Übergabe mit Mqtt bekomme ich beim Iobroker keine Zahlen geliefert.
Hab bestimmt eine Bock geschossen beim Konfigurieren der Mqtt
Gruß und Dank Fränki -
sehe am Eingang Sonoff Adapter kein Fehler.
Setzte mal Debug im Blockly. -
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
sehe am Eingang Sonoff Adapter kein Fehler.
????
Wie sieht denn der angemeckerte Datenpunkt ADC_Bar aus?
-
Wird sauber in den Datenpunkt geschrieben.
Debug auch ok.
Verstehe ich nicht. -
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
Wird sauber in den Datenpunkt geschrieben.
macht es auch, aber da steht ja dass es irgendwann nicht mehr funktionieren wird, wenn die Typen nicht zueinander passen.
Was steht denn da im RAW?
-
@Homoran
Raw Post darüber,
Komisch das der Debug das Richtige ausgibt.
Bis dahin sollte ja alles richtig sein. -
@Ralla66 sagte in Drucksensor mit Tasmota abfragen ?:
Raw Post darüber,
nein, das ist der vom sonoff
ich hätte gerne den vom ADC_Bar
-
3,2,1 wahr nix, upgrade von Script Engine 4.1.11 nach 4.6.17.
Ja ich weiss Oldtimer.
Muss erst einmal das Backup einspielen.Gemecker war :
-
@Ralla66 kann es sein,dass du diese Fehlermeldung bekommst, weil du keine Zahlenlogik Baustein genommen hast? Siehe Bild. Füge mal bei Mathematik Zahl Baustein in dein Kästchen
-
@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