Wie kann man mit IRsend einen String senden ?
Zur IR Steuerung einer Klimaanlage wird mit Node-Red ein String erzeugt der aus den Komponenten Header, Lüfterdrehzahl, Betriebsmodus , Power on/off & Temperatur besteht.
msg.payload = "0x12" + FanSpeed + Modus + Power + HexTemp[myTemp]; msg.topic = "IRData"; var newMsg = { payload: msg.payload, topic: msg.topic };
Das Ergebnis ist dann ein String der z.B. so aussieht: „0x12188010“ und mit MQTT an den „IRBlaster“ gesendet wird.
IRsend braucht aber eine Variable im Format uint64_t.
Die Lösung:
mqdata ist die mit MQTT empfangene Nachricht.
z.B.:
String mqdata =“0x12188010″;
irsend.sendNEC(strtoul(mqdata.c_str(), NULL, 16));
Eine Kontrolle mit esp8266_IRrecvDumpV2 ergibt folgende Ausgabe:
Programm ist in Beispiele -> aus eigenen Bibliotheken -> IRremoteESP8266 -> IRrecvDumpV2
Protocol : NEC_LIKE
Code : 0x12181110 (32 Bits)
Code : 0x12181110 (32 Bits)
uint64_t data = 0x12181110;
esp8266 IRsend
Hallo Herr Heisel, ich weiß dass das hier nicht unbedingt hingehört, aber Sie hatten mal eine Arduino-basierte Steuerung für einen Wandel & Goltermann F55 Gong gebaut. Leider ist die verlinkte Seite verschwunden. Ich würde mir gerne Ihre Steuerung nachbauen; könnten Sie bitte Kontakt aufnehmen? Danke
Hallo,
siehe hier:
https://laber.planet-heisel.de/?p=269
Gruß