Fernotron Steuer-Code an RolloTube von Fa. Rademacher senden

Begonnen von klausdor, 01 Mai 2013, 13:55:17

Vorheriges Thema - Nächstes Thema

Berny

#45
Hallo,

hier sind die Sketches zum Empfangen und Senden der Fernotron Signale.

Hier der Empfänger Sketch:

http://forum.fhem.de/index.php?action=dlattach;topic=12599.0;attach=36326

Die Verdrahtung des Arduino geht aus dem Sketch hervor. Um die empfangenen Signale darzustellen, muss der serielle Monitor offen sein. Da sich die gesamte Funktionalität in der setup() Methode befindet, wird das ganze auch nur einmal durchlaufen. D.h. um eine neue Signalaufzeichnung zu starten muss der Arduino resettet werden !!
Die für den Sender Sketch relevanten Daten finden sich dann am Ende der Ausgabe im seriellen Monitor.

Der Sender Sketch:

http://forum.fhem.de/index.php?action=dlattach;topic=12599.0;attach=36327

Die Signale zwischen jeweils 2 "dummy-Blöcken" (1,1,1,1,1,1,1) stellen ein komplettes Signal dar. Sie müssen im Sketch in den entsprechenden Array eingefügt werden.

Viel Spaß damit

Bernd

Berny

Des weiteren habe ich auch noch mal mit den Signalen etwas gespielt. Wie ich ja schon weiter oben erwähnt hatte, senden meine beiden Fernotrons etwas unterschiedliche Signale, aber trotzdem lassen sich mit beiden die Rolläden steuern.

Erstaunlicherweise gibt es bei den Signalen recht große Redundanzen.

Wie erwähnt gibt es beim 7. und 8. Block Unterschiede. Wird der komplette 7. oder 8. Block durch ein dummy Signal ersetzt, so funktioniert es immer noch ! Es genügt wenn einer der beiden komplett da ist. Dann darf allerdings an dem anderen Block nichts manipuliert werden, sonst funktioniert es nicht mehr.

Auch die ersten 6 Blöcke die - wie wir jetzt wissen - die FB identifizieren verfügen über große Redundanzen. Werden der  1., 3. und 5. Block durch dummy Signale ersetzt, so geht es auch noch. Dasselbe gilt, wenn man den 2., 4. und 6. Block durch dummy Signale ersetzt.
Ich weiß jetzt nicht, ob beliebige dummy Signale gehen, ich habe einfach mal mit Blöcken mit jeweils gleichen LOW-HIGH Folgen gespielt.

Vielleicht ist das ja noch von Interesse...

hoods

Hallo zusammen,

anbei eine Zusammenfassung und ein paar Erkenntnisse aus meinen div. Tests.
Aktuell habe ich die Signal Blöcke für alle Rolladen erfasst und bereits getestet.

An dieser Stelle vorab vielen Dank an Bernd für die super Unterstützung und die Pionierarbeit!

Zielsetzung:
- Arduino Nano über USB mit RPi (FHEM Server) verbinden, zwecks Steuerung der Rolladen über FHEM


Ausgangssituation:
- Fernotron Rolladensystem von "R", 9 Aktoren sind insgesamt verbaut
- 2411 Fernbedienung zur zentralen Steuerung
- 2430 Funktaster in einigen Zimmern


