HBW-IO-Modul Onewire zufügen

Begonnen von a_quadrat, 03 Mai 2020, 23:14:48

Vorheriges Thema - Nächstes Thema

loetmeister

Hi,

ändere mal die Zeile
tempConfig[i + NUMBER_OF_OUT_CHAN + NUMBER_OF_SEN_INPUT_CHAN + NUMBER_OF_INPUT_CHAN + NUMBER_OF_BL_CHAN] = &(hbwconfig.TempOWCfg[i]);

in:
tempConfig[i] = &(hbwconfig.TempOWCfg[i]);

"tempConfig" ist ein eigenes Array, mit der Anzahl der Temperatursensoren und hat nichts mit den Kanal Array zu tun.

Die Ausgabe am seriellen Monitor sollte dann ungefähr so aussehen:
B: 2A 895
OW sensorSearch
channel: 0 stored ow-id: FFFFFFFFFFFFFFFF
conf_OW addr: FFFFFFFFFFFFFFFF
T: FD:FF:FF:FF:FF:F8:42:FF:FF:FF:12:41:00:97:01:00:01:48:42:57:34:30:37:33:34:37:31:95:E6
channel: 17 read temp, c°C: -27315
channel: 17 read temp, c°C: -27315


Gruß,
Thomas

a_quadrat

#16
Hallo Thomas,

vielen Dank, das war es. Auf dich kann man sich immer verlassen  :).

Ich habe noch eine Fragen:

Gibt es eigentlich schon I2C Sensoren die wir mit einbinden können?

VG Andreas

loetmeister

Hi Andreas,

Schön das es nun funktioniert.

I²C habe ich in dieser library bisher noch nicht eingebunden. One wire könnte man aber dahingehend ändern. Es müßte deutlich einfacher sein, wenn man nur einen I²C sensor zulässt.
Dazu wäre folgendes als Beispiel zu gebrauchen:
https://github.com/loetmeister/HBW-Devices/blob/HM-Wired/Firmware/HmwUnits/HmwSHT3x.cpp

Gruß,
Thomas

a_quadrat

Hi,

Danke, das schaue ich mir mal an. Eine Frage noch, kann ich irgendwo die Granularität der Temperaturwerte einstellen? Die Temperatur ändert sich nur in 0.5°C Schritten.

VG Andreas

loetmeister

Schau dir mal die Kanal Konfiguration an. SEND_DELTA_TEMP legt fest ab welcher Änderung eine Info Nachricht an die Zentrale/FHEM gesendet werden soll. Das geht bis runter auf 0,1 Grad. Du musst die wiederholgenauigkeit des sensors im Auge behalten, sonst wird bei jeder Messung die Temperatur auf den Bus geschickt... Bei einem sensor vielleicht ok, bei 10 oder mehr problematisch oder zumindest unnötig..

Ansonsten kann FHEM auch den Kanal abfragen, dann hast du alle 1,2 Sekunden einen neuen Messwert zur Verfügung.

Gruß,
Thomas

a_quadrat

Hi,

die Sendehäufigkeit meine ich gar nicht, das habe ich in der Konfiguration gefunden. Ich meine den Messwert an sich, es kommen bei mir nur auf 0.5 °C gerundete Werte an. Ich habe noch keinen Messwert von z.B. 22.7 °C gesehen.

VG Andreas

loetmeister

Hi,

Ich hatte auch erst gedacht das du nach der Messwert Auflösung fragst.. Aber irgendwie klang das seltsam..  ;)

Die Messwerte werden mit zwei Nachkommastellen übertragen und sollten von FHEM auch so angezeigt werden. Bei mir klappt das..
Wie wird denn bei dir die Temperatur ohne sensor angezeigt?  -273,15 oder anders?

Gruß,
Thomas

a_quadrat

#22
Ja, ohne Sensor wird 273.15 angezeigt. Ich teste Mal einen anderen Sensor, komischerweise steht in der Konfiguration bei Sensor "nicht benutzt". Da sollte doch der Typ drin stehen, oder?

VG Andreas

loetmeister

#23
Hi,

Bzgl. Sensor "nicht benutzt" - schau mal ob deine FHEM hm485 aktuell ist.

