HBW-1W-T10 auf Arduino...

Begonnen von joachimm, 14 November 2018, 18:49:28

Vorheriges Thema - Nächstes Thema

holzwurm83

Hallo Thomas,

danke für dein Feedback. Habe mit jetzt einen auf einem Ardoino Nano zusammengebaut. Hängt auch schon am Bus und wurde soweit auch gleich erkannt.
Ich habe jetzt auch einen DS18B20 aufgelegt, allerdings funktioniert das erst mal nicht. Es wird weiterhin -273,15 angezeigt. Ich bin mir allerdings nicht sicher ob ich den richtig aufgelegt habe. Ich habe vom Sensor:

Gelb ->D10-OneWire
Rot -> auf 5V
Schwarz -> GND
Zwischen D10-OneWire und 5V habe ich noch einen Widerstand gesteckt (habe ich auch ohne probiert)

- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

holzwurm83

#31
OK, habe das mit dem Reset überlesen! Jetzt wurde der erste Sensor auch erkannt.

Wie ist das mit dem onewire_type? Wird der automatisch erkannt, oder muss ich den eintragen? Da ist bei mir nichts passiert.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

holzwurm83

So, jetzt hängt auch schon ein zweiter Sensor dran. Aber muss ich immer nur einen Sensor dran hängen zum anlehnen? Mit mehreren gleichzeitig funktioniert das nicht?!
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Thorsten Pferdekaemper

Zitat von: holzwurm83 am 01 September 2019, 12:29:48
Wie ist das mit dem onewire_type? Wird der automatisch erkannt, oder muss ich den eintragen? Da ist bei mir nichts passiert.
Also eigentlich sollte da automatisch etwas drinstehen. Man muss nur was eintragen, wenn man z.B. einen Sensor ersetzen will. (Siehe auch https://wiki.fhem.de/wiki/HBW-1W-T10).
Womöglich funktioniert das nach den Änderungen von Thomas etwas anders.

Zitat von: holzwurm83 am 01 September 2019, 13:45:08
So, jetzt hängt auch schon ein zweiter Sensor dran. Aber muss ich immer nur einen Sensor dran hängen zum anlehnen? Mit mehreren gleichzeitig funktioniert das nicht?!
Ich weiß zwar nicht genau, was Du meinst, aber es sollte alles auch mit mehreren Sensoren funktionieren. Du musst halt nach Änderungen an der Hardware immer mindestens einen Reset machen, so dass die Firmware neu startet. (Allerdings sollte man sowieso nicht daran rumbasteln, wenn die Versorgungsspannung anliegt. Also sollte sich das mit dem Reset sowieso erübrigen.)

Gruß,
   Thorsten
FUIP

loetmeister

Hallo,

in onewire_type wird aktuell der binäre Wert des Sensortyps angezeigt. (Bei einem "DS18B20" sollte es "40" sein). Diesen Teil der XML hatte ich wieder wie im Original abgeändert.
https://github.com/loetmeister/HBWired/blob/c398f0ec88392444303ab82f798e427de849f463/HBW-1W-T10/hbw_1w_t10_v1.xml#L122

Die schönere Version, mit einer Liste um direkt den namen anzuzeigen (z.B. DS18B20) funktioniert in der Darstellung in FHEM, um aber Einstellungen erfolgreich im Kanal ändern zu können müsstest du eine Datei in FHEM ändern...  ::) https://github.com/kc-GitHub/FHEM-HM485/issues/64


Bzgl. dem 1-Wire Bus. Es sollten alle Sensoren auf einmal erkannt werden können.
Wenn du einen zweiten Sensor hinzufügst, der nicht erkannt wird, liefert dir der erste Sensor noch werte, oder "verschwindet" der ebenfalls? (Liefert -273,14 °C?) Wenn der bus komplette zusammenbricht, vermute ich der Pullup Widerstand hat nicht den richtigen Wert? (Zwischen D10-OneWire und 5V) - ich habe 4,7k Ohm genommen.
Auch brauchst du nur zwei Anschlüsse:
Gelb -> D10-OneWire
Schwarz -> GND

