Compare commits

..

15 Commits

Author SHA1 Message Date
631f1ab84a versions 2025-01-20 20:44:04 +00:00
8238ea0ccd disaster recovery 2025-01-19 22:15:13 +00:00
666a66a901 Keller Automation 2024-12-30 20:44:57 +00:00
1749e818a4 network host mode due to wol 2024-12-21 00:03:56 +00:00
8ec25b0c58 readme 2024-12-20 22:22:34 +00:00
3813ace166 start/stop mini pc 2024-12-20 22:21:28 +00:00
9b6eb8e2c2 db backups 2024-12-06 22:44:14 +00:00
750a49496c new automations, updates 2024-12-06 22:39:05 +00:00
ade65d64f9 mqtt 2024-12-01 21:36:22 +00:00
eb7a50f18b zigbee2mqtt 2024-08-18 22:32:49 +01:00
e87d2bf5a0 Lichtschlauch 2024-08-18 22:32:23 +01:00
28956ad9e0 zigbee2mqtt 2024-08-18 21:13:03 +01:00
4c241762e6 Updated versions, zigbee2mqtt 2024-08-18 14:32:38 +01:00
b2b5bd75dd new format works now 2024-05-11 12:52:56 +01:00
82f4e1335a Update homeassistant/configuration.yaml
new format
2024-05-11 13:43:57 +02:00
40 changed files with 20361 additions and 211 deletions

4
README.md Normal file
View File

@@ -0,0 +1,4 @@
# Homeassistant
## Remote PC Start / Stop
https://www.creatingsmarthome.com/index.php/2022/02/12/guide-start-up-and-shut-down-remote-linux-pc-using-home-assistant/

View File

@@ -20,26 +20,20 @@ services:
homeassistant:
container_name: homeassistant
image: homeassistant/raspberrypi3-homeassistant:stable
image: homeassistant/armv7-homeassistant:2024.12.1
volumes:
- ./homeassistant:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
#network_mode: host
links:
# - "raspberrymatic:raspberrymatic"
- "mqtt:mqtt"
ports:
- "8123:8123"
- "8060:8060"
- "8883:8883"
network_mode: host #due to wake on lan. mqtt is now localhost. Ports:8123,8060,8883
# see https://community.home-assistant.io/t/migration-to-2021-7-fails-fatal-python-error-init-interp-main-cant-initialize-time/320648/28
security_opt:
- seccomp:unconfined
#mqtt for the milight bridge
mqtt:
image: eclipse-mosquitto
image: eclipse-mosquitto:2.0.20
container_name: mqtt
restart: unless-stopped
volumes:
@@ -50,3 +44,18 @@ services:
- "1883:1883"
- "9001:9001"
zigbee2mqtt:
container_name: zigbee2mqtt
restart: unless-stopped
devices:
- /dev/ttyACM0:/dev/ttyACM0
ports:
- "8080:8080"
volumes:
- ./zb2mqttdata:/app/data
- /run/udev:/run/udev:ro
environment:
- TZ=Europe/Amsterdam
image: koenkk/zigbee2mqtt:1.42.0
links:
- "mqtt:mqtt"

11
findusb.sh Executable file
View File

@@ -0,0 +1,11 @@
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && exit
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && exit
echo "/dev/$devname - $ID_SERIAL"
)
done

733
get-docker.sh Executable file
View File

@@ -0,0 +1,733 @@
#!/bin/sh
set -e
# Docker Engine for Linux installation script.
#
# This script is intended as a convenient way to configure docker's package
# repositories and to install Docker Engine, This script is not recommended
# for production environments. Before running this script, make yourself familiar
# with potential risks and limitations, and refer to the installation manual
# at https://docs.docker.com/engine/install/ for alternative installation methods.
#
# The script:
#
# - Requires `root` or `sudo` privileges to run.
# - Attempts to detect your Linux distribution and version and configure your
# package management system for you.
# - Doesn't allow you to customize most installation parameters.
# - Installs dependencies and recommendations without asking for confirmation.
# - Installs the latest stable release (by default) of Docker CLI, Docker Engine,
# Docker Buildx, Docker Compose, containerd, and runc. When using this script
# to provision a machine, this may result in unexpected major version upgrades
# of these packages. Always test upgrades in a test environment before
# deploying to your production systems.
# - Isn't designed to upgrade an existing Docker installation. When using the
# script to update an existing installation, dependencies may not be updated
# to the expected version, resulting in outdated versions.
#
# Source code is available at https://github.com/docker/docker-install/
#
# Usage
# ==============================================================================
#
# To install the latest stable versions of Docker CLI, Docker Engine, and their
# dependencies:
#
# 1. download the script
#
# $ curl -fsSL https://get.docker.com -o install-docker.sh
#
# 2. verify the script's content
#
# $ cat install-docker.sh
#
# 3. run the script with --dry-run to verify the steps it executes
#
# $ sh install-docker.sh --dry-run
#
# 4. run the script either as root, or using sudo to perform the installation.
#
# $ sudo sh install-docker.sh
#
# Command-line options
# ==============================================================================
#
# --version <VERSION>
# Use the --version option to install a specific version, for example:
#
# $ sudo sh install-docker.sh --version 23.0
#
# --channel <stable|test>
#
# Use the --channel option to install from an alternative installation channel.
# The following example installs the latest versions from the "test" channel,
# which includes pre-releases (alpha, beta, rc):
#
# $ sudo sh install-docker.sh --channel test
#
# Alternatively, use the script at https://test.docker.com, which uses the test
# channel as default.
#
# --mirror <Aliyun|AzureChinaCloud>
#
# Use the --mirror option to install from a mirror supported by this script.
# Available mirrors are "Aliyun" (https://mirrors.aliyun.com/docker-ce), and
# "AzureChinaCloud" (https://mirror.azure.cn/docker-ce), for example:
#
# $ sudo sh install-docker.sh --mirror AzureChinaCloud
#
# ==============================================================================
# Git commit from https://github.com/docker/docker-install when
# the script was uploaded (Should only be modified by upload job):
SCRIPT_COMMIT_SHA="0d6f72e671ba87f7aa4c6991646a1a5b9f9dae84"
# strip "v" prefix if present
VERSION="${VERSION#v}"
# The channel to install from:
# * stable
# * test
DEFAULT_CHANNEL_VALUE="stable"
if [ -z "$CHANNEL" ]; then
CHANNEL=$DEFAULT_CHANNEL_VALUE
fi
DEFAULT_DOWNLOAD_URL="https://download.docker.com"
if [ -z "$DOWNLOAD_URL" ]; then
DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL
fi
DEFAULT_REPO_FILE="docker-ce.repo"
if [ -z "$REPO_FILE" ]; then
REPO_FILE="$DEFAULT_REPO_FILE"
fi
mirror=''
DRY_RUN=${DRY_RUN:-}
while [ $# -gt 0 ]; do
case "$1" in
--channel)
CHANNEL="$2"
shift
;;
--dry-run)
DRY_RUN=1
;;
--mirror)
mirror="$2"
shift
;;
--version)
VERSION="${2#v}"
shift
;;
--*)
echo "Illegal option $1"
;;
esac
shift $(( $# > 0 ? 1 : 0 ))
done
case "$mirror" in
Aliyun)
DOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce"
;;
AzureChinaCloud)
DOWNLOAD_URL="https://mirror.azure.cn/docker-ce"
;;
"")
;;
*)
>&2 echo "unknown mirror '$mirror': use either 'Aliyun', or 'AzureChinaCloud'."
exit 1
;;
esac
case "$CHANNEL" in
stable|test)
;;
*)
>&2 echo "unknown CHANNEL '$CHANNEL': use either stable or test."
exit 1
;;
esac
command_exists() {
command -v "$@" > /dev/null 2>&1
}
# version_gte checks if the version specified in $VERSION is at least the given
# SemVer (Maj.Minor[.Patch]), or CalVer (YY.MM) version.It returns 0 (success)
# if $VERSION is either unset (=latest) or newer or equal than the specified
# version, or returns 1 (fail) otherwise.
#
# examples:
#
# VERSION=23.0
# version_gte 23.0 // 0 (success)
# version_gte 20.10 // 0 (success)
# version_gte 19.03 // 0 (success)
# version_gte 26.1 // 1 (fail)
version_gte() {
if [ -z "$VERSION" ]; then
return 0
fi
version_compare "$VERSION" "$1"
}
# version_compare compares two version strings (either SemVer (Major.Minor.Path),
# or CalVer (YY.MM) version strings. It returns 0 (success) if version A is newer
# or equal than version B, or 1 (fail) otherwise. Patch releases and pre-release
# (-alpha/-beta) are not taken into account
#
# examples:
#
# version_compare 23.0.0 20.10 // 0 (success)
# version_compare 23.0 20.10 // 0 (success)
# version_compare 20.10 19.03 // 0 (success)
# version_compare 20.10 20.10 // 0 (success)
# version_compare 19.03 20.10 // 1 (fail)
version_compare() (
set +x
yy_a="$(echo "$1" | cut -d'.' -f1)"
yy_b="$(echo "$2" | cut -d'.' -f1)"
if [ "$yy_a" -lt "$yy_b" ]; then
return 1
fi
if [ "$yy_a" -gt "$yy_b" ]; then
return 0
fi
mm_a="$(echo "$1" | cut -d'.' -f2)"
mm_b="$(echo "$2" | cut -d'.' -f2)"
# trim leading zeros to accommodate CalVer
mm_a="${mm_a#0}"
mm_b="${mm_b#0}"
if [ "${mm_a:-0}" -lt "${mm_b:-0}" ]; then
return 1
fi
return 0
)
is_dry_run() {
if [ -z "$DRY_RUN" ]; then
return 1
else
return 0
fi
}
is_wsl() {
case "$(uname -r)" in
*microsoft* ) true ;; # WSL 2
*Microsoft* ) true ;; # WSL 1
* ) false;;
esac
}
is_darwin() {
case "$(uname -s)" in
*darwin* ) true ;;
*Darwin* ) true ;;
* ) false;;
esac
}
deprecation_notice() {
distro=$1
distro_version=$2
echo
printf "\033[91;1mDEPRECATION WARNING\033[0m\n"
printf " This Linux distribution (\033[1m%s %s\033[0m) reached end-of-life and is no longer supported by this script.\n" "$distro" "$distro_version"
echo " No updates or security fixes will be released for this distribution, and users are recommended"
echo " to upgrade to a currently maintained version of $distro."
echo
printf "Press \033[1mCtrl+C\033[0m now to abort this script, or wait for the installation to continue."
echo
sleep 10
}
get_distribution() {
lsb_dist=""
# Every system that we officially support has /etc/os-release
if [ -r /etc/os-release ]; then
lsb_dist="$(. /etc/os-release && echo "$ID")"
fi
# Returning an empty string here should be alright since the
# case statements don't act unless you provide an actual value
echo "$lsb_dist"
}
echo_docker_as_nonroot() {
if is_dry_run; then
return
fi
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
# intentionally mixed spaces and tabs here -- tabs are stripped by "<<-EOF", spaces are kept in the output
echo
echo "================================================================================"
echo
if version_gte "20.10"; then
echo "To run Docker as a non-privileged user, consider setting up the"
echo "Docker daemon in rootless mode for your user:"
echo
echo " dockerd-rootless-setuptool.sh install"
echo
echo "Visit https://docs.docker.com/go/rootless/ to learn about rootless mode."
echo
fi
echo
echo "To run the Docker daemon as a fully privileged service, but granting non-root"
echo "users access, refer to https://docs.docker.com/go/daemon-access/"
echo
echo "WARNING: Access to the remote API on a privileged Docker daemon is equivalent"
echo " to root access on the host. Refer to the 'Docker daemon attack surface'"
echo " documentation for details: https://docs.docker.com/go/attack-surface/"
echo
echo "================================================================================"
echo
}
# Check if this is a forked Linux distro
check_forked() {
# Check for lsb_release command existence, it usually exists in forked distros
if command_exists lsb_release; then
# Check if the `-u` option is supported
set +e
lsb_release -a -u > /dev/null 2>&1
lsb_release_exit_code=$?
set -e
# Check if the command has exited successfully, it means we're in a forked distro
if [ "$lsb_release_exit_code" = "0" ]; then
# Print info about current distro
cat <<-EOF
You're using '$lsb_dist' version '$dist_version'.
EOF
# Get the upstream release info
lsb_dist=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'id' | cut -d ':' -f 2 | tr -d '[:space:]')
dist_version=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'codename' | cut -d ':' -f 2 | tr -d '[:space:]')
# Print info about upstream distro
cat <<-EOF
Upstream release is '$lsb_dist' version '$dist_version'.
EOF
else
if [ -r /etc/debian_version ] && [ "$lsb_dist" != "ubuntu" ] && [ "$lsb_dist" != "raspbian" ]; then
if [ "$lsb_dist" = "osmc" ]; then
# OSMC runs Raspbian
lsb_dist=raspbian
else
# We're Debian and don't even know it!
lsb_dist=debian
fi
dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')"
case "$dist_version" in
12)
dist_version="bookworm"
;;
11)
dist_version="bullseye"
;;
10)
dist_version="buster"
;;
9)
dist_version="stretch"
;;
8)
dist_version="jessie"
;;
esac
fi
fi
fi
}
do_install() {
echo "# Executing docker install script, commit: $SCRIPT_COMMIT_SHA"
if command_exists docker; then
cat >&2 <<-'EOF'
Warning: the "docker" command appears to already exist on this system.
If you already have Docker installed, this script can cause trouble, which is
why we're displaying this warning and provide the opportunity to cancel the
installation.
If you installed the current Docker package using this script and are using it
again to update Docker, you can safely ignore this message.
You may press Ctrl+C now to abort this script.
EOF
( set -x; sleep 20 )
fi
user="$(id -un 2>/dev/null || true)"
sh_c='sh -c'
if [ "$user" != 'root' ]; then
if command_exists sudo; then
sh_c='sudo -E sh -c'
elif command_exists su; then
sh_c='su -c'
else
cat >&2 <<-'EOF'
Error: this installer needs the ability to run commands as root.
We are unable to find either "sudo" or "su" available to make this happen.
EOF
exit 1
fi
fi
if is_dry_run; then
sh_c="echo"
fi
# perform some very rudimentary platform detection
lsb_dist=$( get_distribution )
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
if is_wsl; then
echo
echo "WSL DETECTED: We recommend using Docker Desktop for Windows."
echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop/"
echo
cat >&2 <<-'EOF'
You may press Ctrl+C now to abort this script.
EOF
( set -x; sleep 20 )
fi
case "$lsb_dist" in
ubuntu)
if command_exists lsb_release; then
dist_version="$(lsb_release --codename | cut -f2)"
fi
if [ -z "$dist_version" ] && [ -r /etc/lsb-release ]; then
dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")"
fi
;;
debian|raspbian)
dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')"
case "$dist_version" in
12)
dist_version="bookworm"
;;
11)
dist_version="bullseye"
;;
10)
dist_version="buster"
;;
9)
dist_version="stretch"
;;
8)
dist_version="jessie"
;;
esac
;;
centos|rhel)
if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then
dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
fi
;;
*)
if command_exists lsb_release; then
dist_version="$(lsb_release --release | cut -f2)"
fi
if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then
dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
fi
;;
esac
# Check if this is a forked Linux distro
check_forked
# Print deprecation warnings for distro versions that recently reached EOL,
# but may still be commonly used (especially LTS versions).
case "$lsb_dist.$dist_version" in
centos.8|centos.7|rhel.7)
deprecation_notice "$lsb_dist" "$dist_version"
;;
debian.buster|debian.stretch|debian.jessie)
deprecation_notice "$lsb_dist" "$dist_version"
;;
raspbian.buster|raspbian.stretch|raspbian.jessie)
deprecation_notice "$lsb_dist" "$dist_version"
;;
ubuntu.bionic|ubuntu.xenial|ubuntu.trusty)
deprecation_notice "$lsb_dist" "$dist_version"
;;
ubuntu.mantic|ubuntu.lunar|ubuntu.kinetic|ubuntu.impish|ubuntu.hirsute|ubuntu.groovy|ubuntu.eoan|ubuntu.disco|ubuntu.cosmic)
deprecation_notice "$lsb_dist" "$dist_version"
;;
fedora.*)
if [ "$dist_version" -lt 39 ]; then
deprecation_notice "$lsb_dist" "$dist_version"
fi
;;
esac
# Run setup for each distro accordingly
case "$lsb_dist" in
ubuntu|debian|raspbian)
pre_reqs="ca-certificates curl"
apt_repo="deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] $DOWNLOAD_URL/linux/$lsb_dist $dist_version $CHANNEL"
(
if ! is_dry_run; then
set -x
fi
$sh_c 'apt-get update -qq >/dev/null'
$sh_c "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq $pre_reqs >/dev/null"
$sh_c 'install -m 0755 -d /etc/apt/keyrings'
$sh_c "curl -fsSL \"$DOWNLOAD_URL/linux/$lsb_dist/gpg\" -o /etc/apt/keyrings/docker.asc"
$sh_c "chmod a+r /etc/apt/keyrings/docker.asc"
$sh_c "echo \"$apt_repo\" > /etc/apt/sources.list.d/docker.list"
$sh_c 'apt-get update -qq >/dev/null'
)
pkg_version=""
if [ -n "$VERSION" ]; then
if is_dry_run; then
echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
else
# Will work for incomplete versions IE (17.12), but may not actually grab the "latest" if in the test channel
pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/~ce~.*/g' | sed 's/-/.*/g')"
search_command="apt-cache madison docker-ce | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3"
pkg_version="$($sh_c "$search_command")"
echo "INFO: Searching repository for VERSION '$VERSION'"
echo "INFO: $search_command"
if [ -z "$pkg_version" ]; then
echo
echo "ERROR: '$VERSION' not found amongst apt-cache madison results"
echo
exit 1
fi
if version_gte "18.09"; then
search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3"
echo "INFO: $search_command"
cli_pkg_version="=$($sh_c "$search_command")"
fi
pkg_version="=$pkg_version"
fi
fi
(
pkgs="docker-ce${pkg_version%=}"
if version_gte "18.09"; then
# older versions didn't ship the cli and containerd as separate packages
pkgs="$pkgs docker-ce-cli${cli_pkg_version%=} containerd.io"
fi
if version_gte "20.10"; then
pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version"
fi
if version_gte "23.0"; then
pkgs="$pkgs docker-buildx-plugin"
fi
if ! is_dry_run; then
set -x
fi
$sh_c "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq $pkgs >/dev/null"
)
echo_docker_as_nonroot
exit 0
;;
centos|fedora|rhel)
if command_exists dnf; then
pkg_manager="dnf"
pkg_manager_flags="--best"
config_manager="dnf config-manager"
enable_channel_flag="--set-enabled"
disable_channel_flag="--set-disabled"
pre_reqs="dnf-plugins-core"
else
pkg_manager="yum"
pkg_manager_flags=""
config_manager="yum-config-manager"
enable_channel_flag="--enable"
disable_channel_flag="--disable"
pre_reqs="yum-utils"
fi
if [ "$lsb_dist" = "fedora" ]; then
pkg_suffix="fc$dist_version"
else
pkg_suffix="el"
fi
repo_file_url="$DOWNLOAD_URL/linux/$lsb_dist/$REPO_FILE"
(
if ! is_dry_run; then
set -x
fi
$sh_c "$pkg_manager $pkg_manager_flags install -y -q $pre_reqs"
$sh_c "$config_manager --add-repo $repo_file_url"
if [ "$CHANNEL" != "stable" ]; then
$sh_c "$config_manager $disable_channel_flag 'docker-ce-*'"
$sh_c "$config_manager $enable_channel_flag 'docker-ce-$CHANNEL'"
fi
$sh_c "$pkg_manager makecache"
)
pkg_version=""
if [ -n "$VERSION" ]; then
if is_dry_run; then
echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
else
pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/\\\\.ce.*/g' | sed 's/-/.*/g').*$pkg_suffix"
search_command="$pkg_manager list --showduplicates docker-ce | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'"
pkg_version="$($sh_c "$search_command")"
echo "INFO: Searching repository for VERSION '$VERSION'"
echo "INFO: $search_command"
if [ -z "$pkg_version" ]; then
echo
echo "ERROR: '$VERSION' not found amongst $pkg_manager list results"
echo
exit 1
fi
if version_gte "18.09"; then
# older versions don't support a cli package
search_command="$pkg_manager list --showduplicates docker-ce-cli | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'"
cli_pkg_version="$($sh_c "$search_command" | cut -d':' -f 2)"
fi
# Cut out the epoch and prefix with a '-'
pkg_version="-$(echo "$pkg_version" | cut -d':' -f 2)"
fi
fi
(
pkgs="docker-ce$pkg_version"
if version_gte "18.09"; then
# older versions didn't ship the cli and containerd as separate packages
if [ -n "$cli_pkg_version" ]; then
pkgs="$pkgs docker-ce-cli-$cli_pkg_version containerd.io"
else
pkgs="$pkgs docker-ce-cli containerd.io"
fi
fi
if version_gte "20.10"; then
pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version"
fi
if version_gte "23.0"; then
pkgs="$pkgs docker-buildx-plugin"
fi
if ! is_dry_run; then
set -x
fi
$sh_c "$pkg_manager $pkg_manager_flags install -y -q $pkgs"
)
echo_docker_as_nonroot
exit 0
;;
sles)
if [ "$(uname -m)" != "s390x" ]; then
echo "Packages for SLES are currently only available for s390x"
exit 1
fi
repo_file_url="$DOWNLOAD_URL/linux/$lsb_dist/$REPO_FILE"
pre_reqs="ca-certificates curl libseccomp2 awk"
(
if ! is_dry_run; then
set -x
fi
$sh_c "zypper install -y $pre_reqs"
$sh_c "zypper addrepo $repo_file_url"
if ! is_dry_run; then
cat >&2 <<-'EOF'
WARNING!!
openSUSE repository (https://download.opensuse.org/repositories/security:/SELinux) will be enabled now.
Do you wish to continue?
You may press Ctrl+C now to abort this script.
EOF
( set -x; sleep 30 )
fi
opensuse_repo="https://download.opensuse.org/repositories/security:/SELinux/openSUSE_Factory/security:SELinux.repo"
$sh_c "zypper addrepo $opensuse_repo"
$sh_c "zypper --gpg-auto-import-keys refresh"
$sh_c "zypper lr -d"
)
pkg_version=""
if [ -n "$VERSION" ]; then
if is_dry_run; then
echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
else
pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/\\\\.ce.*/g' | sed 's/-/.*/g')"
search_command="zypper search -s --match-exact 'docker-ce' | grep '$pkg_pattern' | tail -1 | awk '{print \$6}'"
pkg_version="$($sh_c "$search_command")"
echo "INFO: Searching repository for VERSION '$VERSION'"
echo "INFO: $search_command"
if [ -z "$pkg_version" ]; then
echo
echo "ERROR: '$VERSION' not found amongst zypper list results"
echo
exit 1
fi
search_command="zypper search -s --match-exact 'docker-ce-cli' | grep '$pkg_pattern' | tail -1 | awk '{print \$6}'"
# It's okay for cli_pkg_version to be blank, since older versions don't support a cli package
cli_pkg_version="$($sh_c "$search_command")"
pkg_version="-$pkg_version"
fi
fi
(
pkgs="docker-ce$pkg_version"
if version_gte "18.09"; then
if [ -n "$cli_pkg_version" ]; then
# older versions didn't ship the cli and containerd as separate packages
pkgs="$pkgs docker-ce-cli-$cli_pkg_version containerd.io"
else
pkgs="$pkgs docker-ce-cli containerd.io"
fi
fi
if version_gte "20.10"; then
pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version"
fi
if version_gte "23.0"; then
pkgs="$pkgs docker-buildx-plugin"
fi
if ! is_dry_run; then
set -x
fi
$sh_c "zypper -q install -y $pkgs"
)
echo_docker_as_nonroot
exit 0
;;
*)
if [ -z "$lsb_dist" ]; then
if is_darwin; then
echo
echo "ERROR: Unsupported operating system 'macOS'"
echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop"
echo
exit 1
fi
fi
echo
echo "ERROR: Unsupported distribution '$lsb_dist'"
echo
exit 1
;;
esac
exit 1
}
# wrapped up in a function so that we have some protection against only getting
# half the file during "curl | sh"
do_install

