Wie steuere ich Elero Rolladen mit FHEM?

Begonnen von martinschm, 05 Oktober 2013, 13:17:24

Vorheriges Thema - Nächstes Thema

HCS

Hi mabula,

über das "Dispatch->Parse" Thema habe ich auch gerade nachgedacht. Gut dass ich noch nichts gemacht habe, wenn Du schon dran bist.
Es wäre sehr sinnvoll, das darüber zu machen, dann wäre das nämlich "FHEM2FHEM raw" fähig und mit clients/matchlist auch erweiterbar.
Ein Beispiel dafür ist z.B. 36_JeeLink -> 36_LaCrosse / 36_Level / 36_EMT7110

Siehe auch hier: http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#Zweistufiges_Modell_f.C3.BCr_Module

Wenn wir es arangiert bekommen, können wir uns auch gerne irgend welche Arbeit aufteilen.
Kannst es mir schicken, wenn ich mal drauf schauen soll.



mabula

HI HCS,

Leider, leider muss ich noch ab und zu arbeiten. ich komme erst Mitte nächster Woche wieder dazu an diesem Thema weiterzuarbeiten. Ich werde mir die Empfehlungen anschauen.

Viele Grüsse
FHEM auf RPI mit FS20, Homematic, ELERO, Zigbee, Eigenbau z.B. Heizölsensor auf Basis Arduino, Anemometer; Sprachsteuerung offline über vosk/Python

HCS

Zitat von: mabula am 15 September 2015, 18:01:53
Leider, leider muss ich noch ab und zu arbeiten.
Oh, ein Leidensgenosse  ;D

Ich habe es dann doch mal auf Clients/MatchList, Dispatch() -> Parse() und IOWrite() umgebaut.
Dann lass mich mal ein Stück weiter machen und wir schauen Mitte nächster Woche wie es weiter geht.
Habe es auch von 99_ auf 36_ geschoben, da 99_ Module automatisch geladen werden, auch wenn es keine defines dafür gibt.

Dirk070

#48
Hallo zusammen,

ich habe in der Weinor Doku zur BiEasy-Box (Link unten) folgendes gelesen: "...Netzwerkkabel zur Verbindung des Centero Server mit einem Heimnetzwerk...".
Weiss jemand, ob das BiEasy-Funksystem von Weinor das hier im Thread beschriebene Centero ist? Der Server (die Box) und der USB-Stick sehen identisch aus und das obige Zitat aus der Weinor-Anleitung deutet auch darauf hin.
Dann wäre das vielleicht der Durchbruch für alle Weinor-Besitzer mit BiConnect Funksystem (868 Mhz).

Hier der Link zur Weinor-Anleitung:
http://www.weinor.com/app-support-de/117443_Haupt-Bedienungsanleitung_BiEasy_Set_D_15112013.pdf

Noch ein Update: Auf den Seiten von der Elero GmbH sind die Fernbedienungen abgebildet. Diese entsprechen exakt den Weinor Pendants.
Link: https://www.elero.de/de/produkte/steuerungen-fuer-rohrantriebe/

Ein Modul für Weinor wäre der Hammer, da wird hier im Forum ja häufig nach gefragt.

Danke für Eure Infos und viele Grüße,
Dirk

HCS

Zumindest steht hier (http://www.mysonnenschutz.de/content/Prospekt%20Funkkomfort.pdf) auf Seite 3: "Zudem ist das WeiTronic System kompatibel zum Elero-Funksystem und dadurch breit einsetzbar"

Die Wahrscheinlichkeit, dass das geht, ist also sehr hoch.
Um es definitiv zu wissen, müsste sich jemand opfern und einen Elero Transmitter Stick beschaffen und schauen, ob er den auf eine Weinor Markise eingelernt bekommt.

Das kann man erst mal noch ohne FHEM testen, ich kann mit dem Elero Transmitter Stick pur an einem 5V USB-Netzteil meine Elero Rollläden mit den Up, Stop und Down Tasten am Transmitter Stick fahren (nachdem ich den Stick auf die Antriebe eingelernt hatte)

Dirk070

Weinor bietet den Stick auch an, mal sehen, wo man den günstiger bekommt  ;)
Die Weinor-Komponenten werden bis Ende Oktober installiert, danach könnte ich testen.