Gruß,
Thomas

holzwurm83

Danke für euer Feedback.

Zitatin onewire_type wird aktuell der binäre Wert des Sensortyps angezeigt.
Das hat jetzt dann doch funktioniert und wurde auch erkannt.

ZitatBzgl. dem 1-Wire Bus. Es sollten alle Sensoren auf einmal erkannt werden können.
Das hat bei mir nicht funktioniert. Ich habe immer einen Sensor dran gehängt, einen Reset gemacht und in Fhem ein get config, da sonnst -273,15 angezeigt wurde. Vielleicht hätte ich noch länger warten müssen, aber ich habe auch noch einen HBW-1W-T10 von Dirk mit Thorstens Software. Da hatte ich die Schwierigkeiten nicht.

ZitatWenn du einen zweiten Sensor hinzufügst, der nicht erkannt wird, liefert dir der erste Sensor noch werte, oder "verschwindet" der ebenfalls?
Der erste war weiterhin da mit korrekten Werten, aber der zweite hat weiterhin das gleiche angezeigt wie vorher.

ZitatWenn der bus komplette zusammenbricht, vermute ich der Pullup Widerstand hat nicht den richtigen Wert? (Zwischen D10-OneWire und 5V) - ich habe 4,7k Ohm genommen
Ich hatte testweise einen und zwei davon, wie von dir beschrieben dran hängen.

ZitatAuch brauchst du nur zwei Anschlüsse:
Gelb -> D10-OneWire
Schwarz -> GND
Das hier habe ich noch nicht verstanden. Was mache ich den mit dem roten Kabel? Einfan nicht anschließen? Aktuell habe ich eine Leitung mit ca. 30 Metern liegen. Dort habe ich dann jeweils Parallel an verschiedenen Stellen die Sensoren aufgelegt, da ja eine Sternförmiges verlegen max. nur 2,5-3m haben darf.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

loetmeister

Hi,

Zitat von: holzwurm83 am 03 September 2019, 20:58:14
Das hat bei mir nicht funktioniert. Ich habe immer einen Sensor dran gehängt, einen Reset gemacht und in Fhem ein get config, da sonnst -273,15 angezeigt wurde. Vielleicht hätte ich noch länger warten müssen, aber ich habe auch noch einen HBW-1W-T10 von Dirk mit Thorstens Software. Da hatte ich die Schwierigkeiten nicht.
Das kann ich mir grade nicht Erklären. :)
Kannst du einmal das #define DEBUG_OUTPUT in "HBWOneWireTempSensors.h" setzen (einkommentieren) und die Software auf den Arduino laden? Dann solltest du im Seriellen Monitor sehen welche Sensoren bereits gepeichert wurden, welche Speicherplätze noch frei sind, etc.
Dann auch mal ein "Reset" machen - über den Config Taster, um alle Sensoren zu löschen. Beim anschließenden Neustart sollten alle wieder erkannt werden...

Das einzige was anders zur Software von Thorsten ist, dass nicht nach neuen Sensoren gesucht wird wenn man den Config Taster kurz drück (wenn auch die Announce Nachricht Versendet wird). Dafür wird nach Sensoren gesucht, wenn du die Konfiguration eines beliebigen Kanals Abspeicherst. Damit könntest du im laufenden Betrieb Sensoren hinzufügen. Wie Thorsten aber angemerkt hat, macht man das am besten im stromlosen Zustand. :)

