]> git.basschouten.com Git - openhab-addons.git/blob
e43eff9300230dc9eaf723088f9d73e595158791
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2020 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.automation.pidcontroller.internal.template;
14
15 import java.util.Collections;
16 import java.util.List;
17 import java.util.Map;
18 import java.util.Set;
19 import java.util.UUID;
20
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.openhab.automation.pidcontroller.internal.PIDControllerConstants;
23 import org.openhab.automation.pidcontroller.internal.handler.PIDControllerActionHandler;
24 import org.openhab.automation.pidcontroller.internal.handler.PIDControllerTriggerHandler;
25 import org.openhab.automation.pidcontroller.internal.type.PIDControllerActionType;
26 import org.openhab.core.automation.Action;
27 import org.openhab.core.automation.Condition;
28 import org.openhab.core.automation.Trigger;
29 import org.openhab.core.automation.Visibility;
30 import org.openhab.core.automation.template.RuleTemplate;
31 import org.openhab.core.automation.util.ModuleBuilder;
32 import org.openhab.core.config.core.ConfigDescriptionParameter;
33
34 /**
35  *
36  * @author Hilbrand Bouwkamp - Initial Contribution
37  */
38 @NonNullByDefault
39 public class PIDControllerRuleTemplate extends RuleTemplate {
40     public static final String UID = "PIDControllerRuleTemplate";
41
42     public static PIDControllerRuleTemplate initialize() {
43         final String triggerId = UUID.randomUUID().toString();
44
45         final List<Trigger> triggers = List.of(ModuleBuilder.createTrigger().withId(triggerId)
46                 .withTypeUID(PIDControllerTriggerHandler.MODULE_TYPE_ID).withLabel("PID Controller Trigger").build());
47
48         final Map<String, String> actionInputs = Map.of(PIDControllerActionType.INPUT,
49                 triggerId + "." + PIDControllerConstants.OUTPUT);
50
51         final List<Action> actions = List.of(ModuleBuilder.createAction().withId(UUID.randomUUID().toString())
52                 .withTypeUID(PIDControllerActionHandler.MODULE_TYPE_ID).withLabel("PID Controller Action")
53                 .withInputs(actionInputs).build());
54
55         return new PIDControllerRuleTemplate(Set.of("PID Controller"), triggers, Collections.emptyList(), actions,
56                 Collections.emptyList());
57     }
58
59     public PIDControllerRuleTemplate(Set<String> tags, List<Trigger> triggers, List<Condition> conditions,
60             List<Action> actions, List<ConfigDescriptionParameter> configDescriptions) {
61         super(UID, "PID Controller", "Template for a PID controlled rule", tags, triggers, conditions, actions,
62                 configDescriptions, Visibility.VISIBLE);
63     }
64 }