IP-Symcon goes MQTT

So als Denkanstoß.
Mann muss ja nicht fix auf einen IO verbinden.
Solange die korrekten Datenfluss GUIDs eingetragen sind, kannst du auch mehrere unterstützen bzw in der Konfig anbieten. (Siehe ModBus-Gateway)
Wobei ein Webhook kein IO ist, außer so wie du es jetzt mit einer Instanz als ‚Sammler‘ für alle Kameras umgesetzt hast.
Warum nicht pro Instanz/Kamera einen Webhook?

Und dann definiere bitte ‚sicher‘.
Sicher das Daten ankommen (QoS), oder das diese unverfälscht bzw abhörsicher sind.
TLS kann der IPS MQTT Broker noch nicht, oder?

Michael

Nein, TLS kann der MQTT Server noch nicht, steht aber eigentlich auch alles im ersten Beitrag,
Paresy passt den ersten Beitrag eigentlich immer an, wenn es Änderungen gibt.

Grüße,
Kai

Gibt’s irgendwas in Richtung Doku, oder muss man das einfach ausprobieren?

Wüsste gerne wie das umgesetzt ist im Vergleich zu meinem eigenen Skript, damit ich einschätzen kann wann ein Umstieg lohnt und wie viel Aufwand es wäre.

Auch Beitrag 1, für Modul-Entwickler.
Sonst versuchen ob die internen Instanzen ausreichend sind.
In der Doku selber gibt es noch keinen Eintrag zu MQTT, vermutlich weil es noch Beta ist und sich somit jederzeit etwas ändern könnte.
Michael

Noch gibt es keine Doku.
Du kannst dir mein Shelly Modul zum Beispiel anschauen.
IPS-Shelly/module.php at master · Schnittcher/IPS-Shelly · GitHub

Dort kannst du eigentlich ganz gut erkennen wie die Daten ankommen.

Grüße,
Kai

Hallo,

wie bindet man denn mit dem neuen Modul einen Mosquitto ein?

Viele Grüße
Predi

Das Modul ersetzt Mosquitto.

Gesendet von iPhone mit Tapatalk

Leider kann das Modul nur einen Bruchteil eines Mosquittos.

Gibt es eine Möglichkeit einen Mosquitto einzubinden?

Der MQTT Server ist ja auch nur in der Beta Version.
Es werden noch weitere Funktionen kommen.

Du kannst den MQTT Client nutzen: GitHub - thomasf68/IPS_MQTT: MQTT Modul für IP-Symcon 4.1

Oder die geänderte Verison von mir:
GitHub - Schnittcher/IPS-KS-MQTT: MQTT Modul für IP-Symcon 4.1

Grüße,
Kai

Hat es einen Grund, dass IPS_GetObjectIDByName für die MQTT Devices nicht funktioniert? print_r zeigt mir für die Objekte zwar einen Namen an aber IPS_GetObjectIDByName findet diese nicht.

Das sollte eigentlich absolut unabhängig von MQTT sein. Wie verwendest du die Funktion? Kannst du uns vielleicht einen Skriptausschnitt zeigen? Ich vermute, du verdrehst da irgendwo etwas.

Eine weitere Frage. Ich möchte gerne folgenden Befehl ausführen:


mosquitto_pub -t landroid/set/start

Wie sähe das denn jetzt in der MQTT Implementierung von symcon aus? Ich besitze aktuell keine Variable „landroid/set/start“, welche ich direkt mit RequestAction ansprechen könnte.

Neh er findet die Module vom Typ „MQTT Device“ mit der Funktion nicht. Ich nehme an die Funktion ist nicht dazu gedacht Module zu finden.

Die Struktur sieht ja immer so aus:
$name MQTT Device
=> Value $type

Habe es nun mit einer Fake Klasse probiert aber auch das funktioniert nicht:





	class MQTTSender extends IPSModule
	{
		
		public function ApplyChanges()
		{
			//Never delete this line!
			parent::ApplyChanges();
			
			$this->RequireParent("{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}");
			
		}

		public function Send($jsonstr)
		{
			$this->SendDataToParent($jsonstr);
		}
	}



$mqtt_sender = new MQTTSender($_IPS['SELF']);
$mqtt_sender->ApplyChanges();

  $Data = array();
  $Data['DataID'] = '{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}';
  $Data['PacketType'] = 3;
  $Data['QualityOfService'] = 0;
  $Data['Retain'] = false;
  $Data['Topic'] = "landroid/set/schedule/$day";
  $Data['Payload'] = '{"startHour":10,"startMinute":30,"durationMinutes":60,"cutEdge":true}';
  $DataJSON = json_encode($Data, JSON_UNESCAPED_SLASHES);

  $mqtt_sender->Send($DataJSON);



aber dann kommt die die Fehlermeldung:


Warning:  Instanz #44669 existiert nicht in /var/lib/symcon/scripts/scripts.test.php on line 126


Kann mir jemand sagen, wie ich eine MQTT Variable anlege von einem Typ int bzw. != String? er legt mir immer string an.

Hi,

da steht die Antwort.
IP-Symcon 5.1 goes MQTT - Seite 11

Gruß

Hallo zusammen,

ich versuche schon seid Tagen als Anfänger Xiaomi und Tasmota Geräte über die IPS mqtt Funktion einzubinden.
Ich bekomme das irgendwie nicht hin.

Habe z.B auf dem Raspi Zigbee2mqtt laufen und auch Geräte angemeldet, leider bekomme ich sie nicht ins IPS.
Wie richte ich den MQTT Server in ips ein ? Gibt es hier eine Anleitung ?

Nimm das hier.
[Modul] IPS-Zigbee2MQTT
Michael

danke das habe ich

Dann stell die Fragen auch dort :wink:
Michael