Rolladensteuerung - welches Protokoll (kabel) bietet günstige Aktoren?

Begonnen von stonev, 28 Oktober 2015, 13:53:30

Vorheriges Thema - Nächstes Thema

stonev

Hab mal 2 Max bestellt und teste mal nen Arduino Mini pro.
Später wird der Mini aber ja auch mit Strom versorgt werden wollen. Dabei stellen sich mir noch konzeptionlee Fragen, zu denen mich Deine / Eure Lösungen interessieren würde:

Busspannung
Der Arduino mag geregelte 5V DC. Bei vielen Arduinos und einer entsprechenden Stromaufnahme in der Summe, dürfte der Innenwiderstand der Leitung (um die 3 Ohm bei 100m) zu einem nicht unerheblichen Spannungsabfall der Busspannung führen. Ich werde es also nicht hinbekommen, 5V zentral auf den Bus zu legen, um damit alle Arduinos versorgen zu können. Zudem müssten ja auch noch einige Relais angesteuert werden....

1. 24V Busspannung
Gleichzeitig möchte ich aber auch die Verlustleistung so gering als möglich halten. HMW legt 24V DC auf den Bus. Das macht der kleine Spannungsregler der Arduinos natürlich nicht mit. In diesem Fall müsste ich jedem Arduino zusätzlich einen Spannungswandler von 24V auf 5V spendieren und je ca. 200mW Verlustleistung zzgl. 100mW Leistungsaufnahme des Arduino (bei angenommenen 20mA) in Kauf nehmen.

2. 9V Busspannung
9V sollten genug Reserven bilden, um Leitungsbedingten Spannungsabfall zu kompensieren. Ein zusätzliche Spannungswandler könnte entfallen, da der Arduino das selber regeln könnte. Allerdings steigt natürlich die Leistungsaufnahme je Arduino von ca. 100mW (5v bei angenommenen 20 mA) auf ca. 180 mW bei 9V.  Das sind immerhin noch 120mW weniger als bei der 24V Version.

Nachteil: Original HMW Geräte könnten so nicht angeschlossen werden. Maximale Anzahl der Arduinos ist natürlich durch den steigenden Spannungsabfall infolge des höheren Stroms begrenzt. Aber für 40 Stk. inkl. Relais sollte das reichen. Mehr würde ich nicht brauchen.

3. Relais mit auf Busspannung legen?
Würdet ihr die Relais (Bei Rolladenmotor ja immerhin 2) mit auf die Busspannung legen (durch Transistor geschaltet)? Oder besser die Relaispule mit 230V betreiben und die mit einem kleinen SolidStateRelais galvanisch getrennt vom Arduino durchschalten lassen? Zweite Variante sollte dem Bus weniger Strom abverlangen - geht aber auch nur dort wo 230V vorhanden sind.



Thorsten Pferdekaemper

Hi,
ich habe (bzw. plane): Busspannung ist 24V, da bei mir vor Allem Original Homematic-Geräte am Bus hängen. Bei denen werden auch die Relais über die 24V versorgt. (Die Relais klackern auch, wenn man keine 230V dranhängt.) Ansonsten habe ich Geräte mit einen DC-DC-Wandler. Diese Teile basieren auf einer Platine von Dirk. (Forums-User "Dirk".) Mein Aktor für Velux-Fenster braucht eine getrennte 5V-Versorgung. Die wird auch für die Relais-Spulen benutzt. Das Netzteil, das die 24V für die Motoren bereitstellt, wird auch den Bus betreiben.
D.h. bei mir wird der Schaltschrank sowieso sowohl 5V als auch 24V haben.
Gruß,
   Thorsten
FUIP

stonev

So die Antwort auf die Frage nach der Busspanung habe ich erst einmal aufgeschoben (den Spannungswandler bei "Dirk" habe ich allerdings nicht gefunden.).
Die Max Bausteine sind da und es kann losgehen. FHEM Server auf dem RPI läuft, der Nano ist auch vorbereitet (als Schalter und Aktor). Jetzt gilt es die beiden per HMW zu verbinden.

