NEWS
ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
Sorry. So ganz kann ich Dir nicht folgen.
Was du für Werte hast, kann ich nicht nachvollziehen.
Hast du die gleiche hardware ?
Und warum steht bei dir:
Oben steht:
0,5V = 2800 und bei 4,5V = 20507
Und die Hardware liefert 0 - 10 Bar; und dies bei 0,5 bis 4,5VUnd der ADS liefert einen Wert.
Und dieser musst du mit die Formel von mir auswerten.Dann kommst du auf Bar.
-
@bahnuhr Okay habe ich jetzt eingestellt. Aktuell zeigt er 0 bar an. Ist wohl normal weil er auf dem Tisch liegt. Dann werde ich ihn in den nächsten Tagen verbauen.
Danke dir erstmal. -
@bahnuhr sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
20507
Auf meinem Sensor steht 0.8MPa / 1903 ? Passt das dann mit deiner Formel auch noch ?
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
Auf meinem Sensor steht 0.8MPa / 1903 ? Passt das dann mit deiner Formel auch noch ?
Natürlich nicht.
Denn deiner hat ja bei 4,5V = 8 Bar.Also musst du die Tabelle auf deine Verhältnisse anpassen.
Bei 8 Bar ungefähr so:
-
@bahnuhr Sorry , aber ich komme nicht weiter egal was ich einstellen. Die Werte die am Ende rauskommen sind für mich unlogisch. Hier nochmal meine Daten:
-Wemos D1 Mini
-ADS1115
-Sensor 0.8MPa
Was mache ich falsch ?
-
@mymeyer
Ich benutze Tasmota; mit espeasy kenn ich mich nicht aus.Aber du bekommst doch ads Werte geliefert.
Und zwar 18.595.Und diesen lässt du übertragen noch iob.
Und dann per Script mit der o.g. Formel auswerten.Also
(Wert-2650)/1000*37,74%ergibt somit: 6,01 bar
mfg
-
@bahnuhr Aber es kann doch nicht sein wenn das Teil (Sensor) auf dem Tisch liegt das dort 6 Bar anliegen. Auf der Druckseite ist ja noch nichts angeschlossen. Oder habe ich da einen Denkfehler....
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr Aber es kann doch nicht sein wenn das Teil (Sensor) auf dem Tisch liegt das dort 6 Bar anliegen. Auf der Druckseite ist ja noch nichts angeschlossen. Oder habe ich da einen Denkfehler....
Dann stimmen deine Werte nicht.
Schließe bitte an einen ADS Port den Ausgang des Sensors.
Und an einen anderen Port 5V anschließen und diesen Wert ablesen.und diesen trägst du als Referenz bei 5V ein und rechnest die Tabelle neu durch.
Fazit.
Viel falsch anschließen kannst du da eigentlich nicht.
Du musste halt mit dem Sensor das neu druchrechnen.Bei mir sind 3 Sensoren angeschlossen:
A0 5V A1 0,5mpa Drucksensor - Heizung A2 0,5mpa Drucksensor - FB-Heizung A3 1,2mpa Drucksensor - Wasser
Und jeder liefert einen anderen analogen Wert:
Und diese rechne ich dann anders um; eben je nach Gerät.
Und in VIS kommt dann folgendes raus:
-
@bahnuhr Hi , habe jetzt Tasmota drauf. Geht ja schnell . Aktueller Wert ist 18611. Kannst Du mir das Excel File schicken zum berechnen der Werte ?
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr Hi , habe jetzt Tasmota drauf. Geht ja schnell . Aktueller Wert ist 18611. Kannst Du mir das Excel File schicken zum berechnen der Werte ?
Da dort noch mehr drin ist, schicke ich Excel Tabellen grundsätzlich nicht rum.
Sind doch aber nur 5 Spalten. Bekommst du schon hin.
-
@bahnuhr Tabelle fertig Das berechnen mit deiner Formel findet da aber im Iobroker JS statt richtig ?
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr Tabelle fertig Das berechnen mit deiner Formel findet da aber im Iobroker JS statt richtig ?
Ja
-
@mymeyer sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
Iobroker JS
sieht bei mir so aus:
// Wemos-Drucksensor hat sich geändert on({id: "mqtt.2.Wemos_Drucksensor.SENSOR"}, function(obj) { obj = JSON.parse(obj.state.val); var wert_Heizung = parseFloat(((obj.ADS1115.A1-2650)/1000*23.58/100).toFixed(2)); log ("Heizung: " + obj.ADS1115.A1 + " , " + wert_Heizung); var wert_FB_Heizung = parseFloat(((obj.ADS1115.A2-2650)/1000*23.58/100).toFixed(2)); log ("FB-Heizung: " + obj.ADS1115.A2 + " , " + wert_FB_Heizung); var wert_Wasser = parseFloat(((obj.ADS1115.A3-2650)/1000*56.6/100).toFixed(2)); log ("Wasser: " + obj.ADS1115.A3 + " , " + wert_Wasser); setState("javascript.0.Geräte.Wemos.Wemos-Drucksensor.Sensor_05_Heizung", wert_Heizung); setState("javascript.0.Geräte.Wemos.Wemos-Drucksensor.Sensor_05_FB-Heizung", wert_FB_Heizung); setState("javascript.0.Geräte.Wemos.Wemos-Drucksensor.Sensor_12_Wasser", wert_Wasser); });
Musst du halt anpassen.
-
@bahnuhr sagte: sieht bei mir so aus:
Die Datenpunkte unter "javascript.0.Geräte.Wemos.Wemos-Drucksensor" sind vom Typ "string"?
-
@paul53 sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr sagte: sieht bei mir so aus:
Die Datenpunkte unter "javascript.0.Geräte.Wemos.Wemos-Drucksensor" sind vom Typ "string"?
Wie kommst du da drauf ?
... parsefloat !!!
-
@bahnuhr sagte: Wie kommst du da drauf ?
.toFixed(2) macht aus einer Zahl einen String.
-
@paul53 sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr sagte: Wie kommst du da drauf ?
.toFixed(2) macht aus einer Zahl einen String.
Ja, und parsefloat macht wieder eine number draus.
Oder, hab ich da was falsch verstanden !!!
-
@paul53
Bitte genau die Klammern beachten. -
@bahnuhr sagte: Bitte genau die Klammern beachten.
Ja, sehe gerade dass die parseFloat-Klammer das .toFixed(2) mit umschließt. Ist so etwas umständlich. Besser:
var wert_Heizung = Math.round((obj.ADS1115.A1-2650)/1000*23.58) / 100;
-
@paul53 sagte in ESP8266 ESPEASY Heizungsdruck per MQTT an ioBroker:
@bahnuhr sagte: Bitte genau die Klammern beachten.
Ja, sehe gerade dass die parseFloat-Klammer das .toFixed(2) mit umschließt. Ist so etwas umständlich. Besser:
var wert_Heizung = Math.round((obj.ADS1115.A1-2650)/1000*23.58) / 100;
bekommt man es damit auch hin, dass genau 2 Nachkommastellen erzeugt werden ?