Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. MQTT ESP

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    238

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    233

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    898

MQTT ESP

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
6 Beiträge 2 Kommentatoren 797 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    ludino
    schrieb am zuletzt editiert von
    #1

    Hi ich habe ein ESP am laufen mit einem DS18B20 der über einen MQTT Client zu meinem Iobroker Mqtt server pusht

    Soweit so gut, das ESP Programm macht ein Connect und Pusht die daten auch zum Broker. Das sehe ich sowohl in der Konsole als auch im broker

    ESP Programm:

    const char* mqtt_server = "192.168.178.77";

    const char* mqtt_username = "";

    const char* mqtt_password = "";

    const char* mqtt_topic = "temperature";

    BROKER

    mqtt.0 2018-03-10 09:08:01.429 info Client [ESP8266Client] connected

    mqtt.0 2018-03-10 09:07:49.532 info Client [ESP8266Client] connected

    mqtt.0 2018-03-10 09:07:46.991 info Starting MQTT-WebSocket server on port 1884

    mqtt.0 2018-03-10 09:07:46.989 info Starting MQTT server on port 1883

    mqtt.0 2018-03-10 09:07:46.501 info starting. Version 1.5.0 in /opt/iobroker/node_modules/iobroker.mqtt, node: v6.13.0

    host.iobroker 2018-03-10 09:07:45.341 info instance system.adapter.mqtt.0 started with pid 13155

    host.iobroker 2018-03-10 09:07:43.353 info instance system.adapter.mqtt.0 terminated with code 0 (OK)

    KONSOLE

    WiFi connected

    IP address:

    192.168.178.100

    Attempting MQTT connection…connected

    Requesting DS18B20 temperature...

    Sending temperature: 20.00

    Closing MQTT connection...

    Closing WiFi connection...

    Entering deep sleep mode for 5 seconds...

    Leider unter dem MQTT Adapter finde ich keine Werte wieder.

    Muss ich da noch ein Datenpunkt oder sowaas erzeugen?

    Wenn ja wie funktioniert das gibt es da schon eine Anleitung zu?

    Gruß

    Ludino

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      stimezo
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      Hi Ludino,

      geht aus deinem Post nicht hervor, Du hast den Port schon in deinem Sketch angegeben?

      Datenpunkte werden beim ersten (erfolgreichen) publish automatisch angelegt.

      Zeig doch mal deinen Sketch.

      Viele Grüße

      Christian

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        ludino
        schrieb am zuletzt editiert von
        #3

        Abe klar doch gern

        ! ```
        #include <esp8266wifi.h> #include <pubsubclient.h> #include <onewire.h> #include <dallastemperature.h> #include <streaming.h> ! #define SLEEP_DELAY_IN_SECONDS 5 #define ONE_WIRE_BUS D4 // DS18B20 pin ! const char* ssid = "gelöscht"; const char* password = "gelöscht"; ! const char* mqtt_server = "192.168.178.77"; const char* mqtt_username = ""; const char* mqtt_password = ""; const char* mqtt_topic = ""; ! WiFiClient espClient; PubSubClient client(espClient); ! OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); ! char temperatureString[6]; ! void setup() { // setup serial port Serial.begin(115200); ! // setup WiFi setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); ! // setup OneWire bus DS18B20.begin(); } ! 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) { delay(500); Serial.print("."); } ! Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } ! void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ! void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect if (client.connect("Aussentemperature", mqtt_username, mqtt_password)) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } ! float getTemperature() { Serial << "Requesting DS18B20 temperature..." << endl; float temp; do { DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); delay(100); } while (temp == 85.0 || temp == (-127.0)); return temp; } ! void loop() { if (!client.connected()) { reconnect(); } client.loop(); ! float temperature = getTemperature(); // convert temperature to a string with two digits before the comma and 2 digits for precision dtostrf(temperature, 2, 2, temperatureString); // send temperature to the serial console Serial << "Sending temperature: " << temperatureString << endl; // send temperature to the MQTT topic client.publish(mqtt_topic, temperatureString); ! Serial << "Closing MQTT connection..." << endl; client.disconnect(); ! Serial << "Closing WiFi connection..." << endl; WiFi.disconnect(); ! delay(100); ! Serial << "Entering deep sleep mode for " << SLEEP_DELAY_IN_SECONDS << " seconds..." << endl; ESP.deepSleep(SLEEP_DELAY_IN_SECONDS * 1000000, WAKE_RF_DEFAULT); //ESP.deepSleep(10 * 1000, WAKE_NO_RFCAL); delay(500); // wait for deep sleep to happen }</streaming.h></dallastemperature.h></onewire.h></pubsubclient.h></esp8266wifi.h>
        ! Danke schonmal für dir Hilfe[/i]

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          stimezo
          Forum Testing
          schrieb am zuletzt editiert von
          #4

          OK, das ist der gute pubsub Standard.

          Das sieht auf den ersten Blick eigentlich gut aus.

          Das connecten klappt ja auch (siehe dein Log)

          Probier doch mal das publish so abzusetzen

           if (client.publish(mqtt_topic, String(getTemperature()).c_str())) {
                Serial.println("Temperatur gesendet");
              }
          
          

          zur Info:

          Die Funktion client.publish() liefert ein true bei erfolgreicher Übermittlung

          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            ludino
            schrieb am zuletzt editiert von
            #5

            danke das war es…!

            Super

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              stimezo
              Forum Testing
              schrieb am zuletzt editiert von
              #6

              Freut mich, daß Dein System läuft :D

              1 Antwort Letzte Antwort
              0

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              653

              Online

              32.8k

              Benutzer

              82.8k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe