public static async Task RunAsync() { var services = new ServiceCollection() .AddMqttClient() .AddLogging() .BuildServiceProvider(); services.GetService <ILoggerFactory>() .AddConsole(); var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClientTest", Credentials = new RandomPassword(), ChannelOptions = new MqttClientTcpOptions { Server = "broker.hivemq.com" } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { var managedClient = services.GetRequiredService <ManagedMqttClient>(); managedClient.ApplicationMessageReceived += (s, e) => { Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic); }; await managedClient.PublishAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("1").Build()); await managedClient.PublishAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS().Build()); await managedClient.StartAsync(options); await managedClient.SubscribeAsync(new TopicFilter("xyz", MqttQualityOfServiceLevel.AtMostOnce)); await managedClient.PublishAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("3").Build()); Console.WriteLine("Managed client started."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); } }
/// <summary> /// 4 /// </summary> /// <returns></returns> static async Task ManagedClientTest() { var ms = new ClientRetainedMessageHandler(); var options = new MqttManagedClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClientTest", Credentials = new MqttClientCredentials() { Username = "******", Password = Guid.NewGuid().ToString() }, ChannelOptions = new MqttClientTcpOptions { Server = "broker.hivemq.com" } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { var managedClient = new MqttFactory().CreateManagedMqttClient(); managedClient.ApplicationMessageReceived += (s, e) => { Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic); }; await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("1")); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS()); await managedClient.StartAsync(options); await managedClient.SubscribeAsync(new TopicFilter("xyz", MqttQualityOfServiceLevel.AtMostOnce)); await managedClient.SubscribeAsync(new TopicFilter("abc", MqttQualityOfServiceLevel.AtMostOnce)); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("3")); Console.WriteLine("Managed client started."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); } }
public static async Task RunAsync() { var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClientTest", Credentials = new RandomPassword(), ChannelOptions = new MqttClientTcpOptions { Server = "broker.hivemq.com" } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { var managedClient = new MqttFactory().CreateManagedMqttClient(); managedClient.ApplicationMessageReceivedAsync += e => { Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic); return(PlatformAbstractionLayer.CompletedTask); }; await managedClient.StartAsync(options); await managedClient.EnqueueAsync(topic : "Step", payload : "1"); await managedClient.EnqueueAsync(topic : "Step", payload : "2", MqttQualityOfServiceLevel.AtLeastOnce); await managedClient.SubscribeAsync(topic : "xyz", qualityOfServiceLevel : MqttQualityOfServiceLevel.AtMostOnce); await managedClient.SubscribeAsync(topic : "abc", qualityOfServiceLevel : MqttQualityOfServiceLevel.AtMostOnce); await managedClient.EnqueueAsync(topic : "Step", payload : "3"); Console.WriteLine("Managed client started."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); } }
public static async Task RunAsync() { var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClientTest", Credentials = new RandomPassword(), ChannelOptions = new MqttClientTcpOptions { Server = "broker.hivemq.com" } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { var managedClient = new MqttFactory().CreateManagedMqttClient(); managedClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(e => { Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic); }); await managedClient.StartAsync(options); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("1")); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS()); await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "xyz", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "abc", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("3")); Console.WriteLine("Managed client started."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); } }
//MQTTClient connector (Throw in constructed client, brokerIP) [WebSocket] public static async Task ManagedMqttConnectWebSocket(IManagedMqttClient managedMqttClient, string brokerIP) { // Use WebSocket connection. string clientID = Guid.NewGuid().ToString(); var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = "MQTTnetManagedClient " + clientID + " (WebSocket)", ChannelOptions = new MqttClientWebSocketOptions { Uri = brokerIP } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; await managedMqttClient.StartAsync(options); }
public static async Task RunAsync(string type) { var ms = new ClientRetainedMessageHandler(); var options = new ManagedMqttClientOptions { ClientOptions = new MqttClientOptions { ClientId = Settings.MQTT.MQTTClientId, Credentials = new RandomPassword(), ChannelOptions = new MqttClientTcpOptions { Server = Settings.MQTT.Server, Port = Settings.MQTT.Port } }, AutoReconnectDelay = TimeSpan.FromSeconds(1), Storage = ms }; try { managedClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(e => { Logging.DebugWrite("Debug", ">> RECEIVED: " + e.ApplicationMessage.Topic); }); await managedClient.StartAsync(options); if (type == "config") { //these are for inverter values -32 await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_inverter_mode/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_inverter_mode\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_inverter_mode\",\"icon\": \"mdi:solar_power\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_grid_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_ac_grid_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_grid_voltage\",\"icon\": \"mdi:power-plug\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_grid_frequency/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_ac_grid_frequency\",\"unit_of_measurement\": \"Hz\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_grid_frequency\",\"icon\": \"mdi:current-ac\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_out_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_ac_out_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_out_voltage\",\"icon\": \"mdi:power-plug\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_out_frequency/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_ac_out_frequency\",\"unit_of_measurement\": \"Hz\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_out_frequency\",\"icon\": \"mdi:current-ac\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_pv_in_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_voltage\",\"icon\": \"mdi:solar-panel-large\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_current/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_pv_in_current\",\"unit_of_measurement\": \"A\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_current\",\"icon\": \"mdi:solar-panel-large\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_watts/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_pv_in_watts\",\"unit_of_measurement\": \"W\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_watts\",\"icon\": \"mdi:solar-panel-large\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_watthour/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_pv_in_watthour\",\"unit_of_measurement\": \"Wh\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_pv_in_watthour\",\"icon\": \"mdi:solar-panel-large\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_scc_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_scc_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_scc_voltage\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_pct/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_load_pct\",\"unit_of_measurement\": \"%\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_pct\",\"icon\": \"mdi:brightness-percent\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_watt/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_load_watt\",\"unit_of_measurement\": \"W\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_watt\",\"icon\": \"mdi:chart-bell-curve\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_watthour/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_load_watthour\",\"unit_of_measurement\": \"Wh\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_watthour\",\"icon\": \"mdi:chart-bell-curve\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_va/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_load_va\",\"unit_of_measurement\": \"VA\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_va\",\"icon\": \"mdi:chart-bell-curve\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_bus_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_bus_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_bus_voltage\",\"icon\": \"mdi:details\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_heatsink_temperature/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_heatsink_temperature\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_heatsink_temperature\",\"icon\": \"mdi:details\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_capacity/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_capacity\",\"unit_of_measurement\": \"%\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_capacity\",\"icon\": \"mdi:battery-outline\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_voltage\",\"icon\": \"mdi:battery-outline\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_charge_current/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_charge_current\",\"unit_of_measurement\": \"A\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_charge_current\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_discharge_current/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_discharge_current\",\"unit_of_measurement\": \"A\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_discharge_current\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_status_on/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_load_status_on\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_load_status_on\",\"icon\": \"mdi:power\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_scc_charge_on/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_scc_charge_on\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_scc_charge_on\",\"icon\": \"mdi:power\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_charge_on/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_ac_charge_on\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_ac_charge_on\",\"icon\": \"mdi:power\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_recharge_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_recharge_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_recharge_voltage\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_under_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_under_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_under_voltage\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_bulk_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_bulk_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_bulk_voltage\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_float_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_float_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_float_voltage\",\"icon\": \"mdi:current-dc\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_max_grid_charge_current/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_max_grid_charge_current\",\"unit_of_measurement\": \"A\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_max_grid_charge_current\",\"icon\": \"mdi:current-ac\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_max_charge_current/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_max_charge_current\",\"unit_of_measurement\": \"A\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_max_charge_current\",\"icon\": \"mdi:current-ac\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_out_source_priority/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_out_source_priority\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_out_source_priority\",\"icon\": \"mdi:grid\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_charger_source_priority/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_charger_source_priority\",\"unit_of_measurement\": \"\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_charger_source_priority\",\"icon\": \"mdi:solar-power\"}").WithRetainFlag(true)); await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_redischarge_voltage/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_battery_redischarge_voltage\",\"unit_of_measurement\": \"V\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_battery_redischarge_voltage\",\"icon\": \"mdi:battery-negative\"}").WithRetainFlag(true)); //this is for raw command await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/voltronic/config").WithPayload("{\"name\": \"voltronic\",\"state_topic\": \"homeassistant/sensor/voltronic\"}").WithRetainFlag(true)); //await managedClient.PublishAsync(builder => builder.WithTopic("homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_$1/config").WithPayload("{\"name\": \"" + Settings.MQTT.MQTTClientId + "_$1\",\"unit_of_measurement\": \"$2\",\"state_topic\": \"homeassistant/sensor/" + Settings.MQTT.MQTTClientId + "_$1\",\"icon\": \"mdi:s$3\"}")); //await managedClient.PublishAsync(builder => builder.WithTopic("PV_in_voltage").WithPayload("300").WithAtLeastOnceQoS()); //subscribe to raw command await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "homeassistant/sensor/voltronic", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); //await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "abc", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); //await managedClient.PublishAsync(builder => builder.WithTopic("PV_in_current").WithPayload("3")); } Logging.DebugWrite("Debug", "Managed client started."); //Console.ReadLine(); } catch (Exception e) { Logging.DebugWrite("Error", e.ToString()); } }