Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Auslesen von Werten mit ESP8266

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Auslesen von Werten mit ESP8266

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
7 Beiträge 2 Kommentatoren 557 Aufrufe 2 Watching
  • Ä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.
  • T Offline
    T Offline
    tomtom61
    schrieb am zuletzt editiert von tomtom61
    #1

    Ich hoffe der Beitrag ist hier richtig.
    Ich möchte MQTT Werte per ESP8266 o. ä. auslesen.
    Das funktioniert, mit

    .....               
      #define RECEIVE_NAME "HomeAussen/Temp"      
           client.subscribe(RECEIVE_NAME);
    ....
         void callback(char* topic, byte* payload, unsigned int length) {
           
                Str_Temperatur = "";
                
                for (int i = 0; i < length; i++) {
                   // Serial.print((char)payload[i]);
                   Str_Temperatur = Str_Temperatur + (char)payload[i];  // Speicher jedes Zeichen in den String Str_Temperatur
                   Serial.println (Str_Temperatur);
                }
    
    
    

    NUR solange, wie die Daten unter mqtt/0/..... stehen.
    Der gesamte Pfad ist dann "mqtt/0/HomeAussen/Temp"

    Verschiedene Werte wie Solar_Fronius/AktuellerErtrag stehen unter "alias.0."

    Wie bitte komme ich mit meinem Code da hin???

    Versuch : RECEIVE_NAME "alias/0/Solar_Fronius/AktuellerErtrag"
    scheitert.

    Marc BergM 1 Antwort Letzte Antwort
    0
    • T tomtom61

      Ich hoffe der Beitrag ist hier richtig.
      Ich möchte MQTT Werte per ESP8266 o. ä. auslesen.
      Das funktioniert, mit

      .....               
        #define RECEIVE_NAME "HomeAussen/Temp"      
             client.subscribe(RECEIVE_NAME);
      ....
           void callback(char* topic, byte* payload, unsigned int length) {
             
                  Str_Temperatur = "";
                  
                  for (int i = 0; i < length; i++) {
                     // Serial.print((char)payload[i]);
                     Str_Temperatur = Str_Temperatur + (char)payload[i];  // Speicher jedes Zeichen in den String Str_Temperatur
                     Serial.println (Str_Temperatur);
                  }
      
      
      

      NUR solange, wie die Daten unter mqtt/0/..... stehen.
      Der gesamte Pfad ist dann "mqtt/0/HomeAussen/Temp"

      Verschiedene Werte wie Solar_Fronius/AktuellerErtrag stehen unter "alias.0."

      Wie bitte komme ich mit meinem Code da hin???

      Versuch : RECEIVE_NAME "alias/0/Solar_Fronius/AktuellerErtrag"
      scheitert.

      Marc BergM Online
      Marc BergM Online
      Marc Berg
      Most Active
      schrieb am zuletzt editiert von Marc Berg
      #2

      @tomtom61 sagte in Auslesen von Werten mit ESP8266:

      Wie bitte komme ich mit meinem Code da hin???

      Ich nehme an, du nutzt den MQTT Adapter als Broker?

      In diesem Fall musst du die Instanzeinstellungen ändern/erweitern. Damit werden auch die Topics unter alias* published.

      3844a7b3-4139-4041-a520-39ee98ce50a5-grafik.png

      Edit: nachdem du in das Feld "alias.0.*" eingegeben hast, unbedingt <Enter> drücken!

      NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

      Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

      Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

      T 1 Antwort Letzte Antwort
      0
      • Marc BergM Marc Berg

        @tomtom61 sagte in Auslesen von Werten mit ESP8266:

        Wie bitte komme ich mit meinem Code da hin???

        Ich nehme an, du nutzt den MQTT Adapter als Broker?

        In diesem Fall musst du die Instanzeinstellungen ändern/erweitern. Damit werden auch die Topics unter alias* published.

        3844a7b3-4139-4041-a520-39ee98ce50a5-grafik.png

        Edit: nachdem du in das Feld "alias.0.*" eingegeben hast, unbedingt <Enter> drücken!

        T Offline
        T Offline
        tomtom61
        schrieb am zuletzt editiert von
        #3

        @marc-berg
        Super! Vielen Dank!
        Wieder ein Fall - "Auf die einfachsten Lösungen kommt man nicht".

        Hmmm, mal sehen, wie ich das jetzt mache. Einfach den Prefix ändern oder hinzufügen?
        Oder komplett rausnehmen?
        Ich bin mir sicher, dass dann sämtliche >30 Sensoren mit ca. >100 Datenpunkten sowie unzählige Skripte dann nicht mehr richtig funktionieren. Weil diese natürlich den gesetzten Prefix NICHT senden.
        Ich müsste sämtliche Sensoren (ESP8266) umprogrammieren...
        Meine Überlegung eine zweite mttq Instanz zu machen und diese dann entsprechend ansprechen.

        Zum Glück habe ich den ioBroker im Proxmox laufen. Mache gerade per clone eine "Test" Version und teste das mal.

        Ich berichte.

        Gruß Tom

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tomtom61
          schrieb am zuletzt editiert von
          #4

          @marc-berg
          Es funktioniert soweit. Ich habe eine zweite mttq Instanz angelegt.
          Jetzt habe ich das Problem, dass bei Wertänderung im ioBroker der neue Wert nicht übertragen wird. Nur, wenn ich den Wert unter Objekte MANUELL ändere erfolgt eine Übertragung.
          Wer weis Rat?

          Marc BergM 1 Antwort Letzte Antwort
          0
          • T tomtom61

            @marc-berg
            Es funktioniert soweit. Ich habe eine zweite mttq Instanz angelegt.
            Jetzt habe ich das Problem, dass bei Wertänderung im ioBroker der neue Wert nicht übertragen wird. Nur, wenn ich den Wert unter Objekte MANUELL ändere erfolgt eine Übertragung.
            Wer weis Rat?

            Marc BergM Online
            Marc BergM Online
            Marc Berg
            Most Active
            schrieb am zuletzt editiert von
            #5

            @tomtom61
            Wenn du jetzt noch verrätst, WIE du den Wert änderst, kann dir sicher geholfen werden. Ich vermute, du setzt das Ack Flag, oder setzt im Blockly mit dem falschen Baustein. (Ändere statt Steuere)

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            T 1 Antwort Letzte Antwort
            0
            • Marc BergM Marc Berg

              @tomtom61
              Wenn du jetzt noch verrätst, WIE du den Wert änderst, kann dir sicher geholfen werden. Ich vermute, du setzt das Ack Flag, oder setzt im Blockly mit dem falschen Baustein. (Ändere statt Steuere)

              T Offline
              T Offline
              tomtom61
              schrieb am zuletzt editiert von tomtom61
              #6

              @marc-berg
              Im ioBroker werden Daten von ESP8266(s) per mqtt gesendet.
              Ich Teste im Moment mit einem sich ständig verändernden Wert - "der Außentemperatur".
              Diese wird im ioBroker an "mqtt.0.HomeAussen.Temp" gesendet.

              Normalerweise lasse ich mir alle Daten nur per VIS anzeigen.

              Jetzt möchte ich allerdings Werte - Genaugenommen Final den Akkuladezustand meiner PV-Anlage - auf einer 7-Segment LED Anzeige anzeigen. Zum Testen wie geschrieben jetzt erst einmal die "Außentemperatur".

              Hierzu verwende ich erst einmal den
              Den [hier]
              (https://github.com/knolleary/pubsubclient/blob/master/examples/mqtt_esp8266/mqtt_esp8266.ino
              als Muster Publizierten Code.
              Mein Code ist durchs Testen chaotisch, deshalb ... Angepasste

              • Parameter:
                Hinzugefügt:
                #define RECEIVE_NAME "mqtt.0.HomeAussen.Temp"
                geändert:
                .... WIFI Zugangsdaten
                im Setup
                client.setServer(mqtt_server, 1883); //1883 für mqtt Instanz 0

              im Loop
              // ... and resubscribe
              client.subscribe(RECEIVE_NAME);

              Mit dieser Einstellung wird jede Änderung (Seriell) angezeigt.

              Ändere ich nun: Auch zum testen einen sich ständig ändernder Wert....
              #define RECEIVE_NAME "alias.0.Solar_Fronius.AktuellerErtrag"
              im Setup:
              client.setServer(mqtt_server, 1893); //1893 für mqtt Instanz 1

              Wird der Wert nur EINMAL geändert. Egal auch nach Reset des ESP8266. Der Wert bleibt gleich.
              Die Einstellungen beider Instanzen sind bis auf den Port und
              Screenshot 2023-11-01 145305.jpg
              gleich.

              `

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                tomtom61
                schrieb am zuletzt editiert von
                #7

                Problem gelöst --------------

                Es funktioniert mit einer zweiten Instanz - Vermutlich auch mit nur einer (nicht getestet)
                Wichtig, dass in den mqqt Einstellungen der Haken bei "Sende auch Zustände (ack=true) angehackt ist.
                Des weitern sollte in der Maske der Pfad stehen, in dem die Werte gelesen werden sollen.
                In meinem Fall alias.0.*

                Gruß
                Tom

                1 Antwort Letzte Antwort
                0
                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

                746

                Online

                32.4k

                Benutzer

                81.4k

                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
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe