]> git.basschouten.com Git - openhab-addons.git/commitdiff
Migrate uptime channels to support UoM (#13827)
authorJacob Laursen <jacob-github@vindvejr.dk>
Sat, 3 Dec 2022 11:36:28 +0000 (12:36 +0100)
committerGitHub <noreply@github.com>
Sat, 3 Dec 2022 11:36:28 +0000 (12:36 +0100)
Fixes #13826

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
bundles/org.openhab.binding.unifi/README.md
bundles/org.openhab.binding.unifi/src/main/java/org/openhab/binding/unifi/internal/handler/UniFiClientThingHandler.java
bundles/org.openhab.binding.unifi/src/main/resources/OH-INF/thing/thing-types.xml

index 10cdc3782aaecc268d0c914d9f285436f8bb741b..8ac81e41cabad2150d513ded0c41e0c279c183d3 100644 (file)
@@ -161,7 +161,7 @@ The `wirelessClient` information that is retrieved is available as these channel
 | ap         | String               | Access point (AP) the client is connected to                         | Read        |
 | essid      | String               | Network name (ESSID) the client is connected to                      | Read        |
 | rssi       | Number               | Received signal strength indicator (RSSI) of the client              | Read        |
-| uptime     | Number               | Uptime of the client (in seconds)                                    | Read        |
+| uptime     | Number:Time          | Uptime of the client (in seconds)                                    | Read        |
 | lastSeen   | DateTime             | Date and Time the client was last seen                               | Read        |
 | experience | Number:Dimensionless | Overall health indication of the client (in percentage)              | Read        |
 | blocked    | Switch               | Blocked status of the client                                         | Read, Write |
@@ -181,7 +181,7 @@ The `wiredClient` information that is retrieved is available as these channels:
 | site       | String               | Site name (from the controller web UI) the client is associated with | Read        |
 | macAddress | String               | MAC address of the client                                            | Read        |
 | ipAddress  | String               | IP address of the client                                             | Read        |
-| uptime     | Number               | Uptime of the client (in seconds)                                    | Read        |
+| uptime     | Number:Time          | Uptime of the client (in seconds)                                    | Read        |
 | lastSeen   | DateTime             | Date and Time the client was last seen                               | Read        |
 | experience | Number:Dimensionless | Overall health indication of the client (in percentage)              | Read        |
 | blocked    | Switch               | Blocked status of the client                                         | Read, Write |
@@ -229,17 +229,17 @@ Replace `$user`, `$password` and `$cid` accordingly.
 items/unifi.items
 
 ```
-Switch   MatthewsPhone           "Matthew's iPhone [MAP(unifi.map):%s]"             { channel="unifi:wirelessClient:home:matthewsPhone:online" }
-String   MatthewsPhoneSite       "Matthew's iPhone: Site [%s]"                      { channel="unifi:wirelessClient:home:matthewsPhone:site" }
-String   MatthewsPhoneMAC        "Matthew's iPhone: MAC [%s]"                       { channel="unifi:wirelessClient:home:matthewsPhone:macAddress" }
-String   MatthewsPhoneIP         "Matthew's iPhone: IP [%s]"                        { channel="unifi:wirelessClient:home:matthewsPhone:ipAddress" }
-String   MatthewsPhoneAP         "Matthew's iPhone: AP [%s]"                        { channel="unifi:wirelessClient:home:matthewsPhone:ap" }
-String   MatthewsPhoneESSID      "Matthew's iPhone: ESSID [%s]"                     { channel="unifi:wirelessClient:home:matthewsPhone:essid" }
-Number   MatthewsPhoneRSSI       "Matthew's iPhone: RSSI [%d]"                      { channel="unifi:wirelessClient:home:matthewsPhone:rssi" }
-Number   MatthewsPhoneUptime     "Matthew's iPhone: Uptime [%d]"                    { channel="unifi:wirelessClient:home:matthewsPhone:uptime" }
-DateTime MatthewsPhoneLastSeen   "Matthew's iPhone: Last Seen [%1$tH:%1$tM:%1$tS]"  { channel="unifi:wirelessClient:home:matthewsPhone:lastSeen" }
-Switch   MatthewsPhoneBlocked    "Matthew's iPhone: Blocked"                        { channel="unifi:wirelessClient:home:matthewsPhone:blocked" }
-Switch   MatthewsPhoneReconnect  "Matthew's iPhone: Reconnect"                      { channel="unifi:wirelessClient:home:matthewsPhone:reconnect" }
+Switch      MatthewsPhone           "Matthew's iPhone [MAP(unifi.map):%s]"             { channel="unifi:wirelessClient:home:matthewsPhone:online" }
+String      MatthewsPhoneSite       "Matthew's iPhone: Site [%s]"                      { channel="unifi:wirelessClient:home:matthewsPhone:site" }
+String      MatthewsPhoneMAC        "Matthew's iPhone: MAC [%s]"                       { channel="unifi:wirelessClient:home:matthewsPhone:macAddress" }
+String      MatthewsPhoneIP         "Matthew's iPhone: IP [%s]"                        { channel="unifi:wirelessClient:home:matthewsPhone:ipAddress" }
+String      MatthewsPhoneAP         "Matthew's iPhone: AP [%s]"                        { channel="unifi:wirelessClient:home:matthewsPhone:ap" }
+String      MatthewsPhoneESSID      "Matthew's iPhone: ESSID [%s]"                     { channel="unifi:wirelessClient:home:matthewsPhone:essid" }
+Number      MatthewsPhoneRSSI       "Matthew's iPhone: RSSI [%d]"                      { channel="unifi:wirelessClient:home:matthewsPhone:rssi" }
+Number:Time MatthewsPhoneUptime     "Matthew's iPhone: Uptime [%1$tR]"                 { channel="unifi:wirelessClient:home:matthewsPhone:uptime" }
+DateTime    MatthewsPhoneLastSeen   "Matthew's iPhone: Last Seen [%1$tH:%1$tM:%1$tS]"  { channel="unifi:wirelessClient:home:matthewsPhone:lastSeen" }
+Switch      MatthewsPhoneBlocked    "Matthew's iPhone: Blocked"                        { channel="unifi:wirelessClient:home:matthewsPhone:blocked" }
+Switch      MatthewsPhoneReconnect  "Matthew's iPhone: Reconnect"                      { channel="unifi:wirelessClient:home:matthewsPhone:reconnect" }
 ```
 
 transform/unifi.map
index 3d610285cf3db679f65ca9c978e97260df7d5abe..aa2fce8d84cb7e5460bf353f23c0e7627e7c3093 100644 (file)
@@ -127,7 +127,7 @@ public class UniFiClientThingHandler extends UniFiBaseThingHandler<UniFiClient,
                 break;
             case CHANNEL_UPTIME:
                 // mgb: uptime should default to 0 seconds
-                state = DecimalType.ZERO;
+                state = new QuantityType<>(0, Units.SECOND);
                 break;
             case CHANNEL_EXPERIENCE:
                 // mgb: uptime + experience should default to 0
@@ -200,7 +200,7 @@ public class UniFiClientThingHandler extends UniFiBaseThingHandler<UniFiClient,
             // :uptime
             case CHANNEL_UPTIME:
                 if (client.getUptime() != null) {
-                    state = new DecimalType(client.getUptime());
+                    state = new QuantityType<>(client.getUptime(), Units.SECOND);
                 }
                 break;
 
index c325c51656743a24b307ed1848b6a7020303f5b4..132992cd5babe2d036efe4fa4b5816089c83bd3e 100644 (file)
        </channel-type>
 
        <channel-type id="uptime">
-               <item-type>Number</item-type>
+               <item-type>Number:Time</item-type>
                <label>Uptime</label>
                <description>Uptime of the client (in seconds)</description>
-               <state readOnly="true"></state>
+               <category>Time</category>
+               <state pattern="%.0f %unit%" readOnly="true"></state>
        </channel-type>
 
        <channel-type id="lastSeen">
                <item-type>DateTime</item-type>
                <label>Last Seen</label>
                <description>Timestamp of when the client was last seen</description>
+               <category>Time</category>
                <state readOnly="true"></state>
        </channel-type>