Funktioniert "event-on-*" nicht bei OWX?

Begonnen von Thomas24568, 03 Juni 2018, 17:37:07

Vorheriges Thema - Nächstes Thema

Thomas24568

Moin!

Ich habe eine Reihe von Sensoren der DS18B20 Baureihe über einen Busmaster per OWX am FHEM hängen. Einige Monate lief das System super, dann wollte ich die sehr ausführlichen Filelogs "verdünnen" und habe gestern die event-on-* Sachen eingebaut (s.u.).  Seitdem bekomme ich alle 300s (also die Zeit von event-min-interval) einen Eintrag ins Filelog, obwohl sich die Meßwerte beim duschen mehrfach pro Sekunde ändern (schnelle Aufheizung des Wasserrohrers bis Duschtemperatur - 10 min Gleichstand - langsame Abkühlung). Dann habe ich event-min-interval wieder rausgeworfen - und bekomme bei einem Eingang gar keine Werte mehr (seit 2h - kann aber an der sich in der Zeit nicht geänderten Temperatur liegen).

Ich bitte euch mal über meine Einstellungen rüberzusehen und mir zu sagen, ob ich einen Fehler gemacht habe oder ob das System einen Fehler hat (der mglw. nur in bestimmten Kombinationen auftritt).

List einer Sensordef:

Internals:
   ALARM      1
   ASYNC      0
   CHANGED   
   DEF        DS18B20 FF0DA5011703
   ERRCOUNT   0
   INTERVAL   1
   IODev      1wire
   NAME       OWX_28_FF0DA5011703
   NOTIFYDEV  global
   NR         61
   NTFY_ORDER 50-OWX_28_FF0DA5011703
   OW_FAMILY  28
   OW_ID      FF0DA5011703
   PRESENT    1
   ROM_ID     28.FF0DA5011703.47
   STATE      T: 24.5 °C
   TYPE       OWTHERM
   owg_cf     9
   owg_temp   24.5
   owg_th     75
   owg_tl     70
   READINGS:
     2018-06-03 17:09:53   state           T: 24.50 °C ↓
     2018-06-03 17:09:53   temperature     24.5
   tempf:
     factor     1
     offset     0
Attributes:
   IODev      1wire
   alias      Mischer Ausgang OWX_28_FF0DA5011703
   event-on-change-reading temperature:.1
   fp_Grundriss 513,846,0,OWX_28_FF0DA5011703,
   model      DS18B20
   resolution 9
   room       Bad,OWX
   stateFormat {sprintf("T: %.1f °C", ReadingsVal("OWX_28_FF0DA5011703","temperature",0))}
   tempHigh   75
   tempLow    70


define FileLog_OWX_28_FF0DA5011703 FileLog ./log/OWX_28_FF0DA5011703-%Y.log OWX_28_FF0DA5011703
attr FileLog_OWX_28_FF0DA5011703 alias Mischer Ausgang FF0DA501170


Im Bild ist zu sehen das die rote Kurve über 10 Minuten von 25 Grad (Raumtemp) auf 55 Grad (Warmwasservorlauf) steigt. Real braucht es aber nur ca. 20 Sekunden.


Im Filelog für den Sensor steht für heute:

2018-06-03_12:18:54 OWX_28_FF0DA5011703 temperature: 24
2018-06-03_12:18:54 OWX_28_FF0DA5011703 T: 24.00 °C ↓
2018-06-03_12:38:54 OWX_28_FF0DA5011703 temperature: 23.5
2018-06-03_12:38:54 OWX_28_FF0DA5011703 T: 23.50 °C ↓
2018-06-03_13:23:54 OWX_28_FF0DA5011703 temperature: 23
2018-06-03_13:23:54 OWX_28_FF0DA5011703 T: 23.00 °C ↓
2018-06-03_13:28:54 OWX_28_FF0DA5011703 temperature: 23.5
2018-06-03_13:28:54 OWX_28_FF0DA5011703 T: 23.50 °C ↓
2018-06-03_13:33:54 OWX_28_FF0DA5011703 temperature: 23
2018-06-03_13:33:54 OWX_28_FF0DA5011703 T: 23.00 °C ↓
2018-06-03_13:53:54 OWX_28_FF0DA5011703 temperature: 36
2018-06-03_13:53:54 OWX_28_FF0DA5011703 T: 36.00 °C ↓
2018-06-03_13:58:54 OWX_28_FF0DA5011703 temperature: 39
2018-06-03_13:58:54 OWX_28_FF0DA5011703 T: 39.00 °C ↓
2018-06-03_14:08:54 OWX_28_FF0DA5011703 temperature: 23
2018-06-03_14:08:54 OWX_28_FF0DA5011703 T: 23.00 °C ↓
2018-06-03_14:13:54 OWX_28_FF0DA5011703 temperature: 22
2018-06-03_14:13:54 OWX_28_FF0DA5011703 T: 22.00


