Hallo!
Ich möchte meinen Saugroboter zeitgesteuert einschalten, deshalb würde ich ihn gerne über FHEM steuern.
Ich habe mir jetzt einen HM_LC_SW1_SM zusammen gebastelt, der auch tadellos funktioniert und angelernt werden konnte.
Meine Infrarot Diode hängt an PIN3 und ich habe die Library IRRemoteControl von Christiano Borges in der V1.0.0 aus der Bibliotheksverwaltung eingebunden.
Kann mir bitte jemand auf die Sprünge helfen, wo ich ansetzen muss, anstatt des Relais ein Infrarot Signal zu senden?
Infrarot Sender
Moderator: Co-Administratoren
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: Infrarot Sender
Über einen eigenen SwitchChannel
Code: Alles auswählen
...
class IRChannel : public SwitchChannel<Hal, PEERS_PER_CHANNEL, List0> {
public:
IRChannel () {};
virtual ~IRChannel () {};
virtual void switchState(__attribute__((unused)) uint8_t oldstate, uint8_t newstate, uint32_t delay) {
if (newstate == AS_CM_JT_ON) {
// put your ir send code here
}
SwitchChannel<Hal, PEERS_PER_CHANNEL, List0>::switchState(oldstate, newstate, delay);
}
};
typedef MultiChannelDevice<Hal, IRChannel, 1> SwitchType;
...
Re: Infrarot Sender
Danke für deine schnelle Antwort!
Puhh, das übersteigt im Moment meine Programmierfähigkeit
In welche Datei muss ich den von dir angegebenen Code schreiben?
Zum testen habe ich folgenden Code geschrieben, der beim einschalten des Arduino den Code (gespeichert in ir_auto) zum Sauger per Infrarot sendet. Das funktioniert.
Jetzt würde ich gerne statt dem Relais den Code per Infrarot senden.
Kannst du mich dabei ein wenig unterstützen?
Puhh, das übersteigt im Moment meine Programmierfähigkeit
In welche Datei muss ich den von dir angegebenen Code schreiben?
Zum testen habe ich folgenden Code geschrieben, der beim einschalten des Arduino den Code (gespeichert in ir_auto) zum Sauger per Infrarot sendet. Das funktioniert.
Code: Alles auswählen
#include <IRremote.h>// IR remote
//IR LED an Arduino PWM pin 3.
IRsend irsend;
int khz = 38; // 38kHz carrier frequency
unsigned int ir_auto[] = {3000,2900, 550,450, 550,1400, 550,1400, 500,500, 550,1400, 550,450, 550,450, 500,450, 550,500, 500,400, 550,500, 450,500, 550,1400, 550,1400, 550,1400, 550,450, 550,500, 500,400, 550,500, 450,1450, 500,550, 500,450, 450,550, 500,500, 500,450, 450,550, 500,450, 450,1500, 550,450, 500,1450, 550,450, 500,1450, 500,1450, 550,1400, 550,1400, 550,1450, 500,1450, 550,1400, 550,1400, 550,1450, 550,1400, 500,500, 500,450, 550,1450, 450,1500, 450,550, 500,1450, 450,550, 500}; // UNKNOWN 83B307D2
void setup()
{
irsend.sendRaw(ir_auto,sizeof(ir_auto) / sizeof(ir_auto[0]),khz);
}
void loop() {
}
Kannst du mich dabei ein wenig unterstützen?
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: Infrarot Sender
ich vermute mal aus dem HM-LC-SWX-SM Sketch?
In den Sketch.
https://github.com/pa-pa/AskSinPP/blob/ ... SM.ino#L80
Statt des SwitchChannel<Hal,PEERS_PER_CHANNEL,List0> kommt da der IRChannel aus meinem vorherigen Beitrag rein.
Und dein irsend.sendRaw muss dann da hin, wo ich den Kommentar // put your ir send code here hinterlassen habe
Re: Infrarot Sender
Guten Abend!
Ich danke dir recht herzlich!
Ich habe es, dank deiner Hilfe, geschafft das ich meinen Staubsaugroboter über Homematic steuern kann.
Einen kleinen Schöhnheitsfehler gibt es noch:
Das Infrarot Signal wird nur geschickt wenn man das "on" Signal an den Aktor schickt.
Das ist aber kein Problem, denn das kann ich in Fhem ganz leicht lösen.
Entweder über "set <Aktor> on-for-timer 1" oder, wie in meinem Fall, verwende ich WeekdayTimer.
Damit kann man z. B. Mo, Mi, Fr 13:00 einschalten und Mo, Mi, Fr 13:01 ausschalten.
Sollte jemand an dem Sketch interessiert sein, werde ich ihn hier herein stellen.
Vielen Vielen Dank
Ich danke dir recht herzlich!
Ich habe es, dank deiner Hilfe, geschafft das ich meinen Staubsaugroboter über Homematic steuern kann.
Einen kleinen Schöhnheitsfehler gibt es noch:
Das Infrarot Signal wird nur geschickt wenn man das "on" Signal an den Aktor schickt.
Das ist aber kein Problem, denn das kann ich in Fhem ganz leicht lösen.
Entweder über "set <Aktor> on-for-timer 1" oder, wie in meinem Fall, verwende ich WeekdayTimer.
Damit kann man z. B. Mo, Mi, Fr 13:00 einschalten und Mo, Mi, Fr 13:01 ausschalten.
Sollte jemand an dem Sketch interessiert sein, werde ich ihn hier herein stellen.
Vielen Vielen Dank
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: Infrarot Sender
Du könntest ja bei OFF einen anderen IR-Befehl senden.
Ich glaub, mit der Anleitung bist du im FHEM Forum besser aufgehoben. Hier wirst du wohl (fast) nur Homematicer finden