View File

@@ -1 +1 @@
2021.7.4
2024.12.1

View File

@@ -1 +1,67 @@
[]
[
{
"name": "Gaslampe",
"id": "a5f5b13c090b474da34c8d1c9d1e25bd",
"complete": false
},
{
"name": "Thermoskanne ",
"id": "09dff852ad894d4d95dc2e8c247f985a",
"complete": false
},
{
"name": "Roller",
"id": "6cfd3565ff3f43c6bde6352e06b9f872",
"complete": false
},
{
"name": "Fahrradhelm ",
"id": "c9406963918f456bbc221a81ecef1db7",
"complete": false
},
{
"name": "Quixx",
"id": "e4442f3fb6634e62913e15246472bcea",
"complete": false
},
{
"name": "Lätzchen ",
"id": "e1115e0792a448a9a46759cd377a4849",
"complete": false
},
{
"name": "Balsamico",
"id": "ac3264e58c854ee98b96add172f27b48",
"complete": false
},
{
"name": "Toast",
"id": "5560a1d7abf54b6b9c6ef736ccff2e28",
"complete": false
},
{
"name": "Brot",
"id": "81be0cb8c53e48f89be49c049429ff7f",
"complete": false
},
{
"name": "Kerze",
"id": "4067e98f758549b0bc82275faf46742a",
"complete": false
},
{
"name": "Frischhaltebeutel",
"id": "4e64b39030fa449885c30256b1a9f961",
"complete": false
},
{
"name": "Hotspot",
"id": "ef6d2ab1e24846c3b89dbb85fec1a87d",
"complete": false
},
{
"name": "Gasflasche prüfen",
"id": "803120da5c994813be568bd646c170e0",
"complete": false
}
]

View File

@@ -69,31 +69,412 @@
target:
entity_id: switch.pumpe
mode: single
- id: '1713635450561'
alias: Controller - OSRAM AC025XX00NJ SMART+ Switch Mini
description: Lampe Osram Smart
- id: '1723274410344'
alias: Fernbedienung
description: ''
trigger:
- platform: device
domain: mqtt
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
type: action
subtype: 'on'
condition: []
action:
- action: light.turn_on
target:
entity_id:
- light.bogenlampe
data: {}
- action: light.turn_on
target:
entity_id: light.lichtschlauch_white
data: {}
- action: light.turn_off
metadata: {}
data:
transition: 1
target:
entity_id: light.lichtschlauch_rgb
mode: single
- id: '1723274776341'
alias: Fernbedienung aus
description: ''
trigger:
- platform: device
domain: mqtt
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
type: action
subtype: 'off'
condition: []
action:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id:
- 8a71457ca3d2c1be55ea34f0037e8756
- 9d7380c58b619962e11dda1d5a060938
mode: single
- id: '1725182808963'
alias: Flurlampe an
description: ''
triggers:
- event: sunset
offset: 0
trigger: sun
- trigger: time
at: 06:30:00
conditions: []
actions:
- action: light.turn_on
metadata: {}
data:
brightness_pct: 90
target:
device_id:
- da8053e3c99c43fa802f32627d9ec42e
mode: single
- id: '1725182915207'
alias: Flurlampe aus
description: ''
triggers:
- at: 01:00:00
trigger: time
- trigger: time
at: 08:15:00
conditions: []
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id:
- da8053e3c99c43fa802f32627d9ec42e
mode: single
- id: '1732045729333'
alias: Wasser Spüle
description: ''
trigger:
- type: moist
platform: device
device_id: ed19b3502ef3dad70cca3de834a993bc
entity_id: af627c5df02c10ebfdc7e677b2934f12
domain: binary_sensor
condition: []
action:
- action: notify.mobile_app_sm_a536b
metadata: {}
data:
message: Wasser unter der Spüle!
- action: notify.mobile_app_sm_s901b
metadata: {}
data:
message: Wasser unter der Spüle!
mode: single
- id: '1732467176209'
alias: Controller - Philips 929002398602 Hue Dimmer switch v2
description: ''
use_blueprint:
path: EPMatt/osram_ac025xx00nj.yaml
path: EPMatt/philips_929002398602.yaml
input:
integration: deCONZ
controller_device: a185156e10e06b082d20b9a2e6530868
helper_last_controller_event: input_text.last_controller_event
action_button_up_short:
- device_id: 9076597286e6839a2a164b0f1cc5797d
domain: light
entity_id: light.extended_color_light_1
type: brightness_increase
action_button_center_short:
- type: toggle
device_id: 9076597286e6839a2a164b0f1cc5797d
entity_id: light.extended_color_light_1
domain: light
- type: toggle
device_id: 51c444353d203fe1a7afc607a80a563e
entity_id: light.lightstrip
domain: light
action_button_down_short:
- device_id: 9076597286e6839a2a164b0f1cc5797d
domain: light
entity_id: light.extended_color_light_1
type: brightness_decrease
integration: Zigbee2MQTT
controller_entity: sensor.fernbedienung_bad_battery
helper_last_controller_event: input_text.last_controller_event2
action_button_up_double:
- action: light.turn_on
metadata: {}
data:
kelvin: 4222
target:
device_id: 4a993938cbf7289987eb684f71b00b92
action_button_down_double:
- action: light.turn_on
metadata: {}
data:
kelvin: 2627
target:
device_id: 4a993938cbf7289987eb684f71b00b92
- id: '1732736495026'
alias: Lichter aus bei Sonnenaufgang
description: ''
trigger:
- platform: time
at: 01:00:00
condition: []
action:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id: 03477708398bb2e1ceb3f4a776770a29
mode: single
- id: '1732736623945'
alias: Licht an bei Sonnenuntergang
description: ''
trigger:
- platform: sun
event: sunset
offset: -00:30:00
condition: []
action:
- action: light.turn_on
metadata: {}
data:
kelvin: 2490
brightness_pct: 85
target:
device_id: 03477708398bb2e1ceb3f4a776770a29
mode: single
- id: '1733523441756'
alias: Küche Theke Schalter
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: single_push
subtype: button1
trigger: device
conditions: []
actions:
- type: toggle
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
- type: toggle
device_id: aa992894922dfd99d4de351691fddbeb
entity_id: c9e060ed610aaa859483ed162741f6b8
domain: light
mode: single
- id: '1733523672915'
alias: Nur Küchentisch Doppelklick
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: double_push
subtype: button1
trigger: device
conditions: []
actions:
- type: toggle
device_id: 0477c12763b17a6f8e00e457e2241c65
entity_id: 47503c95c474e4f8bfba5f00c725a1d4
domain: light
mode: single
- id: '1733523711057'
alias: Nur Küche Theke Dreifachklick
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: triple_push
subtype: button1
trigger: device
conditions: []
actions:
- type: toggle
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
mode: single
- id: '1733524257607'
alias: Alles aus Wohnzimmer
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: long_push
subtype: button1
trigger: device
conditions: []
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
area_id: wohnzimmer
- type: turn_off
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
- action: light.turn_off
metadata: {}
data: {}
target:
device_id: aa992894922dfd99d4de351691fddbeb
mode: single
- id: '1733558486213'
alias: Küche Theke und Tisch aus
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: single_push
subtype: button1
trigger: device
conditions:
- condition: device
type: is_on
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id:
- 0477c12763b17a6f8e00e457e2241c65
- type: turn_off
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
mode: single
- id: '1733558619917'
alias: Küche Theke und Tisch an
description: ''
triggers:
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
domain: shelly
type: single_push
subtype: button1
trigger: device
conditions:
- condition: device
type: is_off
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
actions:
- action: light.turn_on
metadata: {}
data: {}
target:
device_id: 0477c12763b17a6f8e00e457e2241c65
- type: turn_on
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
mode: single
- id: '1733861633781'
alias: Fernbedienung wieder hell
description: ''
triggers:
- domain: mqtt
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
type: action
subtype: color_temperature_move
trigger: device
conditions:
- condition: state
entity_id: light.kuchentisch
state: 'off'
actions:
- action: scene.turn_on
metadata: {}
data: {}
target:
entity_id:
- scene.maximales_licht
mode: single
- id: '1733861763897'
alias: Fernbedienung abdunkeln
description: ''
triggers:
- domain: mqtt
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
type: action
subtype: color_temperature_move
trigger: device
conditions:
- condition: device
type: is_on
device_id: 0477c12763b17a6f8e00e457e2241c65
entity_id: 47503c95c474e4f8bfba5f00c725a1d4
domain: light
actions:
- action: scene.turn_on
metadata: {}
data: {}
target:
entity_id: scene.hanna_schlafmodus
mode: single
- id: '1733862634974'
alias: Küche Wohnzimmer an
description: ''
triggers:
- domain: mqtt
device_id: ece48086d0eb3844ccba5f333ee59ceb
type: action
subtype: 'on'
trigger: device
conditions: []
actions:
- action: light.turn_on
metadata: {}
data: {}
target:
area_id:
- wohnzimmer
- kuche
- type: turn_on
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
- type: turn_on
device_id: 1c7100c71320f1603884443c7fd2092d
entity_id: 276285d3b1143417515620cef9615128
domain: switch
mode: single
- id: '1733862691860'
alias: Küche Wohnzimmer aus
description: ''
triggers:
- domain: mqtt
device_id: ece48086d0eb3844ccba5f333ee59ceb
type: action
subtype: 'off'
trigger: device
conditions: []
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
area_id:
- kuche
- wohnzimmer
- type: turn_off
device_id: a09f77bde7ba5098df0c3ec599ca7377
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
domain: switch
- type: turn_off
device_id: 1c7100c71320f1603884443c7fd2092d
entity_id: 276285d3b1143417515620cef9615128
domain: switch
mode: single
- id: '1735746687673'
alias: Lüftung Bad automatisch aus
description: ''
triggers:
- type: turned_on
device_id: ef6d5a43ae7c971e4b7b740dbc0f378e
entity_id: d212bffda3c532f2e43ea9d08b1fd008
domain: switch
trigger: device
for:
hours: 0
minutes: 30
seconds: 0
conditions:
- condition: device
type: is_on
device_id: ef6d5a43ae7c971e4b7b740dbc0f378e
entity_id: d212bffda3c532f2e43ea9d08b1fd008
domain: switch
actions:
- type: turn_off
device_id: ef6d5a43ae7c971e4b7b740dbc0f378e
entity_id: d212bffda3c532f2e43ea9d08b1fd008
domain: switch
mode: single

Binary file not shown.

View File

@@ -0,0 +1,550 @@
blueprint:
name: Controller - OSRAM AC025XX00NJ SMART+ Switch Mini
description: "# Controller - OSRAM AC025XX00NJ SMART+ Switch Mini\n\nController
automation for executing any kind of action triggered by the provided OSRAM AC025XX00NJ
SMART+ Switch Mini. Allows to optionally loop an action on a button long press.\nSupports
deCONZ, ZHA, Zigbee2MQTT.\n\nAutomations created with this blueprint can be connected
with one or more [Hooks](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/hooks)
supported by this controller.\nHooks allow to easily create controller-based automations
for interacting with media players, lights, covers and more.\nSee the list of
[Hooks available for this controller](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/osram_ac025xx00nj#available-hooks)
for additional details.\n\n\U0001F4D5 Full documentation regarding this blueprint
is available [here](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/osram_ac025xx00nj).\n\n\U0001F680
This blueprint is part of the **[Awesome HA Blueprints](https://epmatt.github.io/awesome-ha-blueprints)
project**.\n\n Version 2022.08.08\n"
source_url: https://github.com/EPMatt/awesome-ha-blueprints/blob/main/blueprints/controllers/osram_ac025xx00nj/osram_ac025xx00nj.yaml
domain: automation
input:
integration:
name: (Required) Integration
description: Integration used for connecting the remote with Home Assistant.
Select one of the available values.
selector:
select:
options:
- deCONZ
- ZHA
- Zigbee2MQTT
sort: false
multiple: false
custom_value: false
controller_device:
name: (deCONZ, ZHA) Controller Device
description: The controller device to use for the automation. Choose a value
only if the remote is integrated with deCONZ, ZHA.
default: ''
selector:
device: {}
controller_entity:
name: (Zigbee2MQTT) Controller Entity
description: The action sensor of the controller to use for the automation.
Choose a value only if the remote is integrated with Zigbee2MQTT.
default: ''
selector:
entity:
domain:
- sensor
multiple: false
helper_last_controller_event:
name: (Required) Helper - Last Controller Event
description: Input Text used to store the last event fired by the controller.
You will need to manually create a text input entity for this, please read
the blueprint Additional Notes for more info.
default: ''
selector:
entity:
domain:
- input_text
multiple: false
action_button_up_short:
name: (Optional) Up button short press
description: Action to run on short up button press.
default: []
selector:
action: {}
action_button_up_long:
name: (Optional) Up button long press
description: Action to run on long up button press.
default: []
selector:
action: {}
action_button_up_release:
name: (Optional) Up button release
description: Action to run on up button release after long press.
default: []
selector:
action: {}
action_button_up_double:
name: (Optional) Up button double press
description: Action to run on double up button press.
default: []
selector:
action: {}
action_button_center_short:
name: (Optional) Center button short press
description: Action to run on short center button press.
default: []
selector:
action: {}
action_button_center_long:
name: (Optional) Center button long press
description: Action to run on long center button press.
default: []
selector:
action: {}
action_button_center_release:
name: (Optional) Center button release
description: Action to run on center button release after long press.
default: []
selector:
action: {}
action_button_center_double:
name: (Optional) Center button double press
description: Action to run on double center button press.
default: []
selector:
action: {}
action_button_down_short:
name: (Optional) Down button short press
description: Action to run on short down button press.
default: []
selector:
action: {}
action_button_down_long:
name: (Optional) Down button long press
description: Action to run on long down button press.
default: []
selector:
action: {}
action_button_down_release:
name: (Optional) Down button release
description: Action to run on down button release after long press.
default: []
selector:
action: {}
action_button_down_double:
name: (Optional) Down button double press
description: Action to run on double down button press.
default: []
selector:
action: {}
button_up_long_loop:
name: (Optional) Up button long press - loop until release
description: Loop the up button action until the button is released.
default: false
selector:
boolean: {}
button_up_long_max_loop_repeats:
name: (Optional) Up button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_center_long_loop:
name: (Optional) Center button long press - loop until release
description: Loop the center button action until the button is released.
default: false
selector:
boolean: {}
button_center_long_max_loop_repeats:
name: (Optional) Center button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_down_long_loop:
name: (Optional) Down button long press - loop until release
description: Loop the down button action until the button is released.
default: false
selector:
boolean: {}
button_down_long_max_loop_repeats:
name: (Optional) Down button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_up_double_press:
name: (Optional) Expose up button double press event
description: Choose whether or not to expose the virtual double press event
for the up button. Turn this on if you are providing an action for the up
button double press event.
default: false
selector:
boolean: {}
button_center_double_press:
name: (Optional) Expose center button double press event
description: Choose whether or not to expose the virtual double press event
for the center button. Turn this on if you are providing an action for the
center button double press event.
default: false
selector:
boolean: {}
button_down_double_press:
name: (Optional) Expose down button double press event
description: Choose whether or not to expose the virtual double press event
for the down button. Turn this on if you are providing an action for the down
button double press event.
default: false
selector:
boolean: {}
helper_double_press_delay:
name: (Optional) Helper - Double Press delay
description: Max delay between the first and the second button press for the
double press event. Provide a value only if you are using a double press action.
Increase this value if you notice that the double press action is not triggered
properly.
default: 500
selector:
number:
min: 100.0
max: 5000.0
unit_of_measurement: milliseconds
mode: box
step: 10.0
helper_debounce_delay:
name: (Optional) Helper - Debounce delay
description: Delay used for debouncing RAW controller events, by default set
to 0. A value of 0 disables the debouncing feature. Increase this value if
you notice custom actions or linked Hooks running multiple times when interacting
with the device. When the controller needs to be debounced, usually a value
of 100 is enough to remove all duplicate events.
default: 0
selector:
number:
min: 0.0
max: 1000.0
unit_of_measurement: milliseconds
mode: box
step: 10.0
variables:
integration: !input integration
button_up_long_loop: !input button_up_long_loop
button_up_long_max_loop_repeats: !input button_up_long_max_loop_repeats
button_up_double_press: !input button_up_double_press
button_center_long_loop: !input button_center_long_loop
button_center_long_max_loop_repeats: !input button_center_long_max_loop_repeats
button_center_double_press: !input button_center_double_press
button_down_long_loop: !input button_down_long_loop
button_down_long_max_loop_repeats: !input button_down_long_max_loop_repeats
button_down_double_press: !input button_down_double_press
helper_last_controller_event: !input helper_last_controller_event
helper_double_press_delay: !input helper_double_press_delay
helper_debounce_delay: !input helper_debounce_delay
integration_id: '{{ integration | lower }}'
adjusted_double_press_delay: '{{ [helper_double_press_delay - helper_debounce_delay,
100] | max }}'
actions_mapping:
deconz:
button_up_short:
- '1002'
button_up_long:
- '1001'
button_up_release:
- '1003'
button_center_short:
- '3002'
button_center_long:
- '3001'
button_center_release:
- '3003'
button_down_short:
- '2002'
button_down_long:
- '2001'
button_down_release:
- '2003'
zha:
button_up_short:
- 'on'
button_up_long:
- move_with_on_off
button_up_release:
- stop
button_center_short:
- move_to_level_with_on_off
button_center_long:
- move_to_saturation
button_center_release:
- move_hue
button_down_short:
- 'off'
button_down_long:
- move
button_down_release:
- stop
zigbee2mqtt:
button_up_short:
- up
button_up_long:
- up_hold
button_up_release:
- up_release
button_center_short:
- circle_click
button_center_long:
- circle_hold
button_center_release:
- circle_release
button_down_short:
- down
button_down_long:
- down_hold
button_down_release:
- down_release
button_up_short: '{{ actions_mapping[integration_id]["button_up_short"] }}'
button_up_long: '{{ actions_mapping[integration_id]["button_up_long"] }}'
button_up_release: '{{ actions_mapping[integration_id]["button_up_release"] }}'
button_center_short: '{{ actions_mapping[integration_id]["button_center_short"]
}}'
button_center_long: '{{ actions_mapping[integration_id]["button_center_long"] }}'
button_center_release: '{{ actions_mapping[integration_id]["button_center_release"]
}}'
button_down_short: '{{ actions_mapping[integration_id]["button_down_short"] }}'
button_down_long: '{{ actions_mapping[integration_id]["button_down_long"] }}'
button_down_release: '{{ actions_mapping[integration_id]["button_down_release"]
}}'
controller_entity: !input controller_entity
controller_device: !input controller_device
controller_id: '{% if integration_id=="zigbee2mqtt" %}{{controller_entity}}{% else
%}{{controller_device}}{% endif %}'
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: state_changed
event_data:
entity_id: !input controller_entity
- platform: event
event_type:
- deconz_event
- zha_event
event_data:
device_id: !input controller_device
condition:
- condition: and
conditions:
- '{%- set trigger_action -%} {%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
elif integration_id == "zha" -%} {{ trigger.event.data.command }} {%- endif -%}
{%- endset -%} {{ trigger_action not in ["","None"] }}'
- '{{ integration_id != "zigbee2mqtt" or trigger.event.data.new_state.state != trigger.event.data.old_state.state
}}'
action:
- delay:
milliseconds: !input helper_debounce_delay
- variables:
trigger_action: '{%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
elif integration_id == "zha" -%} {{ trigger.event.data.command }} {%- endif
-%}'
trigger_delta: '{{ (as_timestamp(now()) - ((states(helper_last_controller_event)
| from_json).t if helper_last_controller_event is not none and (states(helper_last_controller_event)
| regex_match("^\{((\"a\": \".*\"|\"t\": \d+\.\d+)(, )?){2}\}$")) else as_timestamp("1970-01-01
00:00:00"))) * 1000 }}'
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":trigger_action,"t":as_timestamp(now())} | to_json }}'
- choose:
- conditions: '{{ trigger_action | string in button_up_short }}'
sequence:
- choose:
- conditions: '{{ button_up_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_double
- choose:
- conditions: []
sequence: !input action_button_up_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_short
- choose:
- conditions: []
sequence: !input action_button_up_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_short
- choose:
- conditions: []
sequence: !input action_button_up_short
- conditions: '{{ trigger_action | string in button_up_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_long
- choose:
- conditions: '{{ button_up_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_up_long_max_loop_repeats | int }}'
sequence: !input action_button_up_long
default: !input action_button_up_long
- conditions: '{{ trigger_action | string in button_up_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_release
- choose:
- conditions: []
sequence: !input action_button_up_release
- conditions: '{{ trigger_action | string in button_center_short }}'
sequence:
- choose:
- conditions: '{{ button_center_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_center_double
- choose:
- conditions: []
sequence: !input action_button_center_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_center_short
- choose:
- conditions: []
sequence: !input action_button_center_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_center_short
- choose:
- conditions: []
sequence: !input action_button_center_short
- conditions: '{{ trigger_action | string in button_center_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_center_long
- choose:
- conditions: '{{ button_center_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_center_long_max_loop_repeats | int }}'
sequence: !input action_button_center_long
default: !input action_button_center_long
- conditions: '{{ trigger_action | string in button_center_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_center_release
- choose:
- conditions: []
sequence: !input action_button_center_release
- conditions: '{{ trigger_action | string in button_down_short }}'
sequence:
- choose:
- conditions: '{{ button_down_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_double
- choose:
- conditions: []
sequence: !input action_button_down_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_short
- choose:
- conditions: []
sequence: !input action_button_down_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_short
- choose:
- conditions: []
sequence: !input action_button_down_short
- conditions: '{{ trigger_action | string in button_down_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_long
- choose:
- conditions: '{{ button_down_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_down_long_max_loop_repeats | int }}'
sequence: !input action_button_down_long
default: !input action_button_down_long
- conditions: '{{ trigger_action | string in button_down_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_release
- choose:
- conditions: []
sequence: !input action_button_down_release

View File

@@ -0,0 +1,660 @@
blueprint:
name: Controller - Philips 929002398602 Hue Dimmer switch v2
description: "# Controller - Philips 929002398602 Hue Dimmer switch v2\n\nController
automation for executing any kind of action triggered by the provided Philips
929002398602 Hue Dimmer switch v2. Allows to optionally loop an action on a button
long press.\nSupports ZHA, Zigbee2MQTT.\n\nAutomations created with this blueprint
can be connected with one or more [Hooks](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/hooks)
supported by this controller.\nHooks allow to easily create controller-based automations
for interacting with media players, lights, covers and more.\nSee the list of
[Hooks available for this controller](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/philips_929002398602#available-hooks)
for additional details.\n\n\U0001F4D5 Full documentation regarding this blueprint
is available [here](https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/philips_929002398602).\n\n\U0001F680
This blueprint is part of the **[Awesome HA Blueprints](https://epmatt.github.io/awesome-ha-blueprints)
project**.\n\n Version 2022.08.08\n"
source_url: https://github.com/EPMatt/awesome-ha-blueprints/blob/main/blueprints/controllers/philips_929002398602/philips_929002398602.yaml
domain: automation
input:
integration:
name: (Required) Integration
description: Integration used for connecting the remote with Home Assistant.
Select one of the available values.
selector:
select:
options:
- ZHA
- Zigbee2MQTT
sort: false
custom_value: false
multiple: false
controller_device:
name: (ZHA) Controller Device
description: The controller device to use for the automation. Choose a value
only if the remote is integrated with ZHA.
default: ''
selector:
device: {}
controller_entity:
name: (Zigbee2MQTT) Controller Entity
description: The action sensor of the controller to use for the automation.
Choose a value only if the remote is integrated with Zigbee2MQTT.
default: ''
selector:
entity:
domain:
- sensor
multiple: false
helper_last_controller_event:
name: (Required) Helper - Last Controller Event
description: Input Text used to store the last event fired by the controller.
You will need to manually create a text input entity for this, please read
the blueprint Additional Notes for more info.
default: ''
selector:
entity:
domain:
- input_text
multiple: false
action_button_on_short:
name: (Optional) On button short press
description: Action to run on short on button press.
default: []
selector:
action: {}
action_button_on_long:
name: (Optional) On button long press
description: Action to run on long on button press.
default: []
selector:
action: {}
action_button_on_release:
name: (Optional) On button release
description: Action to run on on button release after long press.
default: []
selector:
action: {}
action_button_on_double:
name: (Optional) On button double press
description: Action to run on double on button press.
default: []
selector:
action: {}
action_button_off_short:
name: (Optional) Off button short press
description: Action to run on short off button press.
default: []
selector:
action: {}
action_button_off_long:
name: (Optional) Off button long press
description: Action to run on long off button press.
default: []
selector:
action: {}
action_button_off_release:
name: (Optional) Off button release
description: Action to run on off button release after long press.
default: []
selector:
action: {}
action_button_off_double:
name: (Optional) Off button double press
description: Action to run on double off button press.
default: []
selector:
action: {}
action_button_up_short:
name: (Optional) Up button short press
description: Action to run on short up button press.
default: []
selector:
action: {}
action_button_up_long:
name: (Optional) Up button long press
description: Action to run on long up button press.
default: []
selector:
action: {}
action_button_up_release:
name: (Optional) Up button release
description: Action to run on up button release after long press.
default: []
selector:
action: {}
action_button_up_double:
name: (Optional) Up button double press
description: Action to run on double up button press.
default: []
selector:
action: {}
action_button_down_short:
name: (Optional) Down button short press
description: Action to run on short down button press.
default: []
selector:
action: {}
action_button_down_long:
name: (Optional) Down button long press
description: Action to run on long down button press.
default: []
selector:
action: {}
action_button_down_release:
name: (Optional) Down button release
description: Action to run on down button release after long press.
default: []
selector:
action: {}
action_button_down_double:
name: (Optional) Down button double press
description: Action to run on double down button press.
default: []
selector:
action: {}
button_on_long_loop:
name: (Optional) On button long press - loop until release
description: Loop the on button action until the button is released.
default: false
selector:
boolean: {}
button_on_long_max_loop_repeats:
name: (Optional) On button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_off_long_loop:
name: (Optional) Off button long press - loop until release
description: Loop the off button action until the button is released.
default: false
selector:
boolean: {}
button_off_long_max_loop_repeats:
name: (Optional) Off button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_up_long_loop:
name: (Optional) Up button long press - loop until release
description: Loop the up button action until the button is released.
default: false
selector:
boolean: {}
button_up_long_max_loop_repeats:
name: (Optional) Up button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_down_long_loop:
name: (Optional) Down button long press - loop until release
description: Loop the down button action until the button is released.
default: false
selector:
boolean: {}
button_down_long_max_loop_repeats:
name: (Optional) Down button long press - Maximum loop repeats
description: Maximum number of repeats for the custom action, when looping is
enabled. Use it as a safety limit to prevent an endless loop in case the corresponding
stop event is not received.
default: 500
selector:
number:
min: 1.0
max: 5000.0
mode: slider
step: 1.0
button_on_double_press:
name: (Optional) Expose on button double press event
description: Choose whether or not to expose the virtual double press event
for the on button. Turn this on if you are providing an action for the on
button double press event.
default: false
selector:
boolean: {}
button_off_double_press:
name: (Optional) Expose off button double press event
description: Choose whether or not to expose the virtual double press event
for the off button. Turn this on if you are providing an action for the off
button double press event.
default: false
selector:
boolean: {}
button_up_double_press:
name: (Optional) Expose up button double press event
description: Choose whether or not to expose the virtual double press event
for the up button. Turn this on if you are providing an action for the up
button double press event.
default: false
selector:
boolean: {}
button_down_double_press:
name: (Optional) Expose down button double press event
description: Choose whether or not to expose the virtual double press event
for the down button. Turn this on if you are providing an action for the down
button double press event.
default: false
selector:
boolean: {}
helper_double_press_delay:
name: (Optional) Helper - Double Press delay
description: Max delay between the first and the second button press for the
double press event. Provide a value only if you are using a double press action.
Increase this value if you notice that the double press action is not triggered
properly.
default: 500
selector:
number:
min: 100.0
max: 5000.0
unit_of_measurement: milliseconds
mode: box
step: 10.0
helper_debounce_delay:
name: (Optional) Helper - Debounce delay
description: Delay used for debouncing RAW controller events, by default set
to 0. A value of 0 disables the debouncing feature. Increase this value if
you notice custom actions or linked Hooks running multiple times when interacting
with the device. When the controller needs to be debounced, usually a value
of 100 is enough to remove all duplicate events.
default: 0
selector:
number:
min: 0.0
max: 1000.0
unit_of_measurement: milliseconds
mode: box
step: 10.0
variables:
integration: !input integration
button_on_long_loop: !input button_on_long_loop
button_on_long_max_loop_repeats: !input button_on_long_max_loop_repeats
button_on_double_press: !input button_on_double_press
button_off_long_loop: !input button_off_long_loop
button_off_long_max_loop_repeats: !input button_off_long_max_loop_repeats
button_off_double_press: !input button_off_double_press
button_up_long_loop: !input button_up_long_loop
button_up_long_max_loop_repeats: !input button_up_long_max_loop_repeats
button_up_double_press: !input button_up_double_press
button_down_long_loop: !input button_down_long_loop
button_down_long_max_loop_repeats: !input button_down_long_max_loop_repeats
button_down_double_press: !input button_down_double_press
helper_last_controller_event: !input helper_last_controller_event
helper_double_press_delay: !input helper_double_press_delay
helper_debounce_delay: !input helper_debounce_delay
integration_id: '{{ integration | lower }}'
adjusted_double_press_delay: '{{ [helper_double_press_delay - helper_debounce_delay,
100] | max }}'
actions_mapping:
zha:
button_on_short:
- on_press
- on_press_release
button_on_long:
- on_hold
button_on_release:
- on_long_release
button_off_short:
- off_press
- off_press_release
button_off_long:
- off_hold
button_off_release:
- off_long_release
button_up_short:
- up_press
button_up_long:
- up_hold
button_up_release:
- up_long_release
button_down_short:
- down_press
button_down_long:
- down_hold
button_down_release:
- down_long_release
zigbee2mqtt:
button_on_short:
- on_press
- on_press_release
button_on_long:
- on_hold
button_on_release:
- on_hold_release
button_off_short:
- off_press
- off_press_release
button_off_long:
- off_hold
button_off_release:
- off_hold_release
button_up_short:
- up_press
button_up_long:
- up_hold
button_up_release:
- up_hold_release
button_down_short:
- down_press
button_down_long:
- down_hold
button_down_release:
- down_hold_release
button_on_short: '{{ actions_mapping[integration_id]["button_on_short"] }}'
button_on_long: '{{ actions_mapping[integration_id]["button_on_long"] }}'
button_on_release: '{{ actions_mapping[integration_id]["button_on_release"] }}'
button_off_short: '{{ actions_mapping[integration_id]["button_off_short"] }}'
button_off_long: '{{ actions_mapping[integration_id]["button_off_long"] }}'
button_off_release: '{{ actions_mapping[integration_id]["button_off_release"] }}'
button_up_short: '{{ actions_mapping[integration_id]["button_up_short"] }}'
button_up_long: '{{ actions_mapping[integration_id]["button_up_long"] }}'
button_up_release: '{{ actions_mapping[integration_id]["button_up_release"] }}'
button_down_short: '{{ actions_mapping[integration_id]["button_down_short"] }}'
button_down_long: '{{ actions_mapping[integration_id]["button_down_long"] }}'
button_down_release: '{{ actions_mapping[integration_id]["button_down_release"]
}}'
controller_entity: !input controller_entity
controller_device: !input controller_device
controller_id: '{% if integration_id=="zigbee2mqtt" %}{{controller_entity}}{% else
%}{{controller_device}}{% endif %}'
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: state_changed
event_data:
entity_id: !input controller_entity
- platform: event
event_type:
- zha_event
event_data:
device_id: !input controller_device
condition:
- condition: and
conditions:
- '{%- set trigger_action -%} {%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
elif integration_id == "zha" -%} {{ trigger.event.data.command }} {%- endif -%}
{%- endset -%} {{ trigger_action not in ["","None"] }}'
- '{{ integration_id != "zigbee2mqtt" or trigger.event.data.new_state.state != trigger.event.data.old_state.state
}}'
action:
- delay:
milliseconds: !input helper_debounce_delay
- variables:
trigger_action: '{%- if integration_id == "zigbee2mqtt" -%} {{ trigger.event.data.new_state.state
}} {%- elif integration_id == "deconz" -%} {{ trigger.event.data.event }} {%-
elif integration_id == "zha" -%} {{ trigger.event.data.command }} {%- endif
-%}'
trigger_delta: '{{ (as_timestamp(now()) - ((states(helper_last_controller_event)
| from_json).t if helper_last_controller_event is not none and (states(helper_last_controller_event)
| regex_match("^\{((\"a\": \".*\"|\"t\": \d+\.\d+)(, )?){2}\}$")) else as_timestamp("1970-01-01
00:00:00"))) * 1000 }}'
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":trigger_action,"t":as_timestamp(now())} | to_json }}'
- choose:
- conditions: '{{ trigger_action | string in button_on_short }}'
sequence:
- choose:
- conditions: '{{ button_on_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_on_double
- choose:
- conditions: []
sequence: !input action_button_on_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_on_short
- choose:
- conditions: []
sequence: !input action_button_on_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_on_short
- choose:
- conditions: []
sequence: !input action_button_on_short
- conditions: '{{ trigger_action | string in button_on_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_on_long
- choose:
- conditions: '{{ button_on_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_on_long_max_loop_repeats | int }}'
sequence: !input action_button_on_long
default: !input action_button_on_long
- conditions: '{{ trigger_action | string in button_on_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_on_release
- choose:
- conditions: []
sequence: !input action_button_on_release
- conditions: '{{ trigger_action | string in button_off_short }}'
sequence:
- choose:
- conditions: '{{ button_off_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_off_double
- choose:
- conditions: []
sequence: !input action_button_off_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_off_short
- choose:
- conditions: []
sequence: !input action_button_off_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_off_short
- choose:
- conditions: []
sequence: !input action_button_off_short
- conditions: '{{ trigger_action | string in button_off_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_off_long
- choose:
- conditions: '{{ button_off_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_off_long_max_loop_repeats | int }}'
sequence: !input action_button_off_long
default: !input action_button_off_long
- conditions: '{{ trigger_action | string in button_off_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_off_release
- choose:
- conditions: []
sequence: !input action_button_off_release
- conditions: '{{ trigger_action | string in button_up_short }}'
sequence:
- choose:
- conditions: '{{ button_up_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_double
- choose:
- conditions: []
sequence: !input action_button_up_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_short
- choose:
- conditions: []
sequence: !input action_button_up_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_short
- choose:
- conditions: []
sequence: !input action_button_up_short
- conditions: '{{ trigger_action | string in button_up_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_long
- choose:
- conditions: '{{ button_up_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_up_long_max_loop_repeats | int }}'
sequence: !input action_button_up_long
default: !input action_button_up_long
- conditions: '{{ trigger_action | string in button_up_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_up_release
- choose:
- conditions: []
sequence: !input action_button_up_release
- conditions: '{{ trigger_action | string in button_down_short }}'
sequence:
- choose:
- conditions: '{{ button_down_double_press }}'
sequence:
- choose:
- conditions: '{{ trigger_action | string in states(helper_last_controller_event)
and trigger_delta | int <= helper_double_press_delay | int }}'
sequence:
- service: input_text.set_value
data:
entity_id: !input helper_last_controller_event
value: '{{ {"a":"double_press","t":as_timestamp(now())} | to_json
}}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_double
- choose:
- conditions: []
sequence: !input action_button_down_double
default:
- delay:
milliseconds: '{{ adjusted_double_press_delay }}'
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_short
- choose:
- conditions: []
sequence: !input action_button_down_short
default:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_short
- choose:
- conditions: []
sequence: !input action_button_down_short
- conditions: '{{ trigger_action | string in button_down_long }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_long
- choose:
- conditions: '{{ button_down_long_loop }}'
sequence:
- repeat:
while: '{{ repeat.index < button_down_long_max_loop_repeats | int }}'
sequence: !input action_button_down_long
default: !input action_button_down_long
- conditions: '{{ trigger_action | string in button_down_release }}'
sequence:
- event: ahb_controller_event
event_data:
controller: '{{ controller_id }}'
action: button_down_release
- choose:
- conditions: []
sequence: !input action_button_down_release