Vor einigen Tagen:

2018-02-09_16:31:09 OWX_28_FF0DA5011703 T: 22.69 °C ↓
2018-02-09_16:31:14 OWX_28_FF0DA5011703 temperature: 22.6875
2018-02-09_16:31:14 OWX_28_FF0DA5011703 T: 22.69 °C ↓
2018-02-09_16:31:19 OWX_28_FF0DA5011703 temperature: 22.6875
2018-02-09_16:31:19 OWX_28_FF0DA5011703 T: 22.69 °C ↓
2018-02-09_16:31:24 OWX_28_FF0DA5011703 temperature: 23.0625
2018-02-09_16:31:24 OWX_28_FF0DA5011703 T: 23.06 °C ↓
2018-02-09_16:31:29 OWX_28_FF0DA5011703 temperature: 24.75
2018-02-09_16:31:29 OWX_28_FF0DA5011703 T: 24.75 °C ↓
2018-02-09_16:31:34 OWX_28_FF0DA5011703 temperature: 26
2018-02-09_16:31:34 OWX_28_FF0DA5011703 T: 26.00 °C ↓
2018-02-09_16:31:39 OWX_28_FF0DA5011703 temperature: 26.9375
2018-02-09_16:31:39 OWX_28_FF0DA5011703 T: 26.94 °C ↓
2018-02-09_16:31:44 OWX_28_FF0DA5011703 temperature: 27.625
2018-02-09_16:31:44 OWX_28_FF0DA5011703 T: 27.62 °C ↓
2018-02-09_16:31:49 OWX_28_FF0DA5011703 temperature: 28.125
2018-02-09_16:31:49 OWX_28_FF0DA5011703 T: 28.12 °C ↓
2018-02-09_16:31:54 OWX_28_FF0DA5011703 temperature: 28.5625
2018-02-09_16:31:54 OWX_28_FF0DA5011703 T: 28.56 °C ↓
2018-02-09_16:31:59 OWX_28_FF0DA5011703 temperature: 28.9375
2018-02-09_16:31:59 OWX_28_FF0DA5011703 T: 28.94 °C ↓
2018-02-09_16:32:04 OWX_28_FF0DA5011703 temperature: 29.25
2018-02-09_16:32:04 OWX_28_FF0DA5011703 T: 29.25 °C ↓
2018-02-09_16:32:09 OWX_28_FF0DA5011703 temperature: 29.625
2018-02-09_16:32:09 OWX_28_FF0DA5011703 T: 29.62 °C ↓
2018-02-09_16:32:14 OWX_28_FF0DA5011703 temperature: 29.875
2018-02-09_16:32:14 OWX_28_FF0DA5011703 T: 29.88 °C ↓
2018-02-09_16:32:19 OWX_28_FF0DA5011703 temperature: 30.1875
2018-02-09_16:32:19 OWX_28_FF0DA5011703 T: 30.19 °C ↓
2018-02-09_16:32:24 OWX_28_FF0DA5011703 temperature: 30.5
2018-02-09_16:32:24 OWX_28_FF0DA5011703 T: 30.50 °C ↓
2018-02-09_16:32:29 OWX_28_FF0DA5011703 temperature: 30.75
2018-02-09_16:32:29 OWX_28_FF0DA5011703 T: 30.75 °C ↓
2018-02-09_16:32:34 OWX_28_FF0DA5011703 temperature: 31
2018-02-09_16:32:34 OWX_28_FF0DA5011703 T: 31.00 °C ↓
2018-02-09_16:32:39 OWX_28_FF0DA5011703 temperature: 31.1875
2018-02-09_16:32:39 OWX_28_FF0DA5011703 T: 31.19 °C ↓
2018-02-09_16:32:44 OWX_28_FF0DA5011703 temperature: 31.4375
2018-02-09_16:32:44 OWX_28_FF0DA5011703 T: 31.44 °C ↓
2018-02-09_16:32:49 OWX_28_FF0DA5011703 temperature: 31.625
2018-02-09_16:32:49 OWX_28_FF0DA5011703 T: 31.62 °C ↓
2018-02-09_16:32:54 OWX_28_FF0DA5011703 temperature: 31.8125
2018-02-09_16:32:54 OWX_28_FF0DA5011703 T: 31.81 °C ↓
2018-02-09_16:32:59 OWX_28_FF0DA5011703 temperature: 31.9375
2018-02-09_16:32:59 OWX_28_FF0DA5011703 T: 31.94 °C ↓
2018-02-09_16:33:04 OWX_28_FF0DA5011703 temperature: 32.125
2018-02-09_16:33:04 OWX_28_FF0DA5011703 T: 32.12 °C ↓
2018-02-09_16:33:09 OWX_28_FF0DA5011703 temperature: 32.25
2018-02-09_16:33:09 OWX_28_FF0DA5011703 T: 32.25 °C ↓
2018-02-09_16:33:14 OWX_28_FF0DA5011703 temperature: 32.4375
2018-02-09_16:33:14 OWX_28_FF0DA5011703 T: 32.44 °C ↓
2018-02-09_16:33:19 OWX_28_FF0DA5011703 temperature: 32.5625
2018-02-09_16:33:19 OWX_28_FF0DA5011703 T: 32.56 °C ↓
2018-02-09_16:33:24 OWX_28_FF0DA5011703 temperature: 32.6875
2018-02-09_16:33:24 OWX_28_FF0DA5011703 T: 32.69 °C ↓
2018-02-09_16:33:29 OWX_28_FF0DA5011703 temperature: 32.8125
2018-02-09_16:33:29 OWX_28_FF0DA5011703 T: 32.81 °C ↓
2018-02-09_16:33:34 OWX_28_FF0DA5011703 temperature: 32.9375
2018-02-09_16:33:34 OWX_28_FF0DA5011703 T: 32.94 °C ↓
2018-02-09_16:33:39 OWX_28_FF0DA5011703 temperature: 33.0625
2018-02-09_16:33:39 OWX_28_FF0DA5011703 T: 33.06 °C ↓
2018-02-09_16:33:44 OWX_28_FF0DA5011703 temperature: 33.1875
2018-02-09_16:33:44 OWX_28_FF0DA5011703 T: 33.19 °C ↓
2018-02-09_16:33:49 OWX_28_FF0DA5011703 temperature: 33.25
2018-02-09_16:33:49 OWX_28_FF0DA5011703 T: 33.25 °C ↓
2018-02-09_16:33:54 OWX_28_FF0DA5011703 temperature: 33.375
2018-02-09_16:33:54 OWX_28_FF0DA5011703 T: 33.38 °C ↓
2018-02-09_16:33:59 OWX_28_FF0DA5011703 temperature: 33.4375
2018-02-09_16:33:59 OWX_28_FF0DA5011703 T: 33.44 °C ↓
2018-02-09_16:34:04 OWX_28_FF0DA5011703 temperature: 33.5625
2018-02-09_16:34:04 OWX_28_FF0DA5011703 T: 33.56 °C ↓
2018-02-09_16:34:09 OWX_28_FF0DA5011703 temperature: 33.625
2018-02-09_16:34:09 OWX_28_FF0DA5011703 T: 33.62 °C ↓
2018-02-09_16:34:14 OWX_28_FF0DA5011703 temperature: 33.6875
2018-02-09_16:34:14 OWX_28_FF0DA5011703 T: 33.69 °C ↓
2018-02-09_16:34:19 OWX_28_FF0DA5011703 temperature: 33.75


Die Datendichte ist hier viel höher, für die Momente der Änderungen okay, aber nicht für Gleichstand der Temperatur.

Kann es sein, das dieser komische Parameter "INTERVAL" im DeviceOverview des Sensors damit zu tun hat? Ich habe zwar inzwischen damit rumprobiert, aber keinen nachvollziehbaren Zusammenhang erkannt.

Ausserdem bekomme ich zeitweise nur Temperaturanzeigen in 0,5 Grad Sprüngen angezeigt, obwohl event-on change auf 0,1 Grad eingestellt ist (sein soll? Habe ich das fehlerfrei übernommen?).

Und gibt es eine Möglichkeit diese von OWX stammenden Alarmtemperaturen komplett wegzubekommen? Ein Klick auf deleteattr hilft nicht.




Deckoffizier

#1
Hallo  Thomas24568,

Hmmm ....     Ausserdem bekomme ich zeitweise nur Temperaturanzeigen in 0,5 Grad Sprüngen angezeigt


Habe keine Ahnung von Programmierung aber eventuell liegt es an deinem Attr stateFormat {sprintf("T: %.1f °C",

Intervall 1 würde für mich bedeuten Du fragst den Sensor jede Sekunde ab ?

Etwas verwirrend finde ich auch bei deinem Plot  die unterschiedlichen Werte für die linke und rechte Seite an Temperaturen 20-60 20-70.



Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

amenomade

INTERVAL kannst Du nw. mit "set <device> interval xxx" ändern.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Thomas24568

@Deckoff.: Das erste hinter sprintf ist die Rundung auf eine (1) Nachkommastelle.

Skalen: Ich hatte links auch erst 20-60, da ist mir der Grapf oben rausgelaufen. Geändert hatte ich dann rechts, links einfach vergessen.


Beta-User

Zitat von: Thomas24568 am 03 Juni 2018, 17:37:07

   resolution 9


Ausserdem bekomme ich zeitweise nur Temperaturanzeigen in 0,5 Grad Sprüngen angezeigt, obwohl event-on change auf 0,1 Grad eingestellt ist (sein soll? Habe ich das fehlerfrei übernommen?).
Du bekommst mit der Einstellung von 9 für Resolution keine kleineren Sprünge - dafür wäre eine höhere Auflösung anzugeben (z.B. 11=0,125°C, was bei dem von dir angegebenen event-on-change ggf. mehr Sinn machen würde; dafür dauert das Auslesen dann aber auch fast eine halbe Sekunde).

Aber grundsätzlich: Macht die Messerei mit den kurzen Intervallen überhaupt Sinn?

(Da ich die DS18B20 anders ansteuere ohne weiteres Hintergrundwissen: OWX läuft hoffentlich asynchron? Sonst könnte es sein, dass du damit FHEM ziemlich ausbremst)

[/t][/t]





Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Prof. Dr. Peter Henning

Hier ist Einiges faul.

Erstens macht es im Wohnbereich überhaupt keinen Sinn, Temperaturen in Sekundenintervallen zu messen - so schnell reagieren die Sensoren gar nicht, vom Wert der Daten ganz abgesehen. Ein einzelner Messvorgang dauert in den Sensoren alleine bis zu einer Sekunde.

Zweitens kann auch der 1-Wire Bus nicht so schnell abfragen - damit kommen sich die Anfragen auf dem Bus gegenseitig in die Quere.

Drittens ist die Kurve korrupt. Das sieht man daran, dass ab ca. 14:15 die Kurve eine Krümmung hat ("dichte" Datenpunkte), während vorher offenbar Datenwerte nur 13:30, 14:00 und 14:15 vorliegen und dazwischen lineare Abschnitte sind.

Viertens: Auflösung - wie von Beta-User bemerkt

LG

pah

Thomas24568

#4: okay, 9 Bit ist dann wieviel Nachkommastellen?

Sinn kleiner Auflösung: Ja, ich brauche die Werte weil die elektronische Steuerung der Duschwassertemperatur (Grohe F-digital) noch nicht rund läuft. Ich habe schon angefangen, die Meßkurve der Grohe-Steuerung zu verbiegen, aber mit nur probieren ist nicht so prickelnd. Daher brauche ich eine gut aufgelöste Kurve.


OWX asynchron? Habe ich irgendwie noch nicht mitbekommen. Ist das irgendwo einzustellen?

Ohne was geändert zu haben sieht die Kurve der Duchtemperaturverlaufskurve besser aus. Warum - keine Ahnung. Ich werde weiter beobachten.

Prof. Dr. Peter Henning

ZitatHabe ich irgendwie noch nicht mitbekommen
::)
Warum schreibe ich wohl eine CommandRef ?

pah

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Das mit async steht aber nur dann drin, wenn das Modul die letzten Monate auch upgedatet wurde ;) .
Zitat von: Thomas24568 am 04 Juni 2018, 19:48:22
#4: okay, 9 Bit ist dann wieviel Nachkommastellen?
Wie bereits geschrieben: 9 Bit = 0.5-Grad-Schritte (1/2°), 11 Bit = 0.125-Grad (1/8°)...
Vielleicht guckst du nicht nur in die aktuelle commandref, sondern auch mal in's Datenblatt. Da findet sich dann noch 10 = 0.25° (1/4°) und 12 = 1/16°.
Für deinen Anwendungsfall mit den großen Temperaturänderungen kannst du ruhig auf 9 bleiben (da ist das Risiko, dass du das System ohne async ausbremst nicht so hoch); die Hysterese von 0.1° bedeutet dann, dass du jede Temperaturänderung logst. Das ist aber m.E. für den Anwendungsfall auch ok. Aber trotzdem: Jede Sekunde...?
Im Übrigen: [gelöst]?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Prof. Dr. Peter Henning