Dein sensor stand als 18B20 im log... Der hat zwei Nachkommastellen... Ob das sinnvoll ist lass ich mal so stehen.  ;D

Gruß,
Thomas

a_quadrat


Ich habe die Homematic Komponenten alle in einer CCU und dann über das Modul HMCCU in FHEM integriert.

J, richtig, das ist ein 18B20 Sensor, aber wenn ich das in der config einstelle, dann wird die Errortemp von -273,14 °C angezeigt. Stell ich dann wieder auf " nicht genutzt", wird wieder die korrekte Temperatur  angezeigt - leider nur in 0,5°C Schritten.

VG Andreas


loetmeister

Hallo,

Zur CCU kann ich nichts sagen...

In der Konfiguration kann man bei "onewire type" durch setzen auf REMOVE_SENSOR oder NOT_USED den sensor löschen, d.h. den Speicherplatz wieder frei geben. Beim nächsten Suchen am one-wire bus können dann neu gefundene Sensoren abgespeichert werden. Andere Sensoren bleiben den Kanälen zugeordnet (wenn man mehrere Sensoren hat).
Etwas anderes braucht man bei "onewire type" nicht machen. Der Typ wird automatisch erkannt und in FHEM auch angezeigt.

Gruß,
Thomas

a_quadrat

Hallo Thomas,

ich habe mal unabhängig von CCU und FHEM die Sensorwerte aus dem seriellen Monitor aufgezeichnet und dort werden die Werte auch nur in 0.5 °C Schritten angezeigt/ gesendet.
Hast du noch eine Idee woran das liegen kann?


B: 2A 896
OW sensorSearch
1-Wire device found: 28FFA5695015027E save to EEPROM, @startaddress: 0D
conf_OW addr: 28FFA5695015027E
T: FD:FF:FF:FF:FF:F8:42:00:00:22:12:41:00:97:01:00:01:48:42:57:37:32:39:36:32:39:30:9A:72
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:0A:5A:96:7E
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:0A:5A:96:7E
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:0A:5A:96:7E
channel: 17 sent temp, c°C: 2650 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:09:2E:90:FE
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:09:2E:90:FE
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:09:2E:90:FE
channel: 17 sent temp, c°C: 2350 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!


VG Andreas

loetmeister

Hi,

Kannst du diesen test noch mal wiederholen, mit EXTRA_DEBUG_OUTPUT aktivert? Dammit man sehen kann welche Messwerte vom sensor kommen?

Gruß,
Thomas

a_quadrat

hier mit erweitertem Debug:

B: 2A 896
OW sensorSearch
channel: 0 stored address: FFFFFFFFFFFFFFFF
1-Wire device found: 28FFA5695015027E save to EEPROM, @startaddress: 0D
channel: 0 stored address: 28FFA5695015027E
conf_OW addr: 28FFA5695015027E
T: FD:FF:FF:FF:FF:F8:42:00:00:22:12:41:00:97:01:00:01:48:42:57:37:32:39:36:32:39:30:9A:72
channel: 17 read temp, c°C: 2300
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
T: FD:00:00:00:01:F8:42:00:00:22:06:69:11:08:FC:73:62
channel: 17 sent temp, c°C: 2300 SUCCESS!
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2300
channel: 17 read temp, c°C: 2400
channel: 17 read temp, c°C: 2550
channel: 17 read temp, c°C: 2650
channel: 17 read temp, c°C: 2700
channel: 17 read temp, c°C: 2750
channel: 17 read temp, c°C: 2800
channel: 17 read temp, c°C: 2800
channel: 17 read temp, c°C: 2850
channel: 17 read temp, c°C: 2800
channel: 17 read temp, c°C: 2800
channel: 17 read temp, c°C: 2750
channel: 17 read temp, c°C: 2700
channel: 17 read temp, c°C: 2700
channel: 17 read temp, c°C: 2650
channel: 17 read temp, c°C: 2650
channel: 17 read temp, c°C: 2600
channel: 17 read temp, c°C: 2600
channel: 17 read temp, c°C: 2550
channel: 17 read temp, c°C: 2550


VG Andreas

loetmeister

Hi Andreas,

danke für testen, auch mit FHEM.
Die Ausgabe ist zumindest stimmig... erklären kann ich mir das nicht.
Was man weiter prüfen könnte:
Gruß,
Thomas