Homematic Wired - Homebrew Devices

Begonnen von Thorsten Pferdekaemper, 27 April 2014, 00:13:17

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
das nächste Update für's 1-Wire Device ist im git. Ich bin nicht ganz so weit gekommen, wie ich wollte, da ich mich ein paar Mal um entschieden habe, wie das aussehen sollte.

Es ist jetzt vorgesehen, für die Sensorkanäle Einstellungen machen zu können (siehe Screenshot im Anhang). Man kann schon was einstellen und es wird auch von der CCU schon ins EEPROM des Device geschrieben, aber es bewirkt noch nichts. Das soll es bewirken:

  • SEND_DELTA_TEMP: Falls gesetzt, schickt das Device automatisch eine Message raus, wenn sich die Temperatur um diesen Betrag geändert hat.
  • SEND_MIN_INTERVAL: Auch wenn sich die Temperatur schneller ändert, ist das die minimale Zeit zwischen zwei Nachrichten.
  • SEND_MAX_INTERVAL: Auch wenn sich die Temperatur langsamer ändert oder SEND_DELTA_TEMP nicht verwendet wird, wird nach höchstens dieser Zeit eine Nachricht geschickt.
  • ONEWIRE_TYPE: Hier wird der Typ des 1Wire-Sensors angezeigt. Das wird v.A. nützlich sein, um zu sehen, ob ein Sensor am Kanal hängt.
Man kann ONEWIRE_TYPE auch ändern. Das ist natürlich nur bedingt sinnvoll.
@Dirk: Kann man sowas irgendwie auf Read-Only setzen?

Die zweite Sache ist ein "Factory Reset":
Voraussetzung ist, dass an Pin 5 ein Taster (gegen Masse, ist mit INPUT_PULLUP definiert) hängt und an Pin 13 eine LED (der Arduino-Uno hat da sowieso eine). Ich habe so ungefähr den Factory-Reset vom HMW-LC-Sw2-DR nachprogrammiert. Also:

  • Die Taste drücken, bis die LED schnell blinkt (ca. 5 Sekunden), dann loslassen.
  • Dann die Taste nochmal drücken, bis die LED langsam blinkt (ca. 3 Sekunden).
  • Beim nächsten Loslassen wird das ganze EEPROM mit 0xFF überschrieben.
Wenn man nach dem ersten Loslassen länger als 10 Sekunden wartet oder beim zweiten Mal nur kurz drückt, dann passiert nichts.
Das mit dem 0xFF muss ich nochmal überdenken, da die Defaults dann nicht überall richtig gesetzt werden. (Vor dem Schreiben lese ich jedes Byte, nur wenn es nicht sowieso 0xFF ist wird geschrieben.)

Gruß,
   Thorsten
FUIP

Dirk

Hi Thorsten,

Du bist echt schnell.
Ich hoffe ich schaffe es am Wochenende hier auch mit zu machen.

Immerhin sind die neuen Platinen vom Sensorboard inzwischen gekommen.
Diese Sehen ganz gut aus:
http://forum.fhem.de/index.php/topic,20620.msg176142.html#msg176142

Ich mache am WE hier noch ein paar Tests damit.
Um die 1-Wire Sensoren da drauf zu bekommen, muss man lediglich auf die beiden Pinreihen Stecker- oder Buchsenleisten anbringen, dann kann ein Breakoutboard für 1-Wire oder was auch immer huckepack auf die Platine gesteckt werden.

ZitatKann man sowas irgendwie auf Read-Only setzen?
Ich meine schon. Muss ich mir am WE mal mit ansehen.

Gruß
Dirk

Thorsten Pferdekaemper

Zitat von: Dirk am 12 Juni 2014, 09:18:12
Du bist echt schnell.
Naja, ich habe bisher ein paar wichtige Sachen vom Protokoll einfach ignoriert. Das Modul wartet z.B. nicht auf einen freien Bus...

