Frage zu MQTT-Module von thomasf68

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

https://docs.solace.com/MQTT-311-Prtl-Conformance-Spec/MQTT%20Control%20Packet%20format.htm

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…