ZitatWeil es Pflicht ist
Nö, damit ich nach 4 Jahren immer noch weiß, was das Modul macht  ;D

LG

pah

Thomas24568

pah: Warum schreibe ich wohl eine CommandRef ?

Antwort: Uns uns Deutsche zu verarschen:

OWX_ASYNC

Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es hier: OWX_ASYNC

Ich hatte also nicht übergesehen, sondern es steht nichts da - meine Sprache ist Deutsch, nicht Brexit-Dialekt oder America-first-gemurmel.

Nur zur Erinnerung: Dies ist ein .de-Forum.

Für die anderen Antworten: Nein, gelöst noch nicht, aber deutlich klarer.

Was ich jetzt nicht erkennen kann: Im OWX-Dialog kann man ein Intervall einstellen. Offensichtlich ist das die Zeitspanne nach der das OWX-Modul einen Meßwert abfragt. Wenn ich diese Funktion benutze kann ich auf event-min-interval verzichten? Wichtig ist dann die Kombination mit event-on-change: Wenn per interval alle 5 Sekunden ein Meßwert im FHEM ankommt, aber event-on-change steht auf 0,5 Grad (BEISPIELWERTE!), werden dann alle 5s die 30 Grad ins logfile geschrieben oder doch nur wenn ein Abweichung zu 30 Grad festgestellt wird? 

