Arduino Variable einsetzen

Hallo
Ich habe ein Problem. Die neue Version funktioniert nicht.

Alt:

ArduinoOTA.setHostname("test1");
ArduinoOTA.setPassword("test1");

Neu:

const char* otahost = "test1";
const char* otapass = "test1";

ArduinoOTA.setHostname(otahost);
ArduinoOTA.setPassword(otapass);

Wie ist denn die Fehlermeldung.
Die sagt dir doch sicher, was falsch ist.

christian181005:
Ich habe ein Problem. Die neue Version funktioniert nicht.

Was willst Du?
Kannst Du irgendeine Aussage machen, die hier jeden in die Lage versetzt zu wissen, was Du hast?
Kannst Du eine Frage stellen?
Hast Du eine Fehlermeldung?
Was benutzt Du (offensichtlich nen ESP)
Hast Du Deine Frage schon woanders gestellt? Ja? Wo?

Es gibt keine Fehlermeldung. Es wird die Variable einfach nicht eingesetzt. Gib es da eine andere Funktion zum einsetzen der Variable?

christian181005:
Es gibt keine Fehlermeldung. Es wird die Variable einfach nicht eingesetzt. Gib es da eine andere Funktion zum einsetzen der Variable?

Sicher gibt es die.

Du musst die nur anzeigen lassen. Dazu die Einstellungen aktivieren.

Nein! Es gibt keine. Es wird einfach hochgeladen.

christian181005:
Es gibt keine Fehlermeldung. Es wird die Variable einfach nicht eingesetzt. Gib es da eine andere Funktion zum einsetzen der Variable?

Mensch las Dir doch nicht alles irgendwo rausziehen...
Ich versuchs mal:
Wenn Du otahost benutzen willst, dann nimm mal das * bei der Zuweisung weg.

Ansonsten könntest auch mal nachschauen, was in otahos steht.
Serial.println(otahost);
...

Nochmal.....du musst deine Einstellungen anpassen, dann werden die auch angezeigt.
Voreinstellungen in der IDE.

christian181005:
...

Die neue Version wovon funktioniert nicht? Kannst Du einen kompletten Sketch zeigen? Das was Du da zeigst und schreibst genügt nicht für eine sinnvolle Antwort.

Gruß

Gregor

Nein leider kann ich nicht den ganzen Sketch zeigen. Ich will das erreichen (von der alten Version) nur halt mit einer Variable die ich oben festlegen kann.

christian181005:
Ich will das erreichen (von der alten Version) nur halt mit einer Variable die ich oben festlegen kann.

Noch einmal: Alte/neue Version wovon?

Gruß

Gregor

christian181005:
Nein leider kann ich nicht den ganzen Sketch zeigen. Ich will das erreichen (von der alten Version) nur halt mit einer Variable die ich oben festlegen kann.

Du willst Hilfe, aber uns dabei nicht unterstützen.
Na dass nenn ich mal frech. Es gibt noch andere schöne Worte dafür. Die spare ich mir aber.

Nochmal…du musst deine Einstellungen anpassen, dann werden die auch angezeigt.
Voreinstellungen in der IDE.

Wo?

christian181005:
Wo?

Steht doch da....wer lesen kann ist klar im Vorteil.

Aber auch gern nochmal als Bild.

Voreinstellungen.jpg

Voreinstellungen.jpg

christian181005:
Wo?

noch'n Versuch:
Hast Du #6 gelsen und gemacht?

Und ja, bevor der Vorwurf kommt - wir wissen, das Du nicht im Sekundentakt schreiben darfst.
Kannst aber gerne in enem Post alles abhandeln...

Noch einmal: Alte/neue Version wovon?

Gruß

Gregor

Schau in den ersten Post von mir

Bedenke: wir können dir nicht über die Schulter sehen. Und deine Gedanken lesen können wir auch nicht. Wir sehen nur exakt das, was Du schreibst. Und das ist bisher sehr wenig. Bei kurzen Codefragmenten kann man auch meist nur schwer helfen.
Alte/neue Version kann alles möglich sein: Neue Version der IDE, neue Version der ESP8266 Software, Änderungen an deinem Sketch .... wie gesagt, wir können deine Gedanken nicht lesen. Und welches Board du tatsächlich einsetzt, hast Du auch noch nicht geschrieben. Lass dir nicht alles einzeln aus der Nase ziehen. Es kann doch nicht so schwer sein, die wesentlichen Informationen zu posten.
Wenn Du den kompletten Sketch nicht hochladen kannst, dann poste einen kurzen, kompilierbaren Testsketch, der das Fehlerverhalten zeigt.

christian181005:
Schau in den ersten Post von mir

Das passt zu dir.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <PubSubClient.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <Wire.h>


