Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Moin,
ja der Baustein hat anscheind so seine Probleme sofern er mehrfach verwendet wird.
Leider hatte ich noch keine Zeit mir das im Detail anzugucken.
so lange du es noch auf dem Schirm hast ist es ja gut:-). Wäre klasse wenn du das Thema nicht abschreiben würdest, auch wenn du mqtt bei dir nicht einsetzt.
Kann mich den Vorrednern nur anschließen, es wäre klasse wenn du hier nochmal drauf schaust.
Bekomme leider nicht alle Nachrichten des Topics am LBS ausgegeben.
Klappt die regelmäßige Abfrage des MQTT Brokers nicht mehr?
Im Einsatz ist HS 4.11
Hallo Christian,
ich habe folgenden Effekt festgestellt: wenn der Eingang 3 (Topic) direkt mit einem Text beschrieben wird, funktioniert alles. Wenn ich aber einen Textselektor-Baustein davorschalte, dann kann sich der MQTT-Baustein nicht mit dem Broker verbinden. Er verbleibt lange im Zustand "Connecting", um dann in "Connection lost" zu gehen. Im Logfile des Brokers erscheint dann ein socket error. Ich habe das 1:1 verglichen, ohne sonstige Änderungen.
Ich habe in den Beispielen hier im Thread auch keines gefunden, in dem der Text nicht festverdrahtet war.
Hast Du mal Vergleichbares ausprobiert?
Moin,
Interessant, nein hab ich nicht ... wie gesagt, ich selber nutz ja auch gar kein mqtt in meinem System.
Aber ist ein guter Punkt den man sich dann mal beim debuggen mit anschauen muss.
Danke fürs melden.
Gruß
Nachtrag : Bei der Durchsicht vom Code macht das aber Sinn ... wenn der Selektorbaustein kein Wert liefert beim Init kann er keinem Topic beitreten ... Der Baustein ist ehrlicherweise auch nicht darauf ausgelegt das Topic zur Laufzeit zu wechseln ... das müsste eingebaut werden.
Ok, das hätte den Charme, dass man verschiedenste Topics von unterschiedlichen Geräten mit einer Instanz des LBS abfragen kann.
Ich wüsste aber auch nicht, wie ich den Textselektor überreden könnte, zur Init-Zeit einen Wert auszugeben.
mhhh das macht aber nicht wirklich sinn ... ;-) so kann der LBS ja nicht auf ein Topic lauschen ... dafür sollst du ja einfach mehrere Instanzen anlegen ...
Ich hab mir das vorhin schon mal angeschaut ...verstehe noch nicht so ganz wieso der Baustein probleme bekommt sobald mehrer im Einsatz sind, aber ich hab schon eine Idee für ein Redesign ...
Mhhhh das macht (für mich) keinen Sinn ... richtiger wären hier 10 Instanzen vom LBS mit jeweils den entsprechenden Topics ...
Ich muss mal gucken .... ich hab eine Idee von einem Redesign im Kopf die das gesamte Teil auf den Kopf stellt ... Die Idee wäre das sich jeder Baustein für sich auf den Server verbindet und dann so 8-10 Topics bereit stellt als E und als A ....
So ich hab mal eine V1 hochgeladen die ich gerade ein wenig umgebaut habe. ACHTUNG Sie verhält sich grundlegend anders. Folgendes ist zu beachten.
Pro mqtt Server wird nur EINE Instanz vom LBS benötigt. Egale wieviele Topics.
An E3 registriert ihr ALLE Topics vom Broker auf die ihr lauschen oder senden wollt! Das kann on demand passieren!
E8 und E9 müsst ihr zusammen bauen : TOPIC||Wert . Also der zu postene Topic gefolgt von einer Double Pipe || gefolgt vom Wert
A3 und A4 geben euch jeden Wert nach gleichem Schema zurück Topic||Wert
Alles klar? - Das ganze ist erst mal nur ein Test um zu schauen ob und wie Stabil das ganze dann läuft. Über die Ein und Ausgabe kann man sich dann noch unterhalten.
Wobei es glaub ich ziemlich charmant ist wenn die Kommunikation zentral läuft.
Alternative wäre das jede LBS Instanz sich selber pro Topic auf den Broker verbindet, das "fühlt" sich für mich aber irgendwie falsch an ... könnte man aber ggf. auch umsetzen.
Bin nicht sicher, ob ich Deine Anweisungen richtig verstanden habe. Wenn damit mein ursprüngliches Verfahren gemeint war (Textselektor, der "on demand" einen Topic übergibt) - dann funktioniert es bei mir noch nicht vollständig (mein Test war jetzt allerdings auch nur quick'n'dirty).
Der Status des Brokers geht nach Setzen eines Topics und nach einiger Zeit von "Connecting" auf "subscribed", was schon mal ein Erfolg ist.
Auf den Ausgängen A3 und A4 kommt allerdings immer 0 raus.
Im Logfile des Brokers sehe ich:
Code:
2023-03-29T22:31:03.082235026+02:00 1680121863: New connection from 192.168.26.248 on port 1883.
2023-03-29T22:31:03.082378641+02:00 1680121863: Client mqtt-lbs-1.00 already connected, closing old connection.
2023-03-29T22:31:03.082540634+02:00 1680121863: New client connected from 192.168.26.248 as mqtt-lbs-1.00 (p2, c1, k120).
Ähm, ich merke gerade, dass ich noch zwei Instanzen (eine zum Test) auf meinem Logikblatt habe.
Kann das mein Problem verursachen?
Ich schau mir das morgen noch mal genauer an.
Ja also JEDE Instanz verbindet sich zum Broker daher das Problem im Log .... ;-)
Jein es ist eine Mischung aus dem was du probiert hattest ... auf E3 sendet mal alle Topics denen man folgen möchte...
Wenn du dann auf E8 oder E9 was sendest musst du die Eingabe vorher "manipulieren" mit nem Text zusammensetzer oder so ...
Angenommen du hast 3 Topics: Topic1 / Topic2 / Topic3 ... die registrierst du dann so über E3.
Jetzt willst du was auf Topic2 senden, dann musst du den Wert wie folgt auf E8 schicken : Topic2||Neuer Wert
Der Baustein lauscht jetzt aber auch auf alle 3 Topics. Kommt in Topic3 ein neuer Wert an so kommt auf A3 z.B : Topic3||Hello World
Hallo Christian,
nachdem ich die zweite Instanz entfernt hatte, ging der Status sofort auf subscribed. Bei der Zuweisung der Topics zum Eingang bin ich beim Textselector geblieben - ich wüßte gar nicht, wie ich sonst mehrere Topics diesem Eingang zuweisen sollte (im Moment geht es bei mir nur um Lesen vom Broker, Publish kommt später). Die Teststrings der gewünschten Topics habe ich ja nicht auf einer GA, sondern ich habe sie fest den 10 Eingängen des Textselektors zugewiesen. Oder wie schwebte Dir das vor ("...alle Topics, denen man folgen möchte..."?
Ich habe dann für den ersten Topic ein vernünftiges Ergebnis bekommen. Beim Wechsel des Topics auf dem Eingang E3 geht der Ausgang 3 auf 1 und der Ausgang 4 auf 0. Der Broker-Status bleibt auf "subscribed".
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar