Updated external content (Jenkins build 2328)

pull/2430/head
openHAB Build Server 2024-10-06 10:07:27 +00:00
parent ec51884dd9
commit e757d41b06
9 changed files with 75 additions and 157 deletions

View File

@ -43,6 +43,7 @@ Each `calendar` thing requires the following configuration parameters:
| `password` | The password for pulling the calendar. If set, the binding pulls the calendar using basic auth. Only valid in combination with `username`. | optional |
| `maxSize` | The maximum size of the iCal-file in Mebibytes. | mandatory (default available) |
| `authorizationCode` | The authorization code to permit the execution of embedded command tags. If set, the binding checks that the authorization code in the command tag matches before executing any commands. | optional |
| `userAgent` | Some providers require a specific user agent header. If left empty, the default Jetty header is used. | optional |
### Configuration for `eventfilter`

View File

@ -237,6 +237,7 @@ The channels are kept consistent as much as possible from brand to brand to make
| `animalAlarm` | Switch | RW | Toggles when an animal is in view. |
| `audioAlarm` | Switch | R | When the camera detects noise above a threshold this switch will move to ON. |
| `autoLED` | Switch | RW |When ON this sets a cameras IR LED to automatically turn on or off. |
| `autoTracking` | Switch | RW |Turn the automatic mode for tracking ON or OFF. |
| `autoWhiteLED` | Switch | RW |When ON this sets a cameras visible white LED to automatically turn on or off. |
| `carAlarm` | Switch | RW | When a car is detected the switch will turn ON. |
| `cellMotionAlarm` | Switch | R | ONVIF cameras only will reflect the status of the ONVIF event of the same name. |

View File

@ -39,7 +39,7 @@ The binding supports either a TCP/IP connection or direct serial port connection
## Discovery
Auto-discovery is supported for Alto and Strato components if the device can be located on the local network using UPnP.
Auto-discovery is supported for Alto and Strato components if the device can be located on the local network using SDDP.
Manually initiated discovery will locate all legacy Premiere line components if they are on the same IP subnet of the openHAB server.
In the Inbox, select Search For Things and then choose the Kaleidescape Binding to initiate a discovery scan.

View File

@ -3,7 +3,7 @@ id: pushbullet
label: Pushbullet
title: Pushbullet - Bindings
type: binding
description: "The Pushbullet binding allows you to notify iOS, Android & Windows 10 Phone & Desktop devices of a message using the Pushbullet API web service."
description: "The Pushbullet binding allows you to notify supported devices of a message using the [Pushbullet API](https://docs.pushbullet.com)."
since: 3x
logo: images/addons/pushbullet.png
install: auto
@ -17,46 +17,26 @@ install: auto
<AddonLogo />
The Pushbullet binding allows you to notify iOS, Android & Windows 10 Phone & Desktop devices of a message using the Pushbullet API web service.
The Pushbullet binding allows you to notify supported devices of a message using the [Pushbullet API](https://docs.pushbullet.com).
To get started you need to [create an account](#creating-an-account) and [obtain an access token](#obtaining-an-access-token).
## Supported Things
This binding supports a generic "bot" which is a representation of the client.
## Discovery
This binding provides no discovery.
The desired bots must be configured manually or via a things file.
## Binding Configuration
The binding has no configuration options itself, all configuration is done at 'Things' level.
| Thing | Type | Description |
| ----- | ----- | ------------------------- |
| bot | Thing | Bot to send messages with |
## Thing Configuration
### Bot (`bot`)
### `bot`
The bot thing is used to send messages to other recipients.
It has the following parameters:
| Config | Description | Required | Advanced |
|------------|------------------------------------------------------------------|----------|----------|
| token | Pushbullet [API token](#obtaining-an-api-key) to send to devices | Yes | False |
| name | Explicit Name, for later use when the bot can receive messages | No | True |
| apiUrlBase | Address of own Pushbullet server, for testing purposes | No | True |
```java
Thing pushbullet:bot:r2d2 "R2D2" @ "Somewhere" [ token = "verysecretwonttellyou" ]
```
| Parameter | Required | Description |
| --------- | :------: | ---------------------------------------------------- |
| token | Yes | Access token obtained from the account settings page |
## Channels
| Channel ID | Channel Description | Supported item type | Advanced |
|------------|-------------------------------------------------|----------------------|----------|
| recipient | for later use when the bot can receive messages | String | False |
| title | for later use when the bot can receive messages | String | False |
| message | for later use when the bot can receive messages | String | False |
Currently the binding does not support any channels.
## Rule Action
@ -88,110 +68,47 @@ For the `sendPushbulletNote` action, parameter `message` is required.
Likewise, for `sendPushbulletLink`, `url` and for `sendPushbulletFile`, `content` parameters are required.
Any other parameters for these actions are optional and can be set to `null`.
Examples:
## Full Example
demo.things:
```java
Thing pushbullet:bot:r2d2 [ token="<ACCESS_TOKEN>" ]
```
demo.rules
```java
val actions = getActions("pushbullet", "pushbullet:bot:r2d2")
// push a note
actions.sendPushbulletNote("someone@example.com", "Note Example", "This is the pushed note.")
// push a link
actions.sendPushbulletLink("someone@example.com", "Link Example", "This is the pushed link", "https://example.com")
// push a file
actions.sendPushbulletFile("someone@example.com", "File Example", "This is the pushed file", "https://example.com/image.png")
actions.sendPushbulletFile("someone@example.com", null, null, "/path/to/somefile.pdf", "document.pdf")
// use toFullString method to push the content of an Image item
actions.sendPushbulletFile("someone@example.com", ImageItem.state.toFullString)
```
## Full Example
## Creating an account
_Provide a full usage example based on textual configuration files (*.things, *.items, *.sitemap)._
A Pushbullet account is linked to either a Google or Facebook account.
pushbullet.things:
```java
Thing pushbullet:bot:r2d2 "R2D2" @ "Somewhere" [ token = "verysecretwonttellyou" ]
```
pushbullet.items
```java
Switch Pushbullet_R2D2_Button "Pushbullet Action bot R2D2"
```
pushbullet.sitemap
```java
sitemap pushbullet label="Pushbullet"
{
Switch item=Pushbullet_R2D2_Button
}
```
pushbullet.rules
```java
rule "Pushbullet R2D2 changed"
when
Item Pushbullet_R2D2_Button changed
then
logInfo(filename, "Button R2D2 changed - OH2...")
if (Pushbullet_R2D2_Button.state == ON)
{
sendCommand(Pushbullet_R2D2_Button, OFF)
val actions = getActions("pushbullet", "pushbullet:bot:r2d2")
logInfo(filename, "Actions for 'R2D2' are: " + actions)
if (actions != null)
{
val result = actions.sendPushbulletNote("someone@example.com", "Title R2D2 OH2", "This has been sent by the new R2D2 bot")
logInfo(filename, "Result of send action is: " + result)
}
}
end
```
## Creating an account for your bot(s)
The pushbullet accounts are bound to either Google or Facebook accounts.
- Create a bot account with either Facebook or Google
- Go to "<https://www.pushbullet.com/>"
- Chose to either "Sign up with Google" or "Sign up with Facebook".
- Go to the [Pushbullet](https://www.pushbullet.com) website.
- Select either "Sign up with Google" or "Sign up with Facebook".
- Complete the signup process as guided by the pushbullet web site.
- Continue with "Obtaining an API key".
## Obtaining an API key
## Obtaining an access token
The API keys are bound to the pushbullet account.
An access token is linked to a Pushbullet account.
- Go to the pushbullet site.
- Log in with either your personal account or the one you created for your bot.
- Go to "<https://www.pushbullet.com/#settings/account>"
- Go to your [Pushbullet account settings](https://www.pushbullet.com/#settings/account) page.
- Click on "Create Access Token".
- Copy the token created on the site.
You must at least provide an API token (Private or Alias Key from Pushbullet.com) and a message in some manner before a message can be pushed.
All other parameters are optional.
If you use an alias key, the parameters (device, icon, sound, vibration) are overwritten by the alias setting on pushbullet.
- Copy the created access token.
## Rate limits
As of 2019, free accounts have a limit of 100 pushes per month.
This action does not evaluate the rate limiting headers though.
## Translation
This project is being translated on transifex.
If you want to help, please join the project at the URL:
- <https://www.transifex.com/hakan42/openhab-binding-pushbullet/dashboard/>
## Libraries
This action has been written without using libraries as jpushbullet or jpushbullet2.
Both of those libraries use various libraries themselves which makes integrating them into openHAB a challenge.
## pushbullet API
- <https://docs.pushbullet.com/>
- <https://docs.pushbullet.com/#push-limit>
As of 2024, free accounts are [limited](https://docs.pushbullet.com/#limits) to 500 pushes per month.
Going over will result in a warning message being logged indicating when your account rate limit will reset.

View File

@ -21,6 +21,8 @@ In addition you can switch off devices if the power consumption is getting highe
Examples: Lights, pool filters, wash machines, ...
Also allows for turning the battery into safe charging mode or storage mode.
## Supported Things
| Thing type id | Name |
@ -33,6 +35,7 @@ Examples: Lights, pool filters, wash machines, ...
- not equipped battery packs will return 0 for all ...Pack channels
- currently channels for the first wallbox are implemented (senec could handle 4 wallboxes)
- Senec disables http access at ~30.08.2023
- The chargeMode `STORAGE` also known as Lithium Storage Mode is intended (according to the manual) for disassembly and transport. It is untested if it has any side effects.
## Thing Configuration
@ -71,6 +74,8 @@ The property `limitationTresholdValue` is used as threshold for channel `powerLi
| batteryFuelCharge | percent | Fuel charge of your battery (0 - 100%) |
| systemState | | Text describing current action of the senec home system (e.g. CHARGE) |
| systemStateValue | | Value describing current action of the senec home system (e.g. 14) |
| chargeMode | OFF/CHARGE/ | In `CHARGE` mode, the battery will try to fill as quickly as possible |
| | STORAGE | in `STORAGE` mode, the battery will try to reach 25% SOC |
| gridPower | watt | Grid power level, negative for supply, positive values for drawing power |
| gridPowerDraw | watt | Absolute power level of power draw, zero while supplying |
| gridPowerSupply | watt | Absolute power level of power supply, zero while drawing |
@ -149,6 +154,7 @@ Number SenecGridVoltagePh2 "Voltage Level on Phase 2 [%d V]" <e
Number SenecGridVoltagePh3 "Voltage Level on Phase 3 [%d V]" <energy> { channel="senechome:senechome:pvbattery:gridVoltagePhase3" }
Number SenecGridFrequency "Grid Frequency [%.2f Hz]" <energy> { channel="senechome:senechome:pvbattery:gridFrequency" }
Number SenecBatteryVoltage "Battery Voltage [%.1f V]" <energy> { channel="senechome:senechome:pvbattery:batteryVoltage" }
String SenecBatteryChargeMode "Battery Charge Mode [%s]" { channel="senechome:senechome:pvbattery:chargeMode" }
```
## Sitemap
@ -180,6 +186,7 @@ Text label="Power Grid"{
Default item=SenecGridVoltagePh3
Default item=SenecGridFrequency
Default item=SenecBatteryVoltage
Default item=SenecBatteryChargeMode
}
}
```

View File

@ -54,6 +54,11 @@
<label>Command Authorization Code</label>
<description>Authorization Code to allow the execution of Command Tags (may be empty)</description>
</parameter>
<parameter name="userAgent" type="text" required="false">
<label>User Agent</label>
<description>Some providers require a specific user agent header. If left empty, the default Jetty header is used.</description>
<advanced>true</advanced>
</parameter>
</config-description>
</bridge-type>

View File

@ -2321,10 +2321,11 @@
<channel id="enableFTP" typeId="enableFTP"/>
<channel id="enableEmail" typeId="enableEmail"/>
<channel id="enablePush" typeId="enablePush"/>
<channel id="autoTracking" typeId="autoTracking"/>
</channels>
<properties>
<property name="thingTypeVersion">1</property>
<property name="thingTypeVersion">2</property>
</properties>
<config-description>
@ -3074,4 +3075,10 @@
</options>
</state>
</channel-type>
<channel-type id="autoTracking" advanced="true">
<item-type>Switch</item-type>
<label>Auto Tracking</label>
<description>Turn the automatic mode for tracking ON or OFF.</description>
</channel-type>
</thing:thing-descriptions>

View File

@ -8,51 +8,18 @@
<label>Pushbullet Bot</label>
<description>Bot to send messages with.</description>
<channels>
<channel id="recipient" typeId="recipient-channel"/>
<channel id="title" typeId="title-channel"/>
<channel id="message" typeId="message-channel"/>
</channels>
<properties>
<property name="thingTypeVersion">1</property>
</properties>
<config-description>
<parameter name="name" type="text" required="false">
<label>Name</label>
<description>Explicit Name of Bot, if wanted</description>
<advanced>true</advanced>
</parameter>
<parameter name="token" type="text" required="true">
<label>Access Token</label>
<description>Access token obtained from the account settings page</description>
</parameter>
<parameter name="apiUrlBase" type="text" required="true">
<label>API Server</label>
<description>The Pushbullet API Server to use, for local testing</description>
<default>https://api.pushbullet.com/v2</default>
<advanced>true</advanced>
<description>Access token obtained from the account settings page.</description>
</parameter>
</config-description>
</thing-type>
<channel-type id="recipient-channel">
<item-type>String</item-type>
<label>Recipient</label>
<description>Mail address or Channel Name</description>
</channel-type>
<channel-type id="title-channel">
<item-type>String</item-type>
<label>Title</label>
<description>Title of the message</description>
</channel-type>
<channel-type id="message-channel">
<item-type>String</item-type>
<label>Message</label>
<description>The text that is to be sent</description>
</channel-type>
</thing:thing-descriptions>

View File

@ -32,6 +32,7 @@
<channel id="batteryFuelCharge" typeId="batteryFuelCharge"/>
<channel id="systemState" typeId="systemState"/>
<channel id="systemStateValue" typeId="systemStateValue"/>
<channel id="chargeMode" typeId="chargeMode"/>
<!-- SenecHomeGrid -->
<channel id="gridPower" typeId="gridPower"/>
@ -242,6 +243,18 @@
<category>Number</category>
<state readOnly="true" pattern="%d"/>
</channel-type>
<channel-type id="chargeMode">
<item-type>String</item-type>
<label>Safe Charge Mode</label>
<category>Text</category>
<state readOnly="false" pattern="%s">
<options>
<option value="OFF">Off</option>
<option value="CHARGE">Safe Charge</option>
<option value="STORAGE">Lithium Storage</option>
</options>
</state>
</channel-type>
<channel-type id="gridPower">