View File

@@ -1,4 +1,3 @@
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
@@ -10,78 +9,79 @@ group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
shell_command: !include shell_commands.yaml
switch:
- platform: wake_on_lan
name: "mini PC"
host: "192.168.178.87"
mac: "58:47:CA:78:4E:59"
turn_off:
service: shell_command.turn_off_remote_pc
#MQTT Broker for milight hub:
mqtt:
sensor 1:
state_topic: 'living/sensor1'
name: 'Temperature'
unit_of_measurement: '°C'
value_template: '{{ value_json.temperature }}'
sensor:
- name: 'Temperature'
state_topic: 'living/sensor1'
unit_of_measurement: '°C'
value_template: '{{ value_json.temperature }}'
- name: 'Humidity'
state_topic: 'living/sensor1'
unit_of_measurement: '%'
value_template: '{{ value_json.humidity }}'
sensor 2:
state_topic: 'living/sensor1'
name: 'Humidity'
unit_of_measurement: '%'
value_template: '{{ value_json.humidity }}'
- name: 'Temperature 2'
state_topic: 'living/sensor2'
unit_of_measurement: '°C'
value_template: '{{ value_json.temperature }}'
sensor 3:
state_topic: 'living/sensor2'
name: 'Temperature 2'
unit_of_measurement: '°C'
value_template: '{{ value_json.temperature }}'
sensor 4:
state_topic: 'living/sensor2'
name: 'Humidity 2'
unit_of_measurement: '%'
value_template: '{{ value_json.humidity }}'
- name: 'Humidity 2'
state_topic: 'living/sensor2'
unit_of_measurement: '%'
value_template: '{{ value_json.humidity }}'
sensor 5:
state_topic: 'living/sensor2'
name: 'Humidity 3'
unit_of_measurement: '%'
value_template: '{{ value_json.soilhumidity }}'
- name: 'Humidity 3'
state_topic: 'living/sensor2'
unit_of_measurement: '%'
value_template: '{{ value_json.soilhumidity }}'
sensor 6:
state_topic: 'living/sensor2'
name: 'Battery'
unit_of_measurement: 'mV'
value_template: '{{ value_json.battery }}'
- name: 'Battery'
state_topic: 'living/sensor2'
unit_of_measurement: 'mV'
value_template: '{{ value_json.battery }}'
switch:
- name: "Schalter 1 Schreibtisch"
command_topic: living/plug
payload_on: "83029"
payload_off: "83028"
- name: "Schalter 2 HerrBert"
command_topic: living/plug
payload_on: "86101"
payload_off: "86100"
- name: "Schalter 3 Schlafzimmer TV"
command_topic: living/plug
payload_on: "70741"
payload_off: "70740"
- name: "Steckdose 4"
command_topic: living/plug
payload_on: "21589"
payload_off: "21588"
switch 1:
command_topic: living/plug
payload_on: "83029"
payload_off: "83028"
name: "Schalter 1 Schreibtisch"
switch 2:
command_topic: living/plug
payload_on: "86101"
payload_off: "86100"
name: "Schalter 2 HerrBert"
switch 3:
command_topic: living/plug
payload_on: "70741"
payload_off: "70740"
name: "Schalter 3 Schlafzimmer TV"
switch 4:
command_topic: living/plug
payload_on: "21589"
payload_off: "21588"
name: "Steckdose 4"
switch 5:
command_topic: greenhousino/pump
state_topic: greenhousino/pumpstate
payload_on: "90000"
payload_off: "off"
name: "Pumpe"
- name: "Pumpe"
command_topic: greenhousino/pump
state_topic: greenhousino/pumpstate
payload_on: "90000"
payload_off: "off"
# enable the recorder integration (optional)
recorder:

View File

@@ -1,14 +1,47 @@
2021-08-09 11:23:45 WARNING (SyncWorker_2) [pyhomematic._hm] Skipping init for homeassistant-ccu3
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of homematic is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of logbook is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of media_source is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of input_select is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of coronavirus is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of input_datetime is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of timer is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of input_text is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of zone is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of tag is taking over 10 seconds.
2021-08-09 11:23:59 WARNING (MainThread) [homeassistant.setup] Setup of counter is taking over 10 seconds.
2021-08-09 11:24:00 ERROR (MainThread) [homeassistant.components.coronavirus] Timeout fetching coronavirus data
2021-08-09 11:24:09 WARNING (MainThread) [homeassistant.config_entries] Config entry 'shellyplug-s-B52BDD' for shelly integration not ready yet: Cannot connect to host 192.168.178.114:80 ssl:default [Connect call failed ('192.168.178.114', 80)]; Retrying in background
2025-01-19 21:58:16.873 WARNING (Recorder) [homeassistant.components.recorder.util] The system could not validate that the sqlite3 database at //config/home-assistant_v2.db was shutdown cleanly
2025-01-19 21:58:17.043 WARNING (Recorder) [homeassistant.components.recorder.util] Ended unfinished session (id=144 from 2025-01-19 20:29:39.893694)
2025-01-19 21:58:28.377 ERROR (MainThread) [homeassistant.setup] Error during setup of component stream
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 416, in _async_setup_component
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/stream/__init__.py", line 226, in async_setup
await hass.async_add_executor_job(set_pyav_logging, debug_enabled)
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/stream/__init__.py", line 196, in set_pyav_logging
import av # pylint: disable=import-outside-toplevel
^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/av/__init__.py", line 3, in <module>
from av._core import time_base, library_versions, ffmpeg_version_info
ImportError: Error loading shared library : No such file or directory (needed by /usr/local/lib/python3.13/site-packages/av/../av.libs/libjxl-2cfeb5f2.so.0.10.2)
2025-01-19 21:58:32.664 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 21:58:34.484 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'default_config'. Setup failed for dependencies: ['stream']
2025-01-19 21:58:34.484 ERROR (MainThread) [homeassistant.setup] Setup failed for 'default_config': Could not setup dependencies: stream
2025-01-19 21:58:36.892 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/1', 'state_topic': 'milight/states/0x1/rgb_cct/1', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 1]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer 1', 'name': 'Wohnzimmer 1'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 21:58:36.913 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/2', 'state_topic': 'milight/states/0x1/rgb_cct/2', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 2]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer 2', 'name': 'Wohnzimmer 2'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 21:58:36.923 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/0', 'state_topic': 'milight/states/0x1/rgb_cct/0', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 0]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer Alle', 'name': 'Wohnzimmer Alle'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 21:58:38.466 WARNING (MainThread) [aioesphomeapi.reconnect_logic] Can't connect to ESPHome API for temp @ 192.168.178.57: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.178.57', port=6053))]: [Errno 113] Connect call failed ('192.168.178.57', 6053) (SocketAPIError)
2025-01-19 21:58:39.150 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 21:58:52.663 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 21:59:13.864 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053a1aab
2025-01-19 21:59:13.869 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053c6311
2025-01-19 21:59:15.943 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 21:59:59.302 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:01:22.583 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:02:45.863 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:04:09.223 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:04:42.657 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 22:04:42.659 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 22:04:44.222 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 22:04:44.224 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 22:05:32.503 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:06:55.862 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:08:19.383 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:09:42.983 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:11:06.263 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:12:26.432 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'power_on_behavior' when rendering '{{ value_json.power_on_behavior }}'
2025-01-19 22:12:26.439 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053a1aab
2025-01-19 22:12:26.441 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053c6311
2025-01-19 22:12:29.783 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)
2025-01-19 22:13:53.223 ERROR (MainThread) [aioharmony.harmonyclient] 192.168.178.26: Unable to determine if XMPP is enabled: [Errno 113] Connect call failed ('192.168.178.26', 5222)

View File

