diff --git a/src/main/java/org/comtel2000/fritzhome/FritzUtils.java b/src/main/java/org/comtel2000/fritzhome/FritzUtils.java
index ac4c2aa..e1d846d 100644
--- a/src/main/java/org/comtel2000/fritzhome/FritzUtils.java
+++ b/src/main/java/org/comtel2000/fritzhome/FritzUtils.java
@@ -8,11 +8,11 @@
import org.comtel2000.fritzhome.SwitchDevice.State;
/**
- *
+ *
* Fritz utilities
- *
+ *
* @author comtel
- *
+ *
* @see AVM_Technical_Note_-_Session_ID.pdf
*/
@@ -82,17 +82,16 @@ public static String getState(Locale locale, State state) {
/**
* Formated current power output (sample: 10.22 W)
- *
+ *
* @param locale Locale
- * @param power value in 0,01 W (current power output, refresh interval 2 minutes)
+ * @param power value in 0.001 W (current power output, refresh interval 2 minutes)
* @return power in W or kW
*/
public static String getPower(Locale locale, int power) {
if (power < 1) {
return "0 Watt";
}
- double watt = Math.floor(power) * 0.01d;
-
+ double watt = Math.floor(power) * 0.001d;
if (watt < 1000) {
return String.format(locale, "%.1f Watt", watt);
}
@@ -101,9 +100,9 @@ public static String getPower(Locale locale, int power) {
/**
* Formated total energy consumption since start (sample: 12.1 Wh)
- *
+ *
* @param locale Locale
- * @param energy vlaue in 1.0 Wh (total energy consumption since start)
+ * @param energy value in 1.0 Wh (total energy consumption since start)
* @return energy in Wh or kWh
*/
public static String getEnergy(Locale locale, int energy) {
@@ -118,7 +117,7 @@ public static String getEnergy(Locale locale, int energy) {
/**
* Formated temperature output (sample: 24.1°C)
- *
+ *
* @param locale Locale
* @param celsius in 0,1°C, negative or positive value
* @return temperature
@@ -133,7 +132,7 @@ public static String getTemperature(Locale locale, int celsius) {
/**
* Formated temperature output (sample: 64.1°F)
- *
+ *
* @param locale Locale
* @param celsius in 0,1°C, negative or positive value
* @return temperature in fahrenheit
@@ -146,7 +145,7 @@ public static String getTemperatureF(Locale locale, int celsius) {
/**
* XXtemperatur in 0,5°C, Values: 0x10 – 0x38 16 – 56 (8 to 28°C), 16 <= 8°C, 17 = 8,5°C...... 56
* >= 28°C, 254 = ON , 253 = OFF
- *
+ *
* @param locale Locale
* @param value
* @return (8°C to 28°C), ON, OFF, < 8°C, > 28°C
diff --git a/src/main/java/org/comtel2000/fritzhome/skill/FritzHomeSpeechlet.java b/src/main/java/org/comtel2000/fritzhome/skill/FritzHomeSpeechlet.java
index 517f37e..070f3c0 100644
--- a/src/main/java/org/comtel2000/fritzhome/skill/FritzHomeSpeechlet.java
+++ b/src/main/java/org/comtel2000/fritzhome/skill/FritzHomeSpeechlet.java
@@ -172,7 +172,7 @@ private SpeechletResponse getDeviceEnergy(final Intent intent, final Locale loca
return newResponse(String.format("%s %s hat keine Energieverbauchswerte", toGroupName(device), deviceSlot.getValue()));
}
StringBuilder sb = new StringBuilder();
- sb.append("Der aktuelle Energieverbrauch von ").append(deviceSlot.getValue()).append(" ist ")
+ sb.append("Der aktuelle Energie Verbrauch von ").append(deviceSlot.getValue()).append(" ist ")
.append(FritzUtils.getPower(locale, device.getPower()));
if (device.getEnergy() > 0) {
sb.append(" mit einem Gesamtverbrauch von ").append(FritzUtils.getEnergy(locale, device.getEnergy()));
@@ -182,7 +182,7 @@ private SpeechletResponse getDeviceEnergy(final Intent intent, final Locale loca
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
- return newResponse("Es ist ein Fehler beim Lesen des Energieverbrauches aufgetreten");
+ return newResponse("Es ist ein Fehler beim Lesen des Energie Verbrauches aufgetreten");
}
private Optional findDevice(String name) throws Exception {
diff --git a/src/test/java/org/comtel2000/fritzhome/FritzUtilsTest.java b/src/test/java/org/comtel2000/fritzhome/FritzUtilsTest.java
index 4e3fc16..e161a6d 100644
--- a/src/test/java/org/comtel2000/fritzhome/FritzUtilsTest.java
+++ b/src/test/java/org/comtel2000/fritzhome/FritzUtilsTest.java
@@ -19,31 +19,37 @@ public void testChallengeResponse() throws UnsupportedEncodingException, NoSuchA
@Test
public void testGetPower() {
- assertEquals("0 Watt", FritzUtils.getPower(Locale.getDefault(), 0));
- assertEquals(String.format("%.1f Watt", 1.0), FritzUtils.getPower(Locale.getDefault(), 100));
- assertEquals(String.format("%.2f kW", 1.0), FritzUtils.getPower(Locale.getDefault(), 100000));
+ assertEquals("0 Watt", FritzUtils.getPower(new Locale("DE", "de"), 0));
+ assertEquals(String.format("%.1f Watt", .1), FritzUtils.getPower(new Locale("DE", "de"), 100));
+ assertEquals(String.format("%.1f Watt", 1.57), FritzUtils.getPower(new Locale("DE", "de"), 1570));
+ assertEquals(String.format("%.2f kW", 1.11), FritzUtils.getPower(new Locale("DE", "de"), 1111190));
}
@Test
public void testGetEnergy() {
- assertEquals("0 Wh", FritzUtils.getEnergy(Locale.getDefault(), 0));
- assertEquals(String.format("%.1f Wh", 100.0), FritzUtils.getEnergy(Locale.getDefault(), 100));
- assertEquals(String.format("%.1f kWh", 100.0), FritzUtils.getEnergy(Locale.getDefault(), 100000));
+ assertEquals("0 Wh", FritzUtils.getEnergy(new Locale("DE", "de"), 0));
+ assertEquals(String.format("%.1f Wh", 100.0), FritzUtils.getEnergy(new Locale("DE", "de"), 100));
+ assertEquals(String.format("%.1f kWh", 100.0), FritzUtils.getEnergy(new Locale("DE", "de"), 100000));
}
@Test
public void testGetTemperature() {
- assertEquals(String.format("%.1f°C", 1.0), FritzUtils.getTemperature(Locale.getDefault(), 10));
- assertEquals(String.format("%.1f°C", 10.0), FritzUtils.getTemperature(Locale.getDefault(), 100));
- assertEquals(String.format("%.1f°C", -1.0), FritzUtils.getTemperature(Locale.getDefault(), -10));
+ assertEquals(String.format("%.1f°C", 1.0), FritzUtils.getTemperature(new Locale("DE", "de"), 10));
+ assertEquals(String.format("%.1f°C", 10.0), FritzUtils.getTemperature(new Locale("DE", "de"), 100));
+ assertEquals(String.format("%.1f°C", -1.0), FritzUtils.getTemperature(new Locale("DE", "de"), -10));
+
+ assertEquals(String.format(new Locale("US", "us"), "%.1f°F", 33.8), FritzUtils.getTemperature(new Locale("US", "us"), 10));
+ assertEquals(String.format(new Locale("US", "us"), "%.1f°F", 50.0), FritzUtils.getTemperature(new Locale("US", "us"), 100));
+ assertEquals(String.format(new Locale("US", "us"), "%.1f°F", 30.2), FritzUtils.getTemperature(new Locale("US", "us"), -10));
+
}
@Test
public void testGetTemperatureF() {
- assertEquals(String.format("%.1f°F", 33.8), FritzUtils.getTemperatureF(Locale.getDefault(), 10));
- assertEquals(String.format("%.1f°F", 50.0), FritzUtils.getTemperatureF(Locale.getDefault(), 100));
- assertEquals(String.format("%.1f°F", 30.2), FritzUtils.getTemperatureF(Locale.getDefault(), -10));
+ assertEquals(String.format("%.1f°F", 33.8), FritzUtils.getTemperatureF(new Locale("DE", "de"), 10));
+ assertEquals(String.format("%.1f°F", 50.0), FritzUtils.getTemperatureF(new Locale("DE", "de"), 100));
+ assertEquals(String.format("%.1f°F", 30.2), FritzUtils.getTemperatureF(new Locale("DE", "de"), -10));
}
@Test
@@ -75,15 +81,15 @@ public void testDeviceType() {
@Test
public void testGetHkrTemperature() {
- assertEquals("ON", FritzUtils.getHkrTemperature(Locale.getDefault(), 254));
- assertEquals("OFF", FritzUtils.getHkrTemperature(Locale.getDefault(), 253));
- assertEquals(String.format("< %.1f°C", 8.0), FritzUtils.getHkrTemperature(Locale.getDefault(), 15));
- assertEquals(String.format("> %.1f°C", 28.0), FritzUtils.getHkrTemperature(Locale.getDefault(), 57));
+ assertEquals("ON", FritzUtils.getHkrTemperature(new Locale("DE", "de"), 254));
+ assertEquals("OFF", FritzUtils.getHkrTemperature(new Locale("DE", "de"), 253));
+ assertEquals(String.format("< %.1f°C", 8.0), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 15));
+ assertEquals(String.format("> %.1f°C", 28.0), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 57));
- assertEquals(String.format("%.1f°C", 8.0), FritzUtils.getHkrTemperature(Locale.getDefault(), 16));
- assertEquals(String.format("%.1f°C", 8.5), FritzUtils.getHkrTemperature(Locale.getDefault(), 17));
- assertEquals(String.format("%.1f°C", 27.5), FritzUtils.getHkrTemperature(Locale.getDefault(), 55));
- assertEquals(String.format("%.1f°C", 28.0), FritzUtils.getHkrTemperature(Locale.getDefault(), 56));
+ assertEquals(String.format("%.1f°C", 8.0), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 16));
+ assertEquals(String.format("%.1f°C", 8.5), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 17));
+ assertEquals(String.format("%.1f°C", 27.5), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 55));
+ assertEquals(String.format("%.1f°C", 28.0), FritzUtils.getHkrTemperature(new Locale("DE", "de"), 56));
}