MQTT - IR-Code senden

Hallo zusammen,

ich möchte gerade Code von meiner Fernbedienung mittels MQTT-versenden. Leider bekomme ich es nicht hin.

Folgender Code hab ich derzeit fix im Code eingebaut:

// Power ON
uint16_t rawData_Harman_ON[67] = {9070, 4462, 608, 512, 608, 484, 636, 510, 610, 510, 610, 512, 608, 512, 608, 512, 608, 1632, 608, 512, 608, 512, 608, 512, 606, 512, 608, 1632, 610, 1634, 608, 1630, 608, 512, 608, 512, 608, 512, 608, 512, 608, 512, 610, 510, 610, 512, 608, 1634, 608, 1632, 608, 1632, 608, 1632, 608, 1632, 610, 1632, 608, 1632, 608, 1634, 608, 510, 608, 514, 598}; // NEC 10E03FC

Und senden diesen Code an wie folgt aus:
irsend.sendRaw(rawData_Harman_ON, 67, 38); // Send a raw data capture at 38kHz.

Wie kann ich nun den Code der Fernbedienung über MQTT versenden?

Wenn ich den Inhalt versende, bekomme ich eine Fehlermeldung, weil die Variable ein STRING ist:
9070, 4462, 608, 512, 608, 484, 636, 510, 610, 510, 610, 512, 608, 512, 608, 512, 608, 1632, 608, 512, 608, 512, 608, 512, 606, 512, 608, 1632, 610, 1634, 608, 1630, 608, 512, 608, 512, 608, 512, 608, 512, 608, 512, 610, 510, 610, 512, 608, 1634, 608, 1632, 608, 1632, 608, 1632, 608, 1632, 610, 1632, 608, 1632, 608, 1634, 608, 510, 608, 514, 598

Hat jemand eine Idee?

Vielen Dank für die Rückmeldung

Viele Grüße
Sascha

Wahrscheinlich benötigt Deine Funktion ein char-Array (Zeichenkette). Du gibst ihm ein byte-Array.
Dein Array muss also vorher in eine Zeichenkette umgewandelt werden.

Aber wie kann den Inhalt von:

uint16_t rawData_Harman_ON[67] = {9070, 4462, 608, 512, 608, 484, 636, 510, 610, 510, 610, 512, 608, 512, 608, 512, 608, 1632, 608, 512, 608, 512, 608, 512, 606, 512, 608, 1632, 610, 1634, 608, 1630, 608, 512, 608, 512, 608, 512, 608, 512, 608, 512, 610, 510, 610, 512, 608, 1634, 608, 1632, 608, 1632, 608, 1632, 608, 1632, 610, 1632, 608, 1632, 608, 1634, 608, 510, 608, 514, 598}; // NEC 10E03FC

über einen String (in dem Format) einfügen?

mittels sprintf() schrittweise Dein Array durchgehen und die Inhalte einer Zeichenkette anfügen.

kommt damit leider nicht klar

Hallo,

ich weiß jetzt nicht, welche Lib Du benutzt.
Ich hatte mal einen IR-Sender im Einsatz mit der IRremoteESP8266 Lib und AsyncMQTT.
Ich hänge den Code mal an.
MQTT Broker ist ein Mosquitto auf einem RasPi. Kommando wird als Text geschickt, Format ist
Typ, Referenz aus der IRSend-Lib, Anzahl der Bits, 32Bit Dezimalwert, Trenner ein Underline.

Also z.B. "2_140A_15" für einen 15 Bit Sony-Code.
Ich hänge den Sketch al hier an, so lang ist der ja nicht.

Gruß aus Berlin
Michael

ESP_IR-Send-asyncMQTT-test.ino (6.81 KB)

Hallo,

vielen Dank für den Code. Kannst du mir aber noch sagen, wo ich die Libraries für AsyncMqttClient finde? Hab mehrere bereits runtergeladen und er bleibt immer an dieser Position hängen.

Vielen Dank
Gruß

Sascha

Hallo,

sascha_10:
vielen Dank für den Code. Kannst du mir aber noch sagen, wo ich die Libraries für AsyncMqttClient finde? Hab mehrere bereits runtergeladen und er bleibt immer an dieser Position hängen.

naja, bei github wie (fast) immer:

Mein Projekt ist schon ziemlich alt und ohne Änderungen geblieben.
Damals ESP8266 2.3.0, IRRemote8266 2.4.3, AsyncMQTTClient 0.8.2
Es compiliert mit den jeweiligen aktuellen Versionen, ich habe es aber nicht geflasht...

Gruß aus Berlin
Michael