Zitat
Um die 1-Wire Sensoren da drauf zu bekommen, muss man lediglich auf die beiden Pinreihen Stecker- oder Buchsenleisten anbringen, dann kann ein Breakoutboard für 1-Wire oder was auch immer huckepack auf die Platine gesteckt werden.
Ich denke, das könnte ich für den HWB-1WIRE-TMP10 prototypenmäßig hinbekommen. Man braucht ja im Prinzip nur eine dreipolige Buchse für den 1-Wire-Bus. Ach ja: Hat die Platine überhaupt +5V oder reichen für 1-Wire auch 3,3V? Ansonsten braucht's doch etwas mehr.
Gruß,
   Thorsten
FUIP

Dirk

ZitatAch ja: Hat die Platine überhaupt +5V
Der RS485-Teil hat einen kleinen Schaltregler an Board der einen recht weiten Eingangsspannungsbereich von 6,5 V bis 30 V entgegennimmt und für den LT1785 5 V zur Verfügung stellt. Die 5 V können dann auch für andere Sensoren benutzt werden.
Dahinter ist noch ein kleiner Liniarregler der aus den 5 V 3,3 V für die restlichen Komponenten zur Verfügung stellt.

Der 1-Wire Part sollte trotzdem aus den 3,3 V Versorgt werden, weil sonst ggf. noch ein Pegelwandler notwendig ist.
Wenn keine weiteren 3,3 V Komponenten wie Sensoren verbaut sind, kann man den 3,3 V Spannungswandler auch weglassen und über eine Lötbrücke die Spannungsversorgung vom AVR auch auf 5 V umstellen. Somit ist man hier in der Spannungsversorgung recht flexibel.

Gruß
Dirk

Thorsten Pferdekaemper

Zitat von: Dirk am 12 Juni 2014, 15:36:07Der 1-Wire Part sollte trotzdem aus den 3,3 V Versorgt werden, weil sonst ggf. noch ein Pegelwandler notwendig ist.
Ah, klar. Hatte ich nicht bedacht, wenn man die Dinger mit 5V antreibt, dann liefern sie auch 5V. Wenn für 1Wire aber auch 3,3V reicht, dann ist ja erstmal gut.

Kannst Du auf die RS485-Platinen auch wieder einen Arduino-Kompatiblen Bootloader brennen? Später können wir das ja ändern, aber momentan wäre das das einfachste.

Gruß,
   Thorsten
FUIP

Dirk

Zitat von: Thorsten Pferdekaemper am 13 Juni 2014, 14:18:14
Kannst Du auf die RS485-Platinen auch wieder einen Arduino-Kompatiblen Bootloader brennen? Später können wir das ja ändern, aber momentan wäre das das einfachste.
Ja, hier ist im Moment der Selbe drauf wie bei der Funkversion.

Gruß
Dirk

Thorsten Pferdekaemper

Hi,
der neuste Update im git enthält folgende Neuerungen:

  • Die Einstellungen funktionieren tatsächlich. D.h. die Temperaturen werden so gesendet, wie dort definiert.
  • Die 1Wire-Adressen werden im EEPROM gespeichert. Bei jedem Start/Reset (oder Factory-Reset) sucht das Gerät nach neuen 1Wire-Sensoren und sortiert sie in freie Channels ein. Schon belegte Channels werden nicht überschrieben, auch wenn der Sensor nicht mehr gefunden wird. Dieses Vorgehen soll die Zuordnung der Channels zu Sensoren stabil halten, auch wenn mal ein Kabel bricht oder so.
    Falls man einen kaputten Sensor austauschen will, dann kann man in der CCU das Feld "ONEWIRE_TYPE" auf "Nicht benutzt" setzen. Dann den Sensor austauschen und Reset drücken. Der neue Sensor wird dann dem jetzt freien Channel zugeordnet.
  • Die Announce-Message wird jetzt nicht mehr andauernd geschickt, sondern nur noch einmal beim Reset und wenn man kurz auf die Taste drückt. Das ist sozusagen der "Pairing-Modus". (Discovery geht immer noch nicht.)
Gruß,
    Thorsten
FUIP

Dirk

Hallo,

