Das ist super, ne Idee wieso du das machen musst?
Grüße,
Kai
Gesendet von iPhone mit Tapatalk
Das ist super, ne Idee wieso du das machen musst?
Grüße,
Kai
Gesendet von iPhone mit Tapatalk
laut spezifikation muss das flag beim subscribe gesetzt sein …
Wo hast du das gelesen?
Grüße,
Kai
Gesendet von iPhone mit Tapatalk
Das scheint aber nur in deinem Fall so sein zu müssen.
Grüße,
Kai
hmmm … keine Ahnung
wenn ich mir mit wireshark den subscribe von mqtt.fx anschaue sieht das genauso aus … qos=1 ( erstes Byte hex 82 )
Mit dem Code (Beispiel von Kai) geht es bei mir:
QOT = 1 muß ich nicht setzen.
$topics = array("home", "data"); //Topics die eingelesen werden sollen
$id_parent = 11162 /*[333_Test]*/; // Kategorie ID, unter der die Geräte abgelegt werden sollen
$MQTTInstanzID = 49687 /*[IPS_KS_MQTTClient]*/; // ID vom MQTT Client
if($_IPS['SENDER']=='MQTT_CONNECT')
{
$topic = "#";
KSMQTT_Subscribe($MQTTInstanzID, $topic, 0);
}
if($_IPS['SENDER']=='MQTT_GET_PAYLOAD')
{
$msg = $_IPS['MSG'];
$topic = explode("/", $_IPS['TOPIC']);
$last = count($topic)-1;
$type = $topic[$last];
if (in_array($topic[1], $topics))
{
for ($i = 1; $i <= $last; $i++)
{
if ($i <> $last)
{
$id = IPS_GetObjectIDByName($topic[$i], $id_parent);
if($id===false)
{
$id = IPS_CreateCategory();
IPS_SetName($id, $topic[$i]);
IPS_SetParent($id, $id_parent);
$id_parent = $id;
}
$id_parent = $id;
}
else
{
$id = IPS_GetVariableIDByName($topic[$last],$id_parent);
if($id===false)
{
$id = IPS_CreateVariable(3);
IPS_SetName($id, $topic[$last]);
IPS_SetParent($id, $id_parent);
SetValue($id,$msg);
}
else
{
SetValue($id,$msg);
}
}
}
}
}
?>
QOS meinte ich…