Wo finde ich die Library für HMW? Habe in einem Deiner Threads gelesen, dass Du die ins GIT geladen hast. Bin aber zu blöd sie zu finden.
Edit: gefunden  8)
Gibt es vieleicht irgendwo eine Anleitung, wie man dern Arduino dann adressiert und einbindet? Oder nen Beispielsketch?

Thorsten Pferdekaemper

#18
Zitat von: stonev am 08 November 2015, 21:32:10Gibt es vieleicht irgendwo eine Anleitung, wie man dern Arduino dann adressiert und einbindet? Oder nen Beispielsketch?
Schau mal hier: http://www.fhemwiki.de/wiki/HomeMatic_Wired. Unten ist eine Liste von Devices mit Links ins git. Das sind die Beispiele, die es bisher gibt.
Eine richtige Anleitung gibt es nicht.
Die Adressierung funktioniert so wie bei anderen Homematic-Wired-Geräten auch. Das Device plappert irgendwas. In jeder Nachricht ist seine Adresse enthalten. Wenn FHEM die Adresse nicht kennt, dann legt es automatisch das Device an. Dann muss man nur noch umbenennen.
FUIP

stonev

Ich kannte bisher nur die Methode, die Sketsche (*.ino) mit der Arduino Software auf selbigen hochzuladen. Dateien mit *.h bzw.*.cpp kannte ich nur von den Libraries.

Wenn ich jetzt richtig gelesen/verstanden habe, werden die Dateien aus den genannten Beispielen der Prototypen nicht wie ein normaler *.ino Sketch hochgeladen, sondern es wird damit der Bootloader neu geflasht?

Ist dem so? Ich will mich nicht in das Thema einlesen, wenn es nicht so ist.
Ich wäre sehr dankbar, für einen Hinweis, wie die Daten auf den Arduino wandern und welche Hardware ich ggf. dazu benötige. (Ein paar Zauberworte für Google reichen - ich erwarte hier kein HowTo).

Allerdings werde ich meine Erfahrungen als mit HMW unerfahrener Anfänger dokumentieren. Wenn Interesse besteht, würde ich diese (bei Erfolg) als kleine Anleitung zur Verfügung stellen.

Thorsten Pferdekaemper

Hi,

nein, das Zeugs wird ganz normal per Bootloader hochgeladen. Allerdings verwende ich selbst nicht direkt die Arduino-IDE sondern Eclipse mit einem Arduino-Plugin. Es müsste aber auch mit der Arduino-IDE gehen, wenn man das Haupt-CPP in .ino umbenennt und den ganzen anderen Kram als Libraries installiert. Selbst versucht habe ich das allerdings noch nicht.
Blöderweise habe ich momentan recht wenig Zeit, sonst würde ich dafür vielleicht selbst mal ein kleines Tutorial basteln.

Ich würde Dir außerdem empfehlen, zumindest ein Original-HMW-Gerät zu kaufen.

Gruß,
   Thorsten

FUIP

stonev

OK, ich probiere es mal.
Wo wird denn Absenderadresse des Device definiert?

Thorsten Pferdekaemper

Hi,
also in meinen Devices steht die in den obersten 4 Bytes des EEPROM:

     // read device address from EEPROM
     // TODO: Avoid "central" addresses (like 0000...)
     void HMWModule::readAddressFromEEPROM(){
       uint32_t address = 0;

       for(byte i = 0; i < 4; i++){
       address <<= 8;
       address |= EEPROM.read(E2END - 3 + i);
       }
       if(address == 0xFFFFFFFF)
       address = 0x42FFFFFF;
       hmwrs485->setOwnAddress(address);
     }

Man sieht hier auch, dass der Default "42FFFFFF" ist.
Sobald das Device in FHEM erscheint kann man das mit dem Spezialbefehl "@a" ändern. Details stehen hier: http://forum.fhem.de/index.php/topic,22952.msg314365.html#msg314365 (eher am Ende des Posts).
Gruß,
   Thorsten