@@ -0,0 +1,113 @@
2025-01-19 20:29:40.049 WARNING (Recorder) [homeassistant.components.recorder.util] The system could not validate that the sqlite3 database at //config/home-assistant_v2.db was shutdown cleanly
2025-01-19 20:29:41.190 WARNING (Recorder) [homeassistant.components.recorder.util] Ended unfinished session (id=143 from 2025-01-07 11:01:20.981305)
2025-01-19 20:29:57.676 ERROR (MainThread) [homeassistant.setup] Error during setup of component stream
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 416, in _async_setup_component
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/stream/__init__.py", line 226, in async_setup
await hass.async_add_executor_job(set_pyav_logging, debug_enabled)
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/stream/__init__.py", line 196, in set_pyav_logging
import av # pylint: disable=import-outside-toplevel
^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/av/__init__.py", line 3, in <module>
from av._core import time_base, library_versions, ffmpeg_version_info
ImportError: Error loading shared library : No such file or directory (needed by /usr/local/lib/python3.13/site-packages/av/../av.libs/libjxl-2cfeb5f2.so.0.10.2)
2025-01-19 20:30:00.106 WARNING (MainThread) [slixmpp.stringprep] Using slower stringprep, consider compiling the faster cython/libidn one.
2025-01-19 20:30:03.465 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x5dc28b20>, <Purpose.SERVER_AUTH: _ASN1Object(nid=129, shortname='serverAuth', longname='TLS Web Server Authentication', oid='1.3.6.1.5.5.7.3.1')>) inside the event loop by integration 'harmony' at homeassistant/components/harmony/data.py, line 118: connected = await self._client.connect() (offender: /usr/local/lib/python3.13/ssl.py, line 722: context.load_default_certs(purpose)), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+harmony%22
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/homeassistant/homeassistant/__main__.py", line 227, in <module>
sys.exit(main())
File "/usr/src/homeassistant/homeassistant/__main__.py", line 213, in main
exit_code = runner.run(runtime_conf)
File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run
return loop.run_until_complete(setup_and_run_hass(runtime_config))
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 708, in run_until_complete
self.run_forever()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 679, in run_forever
self._run_once()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2027, in _run_once
handle._run()
File "/usr/local/lib/python3.13/asyncio/events.py", line 89, in _run
self._context.run(self._callback, *self._args)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 788, in async_setup_locked
await self.async_setup(hass, integration=integration)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 551, in async_setup
await self.__async_setup_with_context(hass, integration)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 640, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
File "/usr/src/homeassistant/homeassistant/components/harmony/__init__.py", line 28, in async_setup_entry
await data.connect()
File "/usr/src/homeassistant/homeassistant/components/harmony/data.py", line 118, in connect
connected = await self._client.connect()
2025-01-19 20:30:04.616 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'default_config'. Setup failed for dependencies: ['stream']
2025-01-19 20:30:04.617 ERROR (MainThread) [homeassistant.setup] Setup failed for 'default_config': Could not setup dependencies: stream
2025-01-19 20:30:09.639 WARNING (MainThread) [aioesphomeapi.reconnect_logic] Can't connect to ESPHome API for temp @ 192.168.178.57: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.178.57', port=6053))]: [Errno 113] Connect call failed ('192.168.178.57', 6053) (SocketAPIError)
2025-01-19 20:30:15.564 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/1', 'state_topic': 'milight/states/0x1/rgb_cct/1', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 1]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer 1', 'name': 'Wohnzimmer 1'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 20:30:15.575 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/2', 'state_topic': 'milight/states/0x1/rgb_cct/2', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 2]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer 2', 'name': 'Wohnzimmer 2'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 20:30:15.632 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Deprecated flags [rgb, color_temp] used in MQTT JSON light config for handling color mode, please use `supported_color_modes` instead. Got: {'schema': 'json', 'command_topic': 'milight/0x1/rgb_cct/0', 'state_topic': 'milight/states/0x1/rgb_cct/0', 'device': {'manufacturer': 'esp8266_milight_hub', 'sw_version': '1.10.7', 'identifiers': [3346011, 1, 'rgb_cct', 0]}, 'availability_topic': 'milight/client_status', 'payload_available': 'connected', 'payload_not_available': 'disconnected', 'brightness': True, 'effect': True, 'effect_list': ['night_mode', 'white_mode', '0', '1', '2', '3', '4', '5', '6', '7', '8'], 'rgb': True, 'color_temp': True, 'unique_id': '330E5B-Wohnzimmer Alle', 'name': 'Wohnzimmer Alle'}. This will stop working in Home Assistant Core 2025.3
2025-01-19 20:30:32.900 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:30:32.908 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:30:32.913 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:30:32.919 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:30:58.041 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053a1aab
2025-01-19 20:30:58.046 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053c6311
2025-01-19 20:31:42.185 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:31:42.188 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:31:45.168 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:31:45.169 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:31:54.221 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:31:54.223 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:31:59.234 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:31:59.238 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:32:05.221 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:32:05.222 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 20:32:08.270 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 20:32:08.273 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 21:22:10.577 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 21:22:10.579 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 21:22:22.334 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_white are missing or not currently available
2025-01-19 21:22:22.341 WARNING (MainThread) [homeassistant.helpers.service] Referenced entities light.lichtschlauch_rgb are missing or not currently available
2025-01-19 21:37:46.878 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053a1aab
2025-01-19 21:37:46.880 WARNING (MainThread) [homeassistant.components.mqtt.light.schema_json] Invalid color mode 'xy' received for entity light.0x00158d00053c6311
2025-01-19 21:40:04.803 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x5c8e2bc0>, <Purpose.SERVER_AUTH: _ASN1Object(nid=129, shortname='serverAuth', longname='TLS Web Server Authentication', oid='1.3.6.1.5.5.7.3.1')>) in /usr/local/lib/python3.13/ssl.py, line 722: context.load_default_certs(purpose) inside the event loop; This is causing stability issues. Please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/homeassistant/homeassistant/__main__.py", line 227, in <module>
sys.exit(main())
File "/usr/src/homeassistant/homeassistant/__main__.py", line 213, in main
exit_code = runner.run(runtime_conf)
File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run
return loop.run_until_complete(setup_and_run_hass(runtime_config))
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 708, in run_until_complete
self.run_forever()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 679, in run_forever
self._run_once()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2027, in _run_once
handle._run()
File "/usr/local/lib/python3.13/asyncio/events.py", line 89, in _run
self._context.run(self._callback, *self._args)
File "/usr/local/lib/python3.13/site-packages/slixmpp/xmlstream/xmlstream.py", line 1107, in handler_callback_routine
await cb(data)
File "/usr/local/lib/python3.13/site-packages/aioharmony/hubconnector_xmpp.py", line 290, in _disconnected_handler
self._init_super()
File "/usr/local/lib/python3.13/site-packages/aioharmony/hubconnector_xmpp.py", line 71, in _init_super
super(HubConnector, self).__init__(
File "/usr/local/lib/python3.13/site-packages/slixmpp/clientxmpp.py", line 59, in __init__
BaseXMPP.__init__(self, jid, 'jabber:client', **kwargs)
File "/usr/local/lib/python3.13/site-packages/slixmpp/basexmpp.py", line 76, in __init__
XMLStream.__init__(self, **kwargs)
File "/usr/local/lib/python3.13/site-packages/slixmpp/xmlstream/xmlstream.py", line 301, in __init__
self.ssl_context = ssl.create_default_context()
File "/usr/local/lib/python3.13/ssl.py", line 722, in create_default_context
context.load_default_certs(purpose)
2025-01-19 21:40:08.980 ERROR (MainThread) [aioharmony.hubconnector_xmpp] 192.168.178.26: Connecting to HUB failed with error: [Errno 113] Connect call failed ('192.168.178.26', 5222)

View File

Binary file not shown.

View File

@@ -1,55 +1,205 @@
- id: '1713896163638'
name: Warmes Licht
- id: '1713896676123'
name: Maximales Licht
entities:
light.lightstrip:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 500
light.kuchentisch:
effect_list:
- colorloop
supported_color_modes:
- color_temp
- hs
- xy
color_mode: color_temp
brightness: 204
color_temp_kelvin: 3690
color_temp: 271
hs_color:
- 27.004
- 40.795
rgb_color:
- 255
- 197
- 150
xy_color:
- 0.441
- 0.37
is_deconz_group: false
friendly_name: Lightstrip
supported_features: 44
state: 'on'
light.dimmable_light_4:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
supported_color_modes:
- brightness
is_deconz_group: false
friendly_name: Dimmable light 4
supported_features: 40
state: 'off'
light.extended_color_light_1:
effect:
color_mode: brightness
brightness: 153
friendly_name: Küchentisch
supported_features: 44
state: 'on'
select.bogenlampe_effect:
options:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
assumed_state: true
icon: mdi:palette
friendly_name: Bogenlampe Effect
state: stop_effect
light.bogenlampe:
min_color_temp_kelvin: 2702
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 370
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- hs
- xy
effect:
color_mode: color_temp
brightness: 201
brightness: 255
color_temp_kelvin: 2702
color_temp: 370
hs_color:
- 28.391
- 65.659
rgb_color:
- 255
- 167
- 88
xy_color:
- 0.524
- 0.388
friendly_name: Bogenlampe
supported_features: 44
state: 'on'
light.lichtschlauch_rgb:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 500
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- xy
effect:
color_mode: color_temp
brightness: 26
color_temp_kelvin: 5025
color_temp: 199
hs_color:
- 27.028
- 18.905
rgb_color:
- 255
- 229
- 207
xy_color:
- 0.37
- 0.35
friendly_name: Lichtschlauch Rgb
supported_features: 44
state: 'on'
light.lichtschlauch_white:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 500
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- xy
effect:
color_mode: color_temp
brightness: 255
color_temp_kelvin: 2739
color_temp: 365
hs_color:
- 28.312
- 64.491
rgb_color:
- 255
- 168
- 91
xy_color:
- 0.521
- 0.387
friendly_name: Lichtschlauch White
supported_features: 44
state: 'on'
icon: mdi:alarm-light-outline
metadata: {}
- id: '1733170893427'
name: Hanna Schlafmodus
entities:
light.kuchentisch:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6666
min_mireds: 150
max_mireds: 500
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
supported_color_modes:
- color_temp
effect:
color_mode:
brightness:
color_temp_kelvin:
color_temp:
hs_color:
rgb_color:
xy_color:
friendly_name: Küchentisch
supported_features: 44
state: 'off'
select.bogenlampe_effect:
options:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
assumed_state: true
icon: mdi:palette
friendly_name: Bogenlampe Effect
state: stop_effect
light.bogenlampe:
min_color_temp_kelvin: 2702
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 370
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- xy
effect:
color_mode: color_temp
brightness: 105
color_temp_kelvin: 2702
color_temp: 370
hs_color:
@@ -62,79 +212,71 @@
xy_color:
- 0.526
- 0.387
is_deconz_group: false
friendly_name: Extended color light 1
friendly_name: Bogenlampe
supported_features: 44
state: 'on'
icon: mdi:alarm-light
metadata: {}
- id: '1713896676123'
name: Maximales Licht
entities:
light.extended_color_light_1:
min_color_temp_kelvin: 2702
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 370
effect_list:
- colorloop
supported_color_modes:
- color_temp
- hs
- xy
is_deconz_group: false
friendly_name: Extended color light 1
supported_features: 44
color_mode: color_temp
brightness: 254
color_temp_kelvin: 3731
color_temp: 268
hs_color:
- 26.973
- 39.973
rgb_color:
- 255
- 198
- 153
xy_color:
- 0.438
- 0.369
state: 'on'
light.lightstrip:
light.lichtschlauch_rgb:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 500
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- hs
- xy
is_deconz_group: false
friendly_name: Lightstrip
supported_features: 44
color_mode: color_temp
brightness: 254
color_temp_kelvin: 4347
color_temp: 230
effect:
color_mode:
brightness:
color_temp_kelvin:
color_temp:
hs_color:
- 26.722
- 28.925
rgb_color:
xy_color:
friendly_name: Lichtschlauch Rgb
supported_features: 44
state: 'off'
light.lichtschlauch_white:
min_color_temp_kelvin: 2000
max_color_temp_kelvin: 6535
min_mireds: 153
max_mireds: 500
effect_list:
- blink
- breathe
- okay
- channel_change
- finish_effect
- stop_effect
- colorloop
- stop_colorloop
supported_color_modes:
- color_temp
- xy
effect:
color_mode: color_temp
brightness: 76
color_temp_kelvin: 3521
color_temp: 284
hs_color:
- 27.152
- 44.32
rgb_color:
- 255
- 214
- 181
- 193
- 141
xy_color:
- 0.401
- 0.359
- 0.453
- 0.374
friendly_name: Lichtschlauch White
supported_features: 44
state: 'on'
light.dimmable_light_4:
supported_color_modes:
- brightness
is_deconz_group: false
friendly_name: Dimmable light 4
supported_features: 40
state: 'off'
icon: mdi:alarm-light-outline
icon: mdi:alarm-light-off
metadata: {}

View File

@@ -0,0 +1,9 @@
open_door:
alias: Open Door
sequence:
- device_id: a09e187443b3e078dc03468e539309a6
domain: lock
entity_id: lock.heim
type: open
mode: single
icon: mdi:boom-gate-up-outline

View File

@@ -0,0 +1 @@
turn_off_remote_pc: "ssh -i /config/ssh_keys/id_rsa_homeassistant -o 'StrictHostKeyChecking=no' homeassistant@192.168.178.87 sudo shutdown -h now"

View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEA67jdwlwr7lKE8w0W3MBiSTPw7ukQZLFoD8VjGRjJ5vmMh0/sgUgM
lordNq/HsavQLpqg7ZJ4wV2Vu9bCOsXaVyDNaw7rPr3zcgzYP7kTHZWviJ/zuz3dG+8nGf
es1aqBWzWlNTsyDFwK/BjEibtICXYtv1eWuWDPy2WOyZTciHC/I1jY/3DOte+XgHc9TRUC
6zwZAMSHgL0BV/F83p0clWCgbTGwiHzXhpHUuDo9HlM00gTJKVBjpgV8RrDuyUQGao0Yew
5G84vQiBCII1jIHJP8Ut6Vu9RANzZu0/UWxeTBcThftofr22H0A2BGU8ARTHIx+0sV67bS
uvKReyO8pFtpeC1je/mpS4XYlETvMrcBXsNiPTWEpgaUJMRFEZJBPuqnGQkc5jy8Ssb2ro
iClKIBm0SQER7VwzN28+H7OJhKz1LL4x7R00s1stHIp3NzWQ+a6/Hr7/541m1+E1Rqamjy
LeEu3VXT7bCLB23ZLf2Y+tThx3kmWXYlkBdpjSTlAAAFiFVFjPVVRYz1AAAAB3NzaC1yc2
EAAAGBAOu43cJcK+5ShPMNFtzAYkkz8O7pEGSxaA/FYxkYyeb5jIdP7IFIDJaK3Tavx7Gr
0C6aoO2SeMFdlbvWwjrF2lcgzWsO6z6983IM2D+5Ex2Vr4if87s93RvvJxn3rNWqgVs1pT
U7MgxcCvwYxIm7SAl2Lb9Xlrlgz8tljsmU3IhwvyNY2P9wzrXvl4B3PU0VAus8GQDEh4C9
AVfxfN6dHJVgoG0xsIh814aR1Lg6PR5TNNIEySlQY6YFfEaw7slEBmqNGHsORvOL0IgQiC
NYyByT/FLelbvUQDc2btP1FsXkwXE4X7aH69th9ANgRlPAEUxyMftLFeu20rrykXsjvKRb
aXgtY3v5qUuF2JRE7zK3AV7DYj01hKYGlCTERRGSQT7qpxkJHOY8vErG9q6IgpSiAZtEkB
Ee1cMzdvPh+ziYSs9Sy+Me0dNLNbLRyKdzc1kPmuvx6+/+eNZtfhNUampo8i3hLt1V0+2w
iwdt2S39mPrU4cd5Jll2JZAXaY0k5QAAAAMBAAEAAAGBAK+E7OMPPMrteP99rJtdSRIW8f
0DX+iKTOEJahvC4HvzL1eGBKXTH0RtTACvbLN4KsC49MFRgkcBR0Ahzmhy8HxV+X8REcub
Jw2yUMdKKNirn5PM/nBaxSxKrEPirzg+CKoAzO5REJgxZSCH1Lh10lLxQ2kpcBrC4pciHO
suw/N4eGp6esHhnpnMOHQ41VVzIsRD8J4ouHj8w2ZXc1JTjHgSBgKosDlBND6IketHukC9
ViRX2e3AZSK3DO2aS4Nj+TEl/Q6MMOIBXSedxeuu/LtpLa9XJG2t70cAlHMYPlp45n+TN3
d2M32OGw01VEmZQowlDhb/OGHo9TuxhKw5OHded0cMYhIAzMiuic9d4VX7ig3pDLzvBDFu
lLKsQEn8DOsWYjC8mCwnq+QQrLePWmWrYSsirA5wNSgY04PmyTCkhvwUk6YuWaLvhNuf6f
4hwdBYNDoKJAXAajYRDfUK8jjiKogpQNHue2gTZJKO/2d2PlaEWbcoWet0hzC7lF9wgQAA
AMEA0mKoUt2kW2JlqWASg6yyd477MED9PKB7kb6QTcrZdRagkGYl0qfcpHVu6kSE9flxN5
ryMuqF63BdCd58dLfDxblbNy3wzfJo6vJQCZqZrojEKd1vwi/TXJ/3UwqeV+wGNYjRdM0u
B58wBPBATVAxR2sTg65EStMTWEz+oHRhGDR91G1i2z732ntWmHoBZWsKa8glfBcycw2X+k
aGo1TY4wmcP1/h1mg3UNUYFOmck0+eMJqWOJMYHWcMmKQeP9H+AAAAwQD70xfHvlOtllhr
6kfIDZtrjnuch7wsq/20TUilyDWA7APo1JUmUpBZ7Xec0qm90WWwxpHS2UxywD09SJuqUW
vi6qa8yoA+9xW7Zp/RFJJqaRT3pZ5xSZclmFrOv4JvcHRaLQ5pbJi1YQKXt8Q4qHNT2WAi
/f7F7wjpwh9HweS8JDWohym2ix0F6fGBlLuH/tz2OVzj8tNdcssmxesPUxZwgW4Otq/nlk
6h7HuO6OI+knDQ2Q3C00kSyfI7ib+X2+EAAADBAO+hbJJBgtGckHDo2WrCZgCGda1b5yhl
gy87fk32ZdZqeVe4BV4VpUQOz1KXEU9MEyQlvbFXu7uHLc+CGV/gIpPA2nT8kvjsPBqu4D
iHLMmUb1M5DRlhVS/Lm4TcSEOAs4CKTgN/B2575sunqbuEALoL3/vbXUYQst/yqJv195cU
E84tShREWHiT0BDghi9OD6BF1nE4D+QPoauWaMIvG8rVyvutiT28zoWmwLkjAYz9U9aZmx
9dkD6jf84kLo0JhQAAAA5waUByYXNwYmVycnlwaQECAw==
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDruN3CXCvuUoTzDRbcwGJJM/Du6RBksWgPxWMZGMnm+YyHT+yBSAyWit02r8exq9AumqDtknjBXZW71sI6xdpXIM1rDus+vfNyDNg/uRMdla+In/O7Pd0b7ycZ96zVqoFbNaU1OzIMXAr8GMSJu0gJdi2/V5a5YM/LZY7JlNyIcL8jWNj/cM6175eAdz1NFQLrPBkAxIeAvQFX8XzenRyVYKBtMbCIfNeGkdS4Oj0eUzTSBMkpUGOmBXxGsO7JRAZqjRh7Dkbzi9CIEIgjWMgck/xS3pW71EA3Nm7T9RbF5MFxOF+2h+vbYfQDYEZTwBFMcjH7SxXrttK68pF7I7ykW2l4LWN7+alLhdiURO8ytwFew2I9NYSmBpQkxEURkkE+6qcZCRzmPLxKxvauiIKUogGbRJARHtXDM3bz4fs4mErPUsvjHtHTSzWy0cinc3NZD5rr8evv/njWbX4TVGpqaPIt4S7dVdPtsIsHbdkt/Zj61OHHeSZZdiWQF2mNJOU= pi@raspberrypi

View File

View File

@@ -0,0 +1,61 @@
permit_join: true
mqtt:
server: mqtt://mqtt:1883
serial:
port: /dev/ttyACM0
frontend: true
advanced:
homeassistant_legacy_entity_attributes: false
legacy_api: false
legacy_availability_payload: false
log_level: debug
external_converters:
- dresden.js
device_options:
legacy: false
devices:
'0xf0d1b800001ffcf2':
friendly_name: Bogenlampe
'0xa4c138570b1956d9':
friendly_name: '0xa4c138570b1956d9'
'0xa4c1383ec7aa7d95':
friendly_name: '0xa4c1383ec7aa7d95'
'0xa4c1383db5531833':
friendly_name: '0xa4c1383db5531833'
'0x000d6f00109eb214':
friendly_name: Fernbedienung
'0x00212effff0cb8b6':
friendly_name: Lichtschlauch
'0x0ceff6fffebf4739':
friendly_name: '0x0ceff6fffebf4739'
'0xa4c138541ec8ddd2':
friendly_name: Flur
'0xa4c1384187f0960d':
friendly_name: Wasser Sensor Spüle
'0x001788010d1c884e':
friendly_name: Badlampe
'0x001788010e8a8be7':
friendly_name: Fernbedienung Bad
'0xa4c13864e6c8c400':
friendly_name: Bewegungsmelder 1
'0xa4c138ef60e2fdbe':
friendly_name: Sensor Terassentür
'0x00158d00053a1aab':
friendly_name: '0x00158d00053a1aab'
'0x00158d00053c6311':
friendly_name: '0x00158d00053c6311'
'0xf0d1b800001388f0':
friendly_name: Flurlicht
'0x7cb03eaa0a0176bd':
friendly_name: Küchentisch
'0x000d6f001417c142':
friendly_name: Fernbedienung 2
'0xa4c138e68023f4c6':
friendly_name: Wassersensor Keller
'0xa4c1389d42e94844':
friendly_name: Temperatur Keller
'0xa4c13838ba59a1b2':
friendly_name: Medienschrank Wohnzimmer
homeassistant:
legacy_entity_attributes: false
legacy_triggers: false

View File

@@ -0,0 +1,62 @@
mqtt:
server: mqtt://mqtt:1883
serial:
port: /dev/ttyACM0
frontend:
enabled: true
advanced:
log_level: debug
homeassistant_legacy_entity_attributes: false
homeassistant_legacy_triggers: false
legacy_api: false
legacy_availability_payload: false
external_converters:
- dresden.js
device_options:
legacy: false
devices:
'0xf0d1b800001ffcf2':
friendly_name: Bogenlampe
'0xa4c138570b1956d9':
friendly_name: '0xa4c138570b1956d9'
'0xa4c1383ec7aa7d95':
friendly_name: '0xa4c1383ec7aa7d95'
'0xa4c1383db5531833':
friendly_name: '0xa4c1383db5531833'
'0x000d6f00109eb214':
friendly_name: Fernbedienung
'0x00212effff0cb8b6':
friendly_name: Lichtschlauch
'0x0ceff6fffebf4739':
friendly_name: '0x0ceff6fffebf4739'
'0xa4c138541ec8ddd2':
friendly_name: Flur
'0xa4c1384187f0960d':
friendly_name: Wasser Sensor Spüle
'0x001788010d1c884e':
friendly_name: Badlampe
'0x001788010e8a8be7':
friendly_name: Fernbedienung Bad
'0xa4c13864e6c8c400':
friendly_name: Bewegungsmelder 1
'0xa4c138ef60e2fdbe':
friendly_name: Sensor Terassentür
'0x00158d00053a1aab':
friendly_name: '0x00158d00053a1aab'
'0x00158d00053c6311':
friendly_name: '0x00158d00053c6311'
'0xf0d1b800001388f0':
friendly_name: Flurlicht
'0x7cb03eaa0a0176bd':
friendly_name: Küchentisch
'0x000d6f001417c142':
friendly_name: Fernbedienung 2
'0xa4c138e68023f4c6':
friendly_name: Wassersensor Keller
'0xa4c1389d42e94844':
friendly_name: Temperatur Keller
'0xa4c13838ba59a1b2':
friendly_name: Medienschrank Wohnzimmer
homeassistant:
enabled: true
version: 4

View File

@@ -0,0 +1,61 @@
permit_join: true
mqtt:
server: mqtt://mqtt:1883
serial:
port: /dev/ttyACM0
frontend: true
advanced:
homeassistant_legacy_entity_attributes: false
legacy_api: false
legacy_availability_payload: false
log_level: debug
external_converters:
- dresden.js
device_options:
legacy: false
devices:
'0xf0d1b800001ffcf2':
friendly_name: Bogenlampe
'0xa4c138570b1956d9':
friendly_name: '0xa4c138570b1956d9'
'0xa4c1383ec7aa7d95':
friendly_name: '0xa4c1383ec7aa7d95'
'0xa4c1383db5531833':
friendly_name: '0xa4c1383db5531833'
'0x000d6f00109eb214':
friendly_name: Fernbedienung
'0x00212effff0cb8b6':
friendly_name: Lichtschlauch
'0x0ceff6fffebf4739':
friendly_name: '0x0ceff6fffebf4739'
'0xa4c138541ec8ddd2':
friendly_name: Flur
'0xa4c1384187f0960d':
friendly_name: Wasser Sensor Spüle
'0x001788010d1c884e':
friendly_name: Badlampe
'0x001788010e8a8be7':
friendly_name: Fernbedienung Bad
'0xa4c13864e6c8c400':
friendly_name: Bewegungsmelder 1
'0xa4c138ef60e2fdbe':
friendly_name: Sensor Terassentür
'0x00158d00053a1aab':
friendly_name: '0x00158d00053a1aab'
'0x00158d00053c6311':
friendly_name: '0x00158d00053c6311'
'0xf0d1b800001388f0':
friendly_name: Flurlicht
'0x7cb03eaa0a0176bd':
friendly_name: Küchentisch
'0x000d6f001417c142':
friendly_name: Fernbedienung 2
'0xa4c138e68023f4c6':
friendly_name: Wassersensor Keller
'0xa4c1389d42e94844':
friendly_name: Temperatur Keller
'0xa4c13838ba59a1b2':
friendly_name: Medienschrank Wohnzimmer
homeassistant:
legacy_entity_attributes: false
legacy_triggers: false

View File

@@ -0,0 +1,53 @@
mqtt:
server: mqtt://mqtt:1883
serial:
port: /dev/ttyACM0
frontend: true
advanced:
log_level: debug
device_options: {}
devices:
'0xf0d1b800001ffcf2':
friendly_name: Bogenlampe
'0xa4c138570b1956d9':
friendly_name: '0xa4c138570b1956d9'
'0xa4c1383ec7aa7d95':
friendly_name: '0xa4c1383ec7aa7d95'
'0xa4c1383db5531833':
friendly_name: '0xa4c1383db5531833'
'0x000d6f00109eb214':
friendly_name: Fernbedienung
'0x00212effff0cb8b6':
friendly_name: Lichtschlauch
'0x0ceff6fffebf4739':
friendly_name: '0x0ceff6fffebf4739'
'0xa4c138541ec8ddd2':
friendly_name: Flur
'0xa4c1384187f0960d':
friendly_name: Wasser Sensor Spüle
'0x001788010d1c884e':
friendly_name: Badlampe
'0x001788010e8a8be7':
friendly_name: Fernbedienung Bad
'0xa4c13864e6c8c400':
friendly_name: Bewegungsmelder 1
'0xa4c138ef60e2fdbe':
friendly_name: Sensor Terassentür
'0x00158d00053a1aab':
friendly_name: '0x00158d00053a1aab'
'0x00158d00053c6311':
friendly_name: '0x00158d00053c6311'
'0xf0d1b800001388f0':
friendly_name: Flurlicht
'0x7cb03eaa0a0176bd':
friendly_name: Küchentisch
'0x000d6f001417c142':
friendly_name: Fernbedienung 2
'0xa4c138e68023f4c6':
friendly_name: Wassersensor Keller
'0xa4c1389d42e94844':
friendly_name: Temperatur Keller
'0xa4c13838ba59a1b2':
friendly_name: Medienschrank Wohnzimmer
homeassistant: {}
version: 2

View File

@@ -0,0 +1,55 @@
mqtt:
server: mqtt://mqtt:1883
serial:
port: /dev/ttyACM0
frontend:
enabled: true
advanced:
log_level: debug
device_options: {}
devices:
'0xf0d1b800001ffcf2':
friendly_name: Bogenlampe
'0xa4c138570b1956d9':
friendly_name: '0xa4c138570b1956d9'
'0xa4c1383ec7aa7d95':
friendly_name: '0xa4c1383ec7aa7d95'
'0xa4c1383db5531833':
friendly_name: '0xa4c1383db5531833'
'0x000d6f00109eb214':
friendly_name: Fernbedienung
'0x00212effff0cb8b6':
friendly_name: Lichtschlauch
'0x0ceff6fffebf4739':
friendly_name: '0x0ceff6fffebf4739'
'0xa4c138541ec8ddd2':
friendly_name: Flur
'0xa4c1384187f0960d':
friendly_name: Wasser Sensor Spüle
'0x001788010d1c884e':
friendly_name: Badlampe
'0x001788010e8a8be7':
friendly_name: Fernbedienung Bad
'0xa4c13864e6c8c400':
friendly_name: Bewegungsmelder 1
'0xa4c138ef60e2fdbe':
friendly_name: Sensor Terassentür
'0x00158d00053a1aab':
friendly_name: '0x00158d00053a1aab'
'0x00158d00053c6311':
friendly_name: '0x00158d00053c6311'
'0xf0d1b800001388f0':
friendly_name: Flurlicht
'0x7cb03eaa0a0176bd':
friendly_name: Küchentisch
'0x000d6f001417c142':
friendly_name: Fernbedienung 2
'0xa4c138e68023f4c6':
friendly_name: Wassersensor Keller
'0xa4c1389d42e94844':
friendly_name: Temperatur Keller
'0xa4c13838ba59a1b2':
friendly_name: Medienschrank Wohnzimmer
homeassistant:
enabled: true
version: 3

22
zb2mqttdata/database.db Normal file
View File

@@ -0,0 +1,22 @@
{"id":1,"type":"Coordinator","ieeeAddr":"0x00212effff04fc2c","nwkAddr":0,"manufId":4405,"epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":5,"inClusterList":[0,6,10,25,1281],"outClusterList":[1,32,1280,1282],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":100,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"interviewCompleted":true,"meta":{},"lastSeen":null}
{"id":2,"type":"EndDevice","ieeeAddr":"0x000d6f00109eb214","nwkAddr":40099,"manufId":4364,"manufName":"OSRAM","powerSource":"Battery","modelId":"Lightify Switch Mini","epList":[1,2,3],"endpoints":{"1":{"profId":260,"epId":1,"devId":2064,"inClusterList":[0,1,32,4096,64768],"outClusterList":[3,4,5,6,8,25,768,4096],"clusters":{"genBasic":{"attributes":{"stackVersion":0}},"genPollCtrl":{"attributes":{"checkinInterval":0}},"genPowerCfg":{"attributes":{"batteryVoltage":30}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0}],"meta":{}},"2":{"profId":260,"epId":2,"devId":2064,"inClusterList":[0,4096,64768],"outClusterList":[3,4,5,6,8,768,4096],"clusters":{"genBasic":{"attributes":{"stackVersion":0}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[],"meta":{}},"3":{"profId":260,"epId":3,"devId":2064,"inClusterList":[0,4096,64768],"outClusterList":[3,4,5,6,8,768,4096],"clusters":{"genBasic":{"attributes":{"stackVersion":0}}},"binds":[{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":768,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":0,"hwVersion":1,"dateCode":"201801031853590","swBuildId":"e.1.11.0M","zclVersion":1,"interviewCompleted":true,"meta":{"configured":1051797767},"lastSeen":1737321743471,"checkinInterval":0}
{"id":3,"type":"Router","ieeeAddr":"0xf0d1b800001ffcf2","nwkAddr":1118,"manufId":4489,"manufName":"LEDVANCE","powerSource":"Unknown","modelId":"A60S RGBW","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":269,"inClusterList":[0,3,4,5,6,8,768,2821],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"A60S RGBW","manufacturerName":"LEDVANCE","powerSource":0,"zclVersion":8,"appVersion":0,"stackVersion":0,"hwVersion":2,"swBuildId":"03197310","dateCode":"20240523"}},"lightingColorCtrl":{"attributes":{"colorCapabilities":31,"colorTempPhysicalMin":153,"colorTempPhysicalMax":370,"colorMode":2,"currentX":21148,"currentY":21561,"colorTemperature":370}},"genOnOff":{"attributes":{"onOff":1}},"genLevelCtrl":{"attributes":{"currentLevel":105}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":0,"stackVersion":0,"hwVersion":2,"dateCode":"20240523","swBuildId":"03197310","zclVersion":8,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737324638084}
{"id":4,"type":"EndDevice","ieeeAddr":"0xa4c138570b1956d9","nwkAddr":39357,"manufId":4417,"manufName":"_TZ3000_zl1kmjqx","powerSource":"Battery","modelId":"","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,1,3,1026,1029],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"","manufacturerName":"_TZ3000_zl1kmjqx","powerSource":3,"zclVersion":3,"appVersion":211,"stackVersion":2,"hwVersion":1}},"msTemperatureMeasurement":{"attributes":{"measuredValue":2236}},"msRelativeHumidity":{"attributes":{"measuredValue":6545}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":40}},"manuSpecificTuya_2":{"attributes":{"53256":5,"57355":0}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":211,"stackVersion":2,"hwVersion":1,"zclVersion":3,"interviewCompleted":true,"meta":{"configured":217189513},"lastSeen":1730016723885}
{"id":5,"type":"EndDevice","ieeeAddr":"0xa4c1383ec7aa7d95","nwkAddr":38696,"manufId":4417,"manufName":"_TZ3000_zl1kmjqx","powerSource":"Battery","modelId":"","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,1,3,1026,1029],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"","manufacturerName":"_TZ3000_zl1kmjqx","powerSource":3,"zclVersion":3,"appVersion":211,"stackVersion":2,"hwVersion":1}},"msTemperatureMeasurement":{"attributes":{"measuredValue":2376}},"msRelativeHumidity":{"attributes":{"measuredValue":5659}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":52}},"manuSpecificTuya_2":{"attributes":{"53256":5,"57355":1}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":211,"stackVersion":2,"hwVersion":1,"zclVersion":3,"interviewCompleted":true,"meta":{"configured":217189513},"lastSeen":1737319854798}
{"id":6,"type":"EndDevice","ieeeAddr":"0xa4c1383db5531833","nwkAddr":19795,"manufId":4417,"manufName":"_TZ3000_bjawzodf","powerSource":"Battery","modelId":"TY0201","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,1,3,1026,1029],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"TY0201","manufacturerName":"_TZ3000_bjawzodf","powerSource":3,"zclVersion":3,"appVersion":211,"stackVersion":2,"hwVersion":1}},"msTemperatureMeasurement":{"attributes":{"measuredValue":2040}},"msRelativeHumidity":{"attributes":{"measuredValue":7350}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":34}},"manuSpecificTuya_2":{"attributes":{"53256":90,"57355":0}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":211,"stackVersion":2,"hwVersion":1,"zclVersion":3,"interviewCompleted":true,"meta":{"configured":217189513},"lastSeen":1737322133212}
{"id":7,"type":"Router","ieeeAddr":"0x00212effff0cb8b6","nwkAddr":11374,"manufId":4405,"manufName":"dresden elektronik\u0000","powerSource":"Mains (single phase)","modelId":"FLS-PP3 White\u0000","epList":[10,11],"endpoints":{"10":{"profId":49246,"epId":10,"devId":528,"inClusterList":[0,4096,4,3,5,6,8,768,64718],"outClusterList":[25],"clusters":{"lightingColorCtrl":{"attributes":{"colorCapabilities":31,"colorTempPhysicalMin":153,"colorTempPhysicalMax":500}},"genOnOff":{"attributes":{"onOff":0}}},"binds":[],"configuredReportings":[],"meta":{}},"11":{"profId":49246,"epId":11,"devId":256,"inClusterList":[0,4096,4,3,5,6,8],"outClusterList":[],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":2,"stackVersion":3,"hwVersion":1,"dateCode":"20220617\u0000","swBuildId":"0214.201000F6\u0000","zclVersion":1,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737322816750}
{"id":8,"type":"Router","ieeeAddr":"0x0ceff6fffebf4739","nwkAddr":58894,"manufId":4098,"manufName":"_TZ3000_nkkl7uzv","powerSource":"Mains (single phase)","modelId":"TS0207","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":8,"inClusterList":[0,10,3],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"65503":"\u0000\u0000\u0000\u0000\u0005","65506":22,"modelId":"TS0207","manufacturerName":"_TZ3000_nkkl7uzv","powerSource":1,"zclVersion":3,"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1730017719609}
{"id":9,"type":"Router","ieeeAddr":"0xa4c138541ec8ddd2","nwkAddr":9855,"manufId":4417,"manufName":"AwoX","powerSource":"Mains (single phase)","modelId":"TLSR82xx","epList":[1,3,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":257,"inClusterList":[0,3,4,5,6,8,768,4096,64599],"outClusterList":[6],"clusters":{"genBasic":{"attributes":{"modelId":"TLSR82xx","manufacturerName":"AwoX","powerSource":1,"zclVersion":3,"appVersion":0,"stackVersion":2,"hwVersion":0,"swBuildId":"0122052017"}},"lightingColorCtrl":{"attributes":{}},"genOnOff":{"attributes":{"onOff":1}},"genLevelCtrl":{"attributes":{"currentLevel":152}}},"binds":[],"configuredReportings":[],"meta":{}},"3":{"profId":4751,"epId":3,"devId":257,"inClusterList":[65360,65361],"outClusterList":[65360,65361],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":0,"stackVersion":2,"hwVersion":0,"swBuildId":"0122052017","zclVersion":3,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1732359122120}
{"id":10,"type":"EndDevice","ieeeAddr":"0xa4c1384187f0960d","nwkAddr":15382,"manufId":4742,"manufName":"_TZ3000_k4ej3ww2","powerSource":"Battery","modelId":"TS0207","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[0,3,1280,1],"outClusterList":[10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0207","manufacturerName":"_TZ3000_k4ej3ww2","zclVersion":3,"appVersion":65}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":28}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":65,"zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1737288885218}
{"id":11,"type":"Router","ieeeAddr":"0x001788010d1c884e","nwkAddr":451,"manufId":4107,"manufName":"Signify Netherlands B.V.","powerSource":"Mains (single phase)","modelId":"915005997601","epList":[11,242],"endpoints":{"11":{"profId":260,"epId":11,"devId":268,"inClusterList":[0,3,4,5,6,8,4096,768],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"915005997601","manufacturerName":"Signify Netherlands B.V.","powerSource":1,"zclVersion":2,"appVersion":2,"stackVersion":1,"hwVersion":0,"dateCode":"20211210","swBuildId":"1.93.7"}},"lightingColorCtrl":{"attributes":{"colorCapabilities":16,"colorTempPhysicalMin":153,"colorTempPhysicalMax":454,"colorMode":2,"colorTemperature":366}},"genOnOff":{"attributes":{"onOff":1}},"genLevelCtrl":{"attributes":{"currentLevel":254}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":6,"attrId":0,"minRepIntval":0,"maxRepIntval":3600,"repChange":0},{"cluster":8,"attrId":0,"minRepIntval":5,"maxRepIntval":3600,"repChange":1}],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":2,"stackVersion":1,"hwVersion":0,"dateCode":"20211210","swBuildId":"1.93.7","zclVersion":2,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737322108953}
{"id":12,"type":"EndDevice","ieeeAddr":"0x001788010e8a8be7","nwkAddr":51589,"manufId":4107,"manufName":"Signify Netherlands B.V.","powerSource":"Battery","modelId":"RWL022","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":2096,"inClusterList":[0,1,3,64512,4096],"outClusterList":[25,0,3,4,6,8,5,4096],"clusters":{"genBasic":{"attributes":{"modelId":"RWL022","manufacturerName":"Signify Netherlands B.V.","powerSource":3,"zclVersion":2,"appVersion":2,"stackVersion":1,"hwVersion":1,"dateCode":"20210729","swBuildId":"2.45.2_hF4400CA"}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":64512,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":5,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":0,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":4,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":3,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":4096,"type":"endpoint","deviceIeeeAddress":"0x001788010d1c884e","endpointID":11},{"cluster":25,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":3,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0}],"meta":{}}},"appVersion":2,"stackVersion":1,"hwVersion":1,"dateCode":"20210729","swBuildId":"2.45.2_hF4400CA","zclVersion":2,"interviewCompleted":true,"meta":{"configured":-1621243795},"lastSeen":1737319882541}
{"id":13,"type":"Router","ieeeAddr":"0x00158d00053a1aab","nwkAddr":22068,"manufId":4137,"manufName":"Paulmann lamp","powerSource":"Mains (single phase)","modelId":"CCT Light","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":268,"inClusterList":[0,4,3,6,8,5,768,65535,65535,4096,4111],"outClusterList":[25,4111],"clusters":{"lightingColorCtrl":{"attributes":{"colorCapabilities":16,"colorTempPhysicalMin":153,"colorTempPhysicalMax":454}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":102,"inClusterList":[33],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":1,"hwVersion":21,"dateCode":"20200710","swBuildId":"00.00.01","zclVersion":2,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1733860415839}
{"id":14,"type":"Router","ieeeAddr":"0x00158d00053c6311","nwkAddr":49663,"manufId":4137,"manufName":"Paulmann lamp","powerSource":"Mains (single phase)","modelId":"CCT Light","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":268,"inClusterList":[0,4,3,6,8,5,768,65535,65535,4096,4111],"outClusterList":[25,4111],"clusters":{"lightingColorCtrl":{"attributes":{"colorCapabilities":16,"colorTempPhysicalMin":153,"colorTempPhysicalMax":454}},"genOnOff":{"attributes":{"onOff":1}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":102,"inClusterList":[33],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":1,"hwVersion":21,"dateCode":"20200710","swBuildId":"00.00.01","zclVersion":2,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1733863963111}
{"id":15,"type":"EndDevice","ieeeAddr":"0xa4c13864e6c8c400","nwkAddr":33906,"manufId":4417,"manufName":"_TZ3040_bb6xaihh","powerSource":"Battery","modelId":"TS0202","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[1,3,4,1280,0],"outClusterList":[4,6,4096,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0202","manufacturerName":"_TZ3040_bb6xaihh","powerSource":3,"zclVersion":3,"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":""}},"ssIasZone":{"attributes":{"iasCieAddr":"0x00212effff04fc2c","zoneState":1}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":186,"batteryVoltage":29}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0},{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0}],"meta":{}}},"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":1725922549},"lastSeen":1737300604795}
{"id":16,"type":"EndDevice","ieeeAddr":"0xa4c138ef60e2fdbe","nwkAddr":45092,"manufId":4417,"manufName":"_TZ3000_26fmupbb","powerSource":"Battery","modelId":"TS0203","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[1,3,1280,0],"outClusterList":[3,4,5,6,8,4096,25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0203","manufacturerName":"_TZ3000_26fmupbb","powerSource":3,"zclVersion":3,"appVersion":70,"stackVersion":0,"hwVersion":1,"dateCode":""}},"ssIasZone":{"attributes":{"iasCieAddr":"0x00212effff04fc2c","zoneState":1}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":134,"batteryVoltage":28}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0},{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0}],"meta":{}}},"appVersion":70,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":-777136334},"lastSeen":1737300347352}
{"id":17,"type":"Router","ieeeAddr":"0xf0d1b800001388f0","nwkAddr":47599,"manufId":4489,"manufName":"LEDVANCE","powerSource":"Mains (single phase)","modelId":"B40 DIM Z3","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":257,"inClusterList":[0,3,4,5,6,8,2821,4096,64527],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"B40 DIM Z3","manufacturerName":"LEDVANCE","powerSource":1,"zclVersion":2,"appVersion":1,"stackVersion":2,"hwVersion":1,"dateCode":"Sep 29 2021\u0000\u0000\u0000\u0000\u0000","swBuildId":"01056400"}},"genLevelCtrl":{"attributes":{"currentLevel":229}},"genOnOff":{"attributes":{"onOff":1}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":2,"hwVersion":1,"dateCode":"Sep 29 2021\u0000\u0000\u0000\u0000\u0000","swBuildId":"01056400","zclVersion":2,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737324638327}
{"id":18,"type":"Router","ieeeAddr":"0x7cb03eaa0a0176bd","nwkAddr":59143,"manufId":48042,"manufName":"OSRAM","powerSource":"Mains (single phase)","modelId":"Classic A60 W clear - LIGHTIFY","epList":[3],"endpoints":{"3":{"profId":49246,"epId":3,"devId":256,"inClusterList":[4096,0,3,4,5,6,8,64527],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"Classic A60 W clear - LIGHTIFY","manufacturerName":"OSRAM","powerSource":1,"zclVersion":1,"appVersion":0,"stackVersion":2,"hwVersion":1,"dateCode":"20140331CNEF****","swBuildId":"V1.05.10"}},"genOnOff":{"attributes":{"onOff":1}},"genLevelCtrl":{"attributes":{"currentLevel":254}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":0,"stackVersion":2,"hwVersion":1,"dateCode":"20140331CNEF****","swBuildId":"V1.05.10","zclVersion":1,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737324308585}
{"id":19,"type":"EndDevice","ieeeAddr":"0x000d6f001417c142","nwkAddr":31488,"manufId":4364,"manufName":"OSRAM","powerSource":"Battery","modelId":"Lightify Switch Mini","epList":[1,2,3],"endpoints":{"1":{"profId":260,"epId":1,"devId":2064,"inClusterList":[0,1,32,4096,64768],"outClusterList":[3,4,5,6,8,25,768,4096],"clusters":{"genBasic":{"attributes":{"modelId":"Lightify Switch Mini","manufacturerName":"OSRAM","powerSource":3,"zclVersion":1,"appVersion":1,"stackVersion":0,"hwVersion":1,"dateCode":"201904180638010","swBuildId":"e.1.11.0M"}},"genPollCtrl":{"attributes":{"checkinInterval":0}},"genPowerCfg":{"attributes":{"batteryVoltage":30}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":65000,"repChange":0}],"meta":{}},"2":{"profId":260,"epId":2,"devId":2064,"inClusterList":[0,4096,64768],"outClusterList":[3,4,5,6,8,768,4096],"clusters":{"genBasic":{"attributes":{"stackVersion":0}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[],"meta":{}},"3":{"profId":260,"epId":3,"devId":2064,"inClusterList":[0,4096,64768],"outClusterList":[3,4,5,6,8,768,4096],"clusters":{"genBasic":{"attributes":{"stackVersion":0}}},"binds":[{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":768,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":0,"hwVersion":1,"dateCode":"201904180638010","swBuildId":"e.1.11.0M","zclVersion":1,"interviewCompleted":true,"meta":{"configured":1051797767},"lastSeen":1737321880357,"checkinInterval":0}
{"id":20,"type":"EndDevice","ieeeAddr":"0xa4c138e68023f4c6","nwkAddr":60500,"manufId":4742,"manufName":"_TZ3000_upgcbody","powerSource":"Battery","modelId":"SNZB-05","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[0,3,1,1280,32],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"SNZB-05","manufacturerName":"_TZ3000_upgcbody","powerSource":3,"zclVersion":3,"appVersion":113,"stackVersion":2,"hwVersion":0,"swBuildId":"0122052017"}},"ssIasZone":{"attributes":{"61441":1,"iasCieAddr":"0x00212effff04fc2c","zoneState":1,"currentZoneSensitivityLevel":1}},"genPollCtrl":{"attributes":{"checkinInterval":6960}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":29}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff04fc2c","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":10}],"meta":{}}},"appVersion":113,"stackVersion":2,"hwVersion":0,"swBuildId":"0122052017","zclVersion":3,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1737323967021,"checkinInterval":1740}
{"id":21,"type":"EndDevice","ieeeAddr":"0xa4c13838ba59a1b2","nwkAddr":63741,"manufId":4742,"manufName":"_TZE200_a8sdabtg","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,3,1026,1029,1],"outClusterList":[3],"clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_a8sdabtg","powerSource":3,"appVersion":145,"zclVersion":3}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":30}},"msTemperatureMeasurement":{"attributes":{"measuredValue":2540}},"msRelativeHumidity":{"attributes":{"measuredValue":4560}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":145,"zclVersion":3,"interviewCompleted":true,"meta":{"configured":217189513},"lastSeen":1737324384099}
{"id":22,"type":"EndDevice","ieeeAddr":"0xa4c1389d42e94844","nwkAddr":4843,"manufId":4742,"manufName":"_TZE200_a8sdabtg","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,3,1026,1029,1],"outClusterList":[3],"clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_a8sdabtg","powerSource":3,"zclVersion":3,"appVersion":145,"stackVersion":2,"hwVersion":1,"swBuildId":"0122052017"}},"msTemperatureMeasurement":{"attributes":{"measuredValue":2090}},"msRelativeHumidity":{"attributes":{"measuredValue":4370}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":30}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":145,"stackVersion":2,"hwVersion":1,"swBuildId":"0122052017","zclVersion":3,"interviewCompleted":true,"meta":{"configured":217189513},"lastSeen":1737297682334}

15
zb2mqttdata/dresden.js Normal file
View File

@@ -0,0 +1,15 @@
const {deviceEndpoints, identify, light} = require('zigbee-herdsman-converters/lib/modernExtend');
const definition = {
zigbeeModel: ['FLS-PP3 White\u0000'],
model: 'FLS-PP3 White\u0000',
vendor: 'dresden elektronik\u0000',
description: 'Automatically generated definition',
extend: [
deviceEndpoints({endpoints: {rgb: 10, white: 11}}),
light({"colorTemp":{"range":[153,500]},"color":{"modes":["xy","hs"],"enhancedHue":true},endpointNames: ['rgb', 'white']})
],
};
module.exports = definition;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

View File

View File

183
zb2mqttdata/state.json Normal file
View File

@@ -0,0 +1,183 @@
{
"0xf0d1b800001ffcf2": {
"color_mode": "color_temp",
"update": {
"state": "idle",
"installed_version": 51999504,
"latest_version": 51999504
},
"brightness": 105,
"state": "ON",
"color": {
"x": 0.4599,
"y": 0.4106
},
"color_temp": 370,
"linkquality": 175
},
"0xa4c138570b1956d9": {
"temperature": 22.35,
"humidity": 64.87,
"battery": 20,
"linkquality": 7
},
"0xa4c1383ec7aa7d95": {
"temperature": 23.81,
"humidity": 58.31,
"battery": 26,
"linkquality": 255
},
"0xa4c1383db5531833": {
"temperature": 20.4,
"humidity": 73.5,
"battery": 17,
"linkquality": 87,
"update": {
"state": "idle",
"installed_version": 268513281,
"latest_version": 268513281
}
},
"0x000d6f00109eb214": {
"linkquality": 247,
"voltage": 3000,
"battery": 100
},
"0x00212effff0cb8b6": {
"color_mode": "xy",
"state": "OFF",
"state_rgb": "OFF",
"brightness_white": 254,
"state_white": "OFF",
"brightness_rgb": 26,
"color_mode_rgb": "color_temp",
"color_temp_rgb": 199,
"color_mode_white": "color_temp",
"color_temp_white": 365,
"color": {
"x": 0.6942,
"y": 0.2963
},
"color_white": {
"x": 0.4566,
"y": 0.4098
},
"color_rgb": {
"x": 0.3445,
"y": 0.3512
},
"linkquality": 255,
"state_10": "OFF"
},
"0x0ceff6fffebf4739": {
"linkquality": 119
},
"0xa4c138541ec8ddd2": {
"state": "ON",
"brightness": 152,
"linkquality": 255
},
"0xa4c1384187f0960d": {
"water_leak": false,
"tamper": false,
"battery_low": false,
"battery": 100,
"voltage": 2800,
"linkquality": 207
},
"0x001788010d1c884e": {
"color_mode": "color_temp",
"update": {
"state": "available",
"installed_version": 16784652,
"latest_version": 16786434
},
"state": "ON",
"brightness": 254,
"linkquality": 87,
"color_temp": 366
},
"0x001788010e8a8be7": {
"battery": 100,
"update": {
"state": "idle",
"installed_version": 33565954,
"latest_version": 33565954
},
"linkquality": 255
},
"0xa4c13864e6c8c400": {
"battery": 93,
"voltage": 2900,
"occupancy": false,
"tamper": false,
"battery_low": false,
"linkquality": 255
},
"0xa4c138ef60e2fdbe": {
"contact": true,
"tamper": false,
"battery_low": false,
"voltage": 2800,
"battery": 100,
"linkquality": 239
},
"0x00158d00053a1aab": {
"color_mode": "xy",
"linkquality": 255
},
"0x00158d00053c6311": {
"color_mode": "xy",
"state": "ON",
"linkquality": 255
},
"0xf0d1b800001388f0": {
"update": {
"state": "idle",
"installed_version": 17130496,
"latest_version": 17130496
},
"state": "ON",
"brightness": 229,
"linkquality": 255
},
"0x7cb03eaa0a0176bd": {
"update": {
"state": "idle",
"installed_version": 16909584,
"latest_version": 16909584
},
"brightness": 254,
"state": "ON",
"linkquality": 255
},
"0x000d6f001417c142": {
"voltage": 3000,
"battery": 100,
"linkquality": 239
},
"0xa4c138e68023f4c6": {
"battery": 100,
"water_leak": false,
"battery_low": false,
"linkquality": 255
},
"0xa4c1389d42e94844": {
"temperature": 20.9,
"humidity": 43,
"temperature_unit": "celsius",
"temperature_calibration": 0,
"humidity_calibration": 0,
"battery": 100,
"linkquality": 63
},
"0xa4c13838ba59a1b2": {
"battery": 50,
"temperature": 25.4,
"humidity": 46,
"temperature_unit": "celsius",
"temperature_calibration": 0,
"humidity_calibration": 0,
"linkquality": 255
}
}