ich habe mal Thorsten seine Version jetzt auch auf den RS485-Fähigen Wettersensor-Platine (http://forum.fhem.de/index.php/topic,20620.0.html) "portiert".
Das war auch ein guter Test den RS485-Teil der Platine zu testen.

Auf dem Bildchen sind zwei 1-Wire Temperatur-Sensoren an der Platine.

Gruß
Dirk

Franz74

Hallo Dirk,

Super Arbeit!  Bis wann gibt es eine käufliche Version davon?

LG

Franz

Dirk

Hi Franz,

ich kann die ein Platine bestücken.
Ich vermute ohne die "internen" Sensoren?

Gruß
Dirk

Thorsten Pferdekaemper

Hi Dirk,
ja, genau so habe ich mir den Anschluss an den 1-Wire-Bus vorgestellt...
Was für einen Anschluss (Stecker?) sollen wir dafür zur Verfügung stellen? Eine kleine Klinkenbuchse?
Gruß,
  Thorsten
FUIP

Mr. P

Zitat von: Thorsten Pferdekaemper am 16 Juni 2014, 09:56:51
ja, genau so habe ich mir den Anschluss an den 1-Wire-Bus vorgestellt...
Was für einen Anschluss (Stecker?) sollen wir dafür zur Verfügung stellen? Eine kleine Klinkenbuchse?
Ich glaub, das wird schwierig. Wenn ich da an Diskussionen denke, die hier bezüglich 1-wire Bus und welchen Anschluss man nehmen soll, geführt wurden, wird es immer 2-3 Meinungen geben. ;-)
Die einen wollen eine Klinkenbuchse, die anderen Schraubklemmen, und dann gibt es bestimmt noch welche, die ganz was anderes wollen. ;-)
Greetz,
   Mr. P

Thorsten Pferdekaemper

Zitat von: Mr. P am 16 Juni 2014, 10:38:54
Ich glaub, das wird schwierig. Wenn ich da an Diskussionen denke, die hier bezüglich 1-wire Bus und welchen Anschluss man nehmen soll, geführt wurden, wird es immer 2-3 Meinungen geben. ;-)
Die einen wollen eine Klinkenbuchse, die anderen Schraubklemmen, und dann gibt es bestimmt noch welche, die ganz was anderes wollen. ;-)
Klar, dass man das nicht jedem Recht machen kann. Man kann aber mal fragen, vielleicht gibt es ja eine Tendenz.
Ich hab jetzt mal ein bisschen rumgesucht. Es scheint so zu sein, dass RJ11/12 bzw. RJ45 so eine Art Standard ist.
FUIP

Mr. P

Zitat von: Thorsten Pferdekaemper am 16 Juni 2014, 17:35:25
Klar, dass man das nicht jedem Recht machen kann. Man kann aber mal fragen, vielleicht gibt es ja eine Tendenz.
Ich hab jetzt mal ein bisschen rumgesucht. Es scheint so zu sein, dass RJ11/12 bzw. RJ45 so eine Art Standard ist.
*lol* - wo wir auch schon beim Thema wären.
Ich zB mag die RJxy dafür überhaupt nicht. Dem würde ich Schraubklemmen immer noch vorziehen, denn die Crimperei von diesen Steckern ist immer eine Frickelei, man muss (je nach Kabel) gute Nerven mitbringen und natürlich hat nicht ein jeder entsprechendes Crimpequipment daheim. Bei Klinkensteckern wird einfach angelötet, bei Schraubklemmen überhaupt nur festgezogen und fertig! :-)
Greetz,
   Mr. P

Thorsten Pferdekaemper

Hi,
ich habe endlich mal wieder Zeit und Muße gefunden und mich wieder um die Firmware zum HMW-1-Wire gekümmert.
Eine dicker Brocken sind die E/e-Messages, die beim Pairing zwischen Zentrale und Device ausgetauscht werden. Wenn da was nicht stimmt, dann übernimmt die Zentrale die Einstellungen des Geräts nicht korrekt. Das war beim HMW-1Wire-Device auch so und sollte jetzt besser klappen. (Update von gerade eben im Git.)
Gruß,
   Thorsten
FUIP