FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: tfriedrich85 am 04 November 2019, 09:25:49

Titel: ESPEasy und BME280
Beitrag von: tfriedrich85 am 04 November 2019, 09:25:49
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
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 04 November 2019, 10:40:35
Ja, man kann manuell "trickern", also auch aus FHEM herraus.

Stichwort "TaskRun"

Siehe: https://www.letscontrolit.com/wiki/index.php?title=ESPEasy_Command_Reference (https://www.letscontrolit.com/wiki/index.php?title=ESPEasy_Command_Reference)
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 19 November 2019, 08:30:44
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.
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 19 November 2019, 09:12:07
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 ....
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 21 November 2019, 20:17:13
Hast du eine Lösung wie man in Fhem die Werte aus einem Log File miteinander vergleicht um damit die Differenz zu ermitteln?

Danke
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 22 November 2019, 07:54:05
Es gibt im FHEM die Varaible "oldvalue" (oder so Ähnlich). Genaue Verwendung mußt Du andere fragen ...
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 22 November 2019, 23:44:47
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?


Titel: Antw:ESPEasy und BME280
Beitrag von: juergs am 23 November 2019, 13:07:28
Google, 1. Treffer:
https://forum.fhem.de/index.php?topic=72471.0
Titel: Antw:ESPEasy und BME280
Beitrag von: Klaus0815 am 24 November 2019, 16:41:17

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
Titel: [gelöst]Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 24 November 2019, 22:20:31
Danke Klaus,