Beta-User

Komm mal runter!
Es macht keinen großen Sinn, Leute zu beleidigen, die dir helfen wollen (und so freundlich waren, Module zu entwickeln, die du nutzen willst!).
Es geht hier auch nicht um das veraltete OWX_ASYNC, sondern um ein Attribut "asynchronous"zu OWX. Und selbst wenn das (korrekterweise nur!) englisch ist: die paar Zeilen Commandref versteht man mit etwas gutem Willen auch auf englisch.
Ich bin jedenfalls hier raus, mir ist nicht danach, Leuten zu helfen, die Doku (und Datenblätter) aus Prinzip nicht lesen, nur weil es nicht so mundgerecht vorzufinden ist, wie sich derjenige das vorstellt...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thomas24568

Hallo Beta-User,

auch wenn du meine Antwort nicht mehr lesen solltest: Dann sollen die Leute, die hier "helfen wollen" doch gleich dazuschreiben, das man nur Hilfe erwarten kann wenn man englisch versteht. Das ist in Deutschland vielleicht überwiegend der Fall, aber keine Gesetzmäßigkeit. Außerdem bin ich kein Rentnerder ewig viel Zeit hat.

Aber da du schreibst

Und selbst wenn das (korrekterweise nur!) englisch ist:

zeigt MIR, das die Anleitung/Hilfe nicht für deutsche Benutzer gedacht ist. Vielen Dank für diese Erleuchtung.


amenomade

#14
Ohje... bischen Humor bitte. Die meiste Leute, die hier helfen, sind auch keine Rentner mit ewig viel Zeit, und trotzdem helfen die. Erlaube denen bitte ein bischen Entspannung nach oder während der Arbeit. Ein Scherz tut nicht weh.

Fakt ist: ein Developer MUSS einen CommandRef Eintrag auf Englisch schreiben. Auf Deutsch kann er, muss aber nicht.

Aber hier wird in meisten Fälle auf Deutsch geholfen (Deutsch ist übrigens auch nicht meine Muttersprache...). Aber man wird besser geholfen wenn man sagt:
ZitatSorry, CommandRef auf Englisch habe ich zwar gelesen, aber auf Englisch bin ich nicht so gut, und habe nicht alles verstanden, kann mir jemand bitte dies und das übersetzen / erklären?
als wenn man wegen fehlender deutscher Doku auf einem deutschen Forum meckert und die Helfer und Modulentwickler anschimpft.

So jetzt zurück zum Thema:
Zitat von: CommandeRef auf ENGLISCHAttributes

    attr <name> asynchronous 0(default)|1
    if 1 the interface will run asynchronously;if 0 (default) then not
bedeutet:
Zitatwenn 1, wird die Schnittstelle asynchron laufen; wenn 0 (Standard-Wert) dann nicht
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus