public MqttItem(string topic, RuleConfiguration ruleConfiguration) { _ruleConfiguration = ruleConfiguration; Topic = topic; if (!HaveToIgnore()) { CreateJsonValueConverter(Topic); var measurementName = GetMeasurementName(); var type = GetMeasurementType(measurementName); _measurement = CreateMeasurement(measurementName, type); _measurement.RuleConfiguration = ruleConfiguration; } }
private void LoadConfig() { var filePath = ConfigFilePath(); if (File.Exists(filePath)) { _ruleConfiguration = new JavaScriptSerializer(null, false, int.MaxValue, int.MaxValue, true, false).Deserialize<RuleConfiguration>(File.ReadAllText(filePath)); } else { LoadDefaultConfig(); SaveConfig(); } }
private void LoadDefaultConfig() { _ruleConfiguration = new RuleConfiguration(); _ruleConfiguration.IgnoringRules.Add(new IgnoreRule("^OpenHAB.out.cb")); _ruleConfiguration.NamingRules.Add(new NamingRule("/", ".")); _ruleConfiguration.TypeRules.Add(new TypeRule(".State$", "byte")); _ruleConfiguration.TypeRules.Add(new TypeRule(".State$", "byte")); _ruleConfiguration.TextConverterRules.Add(new TextConverterRule("ON", "1")); _ruleConfiguration.TextConverterRules.Add(new TextConverterRule("OFF", "0")); _ruleConfiguration.TextConverterRules.Add(new TextConverterRule("OPEN", "1")); _ruleConfiguration.TextConverterRules.Add(new TextConverterRule("CLOSED", "0")); _ruleConfiguration.JsonConverterRules.Add(new JsonConverterRule("^hm/status/.*", "val")); _ruleConfiguration.RecordingRules.Add(new RecordingRule("testChange", "change")); _ruleConfiguration.RecordingRules.Add(new RecordingRule("testInterval", "10s")); _ruleConfiguration.RecordingRules.Add(new RecordingRule("State$", "change")); _ruleConfiguration.RecordingRules.Add(new RecordingRule(".*", "30s")); }