NEWS
MQTT Server akzeptiert Update nicht ?
-
Ich weiß jetzt nicht so wirklich wie ich das verwerten soll... den Haken hab ich mal gesetzt.
in deinem programm brauchst du den else zweig nicht .. da bei > 35 der wert gesendet wird und dann der esp schläft und dann neu startet...
selbst das ganze nach dem senden kannst du dir schenken...
also
loop()
{- messen
- senden oder nicht senden
- schlafen
}
reicht
so für mich auf die schnelle, der rest ist ähnlich dem hier.
-
Hat es leider nicht. Sonst vielleicht noch jemand eine Idee woran das liegen könnte ? Wieso wird der Wert korrekt aktualisiert, nachdem ich den Wert im mqtt.0 händisch überschrieben habe ? Sonst nicht...
Danke + Gruß
@sloglban
Stimmen die Datenformate überein?Also Datenpunkt = Number und Wert wird als Zahl gesendet?
-
Der pubsubclient auf dem Arduino kann nur Chars senden. Auf der Serverseite ist der Datentyp Zeichenkette. Hab den jetzt mal testweise auf Nummer geändert. Mal sehen ob das hilft.
in iobroke brauchst du nur den "datenpunkt" komplett löschen - beim nächsten senden vom esp wird alles angelegt .... ggf mal alles aktualiesieren ( ging hier aber auch so )
hier liegen gerade fünf esp auf dem tisch ..... doch keiner mag mqtt + zeitserver -
Hab ich jetzt alles probiert. Datentyp geändert, Datenpunkt gelöscht. Bleibt leider alles wie gehabt. Eine Aktualisierung läuft durch. Danach meldet sich der ESP weiter zuverlässig im Stundentakt beim ioBroker. Aber es werden keine Daten aktualisiert. Solange bis ich den Wert händisch überschreibe. Dann wird wieder einmal aktualisiert.
Ich werde jetzt mal einen anderen MQTT-Broker testen.
-
Hab ich jetzt alles probiert. Datentyp geändert, Datenpunkt gelöscht. Bleibt leider alles wie gehabt. Eine Aktualisierung läuft durch. Danach meldet sich der ESP weiter zuverlässig im Stundentakt beim ioBroker. Aber es werden keine Daten aktualisiert. Solange bis ich den Wert händisch überschreibe. Dann wird wieder einmal aktualisiert.
Ich werde jetzt mal einen anderen MQTT-Broker testen.
@sloglban
wenn es diese lib ist:#include <PubSubClient.h>
muss es funktionieren
sehe gerade:
bei mir in setup()
.
.
.
client.setServer(mqtt_server, mqtt_port);
client.setClient(espClient);und reconnect() sieht so aus ...
void reconnect()
{
// Loop until we're reconnected
while (!client.connected())
{
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (client.connect(mqtt_client_id,mqtt_username,mqtt_key))
{
Serial.println("connected");
// IP-Adresse umwandeln und publish
IPAddress localAddr = WiFi.localIP();
char s[16];
sprintf(s, "%d.%d.%d.%d", localAddr[0], localAddr[1], localAddr[2], localAddr[3]);
client.publish(mqtt_topics_ip,s, true);
Serial.println(WiFi.localIP());
}
else
{
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}ach: und in der testphase ist ein gesetztes passwort ggf hinderlich .... :-) ... habe keines.
und da: char feuchtigkeitProzent[2]; setzte man eine 5 ein -
Ich empfehle zum debuggen von solchen Ansätzen immer gerne mosquitto. Wenn du den mosquitto "server/broker" mit -v (verbose) startest, siehst du oft deine möglichen Fehler wenn du dich mit deinem Client darauf verbindest. So habe ich bei mir die fehlende Einstellung zum Benutzernamen und Kennwort beim connect gefunden...
-
Ich empfehle zum debuggen von solchen Ansätzen immer gerne mosquitto. Wenn du den mosquitto "server/broker" mit -v (verbose) startest, siehst du oft deine möglichen Fehler wenn du dich mit deinem Client darauf verbindest. So habe ich bei mir die fehlende Einstellung zum Benutzernamen und Kennwort beim connect gefunden...
das soll auch ganz gut sein ....
http://workswithweb.com/mqttbox.html -
das soll auch ganz gut sein ....
http://workswithweb.com/mqttbox.html -
Hallo Zusammen,
erstmal Danke für Eure Hilfe ! Ich denke ich habe den "Fehler" jetzt wohl gefunden.
Ich habe zwischenzeitlich mal Mosquitto installiert, um zu sehen, ob der Fehler dort auch auftritt. Hab dann meinen MQTT.0 deaktiviert, und einen MQTT.1 als Client angelegt. Das Verhalten war exakt das gleiche. Also der Publisher schickt pünktlich seine Aktualisierung (retained), und im ioBroker kam nichts an (nur eine Aktualisierung). Außer, ich hatte den Wert im MQTT-Adapter wieder händisch überschrieben.
Und dann ist wohl der Groschen gefallen (wenn es denn der Richtige war :)
Ich lasse den Wert sowie den Zeitpunkt der letzten Aktualisierung bei mir im VIS anzeigen. Dabei war ich davon ausgegangen, dass der Zeitpunkt der letzten Aktualisierung jedes Mal aktualisiert wird, wenn der Publisher etwas sendet. Dem scheint aber nicht so zu sein. Stattdessen wird die Zeitangabe wohl nur aktualisiert, wenn ein abweichender Wert gesendet wird - was immer dann der Fall ist, wenn jemand den gespeicherten Wert vorher händisch mit einem abweichendem Wert überschrieben hat :)
Kann das jemand so bestätigen ? Tatsächlich ändern sich die von meinem Publisher gesendeten Werte nur selten....
Ich dachte ich könnte damit die Zuverlässigkeit meines Publishers (ggf. leere Batterie) überwachen. Aber da muss ich mir dann wohl etwas Anderes ausdenken.
Dazu kam auch noch die zwischenzeitliche Verwendung einer Powerbank als Stromversorgung am ESP. Wie ich mittlerweile erfahren hab, schaltet die sich aber aus, sobald nicht mehr genug Strom entnommen wird. Was dann spätestens beim ersten Deep Sleep wohl der Fall war. Dann kamen tatsächlich keine Daten mehr. Aber das konnte ich zu dem Zeitpunkt noch nicht auseinander halten.
You live you learn :)
Gruß,
Andre
-
Hallo Zusammen,
erstmal Danke für Eure Hilfe ! Ich denke ich habe den "Fehler" jetzt wohl gefunden.
Ich habe zwischenzeitlich mal Mosquitto installiert, um zu sehen, ob der Fehler dort auch auftritt. Hab dann meinen MQTT.0 deaktiviert, und einen MQTT.1 als Client angelegt. Das Verhalten war exakt das gleiche. Also der Publisher schickt pünktlich seine Aktualisierung (retained), und im ioBroker kam nichts an (nur eine Aktualisierung). Außer, ich hatte den Wert im MQTT-Adapter wieder händisch überschrieben.
Und dann ist wohl der Groschen gefallen (wenn es denn der Richtige war :)
Ich lasse den Wert sowie den Zeitpunkt der letzten Aktualisierung bei mir im VIS anzeigen. Dabei war ich davon ausgegangen, dass der Zeitpunkt der letzten Aktualisierung jedes Mal aktualisiert wird, wenn der Publisher etwas sendet. Dem scheint aber nicht so zu sein. Stattdessen wird die Zeitangabe wohl nur aktualisiert, wenn ein abweichender Wert gesendet wird - was immer dann der Fall ist, wenn jemand den gespeicherten Wert vorher händisch mit einem abweichendem Wert überschrieben hat :)
Kann das jemand so bestätigen ? Tatsächlich ändern sich die von meinem Publisher gesendeten Werte nur selten....
Ich dachte ich könnte damit die Zuverlässigkeit meines Publishers (ggf. leere Batterie) überwachen. Aber da muss ich mir dann wohl etwas Anderes ausdenken.
Dazu kam auch noch die zwischenzeitliche Verwendung einer Powerbank als Stromversorgung am ESP. Wie ich mittlerweile erfahren hab, schaltet die sich aber aus, sobald nicht mehr genug Strom entnommen wird. Was dann spätestens beim ersten Deep Sleep wohl der Fall war. Dann kamen tatsächlich keine Daten mehr. Aber das konnte ich zu dem Zeitpunkt noch nicht auseinander halten.
You live you learn :)
Gruß,
Andre
@sloglban sagte in MQTT Server akzeptiert Update nicht ?:
Stattdessen wird die Zeitangabe wohl nur aktualisiert, wenn ein abweichender Wert gesendet wird
Das hast du ja so konfiguriert
-
@sloglban
publish nur bei Änderung hast du angehakt -
Hallo Zusammen,
erstmal Danke für Eure Hilfe ! Ich denke ich habe den "Fehler" jetzt wohl gefunden.
Ich habe zwischenzeitlich mal Mosquitto installiert, um zu sehen, ob der Fehler dort auch auftritt. Hab dann meinen MQTT.0 deaktiviert, und einen MQTT.1 als Client angelegt. Das Verhalten war exakt das gleiche. Also der Publisher schickt pünktlich seine Aktualisierung (retained), und im ioBroker kam nichts an (nur eine Aktualisierung). Außer, ich hatte den Wert im MQTT-Adapter wieder händisch überschrieben.
Und dann ist wohl der Groschen gefallen (wenn es denn der Richtige war :)
Ich lasse den Wert sowie den Zeitpunkt der letzten Aktualisierung bei mir im VIS anzeigen. Dabei war ich davon ausgegangen, dass der Zeitpunkt der letzten Aktualisierung jedes Mal aktualisiert wird, wenn der Publisher etwas sendet. Dem scheint aber nicht so zu sein. Stattdessen wird die Zeitangabe wohl nur aktualisiert, wenn ein abweichender Wert gesendet wird - was immer dann der Fall ist, wenn jemand den gespeicherten Wert vorher händisch mit einem abweichendem Wert überschrieben hat :)
Kann das jemand so bestätigen ? Tatsächlich ändern sich die von meinem Publisher gesendeten Werte nur selten....
Ich dachte ich könnte damit die Zuverlässigkeit meines Publishers (ggf. leere Batterie) überwachen. Aber da muss ich mir dann wohl etwas Anderes ausdenken.
Dazu kam auch noch die zwischenzeitliche Verwendung einer Powerbank als Stromversorgung am ESP. Wie ich mittlerweile erfahren hab, schaltet die sich aber aus, sobald nicht mehr genug Strom entnommen wird. Was dann spätestens beim ersten Deep Sleep wohl der Fall war. Dann kamen tatsächlich keine Daten mehr. Aber das konnte ich zu dem Zeitpunkt noch nicht auseinander halten.
You live you learn :)
Gruß,
Andre
:-)
suche mal im www das thema "abschalten der powerbank" .. da gibt es lösungen - einen lastwiederstand kurz vor dem abschalten aktivieren ....
abweichender wert ... ok das mache ich auf dem esp.... und da läuft auch ein zeitserver der sendedatum und uhrzeit überträgt....
durch das einschränken der sendedaten ist das ganze jetzt stabiler , es senden bis zu fünf esp an mqtt - ohne stress .. -
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