PubSubClient (invalid conversion from 'int' to 'const char*' [-fpermissive])

Hallo allerseits,
ich brauche mal Eure Hilfe.
Wie muss ich die Ausgabe von Value umwandeln, damit client.publish daten sendet ?
Ich bekomme immer die Meldung:

invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]

Ich lese mit dem ESP8622 einen 433MHz Sender aus und möchte den Code an MQTT übertragen.
Die Serielle Ausgabe klappt.

Hier ist mein Code:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <PubSubClient.h>
#include <RCSwitch.h>

#define ssid "idefix"
#define password "wlanpw"
#define mqtt_server "192.168.178.111"
#define mqtt_port 1883
#define topic "/home/data"

RCSwitch mySwitch = RCSwitch();

IPAddress ip(192,168,178,96);
IPAddress gateway(192,168,178,1);
IPAddress subnet(255,255,255,0);

WiFiClient espClient;
PubSubClient client(espClient);


void setup()
{
  Serial.begin(115200);
  mySwitch.enableReceive(D5); 
  WiFi.setAutoConnect(false);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
  
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  client.setServer(mqtt_server, mqtt_port);
 }

void reconnect() {
  while (!client.connected()) {
    // Attempt to connect
    if (client.connect("ESP8266ButtonClient")) {
    } else {
      delay(5000);
    }
  }
}
  
void loop(void) {
  
    // HW Raum Tür
    int value = mySwitch.getReceivedValue(); 
      if (!client.connected()) { reconnect(); }
      client.loop();
      if (mySwitch.available()) {
      Serial.println(value);
      client.publish(topic, value, true);
      client.disconnect();
      }
    mySwitch.resetAvailable();
  }

Vielen Dank für EUre Hilfe.

Gruß
Stefan

Wie wäre es denn mit der unverkrüppelten Fehlermeldung incl. deren Zeilenangabe?

Gruß Tommy

Hi,
sorry... kommt..

Arduino: 1.8.1 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

C:\Users\Stefan\Documents\Arduino\Fenster_V8\Fenster_V8.ino: In function 'void loop()':

Fenster_V8:57: error: invalid conversion from 'int' to 'const char*' [-fpermissive]

       client.publish(topic, value, true);

                                        ^

In file included from C:\Users\Stefan\Documents\Arduino\Fenster_V8\Fenster_V8.ino:3:0:

C:\Users\Stefan\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:142:12: error:   initializing argument 2 of 'boolean PubSubClient::publish(const char*, const char*, boolean)' [-fpermissive]

    boolean publish(const char* topic, const char* payload, boolean retained);

            ^

exit status 1
invalid conversion from 'int' to 'const char*' [-fpermissive]

value ist ein int. Den musst Du vorher in eine Variable vom Typ char-Array umwandeln.
Die Funktion itoa hilft Dir dabei.

Gruß Tommy

Ah ok ... Danke

schau ich mir an, hab ich schon mal was von gelesen...

Tommy56:
value ist ein int. Den musst Du vorher in eine Variable vom Typ char-Array umwandeln.
Die Funktion itoa hilft Dir dabei.

Gruß Tommy

Vielen Dank, hat geklappt :wink:
Ich wusste nicht so ganz wonach ich Suchen sollte. Top, Danke !

char buffer [10];
     itoa (value,buffer,10);

Genau und danke für die Rückmeldung.

Gruß Tommy