[juicenet] Initial contribution (#10768)
Signed-off-by: Jeff James <jeff@james-online.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<binding:binding id="juicenet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
|
||||
|
||||
<name>JuiceNet Binding</name>
|
||||
<description>This is the binding supporting the JuiceNet EV charger.</description>
|
||||
|
||||
</binding:binding>
|
||||
@@ -0,0 +1,98 @@
|
||||
# binding
|
||||
|
||||
binding.juicenet.name = JuiceNet Binding
|
||||
binding.juicenet.description = This is the binding supporting the JuiceNet EV charger.
|
||||
|
||||
# thing types
|
||||
|
||||
thing-type.juicenet.account.label = JuiceNet Account
|
||||
thing-type.juicenet.account.description = This is the account for which your device(s) are registered at home.juice.net.
|
||||
thing-type.juicenet.device.label = JuiceBox Charger
|
||||
thing-type.juicenet.device.description = JuiceBox EV Charger
|
||||
|
||||
# thing types config
|
||||
|
||||
thing-type.config.juicenet.account.apiToken.label = API Token
|
||||
thing-type.config.juicenet.account.apiToken.description = API Token from the user profile page. (https://home.juice.net/Manage)
|
||||
thing-type.config.juicenet.account.refreshInterval.label = Refresh Interval
|
||||
thing-type.config.juicenet.account.refreshInterval.description = Interval the device is polled in seconds.
|
||||
thing-type.config.juicenet.device.unitID.label = Unit ID
|
||||
thing-type.config.juicenet.device.unitID.description = EV charger Unit ID from the JuiceNet webpage. (https://home.juice.net)
|
||||
|
||||
# channel types
|
||||
|
||||
channel-type.juicenet.carBatteryRange.label = Mileage Range
|
||||
channel-type.juicenet.carBatteryRange.description = Car distance range.
|
||||
channel-type.juicenet.carBatterySize.label = Car Battery Pack Size
|
||||
channel-type.juicenet.carBatterySize.description = Car battery pack size.
|
||||
channel-type.juicenet.carChargingRate.label = Car Charging Rate
|
||||
channel-type.juicenet.carChargingRate.description = Car charging rate.
|
||||
channel-type.juicenet.carDescription.label = Car Description
|
||||
channel-type.juicenet.carDescription.description = Car description of vehicle currently or last charged.
|
||||
channel-type.juicenet.chargingState.label = Charging State
|
||||
channel-type.juicenet.chargingState.description = The charging state (Start Charging, Smart Charging, Stop Charging).
|
||||
channel-type.juicenet.chargingState.state.option.start = Start Charging
|
||||
channel-type.juicenet.chargingState.state.option.smart = Smart Charging
|
||||
channel-type.juicenet.chargingState.state.option.stop = Stop Charging
|
||||
channel-type.juicenet.chargingTime.label = Charging Time
|
||||
channel-type.juicenet.chargingTime.description = Charging time since plug-in time.
|
||||
channel-type.juicenet.chargingTimeLeft.label = Charging Time Left
|
||||
channel-type.juicenet.chargingTimeLeft.description = Charging time left.
|
||||
channel-type.juicenet.current.label = Current
|
||||
channel-type.juicenet.current.description = Current charging current.
|
||||
channel-type.juicenet.currentLimit.label = Current Limit
|
||||
channel-type.juicenet.currentLimit.description = Max charging current allowed.
|
||||
channel-type.juicenet.ecost.label = Utility Energy Cost
|
||||
channel-type.juicenet.ecost.description = Cost of electricity from utility company. (currency / kWh)
|
||||
channel-type.juicenet.energy.label = Current Energy
|
||||
channel-type.juicenet.energy.description = Current power level of vehicle.
|
||||
channel-type.juicenet.energyAtPlugin.label = Energy at Plugin
|
||||
channel-type.juicenet.energyAtPlugin.description = Energy value at the plugging time.
|
||||
channel-type.juicenet.energyPerMile.label = Energy Hours Per Mile
|
||||
channel-type.juicenet.energyPerMile.description = Energy Hours Per Mile.
|
||||
channel-type.juicenet.energyToAdd.label = Energy to Add
|
||||
channel-type.juicenet.energyToAdd.description = Amount of energy to be added in current session.
|
||||
channel-type.juicenet.fuelConsumption.label = Fuel consumption
|
||||
channel-type.juicenet.fuelConsumption.description = Distance per volume (mpg) used in savings calculations.
|
||||
channel-type.juicenet.gasCost.label = Gas Cost
|
||||
channel-type.juicenet.gasCost.description = Cost of gasoline used in savings calculations.
|
||||
channel-type.juicenet.lifetimeEnergy.label = Lifetime Energy
|
||||
channel-type.juicenet.lifetimeEnergy.description = Total energy delivered to vehicles during lifetime.
|
||||
channel-type.juicenet.lifetimeSavings.label = Lifetime Savings
|
||||
channel-type.juicenet.lifetimeSavings.description = EV driving saving during lifetime.
|
||||
channel-type.juicenet.message.label = State Message
|
||||
channel-type.juicenet.message.description = This is a message detailing the state of the EV charger.
|
||||
channel-type.juicenet.name.label = Name
|
||||
channel-type.juicenet.name.description = Juice Box name.
|
||||
channel-type.juicenet.override.label = Override State
|
||||
channel-type.juicenet.override.description = Smart charging is overridden.
|
||||
channel-type.juicenet.plugUnplugTime.label = Plug/Unplug Time
|
||||
channel-type.juicenet.plugUnplugTime.description = Last time of either plug-in or plug-out.
|
||||
channel-type.juicenet.plugUnplugTime.state.pattern = %1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp
|
||||
channel-type.juicenet.power.label = Charging Power
|
||||
channel-type.juicenet.power.description = Current charging power.
|
||||
channel-type.juicenet.savings.label = Savings
|
||||
channel-type.juicenet.savings.description = Current session EV savings.
|
||||
channel-type.juicenet.state.label = Device State
|
||||
channel-type.juicenet.state.description = This is the current device state (Available, Plugged-In, Charging, Error, Disconnected).
|
||||
channel-type.juicenet.state.state.option.standby = Available
|
||||
channel-type.juicenet.state.state.option.plugged = Plugged-In
|
||||
channel-type.juicenet.state.state.option.charging = Charging
|
||||
channel-type.juicenet.state.state.option.error = Error
|
||||
channel-type.juicenet.state.state.option.disconnect = Disconnected
|
||||
channel-type.juicenet.targetTime.label = Target Time
|
||||
channel-type.juicenet.targetTime.description = “Start charging” start time, or time to start when overriding smart charging.
|
||||
channel-type.juicenet.targetTime.state.pattern = %1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp
|
||||
channel-type.juicenet.temperature.label = Temperature
|
||||
channel-type.juicenet.temperature.description = Current temperature at the unit.
|
||||
channel-type.juicenet.unitTime.label = Unit Time
|
||||
channel-type.juicenet.unitTime.description = Current time on the unit.
|
||||
channel-type.juicenet.unitTime.state.pattern = %1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp
|
||||
channel-type.juicenet.voltage.label = Voltage
|
||||
channel-type.juicenet.voltage.description = Current voltage.
|
||||
|
||||
# offline configuration errors
|
||||
|
||||
offline.configuration-error.id-missing = Must include an id in the configuration for the device.
|
||||
offline.configuration-error.non-existent-device = Device does not exist as part of this JuiceNet Account
|
||||
offline.configuration-error.bridge-missing = The JuiceBox device must be associated with a JuiceNet Account bridge
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="juicenet"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<bridge-type id="account">
|
||||
<label>JuiceNet Account</label>
|
||||
<description>This is the account for which your device(s) are registered at home.juice.net.</description>
|
||||
|
||||
<config-description>
|
||||
<parameter name="apiToken" type="text" required="true">
|
||||
<label>API Token</label>
|
||||
<description>API Token from the user profile page. (https://home.juice.net/Manage) </description>
|
||||
</parameter>
|
||||
<parameter name="refreshInterval" type="integer" unit="s" min="60">
|
||||
<label>Refresh Interval</label>
|
||||
<description>Interval the device is polled in seconds.</description>
|
||||
<default>60</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</bridge-type>
|
||||
</thing:thing-descriptions>
|
||||
@@ -0,0 +1,288 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="juicenet"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<thing-type id="device">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="account"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>JuiceBox Charger</label>
|
||||
<description>JuiceBox EV Charger</description>
|
||||
|
||||
<channels>
|
||||
<channel id="name" typeId="name"/>
|
||||
<channel id="chargingState" typeId="chargingState"/>
|
||||
|
||||
<channel id="state" typeId="state"/>
|
||||
<channel id="message" typeId="message"/>
|
||||
<channel id="override" typeId="override"/>
|
||||
<channel id="chargingTimeLeft" typeId="chargingTimeLeft"/>
|
||||
<channel id="plugUnplugTime" typeId="plugUnplugTime"/>
|
||||
<channel id="targetTime" typeId="targetTime"/>
|
||||
<channel id="unitTime" typeId="unitTime"/>
|
||||
<channel id="temperature" typeId="temperature"/>
|
||||
<channel id="currentLimit" typeId="currentLimit"/>
|
||||
<channel id="current" typeId="current"/>
|
||||
<channel id="voltage" typeId="voltage"/>
|
||||
<channel id="energy" typeId="energy"/>
|
||||
<channel id="savings" typeId="savings"/>
|
||||
<channel id="power" typeId="power"/>
|
||||
<channel id="chargingTime" typeId="chargingTime"/>
|
||||
<channel id="energyAtPlugin" typeId="energyAtPlugin"/>
|
||||
<channel id="energyToAdd" typeId="energyToAdd"/>
|
||||
|
||||
<channel id="lifetimeEnergy" typeId="lifetimeEnergy"/>
|
||||
<channel id="lifetimeSavings" typeId="lifetimeSavings"/>
|
||||
|
||||
<channel id="gasCost" typeId="gasCost"/>
|
||||
<channel id="fuelConsumption" typeId="fuelConsumption"/>
|
||||
<channel id="ecost" typeId="ecost"/>
|
||||
<channel id="energyPerMile" typeId="energyPerMile"/>
|
||||
|
||||
<channel id="carDescription" typeId="carDescription"/>
|
||||
<channel id="carBatterySize" typeId="carBatterySize"/>
|
||||
<channel id="carBatteryRange" typeId="carBatteryRange"/>
|
||||
<channel id="carChargingRate" typeId="carChargingRate"/>
|
||||
</channels>
|
||||
|
||||
<properties>
|
||||
<property name="name"></property>
|
||||
</properties>
|
||||
<representation-property>unitID</representation-property>
|
||||
|
||||
<config-description>
|
||||
<parameter name="unitID" type="text" required="true">
|
||||
<label>Unit ID</label>
|
||||
<description>EV charger Unit ID from the JuiceNet webpage. (https://home.juice.net) </description>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
|
||||
<channel-type id="name">
|
||||
<item-type>String</item-type>
|
||||
<label>Name</label>
|
||||
<description>Juice Box name.</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="chargingState">
|
||||
<item-type>String</item-type>
|
||||
<label>Charging State</label>
|
||||
<description>The charging state (Start Charging, Smart Charging, Stop Charging).</description>
|
||||
<state>
|
||||
<options>
|
||||
<option value="start">Start Charging</option>
|
||||
<option value="smart">Smart Charging</option>
|
||||
<option value="stop">Stop Charging</option>
|
||||
</options>
|
||||
</state>
|
||||
<autoUpdatePolicy>recommend</autoUpdatePolicy>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="state">
|
||||
<item-type>String</item-type>
|
||||
<label>Device State</label>
|
||||
<description>This is the current device state (Available, Plugged-In, Charging, Error, Disconnected).</description>
|
||||
<state readOnly="true">
|
||||
<options>
|
||||
<option value="standby">Available</option>
|
||||
<option value="plugged">Plugged-In</option>
|
||||
<option value="charging">Charging</option>
|
||||
<option value="error">Error</option>
|
||||
<option value="disconnect">Disconnected</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="message">
|
||||
<item-type>String</item-type>
|
||||
<label>State Message</label>
|
||||
<description>This is a message detailing the state of the EV charger.</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="override">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Override State</label>
|
||||
<description>Smart charging is overridden.</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="chargingTimeLeft">
|
||||
<item-type>Number:Time</item-type>
|
||||
<label>Charging Time Left</label>
|
||||
<description>Charging time left.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="plugUnplugTime">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Plug/Unplug Time</label>
|
||||
<description>Last time of either plug-in or plug-out.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="targetTime">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Target Time</label>
|
||||
<description>“Start charging” start time, or time to start when overriding smart charging.</description>
|
||||
<category>Time</category>
|
||||
<state pattern="%1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="unitTime">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Unit Time</label>
|
||||
<description>Current time on the unit.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%1$tB %1$te, %1$tY %1$tl:%1$tM %1$tp"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="temperature">
|
||||
<item-type>Number:Temperature</item-type>
|
||||
<label>Temperature</label>
|
||||
<description>Current temperature at the unit.</description>
|
||||
<category>Temperature</category>
|
||||
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="currentLimit">
|
||||
<item-type>Number:ElectricCurrent</item-type>
|
||||
<label>Current Limit</label>
|
||||
<description>Max charging current allowed.</description>
|
||||
<state pattern="%d %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="current">
|
||||
<item-type>Number:ElectricCurrent</item-type>
|
||||
<label>Current</label>
|
||||
<description>Current charging current.</description>
|
||||
<state readOnly="true" pattern="%.1f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="voltage">
|
||||
<item-type>Number:ElectricPotential</item-type>
|
||||
<label>Voltage</label>
|
||||
<description>Current voltage.</description>
|
||||
<state readOnly="true" pattern="%d %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="energy">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Current Energy</label>
|
||||
<description>Current power level of vehicle.</description>
|
||||
<state readOnly="true" pattern="%.1f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="savings">
|
||||
<item-type>Number</item-type>
|
||||
<label>Savings</label>
|
||||
<description>Current session EV savings.</description>
|
||||
<state readOnly="true" pattern="$%.2f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="power">
|
||||
<item-type>Number:Power</item-type>
|
||||
<label>Charging Power</label>
|
||||
<description>Current charging power.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="chargingTime">
|
||||
<item-type>Number:Time</item-type>
|
||||
<label>Charging Time</label>
|
||||
<description>Charging time since plug-in time.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="energyAtPlugin">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Energy at Plugin</label>
|
||||
<description>Energy value at the plugging time.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="energyToAdd">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Energy to Add</label>
|
||||
<description>Amount of energy to be added in current session.</description>
|
||||
<state pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="lifetimeEnergy">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Lifetime Energy</label>
|
||||
<description>Total energy delivered to vehicles during lifetime.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="lifetimeSavings">
|
||||
<item-type>Number</item-type>
|
||||
<label>Lifetime Savings</label>
|
||||
<description>EV driving saving during lifetime.</description>
|
||||
<state readOnly="true" pattern="$%.2f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="gasCost">
|
||||
<item-type>Number</item-type>
|
||||
<label>Gas Cost</label>
|
||||
<description>Cost of gasoline used in savings calculations.</description>
|
||||
<state readOnly="true" pattern="$%.2f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="fuelConsumption">
|
||||
<item-type>Number</item-type>
|
||||
<label>Fuel consumption</label>
|
||||
<description>Distance per volume (mpg) used in savings calculations.</description>
|
||||
<state readOnly="true" pattern="%.1f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="ecost">
|
||||
<item-type>Number</item-type>
|
||||
<label>Utility Energy Cost</label>
|
||||
<description>Cost of electricity from utility company. (currency / kWh)</description>
|
||||
<state readOnly="true" pattern="$%.2f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="energyPerMile">
|
||||
<item-type>Number:Power</item-type>
|
||||
<label>Energy Hours Per Mile</label>
|
||||
<description>Energy Hours Per Mile.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="carDescription">
|
||||
<item-type>String</item-type>
|
||||
<label>Car Description</label>
|
||||
<description>Car description of vehicle currently or last charged.</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="carBatterySize">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Car Battery Pack Size</label>
|
||||
<description>Car battery pack size.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="carBatteryRange">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Mileage Range</label>
|
||||
<description>Car distance range.</description>
|
||||
<state readOnly="true" pattern="%d %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="carChargingRate">
|
||||
<item-type>Number:Power</item-type>
|
||||
<label>Car Charging Rate</label>
|
||||
<description>Car charging rate.</description>
|
||||
<state readOnly="true" pattern="%.2f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
</thing:thing-descriptions>
|
||||
Reference in New Issue
Block a user