@@ -36,21 +36,26 @@ public class HomeAutomation {
3636
3737 private final FritzBoxSession session ;
3838
39- private enum ParamName {
39+ private enum Param {
4040 PARAM ("param" ), LEVEL ("level" ), TARGET ("target" );
4141
42- private String paramName ;
42+ private final String name ;
4343
44- ParamName ( String paramName ) {
45- this .paramName = paramName ;
44+ Param ( final String name ) {
45+ this .name = name ;
4646 }
4747 }
4848
49- private HomeAutomation (FritzBoxSession fritzbox ) {
49+ private HomeAutomation (final FritzBoxSession fritzbox ) {
5050 this .session = fritzbox ;
5151 }
5252
53- public static HomeAutomation connect (String baseUrl , String username , String password ) {
53+ public static HomeAutomation connect (final Config config ) {
54+ return connect (config .getUrl (), config .getUsername (), config .getPassword ());
55+ }
56+
57+ public static HomeAutomation connect (final String baseUrl , final String username , final String password ) {
58+ LOG .info ("Logging in to '{}' with username '{}'" , baseUrl , username );
5459 final FritzBoxSession session = new FritzBoxSession (baseUrl );
5560 session .login (username , password );
5661 return new HomeAutomation (session );
@@ -62,33 +67,37 @@ public DeviceList getDeviceListInfos() {
6267 deviceList .getApiVersion ());
6368 return deviceList ;
6469 }
65-
66- public Device getDeviceInfos (String deviceAin ) {
67- return executeDeviceCommand (deviceAin , "getdeviceinfos" , null , Device .class );
70+
71+ public Device getDeviceInfos (final String deviceAin ) {
72+ return executeDeviceCommand (deviceAin , "getdeviceinfos" , Param . PARAM , null , Device .class );
6873 }
6974
70- private <T > T executeCommand (String command , Class <T > resultType ) {
75+ private <T > T executeCommand (final String command , final Class <T > resultType ) {
7176 final QueryParameters parameters = QueryParameters .builder ().add ("switchcmd" , command ).build ();
7277 return session .getAutenticated (HOME_AUTOMATION_PATH , parameters , resultType );
7378 }
7479
75- private <T > T executeParamCommand (String deviceAin , String command , String parameter , Class <T > responseType ) {
76- return executeDeviceCommand (deviceAin , command , ParamName .PARAM , parameter , responseType );
80+ private <T > T executeParamCommand (final String deviceAin , final String command , final String parameter ,
81+ final Class <T > responseType ) {
82+ return executeDeviceCommand (deviceAin , command , Param .PARAM , parameter , responseType );
7783 }
7884
79- private <T > T executeLevelCommand (String deviceAin , String command , String parameter , Class <T > responseType ) {
80- return executeDeviceCommand (deviceAin , command , ParamName .LEVEL , parameter , responseType );
85+ private <T > T executeLevelCommand (final String deviceAin , final String command , final String parameter ,
86+ final Class <T > responseType ) {
87+ return executeDeviceCommand (deviceAin , command , Param .LEVEL , parameter , responseType );
8188 }
8289
83- private <T > T executeTargetCommand (String deviceAin , String command , String parameter , Class <T > responseType ) {
84- return executeDeviceCommand (deviceAin , command , ParamName .TARGET , parameter , responseType );
90+ private <T > T executeTargetCommand (final String deviceAin , final String command , final String parameter ,
91+ final Class <T > responseType ) {
92+ return executeDeviceCommand (deviceAin , command , Param .TARGET , parameter , responseType );
8593 }
8694
87- private <T > T executeDeviceCommand (String deviceAin , String command , ParamName paramName , String parameter ,
88- Class <T > responseType ) {
95+ private <T > T executeDeviceCommand (final String deviceAin , final String command , final Param paramName ,
96+ final String parameter ,
97+ final Class <T > responseType ) {
8998 final Builder paramBuilder = QueryParameters .builder ().add ("ain" , deviceAin ).add ("switchcmd" , command );
9099 if (parameter != null ) {
91- paramBuilder .add (paramName .paramName , parameter );
100+ paramBuilder .add (paramName .name , parameter );
92101 }
93102 return session .getAutenticated (HOME_AUTOMATION_PATH , paramBuilder .build (), responseType );
94103 }
@@ -100,58 +109,58 @@ public List<String> getSwitchList() {
100109 return idList ;
101110 }
102111
103- public void switchPowerState (String deviceAin , boolean on ) {
112+ public void switchPowerState (final String deviceAin , final boolean on ) {
104113 final String command = on ? "setswitchon" : "setswitchoff" ;
105114 executeParamCommand (deviceAin , command , null , Boolean .class );
106115 }
107116
108- public void togglePowerState (String deviceAin ) {
117+ public void togglePowerState (final String deviceAin ) {
109118 executeParamCommand (deviceAin , "setswitchtoggle" , null , Boolean .class );
110119 }
111120
112- public void setHkrTsoll (String deviceAin , String tsoll ) {
121+ public void setHkrTsoll (final String deviceAin , final String tsoll ) {
113122 executeParamCommand (deviceAin , "sethkrtsoll" , tsoll , Boolean .class );
114123 }
115124
116- public void setBlind (String deviceAin , String target ) {
125+ public void setBlind (final String deviceAin , final String target ) {
117126 executeTargetCommand (deviceAin , "setblind" , target , Boolean .class );
118127 }
119128
120- public void setLevel (String deviceAin , String level ) {
129+ public void setLevel (final String deviceAin , final String level ) {
121130 executeLevelCommand (deviceAin , "setlevel" , level , Boolean .class );
122131 }
123132
124- public void setLevelPercentage (String deviceAin , String level ) {
133+ public void setLevelPercentage (final String deviceAin , final String level ) {
125134 executeLevelCommand (deviceAin , "setlevelpercentage" , level , Boolean .class );
126135 }
127136
128- public boolean getSwitchState (String deviceAin ) {
137+ public boolean getSwitchState (final String deviceAin ) {
129138 return executeParamCommand (deviceAin , "getswitchstate" , null , Boolean .class );
130139 }
131140
132- public boolean getSwitchPresent (String deviceAin ) {
141+ public boolean getSwitchPresent (final String deviceAin ) {
133142 return executeParamCommand (deviceAin , "getswitchpresent" , null , Boolean .class );
134143 }
135144
136- public String getSwitchName (String deviceAin ) {
145+ public String getSwitchName (final String deviceAin ) {
137146 return executeParamCommand (deviceAin , "getswitchname" , null , String .class );
138147 }
139148
140- public Float getTemperature (String deviceAin ) {
149+ public Float getTemperature (final String deviceAin ) {
141150 final Integer centiDegree = executeParamCommand (deviceAin , "gettemperature" , null , Integer .class );
142151 return centiDegree == null ? null : centiDegree / 10F ;
143152 }
144153
145- public DeviceStats getBasicStatistics (String deviceAin ) {
154+ public DeviceStats getBasicStatistics (final String deviceAin ) {
146155 return executeParamCommand (deviceAin , "getbasicdevicestats" , null , DeviceStats .class );
147156 }
148157
149- public Float getSwitchPowerWatt (String deviceAin ) {
158+ public Float getSwitchPowerWatt (final String deviceAin ) {
150159 final Integer powerMilliWatt = executeParamCommand (deviceAin , "getswitchpower" , null , Integer .class );
151160 return powerMilliWatt == null ? null : powerMilliWatt / 1000F ;
152161 }
153162
154- public Integer getSwitchEnergyWattHour (String deviceAin ) {
163+ public Integer getSwitchEnergyWattHour (final String deviceAin ) {
155164 return executeParamCommand (deviceAin , "getswitchenergy" , null , Integer .class );
156165 }
157166
0 commit comments