const char* ssid = "******";
const char* password = "*******************";
const char* mqtt_server = "10.0.0.104";
const char* mqtt_user = "*******";
const char* mqtt_password = "****************";
const char otahost = "test1";
const char otapass = "test1";



#define command_topic "esp01/command"
//#define relay_topic "esp01/button"
#define status_topic "esp01/status" 
#define inTopic "esp01/output"


WiFiClient espClient;  
PubSubClient client(espClient);  



//PINS 
const int relay = 4;
//const int pin2 = 5;
//int sensor;
//#define Sensor D4
//int ledPin = 4;                
//int tasterPin = 5; 


 void setup() {  
  Serial.begin(115200);   
  setup_wifi();  
  client.setServer(mqtt_server, 1883); 
  client.setCallback(callback);  
//PIN_MODE  
  pinMode(relay, OUTPUT);
//  pinMode(pin2, INPUT);
//  pinMode( tasterPin, INPUT_PULLUP);  
//  pinMode( ledPin, OUTPUT);

 }  
   
 void loop() {  
  

 
   ArduinoOTA.handle();

 
     if (!client.connected()) {  
  reconnect();  
  }
  client.loop();

  /* if (digitalRead(tasterPin) == LOW) {
      digitalWrite(ledPin, HIGH);
  }
    else if (digitalRead(tasterPin) == HIGH) {
      digitalWrite(ledPin, LOW);
  } */
}  
   
 void setup_wifi() {  
  delay(10);  
  // We start by connecting to a WiFi network  
  Serial.println();  
  Serial.print("Connecting to ");  
  Serial.println(ssid);  
  WiFi.begin(ssid, password);  
  while (WiFi.status() != WL_CONNECTED) {  
   Serial.print("."); 
   delay(500);
  }  
  Serial.println("");  
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");  
  Serial.println(WiFi.localIP()); 
  
  //ArduinoOTA.setPort(8266);
  ArduinoOTA.setHostname(otahost);
  ArduinoOTA.setPassword(otapass);
  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH) {
      type = "sketch";
    } else { // U_FS
      type = "filesystem";
    }

    // NOTE: if updating FS this would be the place to unmount FS using FS.end()
    Serial.println("Start updating " + type);
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) {
      Serial.println("Auth Failed");
    } else if (error == OTA_BEGIN_ERROR) {
      Serial.println("Begin Failed");
    } else if (error == OTA_CONNECT_ERROR) {
      Serial.println("Connect Failed");
    } else if (error == OTA_RECEIVE_ERROR) {
      Serial.println("Receive Failed");
    } else if (error == OTA_END_ERROR) {
      Serial.println("End Failed");
    }
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP()); 
 }  

  void callback(char* topic, byte* message, unsigned int length) {
  Serial.print("Message arrived on topic: ");
  Serial.print(topic);
  Serial.print(". Message: ");
  String messageTemp;
  
  for (int i = 0; i < length; i++) {
    Serial.print((char)message[i]);
    messageTemp += (char)message[i];
  }

 /* if (String(topic) == "esp01/output") {
    Serial.print("Changing output to ");
    if(messageTemp == "on"){          // geändert von true zu on wie im Video gezeigt
      Serial.println("on");
      digitalWrite(pin1, HIGH);
      client.publish(relay_topic, "On");
      delay(200);
    }
    else if(messageTemp == "off"){    // geändert von false zu off wie im Video gezeigt
      Serial.println("off");
      digitalWrite(pin1, LOW); 
      client.publish(relay_topic, "Off"); 
      delay(200);
    }
  } */

//Eigene Befehle
if (String(topic) == "esp01/command") {
    if(messageTemp == "on"){          
      digitalWrite(relay, HIGH);
      delay(300);
    }
    else if(messageTemp == "off"){    // geändert von false zu off wie im Video gezeigt
      digitalWrite(relay, LOW); 
      delay(300);
    }
  }
  
}


 void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266-";
    clientId += String(random(0xffff), HEX);
    // Attempt to connect
    if (client.connect(clientId.c_str(), mqtt_user, mqtt_password)) {
      Serial.println("connected");
      // Once connected, publish an announcement...
      client.publish(status_topic, "ESP01 alive");
      // ... and resubscribe
      client.subscribe(inTopic);
    } else {
        Serial.print("failed, rc=");
        Serial.print(client.state());
        Serial.println(" try again in 5 seconds");
        // Wait 5 seconds before retrying
        delay(5000);
      }
   }
}

christian181005:

...

}

Hurraaa! Nach nur einer guten Stunde und 17 Vorgängerpostings kommt hier endlich mal ein Sketch, in dem man vermutlich sieht, worum es eigentlich geht. Nur zum Nachschauen fehlt mir mittlerweile die Lust.

Ich bin raus hier.

Gruß

Gregor