Zitat
Das hier habe ich noch nicht verstanden. Was mache ich den mit dem roten Kabel? Einfan nicht anschließen? Aktuell habe ich eine Leitung mit ca. 30 Metern liegen. Dort habe ich dann jeweils Parallel an verschiedenen Stellen die Sensoren aufgelegt, da ja eine Sternförmiges verlegen max. nur 2,5-3m haben darf.
Ja, einfach Rot frei lassen. Der Arduino ist für parasitäre Spannungsversorgung konfiguriert.
Die maximalen Längen sind mir nicht bekannt, ich hatte aber mit ca. 20 Meter Koax-Kabel keine Probleme. Generell sollte es ein Bus sein, wie lang die Stichleitungen sein können muss man wohl testen.

Gruß,
Thomas

holzwurm83

ZitatDann solltest du im Seriellen Monitor sehen welche Sensoren bereits gepeichert wurden, welche Speicherplätze noch frei sind, etc.
Sorry, was ich nicht klar geschrieben hatte, ist das ich jeden Sensor einzeln angelernt hatte von den in Summe sieben Stück habe und danach alle auf einmal angeschlossen habe. Es wurde alles gespeichert und funktioniert jetzt auch. Lediglich das anlernen war ein Gefummel. Ich habe noch neue Sensoren bestellt, mit denen ich das noch mal testen kann.

ZitatJa, einfach Rot frei lassen.
Ok, das werde ich auf jeden Fall einmal testen. War mir so nicht klar.

ZitatDie maximalen Längen sind mir nicht bekannt,
Ist hier beschrieben. Ganz unten.
https://wiki.fhem.de/wiki/1-Wire_Busverlegung

- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

loetmeister

Zitat von: holzwurm83 am 03 September 2019, 22:06:15
Sorry, was ich nicht klar geschrieben hatte, ist das ich jeden Sensor einzeln angelernt hatte von den in Summe sieben Stück habe und danach alle auf einmal angeschlossen habe. Es wurde alles gespeichert und funktioniert jetzt auch. Lediglich das anlernen war ein Gefummel. Ich habe noch neue Sensoren bestellt, mit denen ich das noch mal testen kann.
Ok, das hatte ich aber auch so verstanden. Mein Beileid das es 7 Stück waren... :)
Mich würde interessieren wie die Debug Ausgabe aussieht, warum nach dem ersten Sensor die Suche abbricht...

Gruß,
Thomas

holzwurm83

Hallo Thomas,

Ja, einfach Rot frei lassen. Der Arduino ist für parasitäre Spannungsversorgung konfiguriert.
Ich habe das gestern einmal umgeklemmt, allerdings hatte ich damit große Problem. Manche Sensoren haben zum Teil 85 Grad angezeigt und ander -273,1. Ich habe jetzt alles wieder mit drei Adern angeschlossen. Die Datenleitung muss ich wie auf dem Bild Durchschleifen, da es sonnst nicht funktioniert.
Das soll wohl auch bei den DS18B20 mit einer parasitären Spannungsversorgung sehr schwierig sein, da die Verkabelung in diesem Zusammenhang sehr anfällig ist.

Aktuell habe ich noch ein Problem mit dem Pull-up Widerstand. Ich habe einen 4,7K aufgelegt, was allerdings nicht funktioniert. Stecke ich einen zweiten parallel dazu funktioniert es wieder. Ich habe dann mal beide gemessen und habe eine 2,5K aufgelegt wonach der Bus wieder zusammengebrochen ist.
Hast du eine Idee wie ich das austarieren kann?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

loetmeister

Hallo,

habe mir noch mal die Application note 4255 und die Datenblätter des DS1820 und DS18B20 angeschaut.
Im parasitären Modus sollte Vdd (rot, +) mit Masse verbunden werden. Ich hatte sie immer offen gelassen und keine Probleme, kann natürlich mit den Leitungslängen zusammen wirken.

Ansonsten sind DS1820 und DS18B20 gleich, was die max. Stromaufnahme betrifft: 1 bis 1,5mA "active". Der Application note zu folge, müsste der Pullup dann im Bereich von 1,5k bis 2k Ohm liegen. (siehe Anhang)
Wenn es bei dir mit 2 parallelen 4,7K geht (=2,35k Ohm) und mit 2,5k Ohm nicht mehr, dann hast du ja schon den passenden Wert gefunden. Ich würde dann sogar noch auf 2,2k oder 2k Ohm gehen.