Eingesetzte HW:
-  Geeetech 433Mhz Superheterodyne RX/TX (http://www.ebay.de/itm/361230434317?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT)
- Günstige 433 Mhz RF Sender Empfänger (http://www.ebay.de/itm/221652085232?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT)
- Arduino NANO Clone
- Arduino UNO Clone


Schritte:
- Arduino IDE auf Mac installieren
- Sketches einbinden und anpassen
    - Tresholds anpassen
    - Analog/Digital Port anpassen


Lessons learned:
- Empfang von Signalen fehlerhaft bei Nutzung der digital Ports in Verbindung mit den Nano clone's -> auf jeden Fall die analogen Ports nutzen
- Trehsholds mussten bei den Nano clone's angepasst werden auf upperThreshold = 80 und lowerThreshold = 40 damit ausreichend signal Blöcke erfasst wurden
- Arduino reset Knopf betätigen und dann mehrfach Knopf (AUF/AB/STOP) auf FB drücken um ausreichend Signale zu erzeugen

Signalblöcke - exemplarisch:
AUF:
6,
3,3,3,3,3,3,1,4,1,2,
6,
3,3,3,3,3,3,1,2,4,1,
5,
4,3,1,4,3,1,4,3,1,2,
5,
4,3,1,4,3,1,4,1,4,1,
6,
3,1,2,4,3,3,3,3,3,1,
6,
3,1,2,4,3,3,3,1,2,2,
6,
1,4,1,4,1,2,4,3,3,1,
6,
1,4,1,4,1,2,4,1,2,2,
6,
3,1,4,1,4,3,3,3,3,1,
6,
3,1,4,1,4,3,3,1,2,2,
5,
2,4,3,1,4,1,4,3,3,1,
5,
2,4,3,1,4,1,4,1,2,2

AB:
6,
3,3,3,3,3,3,1,4,1,2,
6,
3,3,3,3,3,3,1,2,4,1,
5,
4,3,1,4,3,1,4,3,1,2,
5,
4,3,1,4,3,1,4,1,4,1,
6,
3,1,2,4,3,3,3,3,3,1,
6,
3,1,2,4,3,3,3,1,2,2,
6,
1,4,1,2,2,2,4,3,1,2,
6,
1,4,1,2,2,2,4,1,4,1,
5,
4,1,4,1,4,3,3,3,1,2,
5,
4,1,4,1,4,3,3,1,4,1,
6,
3,1,4,3,1,2,4,3,1,2,
6,
3,1,4,3,1,2,4,1,4,1

STOP:
6,
3,3,3,3,3,3,1,4,1,2,
6,
3,3,3,3,3,3,1,2,4,1,
5,
4,3,1,4,3,1,4,3,1,2,
5,
4,3,1,4,3,1,4,1,4,1,
6,
3,1,2,4,3,3,3,3,3,1,
6,
3,1,2,4,3,3,3,1,2,2,
6,
1,4,1,2,2,2,4,3,1,2,
6,
1,4,1,2,2,2,4,1,4,1,
5,
2,4,3,1,4,3,3,3,1,2,
5,
2,4,3,1,4,3,3,1,4,1,
6,
1,4,3,3,1,2,4,3,1,2,
6,
1,4,3,3,1,2,4,1,4,1


Nächste Schritte:
- Evaluierung wie ich das nun in FHEM bekommen könnte ... evt. mit ConfigurableFirmata (RCIN/RCOUT, http://forum.fhem.de/index.php/topic,22320.0.html)?


Gibt es hierzu vielleicht bereits erste Erfahrungen oder Vorschläge?
Ich bin zwar ein Perl Neuling, aber zusammen bekommen wir das sicher hin.

So long, Sven
Odroid C2, FHEM 5.8, HMUSB, Jeelink, Rademacher DuoFern Stick, Benning WR über HTTPMOD

Samsi

#48
Hi,

klasse bei mir Funktioniert das auch. Hab es heute mal getestet.

Ich habe meine Sketch etwas modifiziert, so das er der Steuerbefehl über die Serielle annimmt und ausführt.

Wenn man also jetzt den Code so an die Serielle schickt:

ROL:<code ohne komma etc>  wird der code über das Funkmodul geschickt.

Somit kann man das auch über das EMCD Device in FHEM steuern. Entweder wenn man den Arduino direkt an eine Serielle Schnittstelle hängt, oder aber z.B. das ESP8266 WLAN Modul als WLAN -> Serial Bridge nimmt.




Eine Frage: Ich habe schon einen Arduino mini mit 3.3v bei mir. Kann ich das Funkmodul mit 5v betreiben aber als Data trotzdem nur den 3.3v pegel der minis Benutzen? Kennt sich damit jemand hier aus?


EDIT: Also ich habe es jetzt mit einem 3.3v Arduino Mini probiert, aber leider funktioniert es nicht.  JEtzt weis ich nicht, ob es daran liegt, das der Transmitter mit 3.3v Pegeln nicht zurecht kommt oder ob vielleicht das Timing bei dem 3.3v / 8MHz Arduino das Problem ist. Vielleicht hat da ja jemand noch einen Tipp für mich.


FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Samsi

Hi,

also mit dem 8MHz 3.3V Pro Mini habe ich es nicht zum laufen bekommen. Auch nicht mit LevelConverter von 3.3 auf 5v für den Transmitter.

Meine Lösung ist jetzt ein

Arduino Nano (Mit USB Anschluss)

Nach dem Aufspielen des Sketches kann man den dann einfach z.B. an einen BeagleBone Black anschliessen (Kein Treiber erforderlich)


In FHEM habe ich den dann so eingebunden:

define 433MhzTransmitter ECMD serial /dev/ttyUSB0@115200
attr 433MhzTransmitter classdefs 433MHz_ArduinoClass=/opt/fhem/433MHzArduino.classdef

und

define 433MHz_ArduinoDev ECMDDevice
attr 433MHz_ArduinoDev IODev 433MhzTransmitter
attr 433MHz_ArduinoDev class 433MHz_ArduinoClass

Die /opt/fhem/433MHzArduino.classdef

set RollotubeCode cmd {"ROL:%value\n"}
set RollotubeCode params value




mit

set 433MHz_ArduinoDev RollotubeCode <code>


Code ist der  code OHNE die Kommas in einer Zeile:

6,
3,3,3,3,3,3,1,4,1,2,
6,
3,3,3,3,3,3,1,2,4,1,
5,
4,3,1,4,3,1,4,3,1,2,
5,
4,3,1,4,3,1,4,1,4,1,
6,
3,1,2,4,3,3,3,3,3,1,
6,
3,1,2,4,3,3,3,1,2,2,
6,
1,4,1,4,1,2,4,3,3,1,
6,
1,4,1,4,1,2,4,1,2,2,
6,
3,1,4,1,4,3,3,3,3,1,
6,
3,1,4,1,4,3,3,1,2,2,
5,
2,4,3,1,4,1,4,3,3,1,
5,
2,4,3,1,4,1,4,1,2,2

also

set 433MHz_ArduinoDev RollotubeCode 633333314126333333124154314314312543143141416312433333163124333122614141243316141412412263141433331631414331225243141433152431414122

Anbei noch der modifizierte Sketch

Grüße



FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

homeboy

Hallo zusammen, @Samsi

als absoluter Neuling in FHEM hätte ich da noch einige Fragen zum einbinden der Rolladenfunkmotoren von Rollotube auf 433 Mhz.
Besitze 11 Stück von den Dingern und würde sie gerne über das FHEM steuern.
Habe bisher erfolgreich eine Temperatur Anzeige eingebunden.
Alles läuft über Ubuntu auf einen alten Mac mini.

Kann ich mit einem Cul der auf 433Mz sendet die Motoren ins FHEM einbinden ??


Vielen Dank


Samsi

Nein, auf dem Arduino läuft ja ein Sketch der die Zahlenkombination in ein Funksignal umwandelt.

Theoretisch könne man den Sketch wohl auch modifizieren, das er mit einem C1100 Funkmodul läuft. Dann müsste das (als reines C ohne die Arduino LIbs) in  CULW Firmware integriert werden und wohl auch die FHEM CUL Module angepasst werden, dann könnte es gehen.

Aber ich habe leider keine tieferen Kenntnisse über das Funkmodul c1101 oder die Programmierung von Mikroprozessoren außerhalb der Arduino IDE.

FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

homeboy

Danke dir,
wie gesagt, alles Neuland für mich.
also bräuchte ich ein,
Arduino Nano (Mit USB Anschluss) mini usb.......wie bekomme ich dort den Sketch drauf ?

Das ganze dann mit dem BeagleBone Black betreiben richtig ?

Läuft das ganze dann unter Linux ?


Danke Rainer

Pythonf

Die Arduino IDE gibt es auch für Linux, Im Grunde musst du das ganze dort importieren und dann vorrausichtlich über usb auf deinen Arduino aufspielen. Das flashen des Arduinos ist nicht so herrausfordernd und wenn du alles vor dir liegen hast ist das einfach machbar.

Die Hardware die hier Verwendung wurde auch in diesem Beitrag zum Schalten von IT Funksteckdosen implementiert: http://forum.fhem.de/index.php/topic,22320.195.html
Würde mich nun interessieren ob man die Firmware zum flashen mit der dort modifizierten ConfigurableFirmata vereinen könnte?
Ich frage mich sowieso wieso dieses Modul nicht auf /contrib eingecheckt oder im Wiki veröffentlicht wurde, scheint ein sehr interessantes Modul zu sein.

Bisher ist es "nur" möglich einen Befehl der Handzentrale zu kopieren, oder? Ein Auslesen des Rolladenstatus und bidirektionale Kommunikation ist wahrscheinlich noch weit entfernt wenn überhaupt machbar, oder?
Hab mir die Sende und Empfänger auf ebay bestellt und bin sehr gespannt diese auszutesten.

Beste Grüße
Fabian

Samsi

Zitat von: homeboy am 22 September 2015, 19:08:15

Arduino Nano (Mit USB Anschluss) mini usb.......wie bekomme ich dort den Sketch drauf ?

Das ganze dann mit dem BeagleBone Black betreiben richtig ?

Läuft das ganze dann unter Linux ?



Den Sketch bekommst Du so drauf:

http://www.arduino-tutorial.de/2010/06/arduino-software/


Du brauchst keinen extra Beaglebone, es müsste auch unter jedem anderen Windows, Linux oder Mac gehen wenn der Treiber für den Arduino  USB-Serial chip installiert ist.  Wenn der Arduino an den USB port angestöpselt ist, kann man den als serial device z.b. COM1 oder COM3 oder unter linux als /dev/ttyUSB0@115200 mit fhem öffnen.
Bei den meisten Linux Systemen ist der Treiber schon dabei.




ZitatBisher ist es "nur" möglich einen Befehl der Handzentrale zu kopieren, oder? Ein Auslesen des Rolladenstatus und bidirektionale Kommunikation ist wahrscheinlich noch weit entfernt wenn überhaupt machbar, oder?
Ja, nur kopieren. Auslesen bzw. Bidirektional gibt es bei Fernotron ohnehin nicht.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

homeboy

Danke euch.....

Samsi

Sketch ist drauf
Dier 433er Transmitter hab ich auch.
Aber wie muss ich die am Arduino Nano belegen ?
Brauch ich zwingend 5V oder reicht der usb ?

Grüße

Samsi

Schau noch mal hier der Link:

http://arduinobasics.blogspot.de/2014/06/433-mhz-rf-module-with-arduino-tutorial.html


Nur der Transmitter reicht aber nicht. Erst musst du aber mit dem Receiver die Befehle einlesen.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

hoods

Samsi Du bist mein Retter!

Ich habe seit Tagen versuch den Original Sketch von Benni so anzupassen dass ich nur noch die Zahlenkolonne übergeben muss aber mangels Programmier Kenntnissen kein funktionierende Lösung hinbekommen.

Nun hänge ich nur noch an einer Stelle um die Rolladen komfortabel in FHEM steuern zu können.
ECMD Devices und Dummys für die Rolladen sind angelegt. Der notify soll die Aktion auslösen und (in der finalen Version) einen einzelnen oder alle Rolladen rauf/runter fahren.

define Rollo_EG_Esszimmer dummy
attr Rollo_EG_Esszimmer eventMap 1A:Auf 1Z:Zu 1S:Stop
attr Rollo_EG_Esszimmer webCmd Auf:Stop:Zu
attr Rollo_EG_Esszimmer devStateIcon Auf:fts_shutter_10:Stop Stop:fts_shutter_50:Zu Zu:fts_shutter_100:Auf
attr Rollo_EG_Esszimmer room Rollaeden


define Rolloreaktion notify Rollo.* {\
my $r1 = Value("Rollo_EG_Esszimmer");;\
my $a1 = Value("0000000");;\
if ($r1 eq "Auf")\
   { fhem ("set Rollo_Esszimmer RollotubeCod e".$a1);;\
   };;\
}


Allerdings scheite ich an der folgenden Zeile im notify (das o.g. notify ist eine vereinfachte Form um den Fehler einzugrenzen):
fhem ("set Rollo_Esszimmer RollotubeCode ".$a1)

Im Log file erscheint folgende Meldung:
2015.11.21 10:58:43 5: Triggering Rolloreaktion
2015.11.21 10:58:43 4: Rolloreaktion exec { my $r1 = Value("Rollo_EG_Esszimmer");; my $a1 = Value("0000000");; if ($r1 eq "Auf")    { fhem ("set Rollo_Esszimmer RollotubeCode ".$a1) };; }
2015.11.21 10:58:43 3: set Rollo_Esszimmer RollotubeCode  : Wrong number of parameters.
2015.11.21 10:58:43 3: Rolloreaktion return value: Wrong number of parameters.


Wenn ich die Variable $a1 ersetze durch den tatsächlichen Steuercode für den Rolladen, fährt diese auch sauber Auf/Ab sobald ich den Button Auf/Ab benutze.

Ich habe bereits ein paar Optionen durchprobiert leider ohne Erfolg:
fhem "set Rollo_Esszimmer RollotubeCode .$a1"
fhem "set Rollo_Esszimmer RollotubeCode $a1"
fhem "set Rollo_Esszimmer RollotubeCode" \"$a1\"
fhem "set Rollo_Esszimmer RollotubeCode '$a1'"


Warum wird die Variable nicht wie gewünscht substituiert?

Viele Grüße,
Sven


Odroid C2, FHEM 5.8, HMUSB, Jeelink, Rademacher DuoFern Stick, Benning WR über HTTPMOD

fhemfreund

Hänge mich mal hier an, da lange Zeit für mich die Rademacher Fernotron Integration in FHEM auch ein Thema war. Die oftmals genannte Alternative via separatem Empfänger eine Ansteuerung zu realisieren hat ein paar gravierende Nachteile. In meinem Fall sind die Rolladen Funk-Rohrmotoren leider *nicht* via getrennter Auf/Zu Steuerleitung anzusteuern, sondern nur mit einer Leitung via Auf/Zu/Auf usw. Dies ist immer dann ungünstig, wenn alle Rolläden gemeinsam geschlossen werden sollen, einzelne aber gerade im Auf Modus stehen. Daher klingen die genannten Ansätze via Funk Direkt-Ansteuerung aus den vorherigen Posts sehr interessant  :)

Bisher habe ich die Ansteuerung mit einem selbst gebauten 'Gateway' und einem 'angeschlossenen' Handsender gelöst (siehe Bilder). Dabei werden die FHEM Steuercodes von einem HM 8 Kanal Empfänger empfangen. Je Kanal habe ich 3 Steuersequenzen (Auf / Stop / Zu) durch unterschiedlich lange Impulslängen realisiert, sodass pro Rolladen nur ein Kanal benötigt wird. Die Impulslängen werden durch einen ATTiny 84 ausgwertet und per Optokoppler an den Rademacher Sender weitergegeben. Der HM Empfänger + ATtiny fallen bei Inaktivität in den Schlafmodus, sodass das ganze ca. 2 Jahre mit Batterien betrieben werden kann.

Andreas

Martin-72

Hallo Zusammen,

wenn ich die Posts zu diesem Thema richtig deute, gibt es immer (noch) keine Lösung, wie ich mit FHEM auf RasPi meine Fernotron 2411 umgehe und die Rademacher Rolladenmotoren steuer, oder?

:'(

Vielen Dank

Martin

PS: Ein paar Details zu meinem System.
FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway