Infrarot Sender

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Antworten
feger
Beiträge: 9
Registriert: 20.12.2019, 09:50
Hat sich bedankt: 3 Mal

Infrarot Sender

Beitrag von feger » 10.01.2020, 15:33

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?

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Infrarot Sender

Beitrag von jp112sdl » 10.01.2020, 16:34

Ü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;
...

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

feger
Beiträge: 9
Registriert: 20.12.2019, 09:50
Hat sich bedankt: 3 Mal

Re: Infrarot Sender

Beitrag von feger » 10.01.2020, 20:27

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.

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() {
  
}
Jetzt würde ich gerne statt dem Relais den Code per Infrarot senden.
Kannst du mich dabei ein wenig unterstützen?

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Infrarot Sender

Beitrag von jp112sdl » 10.01.2020, 20:46

feger hat geschrieben:
10.01.2020, 15:33
Ich habe mir jetzt einen HM_LC_SW1_SM
ich vermute mal aus dem HM-LC-SWX-SM Sketch?
feger hat geschrieben:
10.01.2020, 20:27
In welche Datei muss ich den von dir angegebenen Code schreiben?
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

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

feger
Beiträge: 9
Registriert: 20.12.2019, 09:50
Hat sich bedankt: 3 Mal

Re: Infrarot Sender

Beitrag von feger » 11.01.2020, 00:51

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

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Infrarot Sender

Beitrag von jp112sdl » 11.01.2020, 10:29

feger hat geschrieben:
11.01.2020, 00:51
Einen kleinen Schöhnheitsfehler gibt es noch:
Das Infrarot Signal wird nur geschickt wenn man das "on" Signal an den Aktor schickt.
Du könntest ja bei OFF einen anderen IR-Befehl senden.
feger hat geschrieben:
11.01.2020, 00:51
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.
Ich glaub, mit der Anleitung bist du im FHEM Forum besser aufgehoben. Hier wirst du wohl (fast) nur Homematicer finden

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“