Noch eine Frage, kann man einen solchen USB-Stick auch abseits des FHEM-Servers einbinden?
Hintergrund: Mein FHEM läuft auf einer Syno im Keller. Kann man den Stick auch z.B. an einem Router einstecken und per FHEM darauf zugreifen?

HCS

Zitat von: Dirk070 am 16 September 2015, 12:23:37Noch eine Frage, kann man einen solchen USB-Stick auch abseits des FHEM-Servers einbinden?
Hintergrund: Mein FHEM läuft auf einer Syno im Keller. Kann man den Stick auch z.B. an einem Router einstecken und per FHEM darauf zugreifen
Wenn Du den USB-Port mit einem usb-redirector auf dem FHEM-Rechner verfügbar machen kannst, dann evtl. ja, da gibt es verschiedene Lösungen dafür (aber frag mich nicht nach Details).

Nach dem Umbau, den ich gerade mache, sollte zumindest FHEM2FHEM gehen.

Aber, hat denn die DiskStation keine USP-Ports?

Dirk070

Doch, doch, die Syno hat einen USB-Port.

Aber die Syno steht im Keller, damit auch der Stick (der sendet) und die Markise ist auf der Terrasse.
Problem: Eventuell schafft der Sender es nicht zum Empfänger  ::)

Daher die Überlegung, den Sendestick näher an die Terrasse zu bringen.

HCS

Zitat von: Dirk070 am 18 September 2015, 17:56:27Daher die Überlegung, den Sendestick näher an die Terrasse zu bringen.
Ja, macht wohl nur so rum Sinn  ;D ;D

Ich würde mal abwarten, ob die Reichweite passt. Bei den Rollladenantrieben ist es so, dass die die Telegramme weiterleiten, was die Reichweite erhöht.
Und generell sind die 868 MHz Komponenten nicht schlecht von der Reichweite. Ich funke damit quer durchs Haus, von Keller bis ins DG. Allerdings ohne viel Stahl in den Wänden und Decken.

HCS

#54
Eine Beta zum Testen (erst mal entspannt zurücklehnen und den folgenden Roman in Ruhe lesen ;D) :

Die Module sind nun 36_EleroStick und 36_EleroDrive.

Da der Stick auch Elero Schaltaktoren (z.B. Unio-868) beherscht, kann es dann evtl. parallel zu 36_EleroDrive weitere Module geben, z.B. 36_EleroSwitch.

Auf Dispatch -> Parse / IOWrite umgebaut, somit ist FHEM2FHEM RAW möglich.

Autocreate ist implementiert. Es wird bei Autocreate bewusst kein FileLog angelegt, nur das EleroDrive Device.

Die commandref habe ich auch schon weitestgehend für die beiden Module.

EleroStick ermittelt nun perisodisch den Zustand aller auf dem Stick eingelernten Antriebe und verteilt es per Dispatch auf die EleroDrives.
Dazu kann man zwei Attribute setzen:
ChannelTimeout: Sekunden, wie lange auf eine Antwort eines Kanals gewartet wird, bevor der nächste Kanal abgefragt wird.
Default = 5 Sekunden, kann ich bis auf 2 Sekunden runternehmen. Wenn man den Wert kleiner als die Antwortzeit des langsamsten Antriebs (nicht die Laufzeit, sondern die Zeit, bis er auf eine "Frage" antwortet) wählt, verpasst man dessen Antwort.
Interval: Sekunden, wie lange gewartet wird, bis die Kanäle, nachdem sie abgefragt wurden, erneut abgefragt werden. Default = 60 Sekunden.

Der Ablauf ist folgendermaßen: Bei der Initialisierung oder nach dem Anstecken des Stick an den Server werden die eingelernten Kanäle ermittelt.
Die sieht man dann im internal "channels". Beispiel: "111111111100000" hier sind Kanal 1 bis 10 am Stick eingelernt.
Es werden nacheinander alle eingelernten Kanäle abgefragt. Wärend dessen zeigt das internal "channels" den aktuellen Kanal als "x".
Beispiel: "111x11111100000", bedeutet, dass aktuell Kanal 4 abgefragt wird. Das x wandert also von links nach rechts durch die eingelernten Kanäle.
Die eingelernten Kanäle dürfen auch Lücken aufweisen, was dann z.B. so aussieht: "011001100000000" = eingelernt sind Kanal 2,3,6 und 7
Wenn alle Kanäle abgearbeitet sind, wird "interval" Sekunden gewartet, bis die Kanäle erneut abgefragt werden.

Die readings AnswerMsg, AnswerType, SendMsg, SendType im EleroStick zeigen an, was an Kommunikation zwischen Stick und FHEM läuft und dienen eher zu Überwachung und Fehlersuche.

Die Definition für den EleroStick sieht nun so aus:

define myElero EleroStick /dev/ttyUSB1@38400
attr myElero ChannelTimeout 2
attr myElero Interval 60


Und ein Beispiel für EleroDrive (für den Kanal 2):
define EleroLivingRoomEast EleroDrive 2
attr EleroLivingRoomEast IODev myElero
attr EleroLivingRoomEast cmdIcon moveDown:fts_shutter_down moveUp:fts_shutter_up stop:fts_shutter_manual
attr EleroLivingRoomEast webCmd moveDown:stop:moveUp


Bei der Definition für ein EleroDrive muss man kein IO-Device mehr angeben, das kann es selbst ermitteln und der Timer ist auch entfallen, da ja nun die EleroDrive ihren Status nicht aktiv holen müssen sondern von EleroStick geschickt bekommen.


Der weitere Plan:
Testen
Evtl. nächste Woche offiziell in FHEM reinpacken
EleroStick muss noch lernen, sich mit seiner Abfrageschleife zurückzuhalten, wenn ein EleroDrive etwas sendet (da kann es noch zu Kollisionen kommen)
Ein Attribut in eleroDrive, mit dem man definiert, wie lange dieser Antrieb für eine komplette Fahrt benötigt.
Damit will ich zum einen den Status frühest möglich aktualisieren, nachdem man den Antrieb gefahren hat und auf eine beliebige Position fahren können, z.B 30% auf.
Ein Reading mit der aktuellen Position als numerischen Wert, mit dem man in Frontends wie z.B. SmartVisu einfacher arbeiten kann.

@Technikfreak: vielen Dank nochmal für Deine Vorarbeit, das war sehr hilfreich.

@All: Gefundene Fehler und Ideen sind willkomen.

Nachtrag: falls jemand Lust hat, das demnächst im Wiki zu dokumentieren und dort zu pflegen, darf er sich gerne melden  ;)

chaot4ever

Grosses Lob an Euch alle!
Hab's so getestet wie von HCS vorgeschlagen, und es läuft perfekt. :)

HCS

Zitat von: chaot4ever am 22 September 2015, 10:45:49
Grosses Lob an Euch alle!
Hab's so getestet wie von HCS vorgeschlagen, und es läuft perfekt. :)
Sehr schön!

Hast Du die 36_EleroStick und 36_EleroDrive vom 20. September genommen?

chaot4ever

#57
ja, genau diese, habe auch die Heizungssteuerung von Elero dran angebunden, geht ebenfalls:
top_position ist aus, bottom_position ist ein, dimmstufen werden nicht zurückgemeldet.

HCS

Zitat von: chaot4ever am 22 September 2015, 16:21:27
ja, genau diese, habe auch die Heizungssteuerung von Elero dran angebunden, geht ebenfalls:
top_position ist aus, bottom_position ist ein, dimmstufen werden nicht zurückgemeldet.
Oh... dann hat ja schneller als ich dachte jemand so was im Einsatz.
Welche Typenbezeichnung hatt denn das Ding?
Dann würde sich wohl doch ein 36_EleroSwitch dafür anbieten. Können wir angehen, wenn die Antriebe mal produktiv rund sind.
top_position und bottom_position ist für Aus/Ein dann doch nicht so eingängig  :)

Falls nicht noch etwas gravierendes auftritt, mache ich bis Ende der Woche ernst und packe es in FHEM rein, dass es mit dem Update mitkommt.

Zitat von: chaot4ever am 22 September 2015, 16:21:27...dimmstufen werden nicht zurückgemeldet.
Wie bei den Antrieben. Echt schade, dass die Antriebe keine konkrete Position zurückmelden.

chaot4ever