Fernotron Steuer-Code an RolloTube von Fa. Rademacher senden

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

Vorheriges Thema - Nächstes Thema

Martin-72

Hallo Zusammen,

hat sich jemand eigentlich mal die Mühe gemacht, eine Schritt für Schritt Anleitung zu erstellen?

Ich habe jetzt den Arduino Nano, sie Arduino-Software auf meinem Win7-PC, die Sketches aus Post 45 geladen und auf den Nano gepackt. Wenn ich versuche die Daten zu sniffen, bekomme ich bei allen Rolladen den selben Code.

Mein Code sieht so aus: (so habe ich ihn dann auch in den Sender-Sketch aus Post 45 eingefügt.
int Stop[]={
// example for a signal code
-1,-1,-1,-1,-1,-1,-1,-1,-1,
};

int Up[]={
// paste signal code here
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
};

int Down[]={
// paste signal code here
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,
6,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,

};


Wie gehe ich jetzt weiter vor? Kann ich mit dem Arduino Nano am PC die Rollläden steuern und zu prüfen, ob es so geklappt hat?

Ist es normal, dass die Codes unterschiedlich lang sind?

Vielen Dank

Martin
FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway

Pythonf

Du musst auf dem Arduino den sniffersketch hochladen und dann über den Serielen Monitor am PC mit angeschlossenem Arduino die Daten deiner Fernbedinung sniffen. Also den Empfänger am Arduino anschließen (Pin steht im Sketch). Wenn beim ersten mal kein sinnvoller Code gefunden wird, drückst du die Resettaste am Aruduino und im Serielen Monitor siehst du, dass er wieder mit sniffen angefängt.
Den Code fügst du dann im Sender Sketch ein. Der eine Sendersketch funktioniert durch ein signal auf den bestimmten Ports (das ist der, denn du unten aufgelistet hast). Wenn du das über FHEM machen willst musst du den anderen Sketch nehmen und in FHEM wie beschrieben über ECMD definieren. Dann kannst du in FHEM die ganzen gesnifften Codes als Befehle einfügen.
Beste Grüße
Fabian

Martin-72

Hallo Fabian,

vielen Dank für Deine Hilfe. Aber es zeugt sich mal wieder, wie wenig Ahnung ich habe von all den Dingen...  :-[

Du schreibst
Zitat von: Pythonf am 16 Januar 2016, 12:08:20
Du musst auf dem Arduino den sniffersketch hochladen und dann über den Serielen Monitor am PC mit angeschlossenem Arduino die Daten deiner Fernbedinung sniffen.
Das habe ich gemacht. Und es scheint - so glaubte ich bisher - zu klappen. Dem nun folgenden Satz kann ich aber nicht mehr folgen:
Zitat von: Pythonf am 16 Januar 2016, 12:08:20
Also den Empfänger am Arduino anschließen (Pin steht im Sketch).
Ähm. Wie jetzt. Ich habe - auf Anregung dieses Threads - folgendes Gerät gekauft:
Brauche ich jetzt noch einen Sender/Empfänger? Wenn ja, wieso habe ich dann das Gefühl Daten protokolliert zu bekommen??? Wenn ich da noch was kaufen müsste, wäre es kein Beinbruch, sondern nur schade, weil ich dann wieder 7 Wochen warten muss... Und Geduld gehört eher nicht zu meinen Stärken...  ;D

Zitat von: Pythonf am 16 Januar 2016, 12:08:20
Den Code fügst du dann im Sender Sketch ein. Der eine Sendersketch funktioniert durch ein signal auf den bestimmten Ports (das ist der, denn du unten aufgelistet hast).
Und wie gebe ich das Signal auf diesen Port? Ist es der "Com4", den ich in der Arduino-Software hinterlegt habe?


Zitat von: Pythonf am 16 Januar 2016, 12:08:20
Wenn du das über FHEM machen willst musst du den anderen Sketch nehmen und in FHEM wie beschrieben über ECMD definieren. Dann kannst du in FHEM die ganzen gesnifften Codes als Befehle einfügen.
Will ich. Ich habe mir aber angewöhnt, nicht zu viele Schritte auf einmal zu machen. Deshalb wollte ich das ganze erst mal testen, bevor ich es in FHEM einbinde und noch eine Variable geändert habe...  8)

Vielen Dank für Deine Eure Hilfen.

Martin

FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway

Pythonf

#78
Okay: Ich Versuch mich mal in einer Schritt für Schritt anleitung:
- Die "* Fernotron2411RFSniffer.ino" in der Arduino IDE laden
- Einen Empfänger, ich empfehle den "Geeetech 433Mhz Superheterodyne" aber auch günstige 433MHz Empfänger tun es mit dem Data pin an A0 des Arduinos anschließen. Power und Ground ebenso. Wichtig! Der Empfänger benötigt eine Antenne, ein einfacher Draht mit der Länge 17.3cm sollte es tun.
- Den Sketch auf den Arduino aufspielen (Sketch hochladen findet man online Anleitungen).
- Den Seriellen Monitor unter Werkzeuge aufrufen (Arduino noch immer mit dem PC verbunden lassen)
- Solange nun im Seriellen Monitor neue Zahlen angezeigt werden die zu sniffende Tasta auf der Fernbedinung betätigen - gerne mehr als einmal. Wenn das Sniffen vorbei ist, werden die Ergebnisse augelistet. Hierbei stellen "Die Signale zwischen jeweils 2 "dummy-Blöcken" (1,1,1,1,1,1,1) ein komplettes Signal dar". Wenn das nicht passt, einfach am Arduino auf reset drücken und es sollte erneut gesnifft werden. Am besten Alle Ergebnisse die sinnvoll scheinen Aufschreiben.
- Wenn alle gewollten Signale aufgezeichnet sind auf den Arduino den Sketch "Fernotron.ino " aufspielen und mit dem FHEM-Server per USB verbinden.
Dann wie folgt vorgehen:
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
Code: [Auswählen]

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

- Über das Attribut eventMap können die Befehle quasi gespeichert werden Bsp: /RollotubeCode 264566454...:Schließen/RollotubeCode 546564646... :Oeffnen/


Die günstigeren aber nicht ganz so guten Empfänger gibt es sogar mit Prime versand "http://www.amazon.de/Aukru-Superregeneration-433M-receiver-module/dp/B00R2U8OEU/ref=sr_1_1?ie=UTF8&qid=1452949056&sr=8-1&keywords=433+mhz+empf%C3%A4nger" - Die Sender funktionieren gut, die Empfänger sind über sehr kurze Distanz brauchbar, aber nicht zu vergleichen mit dem Geeetech. Das du Daten angezeigt bekommst liegt daran, dass auch ohne angeschlossene Antenne Fehlerdaten vom Arduino übermittelt werden, aber das sind wahrscheinlich lediglich 0 und 1 und die bringen dich nicht weiter.

Alternativ zu der oben beschriebenen Methode soll es auch direkt am Rasperry Pi GPIO gehn "https://github.com/dasoho/fernotron-control" was ich selbst allerdings nicht ausgetestet habe, da ich immernoch auf eine Implementierung des Sendesketches im Signalduino hoffe.
##### Andere Frage #######
Hat es jemand geschafft, die Signale mit einem Signalduino zu senden?

Martin-72

Zitat von: Pythonf am 16 Januar 2016, 13:57:14
einen Empfänger, ich empfehle den "Geeetech 433Mhz Superheterodyne"

Hallo Fabian,

vielen  Dank. Damit ich nicht wieder falsch oder unvollständig kaufe.  ;D Meinst Du dieses Teil hier? Geeetech 433Mhz Superheterodyne 3400RF Transmitter and Receiver Link Kit Arduino Dazu machen ja vermutlich auch Kabel sinn, oder? Diese wären doch die richtigen, nicht wahr? FamilyMall(TM)40x 10 female-female Steckbrücken Stecker-/Buchse Drahtbrücken jumper wires

Vielen Dank.

Martin
FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway

jonathan

#80
Hallo Fabian ich habe mich jetzt hier mal eingeklinkt weil ich gerade darüber sitze.
Im ser. Monitor finde ich folgendes: (kann man damit was anfangen?)
=====================
Signals for Transmitter:

....
--------------------------------------

jonathan

Empfängt der Arduino die Signale gleich am Anfang?
Bei
=====================
Read duration: 619824 microseconds
=====================
LOW,HIGH
255,0
255,0...

oder erst bei
=====================
Signals for Transmitter:

Ich habe 10x gedrückt, aber einen Dummy Block kann ich nicht finden. Leider.

Pythonf

Der Arduino empfängt die Signale am Anfang und gibt sie am Ende unterhalb von "=====================
Signals for Transmitter: " aus. Für mich sehen die Signale nicht verwendbar aus und ich würde es weiter versuchen.

Die Jumperkabel passen gut für einen Arduino Nano, wenn man nicht viel löten will. Ja, das ist der Empfänger, den ich meine.

jonathan

Danke erst mal. Dann übe ich noch weiter. Weiß aber jetzt an welcher Stelle es darauf ankommt.

jonathan

Achso, bei der Zeile
- Die Zeile "#define rfReceivePin A0 " durch entfernen des # "aktivieren" und...
dann kommt ein Fehler beim Kompilieren? Unverändert klappt der Upload. VG

Pythonf

Mein Fehler -die Zeile so lassen wie sie ist, wenn man A0 verwenden will - das #define muss so bleiben

hoods

@jonathan, welchen analog Port verwendest Du nun am Arduino? Hast Du den Port im Sketch angepasst? Wie sind die Thresholds aktuell konfiguriert im Sketch? Ich habe auch eine Weile gebraucht bis ich brauchbare Signalblöcke empfangen habe.

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

jonathan

Hi, ich habe den Analog Port 0 verwendet und konnte mit etlichen "üben" jetzt alle Codes (von einem Rolladen) lesen und bin der Meinung dass sie gut aussehen. Klasse! Fehler war die Antenne am Empfänger. Bin jetzt dabei die Codes in den Sende-Sketch zu implantieren. Doch da gibt es Fehler beim Kompilieren.

jonathan

#88
Hi, Komisch in Zeile 36 schimpft er mit mir. Fernotron2411SignalGenerator:36: error: expected '}' before numeric constant

3,3,3,3,3,3,1,4,1,2,

^

Fernotron2411SignalGenerator:36: error: expected ',' or ';' before numeric constant
-------------------
Sketch:
int Stop[]={
// example for a signal code  cjr 17.01.2016
6
3,3,3,3,3,3,1,4,1,2,
6

};

int Up[]={


jonathan

#89
OK, da fehlt schon mal das Komma nach den einstelligen Parametern, die hatte mir Excel verschluckt. ;-)