FUIP

stonev

Könnte noch mal nen Denkanstoß in die richtige Richtung vertragen:

RPI ist ja aufgesetzt und HMW läuft.
Hab den Arduino via Max485 angeschlossen und als Sketch dein Homebrew HMW-LC-B11-DR installiert.
PIN2 (Arduino) auf PIN1 Max (RO)
PIN3 (Arduino) auf PIN4 Max (DI)
PIN4 (Arduino) auf PIN 2 und 3 Max (DE/-RE)

Am Ausgang des Max sind A mit 485- (USB Adapte) und B mit 485+ verbunden.
Strom liegt auch am Max an.

Müsste eigentlich alles so stimmen. D. H. wenn ich jetzt den Server starte und dann den Arduino, müsste doch der Arduino im Webinterface von FHEM aufpoppen und sich als HMW-LC-B11-DR zu erkennen geben?

Tut er aber nicht.

Im Serialmonitor des Arduino steht:
þôòúðÿðüñôôûòÿýûÿýóûþôñúøððð

Wie könnte ich hier auf Fehlersuche gehen?


Noch eine Verständnisfrage:
Ihr baut bei den Homebrew Geräten im Grunde HM Geräte nach. Ist das zwingend notwendig, oder könnte man nicht eigene Geräte entwerfen (nach sehr viel einlesen), welche einfach das HMW Protokoll nutzen, um sich mit Server bzw. anderen HMW Geräten zu verbinden?
Welchen Vorteil hat das Nachbauen der HM Geräte?


Thorsten Pferdekaemper

Hi,
das Ding ist zwar nicht von mir, aber ich versuch's mal.
Zitat von: stonev am 23 November 2015, 20:18:29
PIN2 (Arduino) auf PIN1 Max (RO)
PIN3 (Arduino) auf PIN4 Max (DI)
PIN4 (Arduino) auf PIN 2 und 3 Max (DE/-RE)
Naja, im Readme zum HMW_LC_BL1 im Git steht's etwas anders:

0 - Rx RS485
1 - Tx RS485
2 - RS485 Enable
4 - Status LED
5 - Rx Debug
6 - Tx Debug

Der Kommentar in der HMW-LC-Bl1-DR.cpp ist wahrscheinlich von einem anderen Device kopiert und nicht angepasst worden.

Zitat
Im Serialmonitor des Arduino steht:
þôòúðÿðüñôôûòÿýûÿýóûþôñúøððð
Das liegt wahrscheinlich daran, dass das Device versucht, auf den Pins 0 und 1 zu senden, aber da halt der USB-Port dranhängt und nicht der MAX485.

Zitat
Ihr baut bei den Homebrew Geräten im Grunde HM Geräte nach. Ist das zwingend notwendig, oder könnte man nicht eigene Geräte entwerfen (nach sehr viel einlesen), welche einfach das HMW Protokoll nutzen, um sich mit Server bzw. anderen HMW Geräten zu verbinden?
Ich baue eigentlich keine HMW-Geräte nach. Von mir ist der HBW-1W-T10, den es als Original-Device nicht gibt. Die Devices, die es gibt, die kaufe ich. Nur wenn es kein Device gibt, das tut was ich will, dann baue ich mir etwas.

Zitat
Welchen Vorteil hat das Nachbauen der HM Geräte?
Also erst einmal Erkenntnisgewinn bzw. zum Testen, ob das, was wir da treiben, auch stimmt.
Außerdem vielleicht aus finanziellen Gründen.
Auch interessant ist, dass man ein Gerät baut, das sich zwar als ein Original-HM-Device "ausgibt", aber eine etwas andere Hardware hat. Zum Beispiel könnte man theoretisch ein IO-Device bauen, das 230V an den Eingängen verträgt.

Gruß,
   Thorsten
FUIP