Was aber alles nicht zu deinem Setup passt: Diese Pullup Details gelten meiner Ansicht nach nur für den parasitären Modus. Wenn du eine eigene Spannungsversorgung hast, dann wäre der Pullup 4,7k.
In diesem Fall sollte aber auch im HBW-1W-T10 der parasitären Modus deaktiviert werden.

Zeile 127 in HBWOneWireTempSensors.cpp, write(0x44, 1) in write(0x44, 0) ändern:
ow->write(0x44, 1);        // start conversion, with parasite power on at the end


PS: Interssante Info im DS18B20 Datenblatt:
ZitatThe use of parasite power is not recommended for temperatures above +100°C since the DS18B20 may not be able to sustain communications due to the higher leakage currents that can exist at these temperatures. For applications in which such temperatures are likely, it is strongly recommended that the DS18B20 be powered by an external power supply.

Gruß,
Thomas

Tom Major

Es gibt übrigens auch DS18B20 Versionen die von Hause aus nur den parasitären Modus können (DS18B20-PAR) dort ist der Vcc Pin not connected.
Haben glaub ich den Buchstaben P hinten.
Meine Erfahrungen früher als ich einige DS18x20 im Betrieb hatte, der parasitäre Modus war bei Leitungslängen von einigen m nicht sauber hinzubekommen, deswegen bin ich irgendwann auf 3 Leitungen zurückgegangen.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

loetmeister

Hallo,

hab gestern mal 10 DS18B20 angeschlossen... auf einem Steckbrett, daher keine Probleme mit der Leitungslänge. Im parasitären Modus wollten sie aber nicht... keine Sensoren gefunden. Mit 5V Versorgungsspannung und 4,7k ohm Pullup wurden aber alle 10 beim Start des HBW-1W-T10 erkannt und im EEPROM gespeichert.


Gruß,
Thomas

holzwurm83

Hallo Thomas,

ich hatte letzte Woche (nach dem ich in der Woche davor einen Nano in den Himmel geschickt hatte und neue bestellen musste) die Debug Ausgabe einmal ausprobiert und es wurden dann auch alle Sensoren erkannt.

Ich habe auch meine Verkabelung noch mal sauber angeklemmt und Parasitär angeschlossen was nun doch funktioniert. Allerdings habe ich die Datenleitung nicht im Stern angeschlossen.

Ich muss allerdings ein geschirmtes Kabel verwenden und den Schirm auf GND legen, da ich sonnst Störungen auf dem Bus habe.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Thorsten Pferdekaemper

...was lange währt.
Zitat von: loetmeister am 02 Mai 2019, 20:51:14
habe das Problem bzgl. der Umwandlung, wie vorgeschlagen, mal hier festgehalten:
EEPROM erhält falsche Werte, da conversion "to_device" nicht beachtet wird #64
https://github.com/kc-GitHub/FHEM-HM485/issues/64
Das ist jetzt erledigt, so wie vorgeschlagen. Ich dachte erst, dass das Probleme machen könnte, aber die einzige Stelle bei den Standard-Devices, wo das vorkommt, ist bei den Peering-Parametern. Dort wird aber sowieso eine andere Routine verwendet (eigentlich blöd...), die es schon länger richtig macht.
Ich hatte mich doch etwas gewundert, warum das bei mir funktioniert hat.

Zitat
Habe noch ein weiteres Issue erstellt:
Speichern von "NOT_USED" in der Konfiguration nicht möglich #65
https://github.com/kc-GitHub/FHEM-HM485/issues/65
Das muss ich leider momentan noch in der Pipeline lassen und mir nochmal genauer anschauen.

Gruß,
   Thorsten
FUIP