From e191749c0caf15f36c25a69574cd36292f927f96 Mon Sep 17 00:00:00 2001 From: Joerg Zimmermann Date: Sun, 23 Apr 2017 13:31:40 +0200 Subject: [PATCH] #3 fixed --- .../org/comtel2000/fritzhome/FritzUtils.java | 23 +++++----- .../fritzhome/skill/FritzHomeSpeechlet.java | 4 +- .../comtel2000/fritzhome/FritzUtilsTest.java | 46 +++++++++++-------- 3 files changed, 39 insertions(+), 34 deletions(-) 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)); }