das läuft super so!
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 13 November 2020, 09:54:38
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
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 13 November 2020, 10:15:25
Holst Du jetzt die Werte oder Pushed Du?
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 13 November 2020, 11:34:11
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 (http://192.168.178.87/control?cmd=event,abfrage)

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

Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 13 November 2020, 14:35:31
Das Event wird getrickert, aber die Werte nicht geschickt?
Automatisch funzt es aber?
Titel: Antw:ESPEasy und BME280
Beitrag von: Klaus0815 am 13 November 2020, 17:33:24
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?



Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 17 November 2020, 11:06:29
Zitat von: Wernieman am 13 November 2020, 14:35:31
Das Event wird getrickert, aber die Werte nicht geschickt?
Automatisch funzt es aber?

Das ist etwas verwirrend. Task 1 ist erstmal nur das Device BME280 - Sensor. Ein Taskrun führt nicht dazu das die Sensorwerte erneut abgefragt werden.
Zur Frage von Wernieman: Ja, die Intervall-basierte Abfrage funktioniert problemlos.

Ich kann auch in Fhem ein: "set <Device> Taskrun 1" starten. Aber auch das führt zu keinem anderen Ergebnis.
Auch ein HTTP Request hilft nicht
http://192.168.178.75/control?cmd=TaskRun,1,1 (http://192.168.178.75/control?cmd=TaskRun,1,1)

Es gilt also herauszufinden wie man das Abfragen der Sensorwerte manuell auslösen kann?

Der Weg über Taskrun ob über die URL oder nicht, scheint nicht des Rätsels Lösung.
Danke
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 17 November 2020, 12:44:06
Kannst Du uns mal die Config des Sensors geben?
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 17 November 2020, 15:23:42
Hier das List:


Internals:
   DEF        192.168.178.75 80 ESPBridge ESP_Easy_Kueche_Temp_Kueche_Temp
   ESPBridge_MSGCNT 472
   ESPBridge_TIME 2020-11-17 15:11:31
   ESP_BUILD  20103
   ESP_BUILD_GIT mega-20190630
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   FUUID      5d7fbdd7-f33f-aed9-decc-965b597dd317e5c9
   HOST       192.168.178.75
   IDENT      ESP_Easy_Kueche_Temp_Kueche_Temp
   INTERVAL   300
   IODev      ESPBridge
   LASTInputDev ESPBridge
   MAX_CMD_DURATION 1
   MSGCNT     472
   NAME       ESPEasy_ESP_Easy_Kueche_Temp_Kueche_Temp
   NOTIFYDEV  global
   NR         1029
   NTFY_ORDER 50-ESPEasy_ESP_Easy_Kueche_Temp_Kueche_Temp
   PORT       80
   STATE      Temp: 22.13: Luftf.: 32.73 %
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   Helper:
     DBLOG:
       Humidity:
         logdb:
           TIME       1605622291.24724
           VALUE      32.73
       Temperature:
         logdb:
           TIME       1605622291.24724
           VALUE      22.13
   READINGS:
     2020-11-17 15:11:31   Humidity        32.73
     2020-11-17 15:11:31   Pressure        1017.91
     2020-11-17 15:11:31   Temperature     22.13
     2020-11-17 15:12:05   presence        present
     2020-11-17 15:12:05   state           Hum: 32.73 Pre: 1017.91 Tem: 22.13
   helper:
     fpc        1605275547
     pm:
       Encode     1
       JSON       1
     received:
       Humidity   1605622291
       Pressure   1605622291
       Temperature 1605622291
   sec:
     admpwd     
Attributes:
   DbLogExclude .*
   DbLogInclude Humidity,Temperature
   IODev      ESPBridge
   Interval   300
   alias      Küche Temperatur
   event-on-change-reading Humidity,Temperature
   group      ESPEasy Device,Heizung
   presenceCheck 1
   readingSwitchText 1
   room       Heizung,Küche
   setState   3
   stateFormat Temp: Temperature: Luftf.: Humidity %
   verbose    2


Siehe Screenshot - ESP Easy
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 17 November 2020, 16:05:47
was passiert, wenn Du im Device (auf der espeasy-Oberfläche) eingibst:
TaskRun,1

Sofern ich weiß, überträgt das Device die Daten nur Komplett .... (also nicht 1,1 sondern nur 1)
Titel: Antw:ESPEasy und BME280
Beitrag von: tfriedrich85 am 17 November 2020, 19:56:26
Leider passiert da gar nichts:
siehe: screenshot

-->keine datenübertragung nach fhem
Titel: Antw:ESPEasy und BME280
Beitrag von: Nobbynews am 18 November 2020, 04:23:42
Hast Du mal unter Tools/Log vom ESP geprüft, ob die HTTP-Anfage überhaupt beim ESP ankommt?
Wenn ich mich richtig erinnere, dann muss zusätzlich zum Controller FHEM HTTP noch ein Controller Generic HTTP definiert werden, der auf Port 80 lauscht.
Außerdem finde ich die device Auflistung merkwürdig.
Bei meinen I2C-Sensoren steht in der Spalte Port jeweils I2C und in der Spalte GPIO jeweils SDA:4 und SCL:5

Edit 1: Dein ESPEasy in der Version 20190630 ist auch schon etwas älter.

Edit 2: Eine vergleichbare Lösung über MQTT habe ich hier beschrieben:  https://forum.fhem.de/index.php/topic,113632.msg1078962.html#msg1078962    (https://forum.fhem.de/index.php/topic,113632.msg1078962.html#msg1078962)
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 18 November 2020, 11:52:48
Nein, ein http-Connecktor muß dafür nicht definiert werden.

Es ist logisch, das dort nur ein "OK" steht, schließlich giebt der Befehl keine Ausgabe. Die Frage ist also eher, auf FHEM Seite erscheint nichts?

Habe hier, allerdings ist es ein Dummy, in den Rules stehen: "TaskRun 2" und es funzt .... allerdings ein "mega-20190110". Ist nicht der heueste, bin aber aktuell zu faul zum Updaten (aufschrauben, direkt flashen und wieder einbauen, zuwenig Speicher für ota- flash)
Titel: Antw:ESPEasy und BME280
Beitrag von: Nobbynews am 18 November 2020, 12:54:26
Ok, vielleicht habe ich das mit dem MQTT Generic Import verwechselt.
Titel: Antw:ESPEasy und BME280
Beitrag von: Nobbynews am 20 November 2020, 07:56:21
Zitat von: Wernieman am 18 November 2020, 11:52:48
Habe hier, allerdings ist es ein Dummy, in den Rules stehen: "TaskRun 2" und es funzt .... allerdings ein "mega-20190110".
Ich habe das jetzt bei mir mal getestet.
Die Eingabe von Taskrun,2 im der Command-Zeile unter Tools funktioniert.
Bei einem device habe ich allerdings 2 Controller definiert. Mit diesem device funktioniert es nicht.
Das ist hier zwar keine Erklärung für die Fehlfunktion des TE, da im entsprechenden device nur 1 Controller definiert ist.
Titel: Antw:ESPEasy und BME280
Beitrag von: Wernieman am 20 November 2020, 08:00:00
Da befürchte ich, das Du mal im espeasy-Forum nachfragen mußt ...

bzw. .. es ist doch ein MQQT-Device? Dafür gibt es explizit auch eigene Sendefunktionen. Schaue mal in die Doku ...
Titel: Antw:ESPEasy und BME280
Beitrag von: Nobbynews am 20 November 2020, 08:29:09
Bin ich gemeint?
Das funktioniert hier in einer Regel über publish sehr gut.
on VEML6070#UV-Risk do
publish %sysname%/VEML6070/UV-Risk, [VEML6070#UV-Risk]
endon
Titel: Antw:ESPEasy und BME280
Beitrag von: Peteruser am 28 November 2020, 22:34:57
Hallo,die Frage nach der Übertragungshäufigkeit ist doch einfach :-)
Screenshot weiter vorn : Devices >> Send to controller 600 s = 10 Min >> den einfach auf 60 und dann kommen die Werte alle Minute.
Peter