ESPEasy und BME280

Begonnen von tfriedrich85, 04 November 2019, 09:25:49

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo zusammen,

ich nutze einen W1 mine mit ESPeasy um Temperatursensoren BME280 abzufragen.
Das funktioniert auch ganz gut. Allerdings frage ich die Sensoren nur alle 10 Minuten ab um nicht so viel traffic zu erzeugen.
Da allerdings die Spiegeleizung im Bad daran hängt würde ich gerne für die Zeit in der sich jemand im Bad aufhält die Abfragehäufigkeit auf 1 mal pro Minute erhöhen oder gerne auch bei Bedarf abfragen. Ich sehe aber keine Möglichkeit wie man das machen könnte.
Die Frage in Kurzfassung: Kann man aus Fhem heraus den BME280 zu einem Update der Werte bewegen?

Vielen Dank

Wernieman

Ja, man kann manuell "trickern", also auch aus FHEM herraus.

Stichwort "TaskRun"

Siehe: https://www.letscontrolit.com/wiki/index.php?title=ESPEasy_Command_Reference
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

tfriedrich85

Hallo zusammen,

@Werniemann: Ja das funktioniert. Aber noch bin ich nicht ganz zufrieden, denn aktuell sage ich bei einer Luftfeuchtigkeit von x% dann y. Allerdings ändert sich die Luftfeuchtigkeit je nach außen Temperatur. Also ein statischer Wert x funktioniert nicht ganzjährig.
Das heißt ich müsste die letzten beiden Werte des Sensors vergleichen und fragen hat sich die Luftfeuchtigkeit vom vorletzten zum letzten Wert um x verändert? Damit wäre die Berechung dynamisch.
Hat jemand eine Idee wie man das umsetzen kann?
Geht das mit den Eventagregatoren?

Vielen Dank.

Wernieman

Du könntest über einen Dummy arbeiten, d.h. die alten Werte dort ablegen .... wenn Du es IM esp abarbeiten willst.

In FHEM selber ist vieles Möglich ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

tfriedrich85

Hast du eine Lösung wie man in Fhem die Werte aus einem Log File miteinander vergleicht um damit die Differenz zu ermitteln?

Danke

Wernieman

Es gibt im FHEM die Varaible "oldvalue" (oder so Ähnlich). Genaue Verwendung mußt Du andere fragen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

tfriedrich85

Danke für den Hinweis.
Ich habe einen OldReadings auf angelegt und möchte ich das Oldreading mit dem Reading vergleichen. Aber das Zahlformat stimmt scheinbar nicht_

DOIF
([ESPEasy_ESPEasy_ESP_Bad_Temp:Humidity] >= [ESPEasy_ESPEasy_ESP_Bad_Temp:OldReadings.Humidity])  (set watchdog_Bad inactive;) DOELSE (set watchdog_Bad active)


Hier das Warning dazu:

warning
condition c01: Argument "" isn't numeric in numeric ge (>=)


Der Wert Humidity sieht so aus: 44.39 - das sieht für mich eigentlich nach einer Zahl aus.

Kennt jemand das Problem?



juergs

#7

Klaus0815


Habe vor einiger Zeit mit Hilfe aus dem Forum genau so was gebaut

Ich habe im DOIF stehen:

DEF
{if ([$SELF:increase] > 10) {system("/var/kr/badluefter/10min&")}}


und als Attribut:


DOIF_Readings
increase:([Feuchtesensor_Bad:humidity]-OldReadingsVal("Feuchtesensor_Bad","humidity",0))/[Feuchtesensor_Bad:humidity]*100

tfriedrich85

Danke Klaus,

das läuft super so!

tfriedrich85

Hallo,

leider funktioniert die Abfrage der Sensorwerte über HTTP noch nicht.
Aufruf:
http://192.168.178.87/control?cmd=event,abfrage

Device 1 ist ein BME280 - mit Temperatur, Luftfeutigkeit, Luftdruck

Rules

on abfrage do
TaskRun,1
endon


Beim Aufruf der URL wird in Fhem keine Aktualisierung durchgeführt. Wo liegt hier noch der Fehler?

Vielen Dank

Wernieman

Holst Du jetzt die Werte oder Pushed Du?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

tfriedrich85

Die Werte werden vom ESPEasy im 5 min Takt geschickt.
Allerdings will ich gerne manuell die Sensorwerte holen können.
Dafür dachte ich könnte ich den Aufruf per URL machen:

http://192.168.178.87/control?cmd=event,abfrage

Damit möchte ich den ESP veranlassen, die Werte per Aufruf zu schicken.


Wernieman

Das Event wird getrickert, aber die Werte nicht geschickt?
Automatisch funzt es aber?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Klaus0815

Nutze es selber nicht, aber ein paar Tips:

wird was geschickt wenn Du direkt in der ESPEasy Oberfläche bei Tools TaskRun,1 eingibst?

Was passiert wenn Du
http://192.168.178.87/control?cmd=TaskRun,1
schickst?

evtl. auch mal TaskRun,1,2 für nur die Luftfeuchtigkeit?