Arduino mit CC1101-Shield als CUL-Ersatz?

Begonnen von Christian., 25 Mai 2014, 18:29:36

Vorheriges Thema - Nächstes Thema

Christian.

Hallo zusammen,

ich betreibe einen Arduino mit ConfigurableFirmata. An diesem Arduino hängt u.a. ein günstiger 433 MHz-Empfänger, der Signale von Funksteckdosen empfängt (Details hier). Ich habe weder einen CUL noch ein RFXTRX.

Vor kurzem habe ich mir ein paar Rauchmelder gekauft, Flamingo FA20RF. Diese Rauchmelder können sich im Falle eines Alarms gegenseitig über das 433 MHz-Band Bescheid geben. Ich habe im Wiki gelesen, dass sie von RFXTRX unterstützt werden. Das Protokoll scheint nicht besonders kompliziert zu sein; im pilight-Forum habe ich einige Details gefunden, im Nodo-Projekt scheint es komplett beschrieben zu sein. Ich hatte deshalb die Hoffnung, dass ich es auch mit meinem Arduino dekodieren kann.

Ich habe mit RCSwitch versucht, die Signale eines Rauchmelders mitzuschneiden, empfange aber nur Rauschen. Beim Schalten einer Funksteckdose erhielt ich ein deutlich erkennbares Signal. Ich bin kein Experte, was Funk angeht, habe aber mal gelesen, dass man einen CUL parametrisieren kann, sodass er für bestimmte Signale optimiert ist. Meinen günstigen Empfänger kann ich nicht parametrisieren; ich vermute, dass er einfach physikalisch nicht in der Lage ist, die Signale der Rauchmelder zu empfangen. Sicher bin ich nicht.

Ich habe hier im Forum gelesen, dass es ein CC1101-Shield für den Arduino gibt. Ich habe auch eins mit der Bezeichnung RF1100SE für 7€ gefunden. Jetzt frage ich mich, ob ich meinen Arduino mit diesem Shield zu einem CUL machen kann. Ich erhoffe mir davon, die Rauchmelder (und später evtl. weitere Geräte) empfangen zu können, ohne einen CUL oder ein RFXTRX kaufen zu müssen.

Kann mir jemand mal erklären, ob das möglich ist? Norbert hatte hier schonmal einige Erläuterungen gemacht, ich blicke aber nicht durch.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

Christian.

Ich habe weiter nach Möglichkeiten recherchiert, einen Arduino mit einem CC1101-Modul zu kombinieren. Ich glaube nun gelernt zu haben:

  • Der CUL ist im Kern auch nur ein ATmega-Prozessor mit einem CC1101 und einem USB-Anschluss, technisch einem Arduino mit CC1101 also eigentlich sehr ähnlich.
  • Der CC1101 läuft auf 3.3V, der Arduino liefert aber 5V. Man müsste also entweder die Spannung mit einer eigenen Schaltung wandeln oder ein Shield verwenden, dass die Wandlung übernimmt. So ein Shield habe ich nicht gefunden.
  • Es gibt bereits fertige Arduino/CC1101-Kombinationen: PanStamp und RFBee. Beide sind primär dafür entwickelt worden, zwei Arduinos miteinander kommunizieren zu lassen.
  • Damit sich der CC1101 in FHEM wie ein CUL verhält, müsste die Firmware culfw auf den Arduino geflasht werden. Damit wäre er für keine anderen Aufgaben mehr frei. Alternativ gäbe es die Möglichkeit, einen Adapter zwischen Firmata und culfw zu entwickeln; das erscheint mir aber sehr aufwändig, daher unrealistisch.
Es scheint also keine einfache Plug-and-Play-Lösung zu geben. Die einzige verbleibende Option ist also ein dedizierter Arduino mit culfw, also z.B. ein panStamp oder RFBee. Diesen müsste man mit culfw flashen und könnte das dann auf einen Arduino "aufsatteln". Dieser könnte mit ConfigurableFirmata arbeiten, bräuchte dann ein CUL-Firmata-Feature, um den CUL-Arduino zu nutzen.

Ich bin dankbar, falls das jemand bestätigen oder korrigieren kann.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

justme1968

nur schnell ein paar unsortierte anmerkungen:

- das problem das du pro protokoll einen eigenen empfänger brauchst hast du in den aller meisten fällen
- es gibt arduinos die direkt auch mit 3.3v laufen. z.b. panstamp
- neben dem cc1101 funkmodul gibt es z.b. auch noch das RF12B modul (und noch weitere)
- je nach protokoll und und vorarbeiten/verfügbaren libs ist eventuell ein anderes funkmodul besser für dein protokoll
- RF12B ist z.b. auf einem jeelink/jeenode
- rfbee ist als funk modul für einen anderen microcontoller gedacht und wird (normalerweise?) nicht alleine eingesetzt
- ein panstamp ist 'komplett' und kann eigenständig betrieben werden. mit einem pansstick z.b. auch als rf modem an fhem
- ich verstehe nicht ganz warum du noch firmata mit ins spiel bringst
- du musst bei den protokollen unterscheiden zwischen dem 'logischen' protokoll das du auf anwendungsweite verwendest und dem tatsächlichen protokoll das über die rf schnittstelle geht. die abbildung kann beliebig komplex sein und fehlerkorrektur, verschlüsselung und noch alles mögliche andere enthalten

wenn du das ganze machst um spass dran zu haben und basteln möchtest hast du viele viele möglichkeiten. wenn du etwas suchst das out of the box geht und du 'nur' den rfxtrx sparen möchtest schätzt du den wert deiner zeit nicht richtig ein. siehe auch hier: http://forum.fhem.de/index.php/topic,10858.msg104930.html#msg104930

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ntruchsess

Zitat von: justme1968 am 28 Mai 2014, 11:19:17
- das problem das du pro protokoll einen eigenen empfänger brauchst hast du in den aller meisten fällen
[...]
- ich verstehe nicht ganz warum du noch firmata mit ins spiel bringst

Mit ConfigurableFirmata kombiniert würde Sinn machen, wenn man den Arduino kombiniert als GPIO und RF-link benutzen will. Sonst wäre es sicher einfacher auf CULFW zu setzen, die CUL-module in FHEM kooperieren ja nicht mit FRM und ich hab sicher keine Zeit (und auch nicht die Notwendigkeit) das aktuell selber anzugehen.
Funktechnisch sinnvolle Positionierung mit Verbindung zum FHEM über Ethernet wäre eine andere sinnvolle Anwendung (aber auch nur, wenn man die IO-Pins des Arduinos mitnutzen will, sonst -> CULFW)

Gruß,

Norbert
while (!asleep()) {sheep++};

Christian.

Der Eigenbau eines CUL ist im Forum und im Wiki beschrieben.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee