Wer noch einen 433 Mhz Sender benötigt, ich habe noch welche da! email genügt
Update 19.08.2015 Blogbeitrag erweitert
Ich hatte mir neulich einen 20 LED-langen LED-Stripe mit dem Controller WD2812B gekauft, welcher bisher seit langem unangetastet bei mir in der Schublade lag. In den Weihnachtsfeiertagen habe ich ihn mal wieder herausgeholt und überlegt, was man damit wohl machen könnte. Die LED-Stripes sind heutzutage nicht mehr teuer und ein wenig Hardware, wie ein Arduino Nano, hat heutzutage wohl jeder Bastler in der Schublade. Wer noch keinen hat, kurze Anfrage unten in den Kommentaren. Ich habe noch einige in meiner Testumgebung. Also habe ich gestern ein kurzes Youtube-Video gedreht, herausgekommen ist sowas:
Das Video wurde, wie die ganze Schaltung mal eben fix entwickelt aus vorherigen Projekten, also betrachtet es nicht als filmisches Meisterwerk.
Die Idee: Man nehme einen WS2812-LED-Stripe, beschalte ihn mit einem Arduino-Nano und einem 433-MHz-Empfänger und betanke den Nano mit einem Sketch. Der Sketch empfängt vom Fhem aus codierte Statusdaten, welche, je nach Gusto, eine LED in verschiedenen Farben leuchten läßt. Wichtig: Fhem sendet zum LED-Stripe einen nicht- Intertechno-Code aus, damit dieser nicht woanders aufschlägt und etwaige Steckdosen ein- oder ausschaltet.
Die Möglichkeiten sind ziemlich cool:
- Tür-Fenster-Kontakt, welcher den Status des Fensters anzeigt (grün oder aus = zu / offen = rot). Ich nehme die Tür-Fenster-Kontakte von mySensors (-> Blogbeitrag). Es gehen aber auch andere, wie z.B. Funk-Tür-Fensterkontakt FHT80TF-2
- Heute Mülltonnen herausstellen: Aus / Keine Mülltonne / Rot für rausstellen usw. Daten kommen vom Google Kalender (einmal eingeben und man hat das ganze Jahr Ruhe :-9). Die Idee ist 100% geklaut und kam aus dem Fhem-Forum.
- Temperatur-Warnungen: Wenn es draußen friert, dann die blaue LED aufleuchten lassen. Daten kommen von den Lacrosse-Temperatursensoren.
- Steckdosen monitoren …
Die Kreativität liegt bei Euch.
Arduino Sketch: Ich habe mal meinen Quick&Dirty Sketch hier gepostet. Es werden die Libraries von RCSwitch.h und FastLED.h benötigt. Die FastLED-Library befindet sich hier, die RC-Switch-Library befindet sich hier. In Github beide Libraries mit Download ZIP in einem Ordner Eurer Wahl speichern (meistens Download). Dann in der Arduino GUI als Administrator mit Sketch -> Include Library -> Add Zip-Library die Libraries in die Arduino Gui importieren. Anschließend den Test-Programm-Code in einem neuen Arduino Projekt einkopieren. Dann kompilieren.
Die Zahlen werden von Fhem gesendet (z. B. send 10001 1 0) und dezimal im Sketch empfangen. Das kann man leicht über den Serial-Monitor vom Arduino sehen. Die empfangene Zahl wird dann der LED zugeordnet und festgelegt, ob, und welcher Farbe sie leuchtet.
#include "FastLED.h"
#define DATA_PIN 3
#define CLOCK_PIN 13
#define NUM_LEDS 20
CRGB leds[NUM_LEDS];
#include <RCSwitch.h;
RCSwitch mySwitch = RCSwitch();
unsigned long Pir1 = 283924; // blaue Tonne Papiertonne schwarz myLEDSend("11010",4,0);
unsigned long Pir2 = 283732; // blaue Tonne Papiertonne rot heute myLEDSend("11010",3,0);
unsigned long Pir3 = 1049937; // gelbe Mülltonne rot myLEDSend("10111",1,1);
unsigned long Pir4 = 1049940; // gelbe Mülltonne aus myLEDSend("10111",1,0);
unsigned long Pir5 = 1381649; // offen Entertainment-Room
unsigned long Pir6 = 1381652; // zu Entertainmaent-Room
unsigned long TFK1 = 1381460; //offen test TFK
unsigned long TFK2 = 1381457; // zu Test-TFK
unsigned long TFK3 = 1381700; // offen TFK buero
unsigned long TFK4 = 1381697; // zu TFK buero
unsigned long TFK5 = 1316164; // temperaturen
unsigned long TFK6 = 1316161; // temperaturen
unsigned long TFK7 = 1115473; // graue Tonne morgen myLEDSend("10101",1,1);
unsigned long TFK8 = 1119313; // graue Tonne > paar tage led aus {myLEDSend("10101",3,1)};
unsigned long TFK9 = 1380689; // biomüll braune Mülltonne AUS {myLEDSend("10001",2,1)};
unsigned long TFK10= 1380692; // biomüll braune Mülltonne ROT {myLEDSend("10001",2,0)};
unsigned long TFK11 = 1328468; // strom < 0.5 grün
unsigned long TFK12= 1328465; // strom > 0.5 rot
unsigned long TFK13 = 1331540; // Kamera 1 Alarm aktiv ROT
unsigned long TFK14= 1331537; // Kamera 1 Alarm deaktiv GRÜN
unsigned long TFK15 =1118545; // graue Tonne - Restmüll heute {myLEDSend("10101",2,1)};
unsigned long TFK16= 283729; // blaue Tonne - Paiertonne Tag zuvor GELB myLEDSend("11010",3,1);
unsigned long TFK17= 1053009; // gelbe Tonne - Tag zuvor GELB myLEDSend("10111",2,1);
unsigned long TFK18= 283972; // braune Tonne - Tag zuvor GELB myLEDSend("11010",5,0);
unsigned long FB1T1on=263505;
unsigned long FB1T1off=263508;
unsigned long FB1T2on=266577;
unsigned long FB1T2off=266580;
unsigned long FB1T3on=267345;
unsigned long FB1T3off=267348;
unsigned long FB1T4on=267537;
unsigned long FB1T4off=267540;
int high_or_low;
int pin_selected;
int verification_number;
void setup() {
Serial.begin(115200);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
// testLED();
}
void loop() {
if (mySwitch.available()) { //If a message is sended with RF Code
unsigned long value = mySwitch.getReceivedValue(); // Copy the value
Serial.println(value);
if (value == Pir1)
{
leds[10] = CRGB::Black;
FastLED.show();
}
if (value == Pir2)
{
leds[10] = CRGB::Red;
FastLED.show();
}
if (value == Pir3)
{
leds[9] = CRGB::Red;
FastLED.show();
}
if (value == Pir4)
{
leds[9] = CRGB::Black;
FastLED.show();
}
if (value == Pir5)
{
leds[1] = CRGB::Green;
FastLED.show();
}
if (value == Pir6)
{
leds[1] = CRGB::Red;
FastLED.show();
}
if (value == TFK1)
{
leds[3] = CRGB::Red;
FastLED.show();
}
if (value == TFK2)
{
leds[3] = CRGB::Green;
FastLED.show();
}
if (value == TFK3)
{
leds[2] = CRGB::Red;
FastLED.show();
}
if (value == TFK4)
{
leds[2] = CRGB::Green;
FastLED.show();
}
if (value == TFK5)
{
leds[11] = CRGB::Blue;
FastLED.show();
}
if (value == TFK6)
{
leds[11] = CRGB::Green;
FastLED.show();
}
if (value == TFK7)
{
leds[7] = CRGB::Orange;
FastLED.show();
}
if (value == TFK8)
{
leds[7] = CRGB::Black;
FastLED.show();
}
if (value == TFK9)
{
leds[8] = CRGB::Black;
FastLED.show();
}
if (value == TFK10)
{
leds[8] = CRGB::Red;
FastLED.show();
}
if (value == TFK11)
{
leds[12] = CRGB::Green;
FastLED.show();
}
if (value == TFK12)
{
leds[12] = CRGB::Red;
FastLED.show();
}
if (value == TFK13)
{
leds[5] = CRGB::Red;
FastLED.show();
}
if (value == TFK14)
{
leds[5] = CRGB::Green;
FastLED.show();
}
if (value == TFK15)
{
leds[7] = CRGB::Red;
FastLED.show();
}
if (value == TFK16)
{
leds[10] = CRGB::Yellow;
FastLED.show();
}
if (value == TFK17)
{
leds[9] = CRGB::Yellow;
FastLED.show();
}
if (value == TFK18)
{
leds[8] = CRGB::Yellow;
FastLED.show();
}
}
}
Fhem-Scripte – eine Auswahl
Anzeigen kann man mit dieser Strategie fast alles. Ich habe am Raspberry Pi einen 433 MHz Sender, mit dem ich Codes zum Rahmen schicke. Es muss sich dabei nicht um genormte Codes handeln. Ich versende absichtlich Codes, die nicht mit einer Baumarkt-Fernbedienung kompatibel sind.
Beispiel – Strom-LED: Leuchtet Grün, wenn wenig Strom derzeitig verbraucht wird, leuchtet Rot, wenn viel Strom verbraucht wird. Ich greife hier die Daten am ESA 2000 -Modul ab, Reading actual.
define Stromverbrauch_LED notify esa2000WZ_43CB:actual.* { myLEDSend("10010",1,$EVTPART1 < 0.5?0:1) }
Den Sende-Code habe ich in einer separaten Datei abgelegt, nennt sich 99_FhemUtils.pm
sub myLEDSend($$$) {
my ($dev,$id,$value) = @_;
my $cmd = "send $dev $id $value";
system( "$cmd;$cmd;$cmd" );
return undef;
}
In diesem Beispiel leuchtet die grüne LED auf dem Bilderrahmen (Strom), wenn 0.5 Ticks verbraucht werden, Rot wenn > 0.5 Ticks verbraucht werden. Der Wert kann beliebig in den Einstellungen von Fhem verändert werden und benötigt keine Aktualisierung des Arduino-Sketches.
Warning vor niedrigen Temperaturen: Hier leuchtet die blaue LED auf dem Bilderrahmen wenn die Temperatur < 5 Grad beträgt, Grün wenn sie über 5 Grad ist. Der Temperatur-Wert kann beliebt in Fhem verändert werden und benötigt keine Aktualisierung des Arduino-Sketches.
define Temperaturwarnung_LED notify CUL_WS_1:temperature.* { myLEDSend("10011",5,$EVTPART1 < 5.0?0:1) }
Tür-Fensterkontakte mit MySensors und FHT80TS-2: Hier leuchtet die rote LED, wenn das Fenster geöffnet ist, grün bei geschlossenen Fenster.
define Fenster1_LED notify Fenster_1:tripped3.* { myLEDSend("10001",3,$EVTPART1 == 1?0:1) }
define Fenster0_LED notify Fenster_0:tripped4.* { myLEDSend("10001",4,$EVTPART1 == 1?0:1) }
define Fenster2_LED notify TFK_Buero:Window.* { myLEDSend("10001",5,$EVTPART1 eq "Open"?0:1) }
Die Scripte sind zu 100% aus dem Fhem-Forum geklaut.
Update: Müllabfuhr mit dem neuen ABFALL-Modul von Fhem-Forum User uniqueck (-> Link zum Fhem-Forum):
Müllabfuhr -> Beispiel gelbe Tonne:
define Gelb_LED notify myAbfall:Abfall_gelb_tage.* {\
if ((ReadingsVal("myAbfall", "Abfall_gelb_tage", "99")) == 1) {\
myLEDSend("10111",2,1,"LEDgelberSack",1);;\
} elsif ((ReadingsVal("myAbfall", "Abfall_gelb_tage", "99")) == 0) {\
myLEDSend("10111",1,1,"LEDgelberSack",0);;\
} else {\
myLEDSend("10111",1,0,"LEDgelberSack",99);;\
}\
}\
Vielen Dank an Stromer-12, Justme1968 und UniCheck für die Hilfe.
Benötigte Bauteile:
- IKEA-Bilderrahmen
- Arduino-Nano, kaufen bei amazon.de: Arduino Nano, Schaltbild
- 433 MHz Superhet-Empfänger (-> Blogbeitrag) oder das Set bei amazon.de: INHDBOX Geeetech 433Mhz Superheterodyne 3400RF Transmitter and Receiver Link Kit Arduino
- 5 V Netzteil, z. B. dieses amazon.de:
Hama Reiseladegerät Mini USB, 1A - Fhem-Hausautomationsserver mit 433 Mhz-Sendemöglichkeit
- 20 LED-Stripe mit WD2812B-Controller, z.b. WS2812B bei eBay
- Heisklebe-Pistole und Kabel
- Preis ungefähr 28 Euro und viel Spaß dabei!
Das könnte Euch auch interessieren:
#include
Hallo Robin,
Habe heute irgendwas am Sketch verstellt darauf hin ging meine Anzeige plötzlich nicht mehr. Habe deinen Sketch kopiert und es kommt eine Fehlermeldung #include <RCSwitch.h; müsste es nicht #include heißen ? Aber auch das hat nicht geklappt, im seriellen Monitor sehe ich das alles empfangen wird nur die led leuchtet nicht. Hast du eine Idee woran es liegen könnte?
Mit freundlichen Grüßen
Chris
Hallo Marc,
ich habe den 433 MHz-Sender am Raspi angeschlossen und die „Codes“ schubse ich mit einem Send-Befehl (mehr Infos hier: http://forum.fhem.de/index.php/topic,12443.0.html).
Du kannst gerne einen Gastbeitrag bei mir schreiben, Thema sollten wir aber vorher abstimmen.
LG
/robin
Hallo Robin , super Blog! 🙂 sehr viele Interessante Projekte
Ich wollte mir auch das Statusdisplay nachbauen ( Hardware und Arduino code habe ich angepasst ).
Jetzt müsste ich nur noch wissen wo ich den 433Mhz Sender anschließe am Raspberry oder an meinem Arduino nano der am usb port zum Raspberry hängt und auch den 433Mhz Empfänger hat?
Und welche skripte ich noch brauche für fhem ?
Kleine Anregung an dich deine Beiträge sind super was die Hardware an geht und die Ideen leider zeigst du nie wirklich wie die Schritt für Schritt Vorgehensweise in fhem dazu aussieht. Ich denke einige Leute so wie ich sind relativ fit auf der Hardwareseite aber fhem Neulinge und daher würden wir uns über mehr how to im fhem Bereich freuen. evtl. in deinen nächsten Videos und Blog beitragen 🙂
Gruß Marc
Hallo Fhem Einsteiger,
myLedSend kopieren wird nicht funktionieren. Diese Prozedure sendet einen Code an den Bilderrahmen im abgewandelten Intertechno Format. Was du benötigst, sofern du mit den nRF24L01+ Modulen arbeitest, ist ein Sende-Code den der nRF sendet und wieder vom anderen nrf (beim Bilderrahmen) wieder empfangen wird. Also quasi so send (31200000). Und auf der Empfängerseite müsste dieser dekodiert werden und die LEDs in der entsprechenden Farbe aufleuchten lassen. Also hier im Beispiel die ersten 5 LEDs aus, nr 6 dann in 1, nr. 7 in gelb und nr. 8 dann grün.
Schreibe mir mal, wenn du einen Lösung gefunden hast. Das würde bestimmt andere hier auch interessieren.
LG
/robin
Hallo Robin,
Glückwunsch zum Einjährigen deines Projekts!
Ich bin gerade an der Planung des Nachbaus, allerdings werde ich NRF24L01 Funkmodule verwenden, da diese ein Handshake ermöglichen.
Dadurch ändert sich natürlich einiges im Code, sollte aber nicht zu kompliziert werden.
Was mir eher Kopfzerbrechen macht, da habe ich noch zu wenig Erfahrung mit Fhem, kann ich die Senderoutine von dir (myLedSend) einfach kopieren? Wo werden die Daten dieser Funktion ausgegeben wenn ich zwei Geräte per USB angeschlossen habe.
Ich glaube ich irgendwas Grundlegendes von Fhem noch nicht verstanden, wie Fhem Daten gezielt an ein Sensor/Gerät rausschicken kann…
Grüße
Hallo Dirk,
ich habe die LEDs nicht über eine separate Stromversorgung angeschlossen, sondern direkt an den Arduino-Nano 5V Port, siehe Foto im Blog.
Sollte man eigentlicht nicht machen, jedoch habe ich mir gedacht, ich lasse die LEDs bei mir nur aufleuchten wenn es sinnvoll ist. Das heißt bei mir leuchten höchsten 2 – 4 LEDs ständig, wenn überhaupt. Ergo: Nimm nicht zu viele LEDs. Ich habe bei mir 13 LEDs von dem Stripe genommen, den ich bei eBay gekauft habe.
WD2812B und 8806 vermute liegt am Controller, bin da aber nicht die Experte und hab nicht die Zeit mich da reinzudenken.
Übrigens: Einen Monat noch, dann hat der Bilderrahmen sein Einjähriges 🙂
LG
/robin
Hallo
Du sprichst in einem Beitrag von „LED-Stripe mit dem Controller WD2812B“ und im 2. Beitrage von Muehli von „LED-Streifen mit dem 8806 Chipsatz“. Wo ist der Unterschied? Was muss man bei´m Kauf von LED Streifen beachten wenn man sie mit dem Arduino Nano betreiben will (Stromverbrauch ist klar) ??
Über einen kleine Hilfestellung würde ich mich freuen. Schönen Sonntag!
Moin Moin,
meine LED-Anzeigen funktionieren jetzt auch, der erste Bilderrahmen war leider nicht so sauber gearbeitet das sich ein Foto für hier lohnen würde.
Der neue ist aber schon in Arbeit.
Dabei ist mir eine Idee gekommen wofür ich ein wenig Hilfe bräuchte:
Wenn ich den Arduino eine Sendermodul verpasse und an die Seite des Bilderrahmen Taster montiere würde der Bilderrahmen in „beide“ Richtungen funktionieren. (um z.b eine Beschattungssteuerung ein und aus zuschalten)
Habe hier noch einige Sende und Empfangsmodule und Arduinos hier liegen. (zum Bau des FHEMduino).
Ist es möglich den Sketch zum senden zu erweitern und wo muss ich die Taster anschließen (Wiederstand benötigt?).
Also jemand Tipps hat, immer her damit.
lg Michael
Hallo Stefan,
genau, normaler 433 MHz-Sender, sowas wie hier abgebildet: http://blog.moneybag.de/raspberry-pi-433-mhz-sender-mit-12v-schalten/
LG
/robin
Hallo – ich versuche gerade, dieses Projekt nachzubauen. Teile sind bestellt und zum Teil bereits eingetroffen.
Eine Frage zum Verständnis: Die ‚Sendemöglichkeit für 433MHz‘ in FHEM – kann das ein bereits in FHEM eingebundener nanoCUL 433MHz sein, oder benötige ich zum Nachbau eine zusätzliche 433MHz-Sendemöglichkeit? Der Code in FHEM schickt ja ein schlichtes ’send‘ ans Betriebssystem – da müsste dann doch ein pilight oder ähnliches darauf hören…oder? Für ein paar zusätzliche Hinweise in dieser Richtung wäre ich sehr dankbar!
Gruß,
Stefan
Wie kann ich hier ein Bild hoch laden?
Christian
na Glückwunsch! kannst ja mal ein Foto vom Bilderrahmen schicken, wenn alles läuft. Diese Rahmen haben einen hohen WAF.
LG
/robin
Hallo Robin, hat geklappt. Fehler lag an Benutzerrechte bei myLEDsend
Bekomme es nicht zum laufen, Bilderrahmen-Sketch habe ich angepasst.
notify sind eingetragen. Daten werden aus dem google kalender gezogen nichts passiert. Termin auf heute gelegt es erscheint korrekt die null aber led geht nicht an.
Super werde ich nachher gleich ausprobieren
Danke
Hallo christian,
so habe ich das gemacht. Ist aber wohl ein ganz schlechter Programm-Code. Funktioniert aber seit 9 Monaten tadellos.
Die Binärcodes habe ich selber ausgesucht und mit dem Bilderrahmen-Sketch abgeglichen.
define Restmuell_LED notify Restmuell:.* {\
if ((ReadingsVal("Restmuell", "state", "99")) == 1) {\
myLEDSend("10101",1,1,"LEDRestmuell",1);;\
} elsif ((ReadingsVal("Restmuell", "state", "99")) == 0) {\
myLEDSend("10101",2,1,"LEDRestmuell",0);;\
} else {\
myLEDSend("10101",3,1,"LEDRestmuell",99);;\
}\
}\
define Papiertonne_LED notify Papiertonne:.* {\
if ((ReadingsVal("Papiertonne", "state", "99")) == 1) {\
myLEDSend("11010",3,1,"LEDPapiertonne",1);;\
} elsif ((ReadingsVal("Papiertonne", "state", "99")) == 0) {\
myLEDSend("11010",3,0,"LEDPapiertonne",0);;\
} else {\
myLEDSend("11010",4,0,"LEDPapiertonne",99);;\
}\
}\
define Gelbersack_LED notify gelber_Sack:.* {\
if ((ReadingsVal("gelb", "state", "99")) == 4) {\
myLEDSend("10111",2,1);;\
} elsif ((ReadingsVal("gelb", "state", "99")) == 0) {\
myLEDSend("10111",1,1);;\
} else {\
myLEDSend("10111",1,0);;\
{\
{\
sub myLEDSend($$$$$) {
my ($dev,$id,$value,$BRType,$BRStatus) = @_;
my $cmd = "send $dev $id $value";
system( "$cmd;$cmd;$cmd" );
fhem("set $BRType $BRStatus");
return undef;
}
LG
/robin
Hallo Robin,
soweit habe ich das mit dem Kalender hin bekommen, nun möchte ich die Daten weiterverarbeiten wie hast du das Notify geschrieben ?
Gruß Christian
Hallo Christian,
ich greife auf den Google Kalender zu. Den Kalender habe ich „Fhem“ genannt und dort alle Mülltage eingetragen. „Braun“, „Gelb“, „Blau“. Dann schaut Fhem einmal am Tag in den Kalender, und je nach dem, um welchen Mülltag es sich handelt, wird eine LED aktiviert. Im Fhem-Forum (ich weiß gerade nicht wo) ist da ein gutes Beispiel.
LG
/robin
Hallo Robin,
ja das habe ich auch nun auch bemerk. Funktioniert jetzt bei mir super, mußte erstmal das Prinzip verstehen. Bin jetzt dabei das mit den Mülltonnen nach zu bauen. Leider Bekomme ich das momentan nicht richtig hin, habe das Forum schon mehrmal durch gelesen.
Kannst du mir bitte helfen, wie hast du das in Fhem?
Hallo Christian,
ich verstehe die Frage nicht. Den Code, welche LED leuchten soll, kannst du selber definieren.
LG
/robin
Hallo Robin,
geht das auch mit Funksteckdosen? und wie müsste der sende Code in Fhem sein?
Gruß christian
Hallo Linky007,
im Grunde egal, ich nehme immer den Arduino Nano, weil er praktisch ist.
Gründe:
2 Versorgungsspannungen (Output) vorhanden -> 5 V und 3.3 V
USB-Mini Anschluß zum schnellen Flashen, gerade bei Testaufbauten wichtig, beim Pro-Mini ist da ja noch ein UART vorzuschalten.
Preislich gesehen tun sich die beiden (Arduino Nano und Pro Mini) nicht viel.
Der Bilderrahmen ist bei mir seit Anfang Dezember 2014 mit einem Arduino Nano in Betrieb.
LG
robin
Welcher Arduino ist den dafür am besten geeignete ?
Gibt es da überhaupt ein unterschied, weil ich mich daran errinnern kann das beim Bau eines cul ein wichtig war ein bestimmten zwegs der Adressierung zu nehmen
Hallo Robin,
ich habe ja schon
unsigned long Pir1 = 283924 in unsigned long Pir1 = 4051 geändert.
Um erst mal zu testzwecken mit einer Intertechno Fernbedienung schalten zu können….
war leider nicht vonErfolg gekrönt…. aber die Nacht ist noch lang und in meinem Dachgeschoss bei 30 Grad doch auch angenehm warm…
Ich teste mal weiter….. es gibt Sachen die gegen mir leichter von der Hand 🙂
lg aus Oberhausen
Michael
Hallo Michael,
natürlich musst du den Programmcode anpassen mit Deinen Werten.
Also wenn du eine 4051 usw empfängst, musst du weiter unten im Programmcode schauen, was mit den LEDs passieren soll, wenn die Zahl empfangen wird. Die Zahlen stammen von meiner Fhem-Umgebung hier und die sieht ja bei dir bestimmt anders aus.
Später sendest du von Fhem ja den Code der dann eine LED ein und ausschaltet und auch in welcher Farbe. Der Code steht ja auch im Blog. Und denk dran: Ein code für LED- an , und ein Code für LED-Aus. Ich steuer immer alles über Fhem, siehe Youtube-Video hier: https://www.youtube.com/watch?v=sHT_ubQH4nk
LG
/robin
Da habe ich mich wohl zu früh gefreut….
Der Sketch auf den Arduino übertragen. Led Strip und 433 MHz Empfänger angelötet.
Wenn ich jetzt im Arduino GUI den SerialMonitor einschalte , die Baudrate auf 11500 setze und auf einer Intertechno Fernbedienung eine Taste drücke werden mir verschiedene Zahlen angezeigt. 4051,4050 usw je nachdem welcher knopf betätigt wurde.
Am Arduino fängt dann eine gelbe LED an zu flackern und hört nicht mehr auf…. die ganze Zeit empfängt der Arduino die gleiche Zahl obwohl ich keine Taste an der Fernbedienung mehr drücke…. Drücke ich eine andere Taste ändert sich die Zahl und der Arduino empfängt wieder dauerhaft die neue Zahl…
Versorge ich den Arduino direkt mit Strom, ohne PC, geht die gelbe LED am Arduino nicht an.
Natürlich habe ich es noch nicht geschafft auch nur eine LED am Strip anzubekommen :-))
Muss eine Led angehen wenn ich über die Arduino GUI zum Beispiel die „283924“ sende? oder funktioniert das so nicht ?
lg Michael
Hallo Michael,
schön das es geklappt hat.
Mach mal ein paar Fotos, wenn der Rahmen fertig ist, zeige ich dann im Blog.
LG
/robin
Es hat geklappt…..
zumindest habe ich mal den Sketch auf dem Arduino ohne Fehlermeldung…
Der fehler lag bei mir 🙁 ….. habe die Arduino GUI als Admin gestartet und schon konnte ich die Lib´s auch importieren..
Jetzt muss ich FHEM nur noch dazubringen die Signale zu senden…. wird wohl eine lange Nacht :-))
Hallo Michael,
ich habe den Blog-Beitrag nochmal erweitert, bitte nochmal lesen.
Ich bin den Code nochmal durchgegangen und bei mir hat er alle erfolgreich kompiliert.
Der Sketch verwendet 7.236 Bytes (22%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
Globale Variablen verwenden 538 Bytes (26%) des dynamischen Speichers, 1.510 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.
Oki, ich versuche es mal genauer zu Beschreiben…..
(habe keinerlei Erfahrung mit Arduino usw.)
Im Arduino IDE einen neuen Sketch erstellt, mittels kopie und paste deinen sketch reinkopiert und abgespeichert.
Anschließend habe ich im Netzt „FastLed“ und „RCSwitch“ gezogen. Dateien entpackt und alle in das Vereichnis mit dem Sketch kopiert.
Sketch erneut geöffnet, in der Arduin sind jetzt mehrer Reiter zu sehen unter anderem auch FastLed…
Nun auf Überprüfen geklickt, comilieren startet und bricht ab mit dieser Fehlermeldung:
LEDStrip:1: error: expected constructor, destructor, or type conversion before string constant
LEDStrip:10: error: ‚RCSwitch‘ does not name a type
LEDStrip.ino: In function ‚void setup()‘:
LEDStrip:61: error: ‚mySwitch‘ was not declared in this scope
LEDStrip.ino: In function ‚void loop()‘:
LEDStrip:67: error: ‚mySwitch‘ was not declared in this scope
LEDStrip:74: error: ‚leds‘ was not declared in this scope
LEDStrip:74: error: ‚CRGB‘ has not been declared
hier gehts noch weiter , jedoch immer bis auf die Zeilenzahl identisch…
Ich hoffe damit konnte ich meine Fehler (der wahrscheinlich vorm Bildschirm sitzt) weiter eingrenzen 🙂
Lg Michael
Hallo Michael,
mein Lieblingsprojekt, der Bilderrahmen mit LED-Stripe, läuft bei mir immer noch 🙂
Meine Glaskugel ist gerade kaputt, um welchen Fehler handelt es sich denn? Hast du mal die Samples von er LED-Library mal durchkompiliert?
LG
/robin
Hallo…. danke für deine vielen Bastelein…. habe schon einiges gemopst und nachgemacht….
Hier komme ich jedoch nicht weiter, es hapert schon am programmieren des Arduino.
Habe deine Sketch von oben makiert und in der ArduinoIDE einen neuen Sketch angelegt(Name LED) und mit STRG-V einkopiert. In diesen Ordner habe ich RCSwitch und FastLED reinkopiert (ca.50 Dateien) .
Wenn icht jetz auf kompilieren klicke bricht es sofort mit Fehlermeldung ab…..
OK ich gebe es zu … Arduino und Arduino IDE und Programmieren usw…. Neuland
Vieleicht hast du ja einen Tip…
Gruß Michael
Hallo Robin,
habe es hinbekommen 😉
Gruß
Karsten
Hallo Robin,
vmein Arduino mit 433 MHz Empfänger und LED-Stripe funzt jetzt soweit super. Musste deinem Sketch noch zwei Zeilen hinzufügen ( FastLED.addLeds… und mySwitch.resetAvailable();), da sonst die Leds kein Lebenszeichen von sich geben wollten.
Nun möchte ich das ganze gerne in meine fhem.cfg ein pflegen, da habe ich aber ein kleines Problem mit.
Da mein CUL mit 868 MHz arbeitet und ich nur zwei Steckdosen von IT habe, steht in meine cfg nur: define IT ….. das funktionierte bis jetzt auch gut.
Deine Fhem-Scripte gefallen mir ganz gut und ich würde sie gern übernehmen.
Wo muss ich dem CUL da jetzt sagen das er mit 433MHz senden soll?
LG
Karsten
Hallo Karsten,
ganz normal über die Arduino-Ide. Und der Sketch ist ja im Blog zu sehen.
LG
/robin
Hallo Robin,
erst einmal vielen Dank für deinen Blog.
Habe mit dem Nano jetzt so noch keine Erfahrung, deshalb frage ich zur Sicherheit mal nach 😉
Wie wird der Nano betankt und was muss alles drauf?
Gruß
Karsten
Hallo Patrick,
da gibts ein JS für, welches auf der anzuzeigenden Seite eingebaut wird. Steht aber alles im Forum
LG
/robin
Hallo Robin,
danke für den Hinweis. Mittlerweile habe ich selbst die APP gefunden und hab sie mir auch schonmal angeschaut. Wie hast du denn webviewcontrol und fhem eingerichtet, dass du bei öffnen von WVC direkt auf das Panel redirected wirst aber dennoch die Übertragung des Akkustandes an fhem stattfindet?
Gruß,
Patrick
Hallo Patrick,
das ist die App „webviewcontrol“: http://forum.fhem.de/index.php/topic,10628.0.html
LG
/robin
Hallo Robin,
zuerstmal ein großes Lob an deinen Blog.
Ich bin noch relativ frisch im Thema Hausautomation, allerdings hat es mich zur Zeit voll im Griff (zum Leitwesen meiner Frau 😉 ).
Dieses Projekt mit den LEDs hier steht nun auch auf meiner Todo Liste. Die LEDs dazu habe ich noch in der Garage liegen, da waren noch ein paar von meinem Ambilight-Eigenbau übrig.
Ich habe aber ein andere Frage. In dem Video, dass du zu diesem Projekt gemacht hast, sieht man kurz ein Android APP. Kannst du mir sagen, wo du die her hast, oder ist das ein Eigenbau?
Danke schonmal 🙂
Viele Grüße,
Patrick
Hallo Frank,
kann ich nicht helfen, ich habe die 433 MHz Version genommen, die auch mit dem Intertechno-Format kompatibel ist. Das steht auch so unter „benötigte Bauteile“.
LG
/robin
Super toller Blog, ich versuche gerade die Statusanzeige nachzubauen. Ich stehe noch ganz am Anfang. Ich habe erstmal die Bauteile bestellt, als Empfänger möchte 868 Mhz nutzen. Welchen Empfänger müsste ich da kaufen?
Und wie bekomme ich die Daten von Fhem zu den LED gesendet. Kann man da einen CUL 868 (für FS20, KS300) nutzen?
Hallo Ronny,
jedem Dummy mit einem sortby Attribut versehen.
Das sieht z.b. für einen Dummy so aus.
define 03Buero dummy
attr 03Buero alias Büro
attr 03Buero devStateIcon Closed:rc_GREEN: Open:rc_RED
attr 03Buero group Bilderrahmen
attr 03Buero room Bilderrahmen
attr 03Buero sortby 30
attr 03Buero webCmd :
Viel Spaß beim nachbauen 🙂
LG
/robin
Hallo Robin,
cooles Projekt! Verrätst Du mir, wie Du die Sortierung der Bezeichner im Webinterface hinbekommen hast? (Bild http://blog.moneybag.de/wp-content/uploads/2015/01/BilderrahmenLED.jpg)
Hi,
coole Umsetzung, so etwas Ähnliches habe ich hier auch gesehen:
https://www.youtube.com/watch?v=OSYM0TM8hIM
🙂
Hallo Henno,
klar, viele Wege führen nach Rom. Ich habe ja geschrieben, das ich die Bauteile noch in der Schublade hatte. Wie der Übertragungsweg ist, ob 433 MHz, 868 MHz oder 2.4 GHz oder sogar USB/Seriell ist eigentlich egal. Ziemlich Cool ist, das man das selber nach seinen Bedürfnissen und Gegebenheiten erweitern kann.
Viel Spaß beim Basteln.
LG
/robin
Vielen dank dafür.
Ich werde mich die Tage mal ran geben.
Ich werde es aber entweder auf HM oder einfacher auf „normaler“ 868MHz Basis machen.
Hallo Henno,
habe ich gerade gemacht. Auf der 433 MHz-Empfangsseite habe ich ihn von dem PIR-Projekt (-> Blog-Beitrag: Preiswerter Funktbewegungsmelder) abgeleitet.
Auf der Fhem-Seite habe ich mit notifys gearbeitet.
LG
/robin
Hi
Kannst du deinen sketch als Vorlage bereitstellen ?