MQTT Anbindung / oder externe Daten per Push in Symcon bekommen

ich habe den Eindruck mein Script wird überhaupt nicht ausgeführt, da es nach kurzer Zeit im Objektbaum plötzlich als fehlerhaft markiert wird.

Wenn es als fehlerhaft markiert wird wurde es definitiv ausgeführt ;).

Ah oh. Ich war der Annahme, dass fehlerhafte Scripte dann blockiert und eben nicht mehr ausgeführt werden.
Jetzt muss ich nur noch herausfinden was da fehlerhaft sein soll.
Wo werden eigentlich die Fehlermeldungen bei automatisch ausgefügrten Scripts angezeigt. Tauchen die irgendwo im log auf?

Es findet sich üblicherweise etwas im Log.

Habs gefunden. Die ID im MQTT_Subscribe muss doch die vom MQTT Client -Modul sein. Hab die jetzt wieder drin (so wie vorher) und jetzt komen die Daten. Warum es allerdinsg vorher nicht ging, da es ja nun wieder das Selbe ist wie gestern, ist mir allerdings schleierhaft.
Jetzt muss ich nur noch meine ganzen Variablen zuweisen wie im letzten Script von gerhardt oder abe rdas zum Modul mitgelieferte Script so umbeuane, dass die Variablen automatisch angelegt werden. Das passier nämlich noch nicht.

Ich habe ja die Vermutung, dass er die VAriablen nicht anlegen kann, weil er nich tweiß, mit welchem typ er dies tun soll
Im Log erscheint

17.02.2018 12:44:12*| MQTTEnergie 16881*| Topic ‚/Energie/Gas/m3‘ enthält keine Typinfo

Da muss ich mir doch mal den Quellcode vom Modul anschauen.

Schau auch ins Meldungsfenster!
Mit der ID vom Client hast Du natürlich Recht - in meinem Script stands eigentlich richtig drin.

Grüße, Gerhard

Hallo Thomas,

dass er die VAriablen nicht anlegen kann, weil er nich tweiß, mit welchem typ er dies tun soll

ich denke, der Fehler hat mit dem MQTT-Modul zu tun und nicht mit den Daten vom payload. Ich erinnere mich, so eine Meldung auch schon mal gesehen zu haben (onReceive() in ‚TFphpMQTT.php‘).
Die Daten vom payload kann man auch gut im Logfile vom Broker sehen. Sie können sein:

images, texts in any encoding, encrypted data and virtually every data in binary.

Wenn Du einen Variablentyp übergeben möchtest, könnte dies noch im Topic geschehen. Das bedeutet aber, dass diese Information dann IMMER übertragen wird, obwohl sie nur einmal benötigt wird. Oder Du legst ein eigenes Topic an für Installationen (beispielsweise mit den Typinformationen von IPS), das dann nur einmal aufgerufen wird.

Grüße, Gerhard

Ich abe es hin bekommen.
Hab mir das originale Handle Script nochmal angeschaut.
Ursprünglich sahen meine Topics so aus

/Energie/Gas/Pulse

Ich habe den IPSymcon Typ noch angehängt.

/Energie/Gas/Pulse/1

Dann hat er zimindest schon mal variablen angelegt, wobei er allerdings jedes mal eine neue anlegte. Hier lag nun der Fehler nun im führenden „/“ . Beim Zerlegen war die erste Kategorie immer leer und so wurde ständig unter der ParentID 0 eine neue Kategorie mit leerem Namen angelegt. Da IPS hier selbst einen Namen erzeugt hatte ich nach Kurzer zeit etliche neue Kategorien mit Variablen drunter. War eine ziemliche Löscharbeit

Nach Entfernen des führenden „/“ in den Topics im ESP8266-Modul gehts.

Energie/Gas/Pulse/1

Topics mit Slash beginnen zu lassen gilt als „bad practice“ lt. MQTT-Spezifikation. Verboten ist es streng genommen nicht.

Hi,

komme (unter aktueller IPS Version) nicht mit dem MQTT-Modul von Thomas zurecht:

Modul installiert, Client und Handlerscript (mit unverändertem Inhalt, abgesehen der ID des Clients), IP-Adresse/Port des Brokers (Moquitto auf einem Pi innerhalb meines eigene Netztes) und die Meldungen im „meldungsfenster“ sehen wie folgt aus:

Ist es ein Verbindungsproblem ? (doofe Frage, was muss denn im MQTT-CLient unter Benutzer und Passwort eingetragen werden? und was unter MQTT Client ID ?)
MQTT2.JPG
MQTT3.JPG

Warum kommt die fatal Fehlermeldung "Call to undefined function MQTT_Subscribte() ??

hardlog

Hallo,

der MQTT Broker (mosquitto) wird normalerweise mit User und password angelegt. Diese Daten mußt Du hier eintragen. In dem Script, das mit dem Client verbunden ist, sollte auch Subscribe() stehen. Ich muss das mal bei mir heraussuchen. Habe kein MQTT mehr am Laufen.

Grüße, Gerhard

Habe nachgesehen:

Das Script, das mit dem Client verbunden ist, enthält 2 Sender-Abfragen:

if($_IPS['SENDER']=='MQTT_GET_PAYLOAD')
{
       ..da reagierst Du auf gesendete Daten....
}
if($_IPS['SENDER']=='MQTT_CONNECT')
{
	$topic = "DEIN TOPIC (aber NICHT NUR '/')/#";
	//echo "connect
";
	MQTT_Subscribe($mqtt_c_id, $topic, 0);
}

Grüße, Gerhard

Hi,

Mosquitto hab ich einfach installiert und fertig (ohne User und Passwort). Geht auch, hatte mir vorher ne eigenen subscriber gebastelt.
Kann ich dann User und Passwort nicht einfach frei lassen?
Aber warum meldet der den fatal Fehler, das mqtt_subscriper nicht korrekt ist?

Na, diese Fragen wird wohl nur der Ersteller des Moduls beantworten können. Ich habe es nicht mehr installiert und kann so auch nicht mehr in den Quellcode schauen. In sein Modul is ja MQTT_Subcribe() integriert. Vielleich mußt Du Deinen Funktionsaufruf im gleichen Script unterbringen und etwas umbenennen.

Grüße, Gerhard

Ich habe gerade das Problem, dass der MQTT Client Socket nicht aktiv ist, wenn IPS oder der Rechner neu gestartet wurde. Hat jemand eine AHnung, wie ich sowas per Script eventuell zeitversetzt aktivieren kann? Ich vermute mal, dass der IPS shcneller startet und der MQTT Broker noch nicht da ist. Ist wohl so ein Ding wie bei anhängigen Diensten unter Windows.

Das ist leider immer noch so. Wir hatten das Thema schon mal besprochen und eine Lösung aufgezeigt. Musst Du mal Suchen.
Kai hatte das mal aufgegriffen aber bisher nicht eingebaut.

Gesendet von iPhone mit Tapatalk

Komisch ist halt, hier geht es. Muss doch mal mit suchen, mal sehen ob Kai und ich was gemeinsam finden.

Gesendet von iPhone mit Tapatalk

Man darf nicht vergessen, es gibt hier zwei Module!

Ein Mal das originale und das angepasste von mir, damit es mit dem Tasmota Modul funktioniert.

Und bei dem von mir angepassten Modul sollte das eigentlich funktionieren!

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Mit Deinem Modul funktioniert es aber nicht.

Das hatte noch nie bei mir und es waren andere, die sich dazu äußerten, funktioniert.
Du erinnerst Dich?

Z.B. Bei jedem IPS- Update muss es neu aktiviert werden.

Gesendet von iPhone mit Tapatalk

Ich sach doch, hier läuft alles mit Kais Modulen, daher müssen wir suchen, was anders sein könnte.
Nach reboot, update usw kommt alles wieder.Und wir haben das jetzt schon lange im Lifeeinsatz.

Habe heute noch ein Sonoff SV für Kais Pool RGB Licht zusammengebaut und erstmal Problemlos ans laufen bekommen.
OK, Kais Modul passt noch nicht für PWM RGB, da muss das Modul noch angepasst werden. Aber die Gundlegen Sachen gehen.