diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5aef52bfcc..55ffe9f89c 100755 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,4 +4,4 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "daily" \ No newline at end of file + interval: "weekly" \ No newline at end of file diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 41c3439ecf..a0fdd62c4e 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -25,7 +25,11 @@ jobs: # Disabling shallow clone is recommended for improving relevancy of reporting with: fetch-depth: 0 - + - name: phplint + uses: michaelw90/PHP-Lint@master + - uses: actions/setup-node@v3 + with: + node-version: 16 - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@master env: @@ -44,3 +48,6 @@ jobs: -Dsonar.projectKey=edgd1er_Abeille -Dsonar.verbose=true -Dsonar.exclusions='images/,.git/**,.idea/**,.github/**,.scannerwork/**' + -Dsonar.c.file.suffixes=- + -Dsonar.cpp.file.suffixes=- + -Dsonar.objc.file.suffixes=- diff --git a/.gitignore b/.gitignore index 361ca80ca7..3eb17e57f1 100755 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff: +.idea/* .idea/**/workspace.xml .idea/**/tasks.xml .idea/dictionaries @@ -64,3 +65,5 @@ AbeilleLQI_MapDataAbeille5.json.lock .settings/org.eclipse.wst.common.project.facet.core.xml .DS_Store + +resources/archives/ diff --git a/.hooks/install_hooks.sh b/.hooks/install_hooks.sh deleted file mode 100755 index 6e6fc73c67..0000000000 --- a/.hooks/install_hooks.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Hooks installation and update script - -echo "Hooks: installation & mise-à-jour" - -# Updating hooks if required -HOOKS=`ls .hooks/*` -for F in ${HOOKS} -do - FILE_NAME=$(basename $F) - if [ "${FILE_NAME}" == "install_hooks.sh" ]; then - continue - fi - - # Updating only new/changes hooks - cmp .hooks/${FILE_NAME} .git/hooks/${FILE_NAME} >/dev/null 2>&1 - if [ $? != 0 ]; then - echo "- mise-à-jour de ${FILE_NAME}" - cp .hooks/${FILE_NAME} .git/hooks - fi -done -echo "= OK" - -exit 0 diff --git a/.hooks/post-merge b/.hooks/post-merge deleted file mode 100755 index 2443ffb6c5..0000000000 --- a/.hooks/post-merge +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh - -# This hook is called when a 'git pull' is done on local repository - -# It does the following -# - Update GIT hooks from '.hooks' (versioned files) to '.git/hooks' (local files). -# - Currently disabled: Update Abeille version from last commit date - -# Updating hooks if required -.hooks/install_hooks.sh - -exit 0 -# Rest is currently disabled - -# Updating Abeille version -CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Current branch -LAST_COMMIT_SHORT=`git rev-parse --short HEAD` # Last commit -LAST_COMMIT_DATE=`git show -s --format=%cd --date=format:"%Y-%m-%d @%H:%M:%S" ${LAST_COMMIT_SHORT}` # YYYY-MM-DD @HH:mm:ss -LAST_COMMIT_DATE_SHORT=`git show -s --format=%cd --date=short ${LAST_COMMIT_SHORT}` # YYYY-MM-DD -LAST_TAG=`git tag --contains ${LAST_COMMIT_SHORT}` # Tag of the last commmit if any - -# Note: If on a detached branch when doing push, CURRENT_BRANCH is empty. - -if [ "${CURRENT_BRANCH}" = "stable" ]; then - VERSION="${CURRENT_BRANCH}, ${LAST_COMMIT_DATE_SHORT}" -else - VERSION="${CURRENT_BRANCH}, ${LAST_COMMIT_DATE}, ${LAST_COMMIT_SHORT}" -fi - -echo "Mise-à-jour de la version d'Abeille: ${VERSION}" -echo "${VERSION}" > plugin_info/AbeilleVersion.inc - -# Add then commit 'AbeilleVersion.inc' -git add plugin_info/AbeilleVersion.inc -git commit -m "Version update with last commit (${LAST_COMMIT_SHORT})" - -# Updating Abeille version -CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Current branch -LAST_COMMIT_SHORT=`git rev-parse --short HEAD` # Last commit -LAST_COMMIT_DATE=`git show -s --format=%cd --date=format:"%Y-%m-%d @%H:%M:%S" ${LAST_COMMIT_SHORT}` # YYYY-MM-DD @HH:mm:ss -LAST_COMMIT_DATE_SHORT=`git show -s --format=%cd --date=short ${LAST_COMMIT_SHORT}` # YYYY-MM-DD -LAST_TAG=`git tag --contains ${LAST_COMMIT_SHORT}` # Tag of the last commmit if any - -# Note: If on a detached branch when doing push, CURRENT_BRANCH is empty. - -if [ "${CURRENT_BRANCH}" = "stable" ]; then - VERSION="${CURRENT_BRANCH}, ${LAST_COMMIT_DATE_SHORT}" -else - VERSION="${CURRENT_BRANCH}, ${LAST_COMMIT_DATE}, ${LAST_COMMIT_SHORT}" -fi - -echo "Mise-à-jour de la version d'Abeille: ${VERSION}" -echo "${VERSION}" > plugin_info/AbeilleVersion.inc - -# Add then commit 'AbeilleVersion.inc' -git add plugin_info/AbeilleVersion.inc -git commit -m "Version update with last commit (${LAST_COMMIT_SHORT})" - -exit 0 diff --git a/.hooks/pre-commit b/.hooks/pre-commit deleted file mode 100755 index 3f68ec7c2b..0000000000 --- a/.hooks/pre-commit +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# This hook is called when a 'git commit' is done on local repository - -# It does the following -# - Update Abeille version file - -# Updating Abeille version -CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Current branch -# LAST_COMMIT_SHORT=`git rev-parse --short HEAD` # Last commit -# LAST_COMMIT_DATE=`git show -s --format=%cd --date=format:"%Y-%m-%d %H:%M:%S" ${LAST_COMMIT_SHORT}` # YYYY-MM-DD @HH:mm:ss -# LAST_COMMIT_DATE_SHORT=`git show -s --format=%cd --date=short ${LAST_COMMIT_SHORT}` # YYYY-MM-DD -# LAST_TAG=`git tag --contains ${LAST_COMMIT_SHORT}` # Tag of the last commmit if any -DATE=`date +"%Y-%m-%d %H:%M:%S"` - -# Note: If on a detached branch when doing push, CURRENT_BRANCH is empty. - -# Note: We could put a different version according to branch name -if [ "${CURRENT_BRANCH}" = "stable" ]; then - VERSION="${CURRENT_BRANCH}, ${DATE}" -else - VERSION="${CURRENT_BRANCH}, ${DATE}" -fi - -echo "Mise-à-jour de la version d'Abeille: ${VERSION}" -echo "${VERSION}" > plugin_info/AbeilleVersion.inc - -# Add 'AbeilleVersion.inc' to current commit. -git add plugin_info/AbeilleVersion.inc - -exit 0 diff --git a/.idea/Abeille.iml b/.idea/Abeille.iml deleted file mode 100755 index 41546977b9..0000000000 --- a/.idea/Abeille.iml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.tools/create_branch.sh b/.tools/create_branch.sh deleted file mode 100755 index 4196f58b37..0000000000 --- a/.tools/create_branch.sh +++ /dev/null @@ -1,270 +0,0 @@ -#!/bin/bash -# 'beta'/'stable' version generation & push script - -# How to -# Create 'beta' version from 'master' -# .tools/create_branch.sh beta -# Create 'stable' version from 'beta' -# .tools/create_branch.sh stable - -echo "***" -echo "*** Abeille's beta/stable branch creation script" -echo "***" -echo - -TARG_REPO='origin' -TARG_BRANCH='' -FORCE=0 # Force creation from branch != 'master' & 'beta' - -# Usage: create_branch.sh [-f] [target_branch] -# where -f = force creation from current branch (not master or beta) -# target_branch = 'beta' or 'stable' -if [ $# -gt 0 ]; then - echo "Checking arguments" - while (( "$#" )); do - case "$1" in - -f) - FORCE=1 - echo "- Info: 'forced' source" - shift - ;; - -h) - echo - echo "Usage: create_branch.sh [-f] "; - echo "where"; - echo " -f : force branch creation even if not from master or beta" - echo " target: 'beta' or 'stable'" - echo - exit 0 - ;; - beta) - TARG_BRANCH=$1 - shift - ;; - stable) - TARG_BRANCH=$1 - shift - ;; - *) # unknown option - echo "= ERROR: Only 'beta' or 'master' accepted as argument" - exit 1 - ;; - esac - done -fi - -# Check repo status -# - Ensure that local branch is 'master' (to beta) or 'beta' (to stable) -# - Force a "git pull ff" to be sure local branch is aligned on remote one. -# - Stops if any uncommitted local modifs -echo "Checking current branch & status" -CUR_BRANCH=`git rev-parse --abbrev-ref HEAD` -if [ ${FORCE} -eq 0 ] && [ "${CUR_BRANCH}" != "master" ] && [ "${CUR_BRANCH}" != "beta" ]; then - echo "= ERROR: Current branch must be either 'master' or 'beta'" - exit 10 -fi -git diff-index --quiet HEAD >/dev/null -if [ $? -ne 0 ]; then - echo "= ERROR: Uncommitted local modifications found" - exit 11 -fi -git pull -q --ff-only >/dev/null -if [ $? -ne 0 ]; then - echo "= ERROR: You must do a git pull first to align your local branch with remote one." - exit 12 -fi - -# If TARG_BRANCH is undefined, let's gess -if [ "${TARG_BRANCH}" == "" ]; then - if [ "${CUR_BRANCH}" == "master" ]; then - TARG_BRANCH='beta' - elif [ "${CUR_BRANCH}" == "beta" ]; then - TARG_BRANCH='stable' - else - echo "= ERROR: Missing argument to guess target branch" - exit 13 - fi -fi - -# -# Ok, everything seems ready to create a beta or stable branch -# - -# Final check with user before starting if unusual config -if [ "${CUR_BRANCH}" != "master" ] && [ "${CUR_BRANCH}" != "beta" ]; then - echo - echo " *** !! WARNING !!" - echo " *** This is an unexpected config." - echo " *** You are going to create a '${TARG_BRANCH}' version from '${CUR_BRANCH}'." - echo " *** Are you sure you want to do that ?" - read -p " *** Enter y/n: " ANSWER - if [ "${ANSWER}" != "y" ]; then - echo "= Canceling branch creation" - exit 0 - fi - echo -else - echo " *** You are going to create a '${TARG_BRANCH}' version from '${CUR_BRANCH}'." - echo " *** Are you sure you want to do that ?" - read -p " *** Enter y/n: " ANSWER - if [ "${ANSWER}" != "y" ]; then - echo "= Canceling branch creation" - exit 0 - fi - echo -fi - -# -# On current branch let's do -# - version update -# - MD5 update -# - changelog: add VERSION if required -# - add+commit, then tag + push - -# Updating plugin version -.tools/update_version.sh ${TARG_BRANCH} -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 20 -fi - -# Update changelog if required & target is 'stable' -.tools/update_changelog.sh -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 22 -fi - -# Updating MD5 file -.tools/update_md5.sh -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 21 -fi - -# Add+commit -# Note about changelog: should be pushed to AbeilleDoc too & html generated. -echo "Adding 'Abeille.version', 'info.json', 'Abeille.md5' & 'Changelog.md'" -git add plugin_info/Abeille.version plugin_info/info.json plugin_info/Abeille.md5 docs/fr_FR/Changelog.md -if [ $? -ne 0 ]; then - echo "= ERROR: git add failed" - exit 23 -fi - -VERSION=`cat plugin_info/Abeille.version | tail -1` -echo "Committing" -if [ "${TARG_BRANCH}" == "beta" ]; then - git commit -q -m "Beta ${VERSION}" -else - git commit -q -m "Stable ${VERSION}" -fi -if [ $? -ne 0 ]; then - echo "= ERROR: Commit failed" - exit 24 -fi - -git tag -a "${VERSION}" -m "Version ${VERSION}" >/dev/null -if [ $? -ne 0 ]; then - echo "= ERROR: Tag failed" - exit 25 -fi -git push -q ${TARG_REPO} HEAD ${VERSION} -if [ $? -ne 0 ]; then - echo "= ERROR: git push failed" - exit 26 -fi - - -# Create local temporary branch & switch to it -# Note: Local branch deleted if already exists -TODAY=`date +"%y%m%d"` -LOCAL_BRANCH="${TARG_BRANCH}-temp-${TODAY}" -git show-ref refs/heads/${LOCAL_BRANCH} >/dev/null -if [ $? -eq 0 ]; then - # Note: -D to force delete - echo "Deleting temp '${LOCAL_BRANCH}' branch" - git branch -D ${LOCAL_BRANCH} >/dev/null - if [ $? -ne 0 ]; then - echo "= ERROR" - exit 30 - fi -fi -echo "Switching to ${LOCAL_BRANCH}" -git checkout -q -b ${LOCAL_BRANCH} -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 31 -fi - -# Before creating new 'stable' branch removing items not required -# for Jeedom. Not required for 'master' to 'beta'. -if [ "${TARG_BRANCH}" == "stable" ]; then - echo "Cleaning ${LOCAL_BRANCH}" - IGNORE="core/config/ignore_on_push.txt" - COMMIT_REQUIRED=0 - while IFS= read -r L - do - if [[ ${L} == "#"* ]]; then - continue # Comment - fi - if [ ! -e "${L}" ]; then - echo "= WARNING: ${L} NOT FOUND" - continue - fi - - git rm -rf ${L} 2>/dev/null - if [ $? -ne 0 ]; then - # The file probably no longer exists - continue - fi - - COMMIT_REQUIRED=1 - done <<< `cat ${IGNORE}` - if [ ${COMMIT_REQUIRED} -eq 1 ]; then - git add -u >/dev/null - git commit -q -m "${VERSION} cleanup" - if [ $? -ne 0 ]; then - echo "= ERROR: Commit failed" - echo "= cmd='git commit -q -m \"${VERSION} cleanup\"'" - exit 32 - fi - fi -fi - -# Delete target branch (origin/beta) & push new one -#REM=`git branch -a | grep remotes/${TARG_REPO}/${TARG_BRANCH}` -REM=`git ls-remote ${TARG_REPO} ${TARG_BRANCH}` -#if [ $? -eq 0 ]; then -if [ "${REM}" != "" ]; then - echo "Deleting ${TARG_REPO}/${TARG_BRANCH} branch" - git push -q ${TARG_REPO} --delete ${TARG_BRANCH} - if [ $? -ne 0 ]; then - echo "= ERROR: git push failed" - echo "= cmd='git push -q ${TARG_REPO} --delete ${TARG_BRANCH}'" - echo "= then cmd 'git push --force -q ${TARG_REPO} ${LOCAL_BRANCH}:${TARG_BRANCH}'" - echo "= then cmd 'git checkout -q ${CUR_BRANCH}'" - exit 33 - fi -fi - -# Pushing branch -echo "Creating ${TARG_REPO}/${TARG_BRANCH} branch" -git push --force -q ${TARG_REPO} ${LOCAL_BRANCH}:${TARG_BRANCH} -if [ $? -ne 0 ]; then - echo "= ERROR: git push failed" - echo "= cmd='git push --force -q ${TARG_REPO} ${LOCAL_BRANCH}:${TARG_BRANCH}'" - echo "= then cmd 'git checkout -q ${CUR_BRANCH}'" - exit 34 -fi - -echo "Switching back to '${CUR_BRANCH}' branch" -git checkout -q ${CUR_BRANCH} -if [ $? -ne 0 ]; then - echo "= ERROR: git checkout failed" - echo "= cmd='git checkout -q ${CUR_BRANCH}'" - exit 35 -else - echo "= Ok" -fi - -exit 0 diff --git a/.tools/gen_devices_list.php b/.tools/gen_devices_list.php deleted file mode 100644 index 00ecc9fb0c..0000000000 --- a/.tools/gen_devices_list.php +++ /dev/null @@ -1,144 +0,0 @@ - $dirEntry, - 'jsonLocation' => $from - ); - - /* Check if config is compliant with other device identification */ - $content = file_get_contents($fullPath); - $devConf = json_decode($content, true); - $devConf = $devConf[$dirEntry]; // Removing top key - $dev['manufacturer'] = isset($devConf['manufacturer']) ? $devConf['manufacturer'] : ''; - $dev['model'] = isset($devConf['model']) ? $devConf['model']: ''; - $dev['type'] = $devConf['type']; - $dev['icon'] = $devConf['configuration']['icon']; - $devicesList[$dirEntry] = $dev; - - if (isset($devConf['alternateIds'])) { - foreach ($devConf['alternateIds'] as $altIdKey => $altId) { - // echo("getDevicesList(): Alternate ID '".$altIdKey."' for '".$dirEntry."'\n"); - $dev = array( - 'jsonId' => $dirEntry, - 'jsonLocation' => $from - ); - $devicesList[$altIdKey] = $dev; - } - } - } - closedir($dh); - - return $devicesList; - } - - // Collecting list of supported devices (by their JSON) - $devList = getDevicesList('Abeille'); - foreach ($devList as $jsonId => $dev) { - - $eqList[] = array( - 'manufacturer' => $dev["manufacturer"], - 'model' => $dev["model"], - 'type' => $dev["type"], - 'jsonId' => $jsonId, - 'icon' => $dev["icon"] - ); - - // Collect all information related to Command used by the products - // $path = __DIR__.'/../../core/config/devices/'.$jsonId.'/'.$jsonId.'.json'; - // $contentJSON = file_get_contents($path); - // $content = json_decode($contentJSON, true); - // if (isset($content[$jsonId]['commands'])) { - // $commands = $content[$jsonId]['commands']; - // foreach ($commands as $include) { - // $resultRaw[] = array( - // 'jsonId' => $jsonId, - // 'type' => $content[$jsonId]["type"], - // 'fonction' => $include - // ); - // $result[] = "".$content[$jsonId]["type"]."".$jsonId."".$include.""; - // } - // } - } - - genRst($eqList); -?> diff --git a/.tools/git_merge_driver.txt b/.tools/git_merge_driver.txt deleted file mode 100644 index a12f309d49..0000000000 --- a/.tools/git_merge_driver.txt +++ /dev/null @@ -1,28 +0,0 @@ - -Liens -===== -https://www.julianburr.de/til/custom-git-merge-drivers/ - -How to automatically merge some files -===================================== -# .gitattributes update - -# Automatically solve conflicts for the following files. -# Note: They need to be updated anyway after a merge. -# Note: Using keepMine for MD5 & keepTheir for version -# in order to have different branch name -# and prevent wrong integrity check. -plugin_info/Abeille.md5 merge=keepMine -plugin_info/Abeille.version merge=keepTheir -plugin_info/info.json merge=keepMine - - -# .git/config update -# Add the following lines - -[merge "keepMine"] - name = always keep mine during merge - driver = exit 0 -[merge "keepTheir"] - name = always keep their during merge - driver = cp -f %B %A diff --git a/.tools/git_push.sh b/.tools/git_push.sh deleted file mode 100755 index edfe381714..0000000000 --- a/.tools/git_push.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# Git push script -# Do the following steps -# - Update version into 'Abeille.version' -# - Compute MD5 checksums into 'Abeille.md5' -# - Add+commit+push - -OUT=plugin_info/Abeille.md5 -FORCE="" - -# Checks -# Ensure script is launched from Abeille's root -if [ ! -e ".git" ]; then - echo "ERROR: This script must be launched from Abeille's root directory." - exit 1 -fi -if [ "$1" == "--force" ]; then - FORCE="--force" -fi - -# Remote branch identification -REMOTE_BRANCH_FULL=`git rev-parse --abbrev-ref --symbolic-full-name @{u}` -if [ "${REMOTE_BRANCH_FULL}" == "" ]; then - echo "= ERROR: Could not identify remote branch." - exit 2 -fi -echo "- Remote branch: ${REMOTE_BRANCH_FULL}" -IFS='/' -read -ra R <<< "${REMOTE_BRANCH_FULL}" -REMOTE_REPO=${R[0]} # Ex: 'origin' -REMOTE_BRANCH=${R[1]} # Ex: 'master' -echo " REMOTE_SOURCE=${REMOTE_REPO}" -echo " REMOTE_BRANCH=${REMOTE_BRANCH}" - -# Updating plugin version -.tools/update_version.sh ${REMOTE_BRANCH} -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 22 -fi - -# Updating MD5 file -.tools/update_md5.sh -if [ $? -ne 0 ]; then - echo "= ERROR" - exit 23 -fi - -# Add + commit + push -echo "Updating GIT & pushing" -git add plugin_info/Abeille.version plugin_info/info.json plugin_info/Abeille.md5 -if [ $? -ne 0 ]; then - echo "= ERROR: git add failed." - exit 10 -fi -VERSION=`cat plugin_info/Abeille.version | tail -1` -git commit -m "Version ${VERSION}" -if [ $? -ne 0 ]; then - echo "= ERROR: git commit failed." - exit 11 -fi -git push ${FORCE} -if [ $? -ne 0 ]; then - echo "= ERROR: git push failed." - echo "= You may need to do the push with" - echo "= git push --force" - exit 12 -fi -echo "= Ok" diff --git a/.tools/save_changes.sh b/.tools/save_changes.sh deleted file mode 100644 index 59a16fca87..0000000000 --- a/.tools/save_changes.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -# Save GIT changes to a given directory - -if [ $# -lt 1 ]; then - echo "ERROR: Missing target directory." - exit 1 -fi -TARGET_DIR=$1 - -GIT_PORCELAIN=git.porcelain - -git status --porcelain > ${GIT_PORCELAIN} -REPO_DIR=$(pwd) -echo "Current dir: $PWD" -echo "Target dir : $TARGET_DIR" -mkdir -p ${TARGET_DIR} -cd ${TARGET_DIR} -while read -r; do - # echo "Line=$REPLY" - ARG2=`echo $REPLY | awk '{print $2}'` - ARG3=`echo $REPLY | awk '{print $3}'` - ARG4=`echo $REPLY | awk '{print $4}'` - if [[ $REPLY = "A"* ]]; then - echo "ADD: ${ARG2}" - mkdir -p $(dirname ${ARG2}) - cp "${REPO_DIR}/${ARG2}" ${ARG2} - continue - fi - if [[ $REPLY = "M"* ]] || [[ $REPLY = " M"* ]]; then - echo "MOD: ${ARG2}" - mkdir -p $(dirname ${ARG2}) - cp "${REPO_DIR}/${ARG2}" ${ARG2} - continue - fi - if [[ $REPLY = "D"* ]] || [[ $REPLY = " D"* ]]; then - echo "DEL: ${ARG2}" - mkdir -p $(dirname ${ARG2}) - cp "${REPO_DIR}/${ARG2}" ${ARG2}".removed" - continue - fi - if [[ $REPLY = "R"* ]]; then - echo "REN: ${ARG2} to ${ARG4}" - mkdir -p $(dirname ${ARG2}) - mkdir -p $(dirname "${ARG4}") - cp "${REPO_DIR}/${ARG4}" ${ARG4} - cp "${REPO_DIR}/${ARG2}" ${ARG2}".removed" - continue - fi - if [[ $REPLY = "??"* ]]; then - if [ "${ARG2}" = "git.porcelain" ] || [ "${ARG2}" = "sftp.cmds" ]; then - echo "?? : '$REPLY' => IGNORED" - continue; - fi - echo "?? : '$REPLY'" - mkdir -p $(dirname ${ARG2}) - cp "${REPO_DIR}/${ARG2}" ${ARG2} - continue - fi - echo "ERROR: Don't know what to do with the line" - echo " '$REPLY'" -done < "${REPO_DIR}/${GIT_PORCELAIN}" diff --git a/.tools/set_git_config.sh b/.tools/set_git_config.sh deleted file mode 100644 index 7ecb365550..0000000000 --- a/.tools/set_git_config.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -USERNAME="Tcharp38" -EMAIL="fabrice.charpentier@laposte.net" - -echo "Configuring user" -git config --local user.name "${USERNAME}" -git config --local user.email "${EMAIL}" - -echo "Configuring CRLF" -git config --local core.autocrlf input diff --git a/.tools/set_git_noproxy.sh b/.tools/set_git_noproxy.sh deleted file mode 100644 index 78f1530132..0000000000 --- a/.tools/set_git_noproxy.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -echo "Remove GIT proxy" -git config --global --unset http.proxy \ No newline at end of file diff --git a/.tools/set_python3.sh b/.tools/set_python3.sh deleted file mode 100644 index fb51a2b2e6..0000000000 --- a/.tools/set_python3.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -# This file must be SOURCED and not executed - - -export PATH=/c/Python37:${PATH} diff --git a/.tools/sync_all.sh b/.tools/sync_all.sh deleted file mode 100644 index 4622f598e7..0000000000 --- a/.tools/sync_all.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -if [ $# -lt 1 ]; then - echo "ERROR: Missing IP address" - exit 1 -fi -ADDR_IP=$1 - -ABEILLE_DIR=/var/www/html/plugins/Abeille -SFTP_SCRIPT=../sftp.cmds -LSFILES=../git.lsfiles - -git ls-files > ${LSFILES} -echo "cd ${ABEILLE_DIR}" > ${SFTP_SCRIPT} -PREVIOUS_DIR="" -while read -r; do - # echo "Line=$REPLY" - - # TODO: Put this part in exclude file - if [[ $REPLY = "core/config/commands/OBSOLETE"* ]]; then - echo "IGN: ${REPLY}" - continue - fi - if [[ $REPLY = "resources/archives"* ]]; then - echo "IGN: ${REPLY}" - continue - fi - # End TODO - - if [[ $REPLY = "."* ]]; then - echo "IGN: ${REPLY}" - continue - fi - REPLY_DIR=$(dirname ${REPLY}) - echo "ADD: ${REPLY}" - if [ "${REPLY_DIR}" != "${PREVIOUS_DIR}" ]; then - # Warning: Could not be sure that all path exists for creation - echo "mkdir ${REPLY_DIR}" >> ${SFTP_SCRIPT} - PREVIOUS_DIR=${REPLY_DIR} - fi - echo "put ${REPLY} ${REPLY}" >> ${SFTP_SCRIPT} -done < ${LSFILES} - -sftp root@${ADDR_IP} < ${SFTP_SCRIPT} diff --git a/.tools/sync_changes.sh b/.tools/sync_changes.sh deleted file mode 100644 index ec450f8a1e..0000000000 --- a/.tools/sync_changes.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -if [ $# -lt 1 ]; then - echo "ERROR: Missing IP address" - exit 1 -fi -ADDR_IP=$1 - -ABEILLE_DIR=/var/www/html/plugins/Abeille -SFTP_SCRIPT=../sftp.cmds -GIT_PORCELAIN=../git.porcelain - -git status --porcelain > ${GIT_PORCELAIN} -echo "cd ${ABEILLE_DIR}" > ${SFTP_SCRIPT} -while read -r; do - # echo "Line=$REPLY" - ARG2=`echo $REPLY | awk '{print $2}'` - ARG3=`echo $REPLY | awk '{print $3}'` - ARG4=`echo $REPLY | awk '{print $4}'` - if [[ $REPLY = "A"* ]]; then - echo "ADD: ${ARG2}" - echo "put ${ARG2} ${ARG2}" >> ${SFTP_SCRIPT} - continue - fi - if [[ $REPLY = "M"* ]] || [[ $REPLY = " M"* ]]; then - echo "MOD: ${ARG2}" - echo "put ${ARG2} ${ARG2}" >> ${SFTP_SCRIPT} - continue - fi - if [[ $REPLY = "U"* ]] || [[ $REPLY = " U"* ]]; then - echo "UPD: ${ARG2}" - echo "put ${ARG2} ${ARG2}" >> ${SFTP_SCRIPT} - continue - fi - if [[ $REPLY = "D"* ]] || [[ $REPLY = " D"* ]]; then - echo "DEL: ${ARG2}" - echo "rm ${ARG2}" >> ${SFTP_SCRIPT} - continue - fi - if [[ $REPLY = "R"* ]]; then - echo "REN: ${ARG2} to ${ARG4}" - echo "put ${ARG4} ${ARG4}" >> ${SFTP_SCRIPT} - echo "rm ${ARG2}" >> ${SFTP_SCRIPT} - continue - fi - if [[ $REPLY = "??"* ]]; then - if [ "${ARG2}" = "git.porcelain" ] || [ "${ARG2}" = "sftp.cmds" ]; then - echo "?? : '$REPLY' => IGNORED" - continue; - fi - echo "?? : '$REPLY'" - if [ -d ${ARG2} ]; then - FILES=`find ${ARG2}` - for F in ${FILES}; do - echo " $F" - done - - echo " Creating and transfering directory" - echo "mkdir ${ARG2}" >> ${SFTP_SCRIPT} - for F in ${FILES}; do - echo "put $F $F" >> ${SFTP_SCRIPT} - done - else - echo "put ${ARG2} ${ARG2}" >> ${SFTP_SCRIPT} - fi - continue - fi - echo "ERROR: Don't know what to do with the line" - echo " '$REPLY'" -done < ${GIT_PORCELAIN} - -sftp root@${ADDR_IP} < ${SFTP_SCRIPT} diff --git a/.tools/update_changelog.sh b/.tools/update_changelog.sh deleted file mode 100644 index 2881868e9a..0000000000 --- a/.tools/update_changelog.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash - -# Update changelog to add version - -CL=docs/fr_FR/changelog.md -TMP=docs/fr_FR/changelog.md.tmp - -echo "Updating changelog..." - -VERSION=`cat plugin_info/Abeille.version | tail -1` -STEP=0 -cat ${CL} | -while IFS= read -r L -do - # # ChangeLog (title) - # - # - JSON: Correction setReportTemp (#1918). - - # # ChangeLog (title) - # - # ## VERSION X - # - # - JSON: Correction setReportTemp (#1918). - - # remove trailing whitespace characters - L="${L%"${L##*[![:space:]]}"}" - - if [ ${STEP} -eq 0 ]; then - echo "${L}" >> ${TMP} - if [[ ${L} == "# "* ]]; then - STEP=1 # Title found - fi - elif [ ${STEP} -eq 1 ]; then - # Empty line ? - if [ "${L}" == "" ]; then - echo >> ${TMP} - continue # Continue until version updated - fi - - # Version line - # Note: '## VERSION1' or '## VERSION2, VERSION1' - if [[ "${L}" == "## "* ]]; then - if [[ "${L}" == *"${VERSION}"* ]]; then - echo "- Version is already correct in changelog. Doing nothing" - echo - rm ${TMP} - break - fi - echo "- Updating version to ${VERSION}" - VERSIONOLD=${L### } - echo "## ${VERSION}, ${VERSIONOLD}" >> ${TMP} - STEP=2 # Copy rest of the file - continue - fi - - # Anything but a version line - echo "- Adding version ${VERSION}" - # Adding current version - echo "## ${VERSION}" >> ${TMP} - # Adding current line - echo "" >> ${TMP} - echo "${L}" >> ${TMP} - STEP=2 # Copy rest of the file - - # if [[ "${L}" == "- "* ]] || [[ "${L}" == " "* ]]; then - # # It's a list (starts with '- ') or something starting with space - # # => Need to add version title (# VERSION) - # echo "${VERSION}" >> ${TMP} - # S=${#VERSION} - # UNDER="" - # for (( c=1; c<=$S; c++ )) - # do - # UNDER="${UNDER}-" - # done - # echo ${UNDER} >> ${TMP} - # echo "" >> ${TMP} - # echo "${L}" >> ${TMP} - # else - # if [ "${L}" == "" ]; then - # echo >> ${TMP} - # continue - # fi - # # Assuming 'VERSION' line + '------' - # if [[ "${L}" == "## ${VERSION}"* ]]; then - # echo "- There is already correct version in changelog. Doing nothing" - # echo - # rm ${TMP} - # break - # fi - # # Adding current version - # echo "## ${VERSION}" >> ${TMP} - # fi - # STEP=2 - else # STEP==2: Copy all remaining lines - echo "${L}" >> ${TMP} - fi -done - -if [ -e ${TMP} ]; then - rm ${CL} - mv ${TMP} ${CL} -fi - -exit 0 diff --git a/.tools/update_md5.sh b/.tools/update_md5.sh deleted file mode 100755 index e9f0e37b85..0000000000 --- a/.tools/update_md5.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -# Generate 'Abeille.md5' for key files, then add/commit. -# - Requires GIT. -# - Must be executed from Abeille root directory. -# - Must be the LAST commit before the push. - -OUT=plugin_info/Abeille.md5 - -# Commit ready. Generating md5 for versionned files -echo "Updating MD5 checksum..." -echo "# Auto-generated Abeille's MD5 file. DO NOT MODIFY !" >${OUT} -VERSION=`cat plugin_info/Abeille.version | tail -1` -echo "- Version: ${VERSION}" -echo "# VERSION=\"${VERSION}\"" >>${OUT} - -# Note: take care about such following file name -# 'core/config/IAS ACE Cluster IAS Zone & Diagnostics Only_ZHA.xml' - -git ls-files | -while read -r F -do - # Ignoring checksum for the following files - # - plugin_info/Abeille.md5 - # - 'core/config/devices_local' content except README/LISZEMOI - # - 'core/config/commands/OBSOLETE' - # - All '.xxx' or '.bak' files - if [[ "${F}" = *"Abeille.md5" ]] || [[ "${F}" = *"TODO.txt" ]]; then - echo "xxxxxxxxx-md5-skipped-xxxxxxxxxx *${F}" >> ${OUT} - continue - fi - if [[ ${F} = "."* ]] || [[ ${F} = *".bak" ]]; then - echo "xxxxxxxxx-md5-skipped-xxxxxxxxxx *${F}" >> ${OUT} - continue - fi - if [[ "${F}" = "tmp/"* ]] || [[ "${F}" = "docs/dev/"* ]]; then - echo "xxxxxxxxx-md5-skipped-xxxxxxxxxx *${F}" >> ${OUT} - continue - fi - if [[ "${F}" = "resources/archives"* ]]; then - echo "xxxxxxxxx-md5-skipped-xxxxxxxxxx *${F}" >> ${OUT} - continue - fi - # 'core/config/devices_local' fully excluded except the following files - if [[ "${F}" = "core/config/devices_local/"* ]]; then - if [[ "${F}" != *"LISEZMOI.txt" ]] && [[ "${F}" != *"README.txt" ]]; then - echo "xxxxxxxxx-md5-skipped-xxxxxxxxxx *${F}" >> ${OUT} - continue - fi - fi - - # echo "F=$F" - if [ ! -e "${F}" ]; then - echo "- ERROR: File does not exist: ${F}" - continue - fi - md5sum "${F}" >> ${OUT} -done - -# REMINDER: 'Abeille.md5' is now updated but must be added/committed & pushed. - -exit 0 diff --git a/core/config/commands/inf_batteryVoltAndPercent-285-300.json b/core/config/commands/inf_batteryVoltAndPercent-285-300.json index 9d2ac06d10..43106b7f25 100644 --- a/core/config/commands/inf_batteryVoltAndPercent-285-300.json +++ b/core/config/commands/inf_batteryVoltAndPercent-285-300.json @@ -1,13 +1,13 @@ { "inf_batteryVoltAndPercent-285-300": { "comment": "Special info cmd for devices that send volt only and convert to %", - "comment2": "Computing battery percent from received voltage, assuming min=2.85V, max=3V", + "comment2": "Computing battery percent from received voltage, assuming min=2.85V, max=3.2V", "type": "info", "subType": "numeric", "configuration": { "trigOut": { "0001-#EP#-0021": { - "valueOffset": "(max(min(#value#,3),2.85)-2.85)*100/(3-2.85)" + "valueOffset": "(max(min(#value#,3),2.85)-2.85)*100/(3.2-2.85)" } } }, diff --git a/core/config/commands/inf_zbAttr-0001-BatteryPercent.json b/core/config/commands/inf_zbAttr-0001-BatteryPercent.json index c01bbbceb0..14e812125c 100644 --- a/core/config/commands/inf_zbAttr-0001-BatteryPercent.json +++ b/core/config/commands/inf_zbAttr-0001-BatteryPercent.json @@ -1,7 +1,7 @@ { "inf_zbAttr-0001-BatteryPercent": { - "isVisible": 0, - "isHistorized": 0, + "isVisible": 1, + "isHistorized": 1, "subType": "numeric", "invertBinary": "0", "template": "default", diff --git a/core/config/devices/sensor_magnet.aq2/sensor_magnet.aq2.json b/core/config/devices/sensor_magnet.aq2/sensor_magnet.aq2.json index e88b77eed4..e40bf5077c 100755 --- a/core/config/devices/sensor_magnet.aq2/sensor_magnet.aq2.json +++ b/core/config/devices/sensor_magnet.aq2/sensor_magnet.aq2.json @@ -19,7 +19,8 @@ "template": "door", "genericType": "OPENING", "invertBinary": "1", - "isVisible": 1 + "isVisible": 1, + "isHistorized": 1 }, "Battery-Volt": { "use": "inf_batteryVoltAndPercent-285-300" diff --git a/core/config/devices/weather/weather.json b/core/config/devices/weather/weather.json index 734de9abd3..c33a4f79d0 100755 --- a/core/config/devices/weather/weather.json +++ b/core/config/devices/weather/weather.json @@ -15,10 +15,18 @@ "type": "Xiaomi temp/humidity/pressure sensor", "commands": { "Battery-Volt": { - "use": "inf_batteryVoltAndPercent-285-300" + "use": "inf_batteryVoltAndPercent-285-300", + "isHistorized": 1, + "isVisible": 1, + "configuration": { + "minValue": "2.8", + "maxValue": "3.2" + } }, "Battery-Percent": { - "use": "inf_zbAttr-0001-BatteryPercent" + "use": "inf_zbAttr-0001-BatteryPercent", + "isHistorized": 1, + "isVisible": 1 }, "Temperature": { "use": "inf_zbAttr-0402-MeasuredValue", @@ -27,10 +35,16 @@ }, "Pressure": { "use": "inf_zbAttr-0403-MeasuredValue", - "isVisible": 0 + "isHistorized": 1, + "isVisible": 1, + "configuration": { + "minValue": "960", + "maxValue": "1065" + } }, "Humidity": { "use": "inf_zbAttr-0405-MeasuredValue", + "isHistorized": 1, "isVisible": 1 } }, diff --git a/core/config/rucheCommand.json b/core/config/rucheCommand.json index cd20cca593..572bbe0679 100755 --- a/core/config/rucheCommand.json +++ b/core/config/rucheCommand.json @@ -86,6 +86,20 @@ "forceReturnLineAfter": "1" } }, + "Get Inclusion Status": { + "name": "Get Inclusion Status", + "isHistorized": "0", + "isVisible": "1", + "Type": "action", + "subType": "other", + "configuration": { + "topic": "permitJoin", + "request": "Status" + }, + "display": { + "forceReturnLineAfter": "1" + } + }, "storeScene": { "name": "storeScene", "isVisible": "0", diff --git a/core/scripts/powerCycleUsb.sh b/core/scripts/powerCycleUsb.sh index 1a12d91de4..cf56f76889 100755 --- a/core/scripts/powerCycleUsb.sh +++ b/core/scripts/powerCycleUsb.sh @@ -17,6 +17,11 @@ if [ ${NBARGS} -ne 1 ]; then exit 1 fi +if [ -f /.dockerenv ] ; then + echo "Running inside docker, no kernel message available, exiting" + exit 0 +fi + FULLDEV=$1 echo "USB port=$FULLDEV" diff --git a/desktop/modal/AbeilleNetwork.modal.php b/desktop/modal/AbeilleNetwork.modal.php index d776f47a43..77f5fbc1a4 100644 --- a/desktop/modal/AbeilleNetwork.modal.php +++ b/desktop/modal/AbeilleNetwork.modal.php @@ -79,6 +79,10 @@ function displayNetworks($nbOfZigates, $what="linksTable", $mode="") { height: 100%; width: 100% } + #idLinksGraphTabSVG >svg { + height: 100%; + width: 100% + } .node-item { border: 1px solid; diff --git a/resources/archives/AbeilleInterrogate.php b/resources/archives/AbeilleInterrogate.php deleted file mode 100644 index 4802cf4a8b..0000000000 --- a/resources/archives/AbeilleInterrogate.php +++ /dev/null @@ -1,39 +0,0 @@ -. - */ - - include_once __DIR__.'/../../../core/php/core.inc.php'; - include_once __DIR__.'/../../core/config/Abeille.config.php'; - include_once __DIR__.'/../../core/class/AbeilleTools.class.php'; - - // Exemple d appel: php AbeilleInterrogate.php Abeille1 49d6 - // Sur une demande sans réponse, le zigate en V3.1b envoie 4 demandes. Chaque demande est toutes les 1.6s. - // Sur une demande Abeille, la zigate envoie une demande sur la radio à T0, T0+1.6s, T0+3.2s, T0+4.8s - // Si mes souvenirs sont bons la reco est 7s de buffer sur les routeurs. Donc dernier message plus 7s = T0+4.8s+7s = T0+12s - // Donc envoyer un message toutes les 12s max pour eviter l overflow. - - $timeOut = 60; // min - $timeEnd = time() + $timeOut*60; - - $dest = $argv[1]; - $addressShort = $argv[2]; - - while ( time() < $timeEnd ) { - Abeille::publishMosquitto(queueKeyAbeilleToCmd, priorityInterrogation, "Cmd".$dest."/".$addressShort."/getIeeeAddress", ""); - echo "."; - sleep( 12 ); - } -?> diff --git a/resources/archives/AbeilleLQI_List.php b/resources/archives/AbeilleLQI_List.php deleted file mode 100644 index 61be61e772..0000000000 --- a/resources/archives/AbeilleLQI_List.php +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - - - - - - -

Abeille Network Table

- - Array - ( - [NeighbourTableEntries] => 0A - [Index] => 00 - [ExtendedPanId] => 28d07615bb019209 - [IEEE_Address] => 00158d00019f9199 - [Depth] => 01 - [LinkQuality] => 75 - [BitmapOfAttributes] => 1a - [NE] => 0000 - [NE_Name] => Ruche - [Voisine] => df33 - [Voisine_Name] => Test: Temperature Rond Bureau - [Type] => End Device - [Relationship] => Child - [Rx] => Rx-Off - [LinkQualityDec] => 117 - ) - */ - -if (isset($_GET['NE'])) { - $NE = $_GET['NE']; -} else { - $NE = "All"; -} - -if (isset($_GET['NE2'])) { - $NE2 = $_GET['NE2']; -} else { - $NE2 = "None"; -} - -if (isset($_GET['Cache'])) { - $Cache = $_GET['Cache']; -} else { - $Cache = "Cache"; -} - -//require_once("NetworkDefinition.php"); - -$DataFile = "AbeilleLQI_MapData.json"; - -if ($Cache == "Refresh Cache") { - // Ici on n'utilise pas le cache donc on lance la collecte - require_once(__DIR__."/../core/php/AbeilleLQI.php"); -} - -if (file_exists($DataFile)) { - - $json = json_decode(file_get_contents($DataFile), true); - // $LQI = $json->data; - $LQI = $json['data']; - // print_r( $LQI ); - // exit; -} else { - echo "Le cache n existe pas, faites un refresh.
"; -} - -$eqLogics = eqLogic::byType('Abeille'); -foreach ($eqLogics as $eqLogic) { - $name = $eqLogic->getName(); - $shortAddress = str_replace("Abeille/", "", $eqLogic->getLogicalId()); - $shortAddress = ($name == 'Ruche') ? "0000" : $shortAddress; - $knownNE[$name] = $shortAddress; -} - - -?> - - -
- - - - -
- -
- - - - NE - NE Name - Voisine - Voisine Name - Voisine IEEE - Relation - Profondeur - LQI - '; - - // echo "DEBUT: ".date(DATE_RFC2822)."
\n"; - // var_dump( $LQI ); - // var_dump( $NE ); - // $NE="All"; - - // On reset $NE qui est utilisé pour different truc. - if ($Cache == "Refresh Cache") { - $NE = "All"; - } - - foreach ($LQI as $key => $voisine) { - if (($voisine['NE_Name'] == $NE) || ("All" == $NE) || ($voisine['Voisine_Name'] == $NE2)) { - echo " - - " . $voisine['NE'] . "" . $voisine['NE_Name'] . "" . $voisine['Voisine'] . "" . $voisine['Voisine_Name'] . "" . $voisine['IEEE_Address'] . "" . $voisine['Relationship'] . "" . $voisine['Depth'] . "" . $voisine['LinkQualityDec'] . " - \n"; - } - } - - // Formating pour la doc asciidoc - if (0) { - // echo "\n"; - // echo "\n"; - echo "|NE|Voisine|Relation|Profondeur|LQI\n"; - - foreach ($LQI as $key => $voisine) { - // echo ""; - // echo ""; - - echo "|" . $voisine['NE'] . "|" . $voisine['NE_Name'] . "|" . $voisine['Voisine'] . "|" . "|" . $voisine['Voisine_Name'] . "|" . $voisine['Relationship'] . "|" . $voisine['Depth'] . "|" . $voisine['LinkQualityDec'] . "\n"; - - // echo "\n"; - } - // echo "
NEVoisineRelationProfondeurLQI
".$voisine['NE']."".$voisine['Voisine']."".$voisine['Relationship']."".$voisine['Depth']."".$voisine['LinkQualityDec']."
\n"; - } - - // print_r( $NE_All ); - // print_r( $voisine ); - // print_r( $LQI ); - - // deamonlog('debug', 'sortie du loop'); - // echo "FIN: ".date(DATE_RFC2822)."
\n"; - echo ''; - ?> - -
-
- - -
-
- - diff --git a/resources/archives/AbeilleRoutes.ajax.php b/resources/archives/AbeilleRoutes.ajax.php deleted file mode 100644 index c4eb5cc784..0000000000 --- a/resources/archives/AbeilleRoutes.ajax.php +++ /dev/null @@ -1,26 +0,0 @@ -getLogicalId()) || ($_GET['device'] == "All") ) { - if ( $eqLogic->getConfiguration('battery_type', 'none') == 'none' ) - continue; // on n interroge pas les equipements sur batterie - - list($net, $addr) = explode('/', $eqLogic->getLogicalId()); - Abeille::publishMosquitto($queueId, PRIO_NORM, "Cmd".$net."/".$addr."/getRoutingTable", ""); - sleep(3); - } - } -?> diff --git a/resources/archives/AbeilleSupport.php b/resources/archives/AbeilleSupport.php deleted file mode 100644 index f608f84194..0000000000 --- a/resources/archives/AbeilleSupport.php +++ /dev/null @@ -1,340 +0,0 @@ - 200){ - // $alert = '
{{Attention votre niveau de log (event) est inférieur à info, vous ne pouvez donc pas voir de temps réel.}}'; - // $alert .= ' {{Configuration}}'; - // $alert .= '
'; - // echo $alert; - // } - // } - - $tmpDir = jeedom::getTmpFolder("Abeille"); // Jeedom temp directory - $pluginDir = __DIR__."/../../"; // Plugin root dir - echo ''; -?> - - -
-
-
-
- -
- - - - - - - - - - - - -
-
- - -
- - diff --git a/resources/archives/CheckAlive.php b/resources/archives/CheckAlive.php deleted file mode 100644 index 3b626e7942..0000000000 --- a/resources/archives/CheckAlive.php +++ /dev/null @@ -1,65 +0,0 @@ - 1, - ); - - // Variables - $Alarme = 0; // Passe a un si au moins une batterie est sous le seuil. - - // Lib needed - require_once dirname(__FILE__)."/../../../../core/php/core.inc.php"; - - - - - // -- récupère tous les équipements - $eqLogics = new eqLogic(); - $eqLogics = eqLogic::all(); - - if ($debug) echo "Début monitoring\n"; - - // -- Parcours tous les équipements - foreach($eqLogics as $eqLogic) - { - // -- Si l'équipement se trouve dans la liste des équipements à ignorer : on passe au suivant - if ($excludeEq[$eqLogic->getHumanName()] == 1){ - if ($debug) echo '-- Equipement ' . $eqLogic->getHumanName() . ' ignoré' . "\n"; - continue; - } - - $collectBattery = $eqLogic->getStatus("battery"); - $collectDate = $eqLogic->getStatus("lastCommunication"); - if ($debug) echo 'Equipement: ' . $eqLogic->getHumanName() . " - " . $collectDate . ' - ' . $collectBattery . "\n"; - if ($debug) echo "TimeStamp: " . strtotime($collectDate) . "\n"; - if ($debug) echo "TimeStamp: " . time() . "\n"; - - // -- Calcule le temps écoulé entre la date maximun et aujourd'hui (récuptat en minute) - $elapsedTime = time() - strtotime($collectDate); - - if ($elapsedTime > $maxTime){ - // -- le temps est supérieur au temps spécifié : alerte !!! (mail ? log ? sms?) - // -- /!\alert - if ($debug) echo "Alerte\n"; - $Alarme = 1; - } - } - - - // log fin de traitement - if ($debug) echo 'fin monitoring' . "\n"; - - echo $Alarme; - ?> \ No newline at end of file diff --git a/resources/archives/CheckBattery.php b/resources/archives/CheckBattery.php deleted file mode 100644 index f5b9f117e3..0000000000 --- a/resources/archives/CheckBattery.php +++ /dev/null @@ -1,141 +0,0 @@ - 1, - "[Ruche][Abeille-c576]" => 1, - ); - - // Liste des plugin à ignorer - $excludePlugin = array( - "script" => 1, // Couvre l objet du script lui-meme - - ); - - - // Variables - $Alarme = 0; // Passe a un si au moins une batterie est sous le seuil. - $PingCommande = array( - "AmpouleIkea" => "getEtat", - ); - - // Lib needed - require_once dirname(__FILE__)."/../../../../core/php/core.inc.php"; - - // Gestion des parametres fournis lors du lancement du script - // argv[1]: Batterie | Alive | Ping - // argv[1]: Test | List - - if ( !isset( $argv[1] ) ) return; - if ( !isset( $argv[2] ) ) return; - - if ( $debug ) print_r( $argv ); - - // -- récupère tous les équipements - $eqLogics = new eqLogic(); - $eqLogics = eqLogic::all(); - - if ($debug) echo "Début monitoring\n"; - - // -- Parcours tous les équipements - foreach($eqLogics as $eqLogic) - { - $battery = -1; - $lastCommunication = -1; - - if ($debug) echo "\n"; - - if ($debug) echo "-- Equipement " . $eqLogic->getHumanName() . " Type: " . $eqLogic->getEqType_name() . "\n"; - - // -- Si l'équipement se trouve dans la liste des équipements à ignorer : on passe au suivant - if ($excludeEq[$eqLogic->getHumanName()] == 1){ - if ($debug) echo "-- Equipement " . $eqLogic->getHumanName() . " ignoré (car dans la liste des équipements à ignorer)" . "\n"; - continue; - } - - // -- Si l'équipement Type/Plugin se trouve dans la liste des plugin à ignorer : on passe au suivant - - if ($excludePlugin[$eqLogic->getEqType_name()] == 1){ - if ($debug) echo "-- Equipement " . $eqLogic->getHumanName() . " ignoré (car dans la liste des plugin à ignorer): " . $eqLogic->getEqType_name() . "\n"; - continue; - } - - $battery = $eqLogic->getStatus("battery"); - $lastCommunication = $eqLogic->getStatus("lastCommunication"); - if ($debug) echo 'Equipement: ' . $eqLogic->getHumanName() . " - " . $lastCommunication . " - " . $battery . "\n"; - - // -- Si l'équipement ne retourne pas de valeur de batterie alors qu on teste batterie : on passe au suivant - if ( ($argv[1]=="Batterie") && ($battery == "") ) { - if ($debug) echo '-- Equipement ' . $eqLogic->getHumanName() . ' ignoré car pas d info batterie' . "\n"; - continue; - } - - // -- Si l'équipement ne retourne pas de valeur de last communcation : on passe au suivant - if ( ($lastCommunication == "") ) { - if ($debug) echo '-- Equipement ' . $eqLogic->getHumanName() . ' ignoré' . "\n"; - continue; - } - - // -- On verifie le niveau de batterie - if ( $argv[1]=="Batterie" ) { - if ($battery <= $minBattery){ - // -- le niveau batterie est trop bas : alerte !!! (mail ? log ? sms?) - // -- /!\alert - if ($debug) echo "Alerte\n"; - $Alarme = 1; - if ( $argv[2]=="List" ) { - echo "
" . $eqLogic->getHumanName() . " - " . $battery; - } - } - } - - // -- Calcule le temps écoulé entre la date maximun et aujourd'hui (récuptat en minute) - $elapsedTime = time() - strtotime($lastCommunication); - - if ( $argv[1]=="Alive" ) { - if ($elapsedTime > $maxTime){ - // -- le temps est supérieur au temps spécifié : alerte !!! (mail ? log ? sms?) - // -- /!\alert - if ($debug) echo "Alerte\n"; - $Alarme = 1; - if ( $argv[2]=="List" ) { - echo "
" . $eqLogic->getHumanName() ; - } - } - } - - // -- On ping la valeur Etat de tous les équipements qui ne sont pas sur batteries - if ( ($argv[1]=="Ping") && ($battery == "") ) { - $cmdName = '#' . $eqLogic->getHumanName() . '['.$PingCommande[$argv[2]].']#'; - try { // on fait cmd::byString pour trouver une commande mais si elle n'est pas trouvée ca genere une exception et le execCmd n'est pas executé. - $cmd = cmd::byString($cmdName); - $cmd->execCmd(); - } catch (Exception $e) { - if ($debug) echo 'Exception reçue car la commande n est pas trouvee: ', $e->getMessage(), "\n"; - } - - } - } - - - // log fin de traitement - if ($debug) echo 'fin monitoring' . "\n"; - - if ( $argv[2]=="Test" ) { echo $Alarme; } else echo "\n"; - ?> \ No newline at end of file diff --git a/resources/archives/HueCatalogue.json b/resources/archives/HueCatalogue.json deleted file mode 100644 index de299c835a..0000000000 --- a/resources/archives/HueCatalogue.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "LCT001": { - "Nom": "Hue bulb A19", - "Type": "0x0210 (Extended Color Light)" - }, - "LCT007": { - "Nom": "Hue bulb A19", - "Type": "0x0210 (Extended Color Light)" - }, - "LCT002": { - "Nom": "Hue Spot BR30", - "Type": "0x0210 (Extended Color Light)" - }, - "LCT003": { - "Nom": "Hue Spot GU10", - "Type": "0x0210 (Extended Color Light)" - }, - "LST001": { - "Nom": "Hue LightStrips", - "Type": "0x0200 (Color Light)" - }, - "LST002": { - "Nom": "Hue LightStrips Plus", - "Type": "0x0210 (Extended Color Light)" - }, - "LLC010": { - "Nom": "Hue Living Colors Iris", - "Type": "0x0200 (Color Light)" - }, - "LLC011": { - "Nom": "Hue Living Colors Bloom", - "Type": "0x0200 (Color Light)" - }, - "LLC012": { - "Nom": "Hue Living Colors Bloom", - "Type": "0x0200 (Color Light)" - }, - "LLC006": { - "Nom": "Hue Living Colors Gen3 Iris", - "Type": "0x0200 (Color Light)" - }, - "LLC007": { - "Nom": "Hue Living Colors Gen3 Bloom Aura", - "Type": "0x0200 (Color Light)" - }, - "LLC013": { - "Nom": "Hue Disney Living Colors", - "Type": "0x0200 (Color Light)" - }, - "LWB004": { - "Nom": "Hue A19 Lux", - "Type": "0x0100 (Dimmable Light)" - }, - "LWB006": { - "Nom": "Hue A19 Lux", - "Type": "0x0100 (Dimmable Light)" - }, - "LWB007": { - "Nom": "Hue A19 Lux", - "Type": "0x0100 (Dimmable Light)" - }, - "LTW001": { - "Nom": "Hue A19 White Ambience", - "Type": "0x0220 (Color Temperature Light)" - }, - "LLC020": { - "Nom": "Hue Go", - "Type": "0x0210 (Extended Color Light)" - }, - "HBL001": { - "Nom": "Hue Beyond Table", - "Type": "0x0210 (Extended Color Light)" - }, - "HBL002": { - "Nom": "Hue Beyond Pendant", - "Type": "0x0210 (Extended Color Light)" - }, - "HBL003": { - "Nom": "Hue Beyond Ceiling", - "Type": "0x0210 (Extended Color Light)" - }, - "HEL001": { - "Nom": "Hue Entity Table", - "Type": "0x0210 (Extended Color Light)" - }, - "HEL002": { - "Nom": "Hue Entity Pendant", - "Type": "0x0210 (Extended Color Light)" - }, - "HIL001": { - "Nom": "Hue Impulse Table", - "Type": "0x0210 (Extended Color Light)" - }, - "HIL002": { - "Nom": "Hue Impulse Pendant", - "Type": "0x0210 (Extended Color Light)" - }, - "HML001": { - "Nom": "Hue Phoenix Centerpiece", - "Type": "0x0220 (Color Temperature Light)" - }, - "HML002": { - "Nom": "Hue Phoenix Ceiling", - "Type": "0x0220 (Color Temperature Light)" - }, - "HML003": { - "Nom": "Hue Phoenix Pendant", - "Type": "0x0220 (Color Temperature Light)" - }, - "HML004": { - "Nom": "Hue Phoenix Wall", - "Type": "0x0220 (Color Temperature Light)" - }, - "HML005": { - "Nom": "Hue Phoenix Table", - "Type": "0x0220 (Color Temperature Light)" - }, - "HML007": { - "Nom": "Hue Phoenix Downlight", - "Type": "0x0220 (Color Temperature Light)" - } -} \ No newline at end of file diff --git a/resources/archives/IAS ACE Cluster IAS Zone & Diagnostics Only_ZHA.xml b/resources/archives/IAS ACE Cluster IAS Zone & Diagnostics Only_ZHA.xml deleted file mode 100644 index 6b7148023a..0000000000 --- a/resources/archives/IAS ACE Cluster IAS Zone & Diagnostics Only_ZHA.xml +++ /dev/null @@ -1,81 +0,0 @@ - - IAS ACE - 0x0501 - IAS_ACE_CLUSTER - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - TRUE - TRUE - TRUE - TRUE - TRUE - TRUE - TRUE - TRUE - TRUE - - - - Diagnostics - 0x0B05 - DIAGNOSTICS_CLUSTER - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - FALSE - TRUE - TRUE - - - - IAS Zone - 0x0500 - IAS_ZONE_CLUSTER - TRUE - TRUE - TRUE - TRUE - TRUE - FALSE - FALSE - TRUE - FALSE - FALSE - TRUE - TRUE - - diff --git a/resources/archives/LqiStorage.php b/resources/archives/LqiStorage.php deleted file mode 100644 index 8afeed95a9..0000000000 --- a/resources/archives/LqiStorage.php +++ /dev/null @@ -1,123 +0,0 @@ -open('LqiStorage.db'); - } - } - - function createDB($db) { - // $sql = "CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);"; - $sql = "CREATE TABLE voisines ("; - $sql .= "TimeStamp TEXT, "; - $sql .= "NeighbourTableEntries TEXT, "; - $sql .= "Row TEXT, "; - $sql .= "ExtendedPanId TEXT, "; - $sql .= "IEEE_Address TEXT, "; - $sql .= "Depth TEXT, "; - $sql .= "LinkQuality TEXT, "; - $sql .= "BitmapOfAttributes TEXT, "; - $sql .= "NE TEXT, "; - $sql .= "NE_Name TEXT, "; - $sql .= "Voisine TEXT, "; - $sql .= "Voisine_Name TEXT, "; - $sql .= "Type TEXT, "; - $sql .= "Relationship TEXT, "; - $sql .= "Rx TEXT, "; - $sql .= "LinkQualityDec TEXT "; - $sql .= ");"; - echo "SQL: ".$sql."\n"; - - $ret = $db->exec($sql); - if(!$ret){ - echo $db->lastErrorMsg(); - } else { - echo "Table created successfully\n"; - } - } - - function insertData( $db, $fields, $data){ - // $sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 );"; - // INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); - // INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); - // INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); - $sql = "insert into voisines ( ".$fields.") values (".$data.");"; - echo "sql insert: ".$sql; - - $ret = $db->exec($sql); - if(!$ret) { - echo $db->lastErrorMsg(); - } else { - echo "Records created successfully\n"; - } - } - - function listData($db) { - $sql = "SELECT * from voisines;"; - - $ret = $db->query($sql); - while($row = $ret->fetchArray(SQLITE3_ASSOC) ) { - foreach ($row as $key=>$data) { - echo $key." = ". $data . " / "; - } - echo "\n"; - } - echo "Operation done successfully\n"; - } - - function deleteData() { - $sql = "DELETE from COMPANY where ID = 2;"; - - $ret = $db->exec($sql); - if(!$ret){ - echo $db->lastErrorMsg(); - } else { - echo $db->changes(), " Record deleted successfully\n"; - } - } - - function updateData() { - $sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;"; - $ret = $db->exec($sql); - if(!$ret) { - echo $db->lastErrorMsg(); - } else { - echo $db->changes(), " Record updated successfully\n"; - } - - } - - function getJson($db) { - $DataFile = "AbeilleLQI_MapData.json"; - - if ( file_exists($DataFile) ){ - $json = json_decode(file_get_contents($DataFile), true); - $LQI = $json['data']; - } - - $TimeStamp = time(); - - foreach ( $LQI as $row => $voisineList ) { - echo $voisineList['NE_Name']."-".$voisineList['Voisine_Name']."\n"; - $fields = 'TimeStamp, ExtendedPanId, IEEE_Address, Depth, LinkQuality, BitmapOfAttributes, NE, NE_Name, Voisine, Voisine_Name, Type, Relationship, Rx, LinkQualityDec'; - - $data = '"'.$TimeStamp.'", "'.$voisineList['ExtendedPanId'].'", "'.$voisineList['IEEE_Address'].'", "'.$voisineList['Depth'].'", "'.$voisineList['LinkQuality'].'", "'.$voisineList['BitmapOfAttributes'].'", "'.$voisineList['NE'].'", "'.$voisineList['NE_Name'].'", "'.$voisineList['Voisine'].'", "'.$voisineList['Voisine_Name'].'", "'.$voisineList['Type'].'", "'.$voisineList['Relationship'].'", "'.$voisineList['Rx'].'", "'.$voisineList['LinkQualityDec'].'"'; - - insertData( $db, $fields, $data); - } - } - - $db = new MyDB(); - if(!$db) { - echo $db->lastErrorMsg(); - } else { - echo "Opened database successfully\n"; - } - - createDB($db); - // listData($db); - getJson($db); - - $db->close(); - ?> diff --git a/resources/archives/NetworkDefinition.php b/resources/archives/NetworkDefinition.php deleted file mode 100644 index cc60f3235c..0000000000 --- a/resources/archives/NetworkDefinition.php +++ /dev/null @@ -1,161 +0,0 @@ - "Ruche", // 00:15:8d:00:01:b2:2e:24 00158d0001b22e24 -> Production - // 00:01:58:d0:00:19:1b:22 000158d000191b22 -> Test - // Abeille Prod JeedomZwave - "dc15" => "T1", // 00:0B:57:ff:fe:49:0D:bf 000B57fffe490Dbf - "d204" => "T2", // 00:0B:57:ff:fe:c5:38:19 000B57fffec53819 fut 1e8c - "174f" => "T3", // 00:0b:57:ff:fe:49:10:ea - "6766" => "T4", // 000B57fffe3025ad - "1b7b" => "T5", // 000B57fffe8da30A - "8ffe" => "T6", // 000B57fffe8e083c - "2096" => "T7", // 000B57fffe490C2a - "2cd5" => "T8", // 000B57fffe88af72 - - "a0da" => "Gauche", // 000B57fffe3a563b - "60fb" => "Milieu", // 000B57fffe8dbb1a - "46d9" => "Droite", // 00:0b:57:ff:fe:95:2a:69 - "a728" => "Piano", // 00:0b:57:ff:fe:3a:0e:7c - - "345f" => "P-D", // 00158d0001e44ece - "ea8c" => "P-G", // 00:15:8d:00:01:b1:49:a8 00158d0001b149a8 fut 2349 - "fb14" => "P-C", // 00:15:8d:00:01:ab:3f:2f 00158d0001ab3f2f fut f984 - - "8f28" => "P-Entree", // 00158d0001b149a3 - - - "41c0" => "PriseX1", // 00:15:8d:00:01:83:af:7b - "db83" => "PriseX2", // 00:15:8d:00:01:83:af:eb - "d86d" => "PriseXTest", // 00:15:8d:00:01:dc:9c:42 00158d0001dc9c42 - - "498d" => "HueGo", // 00:17:88:01:02:14:ff:6b - - "7714" => "Bois", // 00:0b:57:ff:fe:4b:ab:6a - - "873a" => "IR", // 00158d0001215781 - - "b774" => "Porte Bureau", // 00158d0001d5c421 - "1be0" => "Temperature Bureau", // 00158d0001d6c177 - - "d43e" => "Fenetre SdB G", // 00158d0001e44eac - "28f2" => "Fenetre SdB D", // 00158d0001ab3f20 - - "5571" => "Grad-Bureau", - - "e4c0" => "Ch Parent Ben", // 000B57fffed2af6a - - "eb79" => "Sonnette", // 00158d00016d8d4f - - "fde8" => "Inconnu1", // 90:fd:9f:ff:fe:16:5c:2c 90fd9ffffe165c2c fut 0F7e - - "137f" => "Velux-SdB-Tour", // 00158d0001e4531b - "e311" => "Velux-Lulu", // fut 4c3a - - "c551" => "Old-Off-Network-1", // 00:0B:57:ff:fe:8d:70:73 - - - - // Abeille Test abeille - "c360" => "Test: Temperature Rond Bureau", // 00:15:8d:00:01:9f:91:99 fut df33 - "3b43" => "Test: Door V2 Bureau", // 00:15:8d:00:01:d8:6c:3e fut a008, fdb4 - "26a7" => "Test: Inondation Bureau", // 00:15:8d:00:01:bb:6b:49 00158d0001bb6b49 fut 7bd5 - "5b7a" => "Test: Bouton Carre V2 Bureau", // 00:15:8d:00:01:a6:6c:a3 00158d0001a66ca3 fut dcd9, de4d, d09c - "63b9" => "Test: Door V1 Bureau", // 00:15:8d:00:02:01:47:f9 00158d00020147f9 fut 3950 - "0113" => "Test: IR Pied Bureau", // 00:15:8d:00:01:dd:b1:f7 00158d0001ddb1f7 fut 5dea - "060B" => "Test: Interrupteur Rond", // 00:15:8d:00:01:f3:af:91 00158d0001f3af91 fut 4ebd - "745f" => "Test: Telecommande Ikea", // 00:0B:57:ff:fe:2c:82:e9 000B57fffe2c82e9 fut 633e, 0Ab5, 0Eb5, 76fb, d42d - "8dbb" => "Test: IR V0", // 00:15:8d:00:01:dc:15:88 fut c7c0 - "d45e" => "Test: Ampoule Z Bureau", // 90:fd:9f:ff:fe:69:13:1d 90fd9ffffe69131d - "ceb8" => "Test: Ampoule 2", // 00:0B:57:ff:fe:c0:07:b5 000B57fffec007b5 - "2389" => "Test: Detecteur Smoke", // 00:15:8d:00:01:b7:b2:a2 - "633e" => "Test: Old Address changed 1", // - "c1ba" => "Test: Wall Switch", // 00:15:8d:00:01:f4:6b:79 00158d0001f46b79 - AC Power - Rx When Idle = False - "5ba3" => "Test: NXP Color", // 00:15:8d:00:01:9a:1b:0e 00158d00019a1b0e - - ); - - - - $Abeilles = array( - 'Ruche' => array('position' => array( 'x'=>700, 'y'=>520), 'color'=>'red',), - // Abeille Prod JeedomZwave - // Terrasse - 'T1' => array('position' => array( 'x'=>300, 'y'=>450), 'color'=>'orange',), - 'T2' => array('position' => array( 'x'=>400, 'y'=>450), 'color'=>'orange',), - 'T3' => array('position' => array( 'x'=>450, 'y'=>350), 'color'=>'orange',), - 'T4' => array('position' => array( 'x'=>450, 'y'=>250), 'color'=>'orange',), - 'T5' => array('position' => array( 'x'=>500, 'y'=>200), 'color'=>'orange',), - 'T6' => array('position' => array( 'x'=>600, 'y'=>200), 'color'=>'orange',), - 'T7' => array('position' => array( 'x'=>625, 'y'=>450), 'color'=>'orange',), - 'T8' => array('position' => array( 'x'=>450, 'y'=>500), 'color'=>'orange',), - // Salon - 'Gauche' => array('position' => array( 'x'=>750, 'y'=>300), 'color'=>'orange',), - 'Milieu' => array('position' => array( 'x'=>650, 'y'=>300), 'color'=>'orange',), - 'Droite' => array('position' => array( 'x'=>650, 'y'=>350), 'color'=>'orange',), - 'Piano' => array('position' => array( 'x'=>720, 'y'=>400), 'color'=>'orange',), - - 'P-D' => array('position' => array( 'x'=>625, 'y'=>300), 'color'=>'grey',), - 'P-G' => array('position' => array( 'x'=>625, 'y'=>350), 'color'=>'grey',), - 'P-C' => array('position' => array( 'x'=>500, 'y'=>500), 'color'=>'grey',), - - 'P-Entree' => array('position' => array( 'x'=>625, 'y'=>700), 'color'=>'grey',), - - 'HueGo' => array('position' => array( 'x'=>650, 'y'=>480), 'color'=>'orange',), - 'PriseX1' => array('position' => array( 'x'=>325, 'y'=>525), 'color'=>'orange',), - 'PriseX2' => array('position' => array( 'x'=>750, 'y'=>450), 'color'=>'orange',), - 'PriseXTest' => array('position' => array( 'x'=>725, 'y'=>300), 'color'=>'orange',), - - 'Bois' => array('position' => array( 'x'=>700, 'y'=>480), 'color'=>'orange',), - 'Grad-Bureau' => array('position' => array( 'x'=>700, 'y'=>500), 'color'=>'green',), - - 'IR' => array('position' => array( 'x'=>750, 'y'=>480), 'color'=>'grey',), - 'Temperature Bureau' => array('position' => array( 'x'=>750, 'y'=>500), 'color'=>'grey',), - 'Porte Bureau' => array('position' => array( 'x'=>750, 'y'=>520), 'color'=>'grey',), - - - 'Fenetre SdB G' => array('position' => array( 'x'=>800, 'y'=>400), 'color'=>'grey',), - 'Fenetre SdB D' => array('position' => array( 'x'=>800, 'y'=>425), 'color'=>'grey',), - - - - 'Ch Parent Ben' => array('position' => array( 'x'=>650, 'y'=>275), 'color'=>'yellow',), - - 'Sonnette' => array('position' => array( 'x'=>625, 'y'=>650), 'color'=>'grey',), - - 'Velux-SdB-Tour' => array('position' => array( 'x'=>300, 'y'=>525), 'color'=>'grey',), - 'Velux-Lulu' => array('position' => array( 'x'=>300, 'y'=>575), 'color'=>'grey',), - - 'Inconnu1' => array('position' => array( 'x'=>900, 'y'=>75), 'color'=>'purple',), - 'Old-Off-Network-1' => array('position' => array( 'x'=>900, 'y'=>100), 'color'=>'purple',), - - - // Abeille Test abeille - "Test: Temperature Rond Bureau" => array('position' => array( 'x'=>100, 'y'=>100), 'color'=>'grey',), - "Test: Door V2 Bureau" => array('position' => array( 'x'=>100, 'y'=>150), 'color'=>'grey',), - "Test: Inondation Bureau" => array('position' => array( 'x'=>100, 'y'=>200), 'color'=>'grey',), - "Test: Bouton Carre V2 Bureau" => array('position' => array( 'x'=>100, 'y'=>250), 'color'=>'grey',), - "Test: Door V1 Bureau" => array('position' => array( 'x'=>100, 'y'=>300), 'color'=>'grey',), - "Test: IR Pied Bureau" => array('position' => array( 'x'=>100, 'y'=>350), 'color'=>'grey',), - "Test: Interrupteur Rond" => array('position' => array( 'x'=>100, 'y'=>400), 'color'=>'grey',), - "Test: Telecommande Ikea" => array('position' => array( 'x'=>100, 'y'=>450), 'color'=>'grey',), - "Test: RI V0" => array('position' => array( 'x'=>100, 'y'=>500), 'color'=>'grey',), - "Test: Ampoule Z Bureau" => array('position' => array( 'x'=>050, 'y'=>525), 'color'=>'orange',), - "Test: Ampoule 2" => array('position' => array( 'x'=>150, 'y'=>575), 'color'=>'orange',), - "Test: NXP Color" => array('position' => array( 'x'=>250, 'y'=>550), 'color'=>'orange',), - "Test: Detecteur Smoke" => array('position' => array( 'x'=>100, 'y'=>600), 'color'=>'grey',), - - "Test: Old Address changed 1" => array('position' => array( 'x'=>900, 'y'=>600), 'color'=>'purple',), - "Test: Wall Switch" => array('position' => array( 'x'=>50, 'y'=>700), 'color'=>'orange',), - ); - - // $liaisonsRadio = array( - // 'Ruche-T3' => array( 'source'=>'Ruche', 'destination'=>'T3' ), - // 'T3-T5' => array( 'source'=>'T3', 'destination'=>'T5' ), - // 'T3-Ruche' => array( 'source'=>'T3', 'destination'=>'Ruche' ), - // ); - ?> - - - diff --git a/resources/archives/RadioTraffic.php b/resources/archives/RadioTraffic.php deleted file mode 100644 index d28415596f..0000000000 --- a/resources/archives/RadioTraffic.php +++ /dev/null @@ -1,187 +0,0 @@ - $subarr) { - foreach ($subarr as $subkey => $subvalue) { - echo $subvalue." "; - } - echo "\n"; - } - return $out; - } - - $listOfNE = array(); - $trafficsMap = array(); - $listOfMACTraffic[] = array(); - $listOfNWKTraffic[] = array(); - - - - $traffics = Traffics::getDataFromJson('essai.json'); - - // echo "items:\n"; - // print_r($traffics); - - foreach ($traffics as $key => $NE){ - //commandes - if ( isset( $NE['_source']['layers']['wpan']['wpan.dst16'] ) ) - { - if ( $NE['_source']['layers']['wpan']['wpan.dst16']!="0x0000ffff" ) - { - // print_r($NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']); - - // echo "src: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src'] . "\n"; - $srcMAC = substr( $NE['_source']['layers']['wpan']['wpan.src16'], -4 ); - $dstMAC = substr( $NE['_source']['layers']['wpan']['wpan.dst16'], -4 ); - - $listOfMACTraffic[] = array( $srcMAC => $dstMAC ); - - if ( isset($NE['_source']['layers']['zbee_nwk']['zbee_nwk.dst']) ) { - if ( $NE['_source']['layers']['zbee_nwk']['zbee_nwk.dst']!="0x0000fffc" ){ - $srcNWK = substr( $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src'], -4 ); - $dstNWK = substr( $NE['_source']['layers']['zbee_nwk']['zbee_nwk.dst'], -4 ); - - $listOfNWKTraffic[] = array( $srcNWK => $dstNWK ); - - $Packet[] = array( array( $srcMAC, $dstMAC ), array( $srcMAC, $dstNWK ) ); - } - } - - - - if (0) { - // echo "src IEEE: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src64'] . "\n"; - - // echo "dst: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.dst'] . "\n"; - - // print_r($NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']); - - $link_status = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']; - - // echo "Link_Status: \n"; - // print_r( $link_status ); - - foreach ($link_status as $key => $link){ - - if ( substr( $key, 0, 4) == "Link" ) - { - //echo "Target: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.address'] . "\n"; - - // $target = substr( $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.address'], -4 ); - $target = substr( $link['zbee_nwk.cmd.link.address'], -4 ); - $listOfNE[] = $target; - - // echo "->".substr( $key, 0, 4)."<-\n"; - //echo "Incoming Cost: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.incoming_cost'] . "\n"; - // echo "Incoming Cost: " . $link['zbee_nwk.cmd.link.incoming_cost'] . "\n"; - //echo "Outgoing Cost: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.outgoing_cost'] . "\n"; - // echo "Incoming Cost: " . $link['zbee_nwk.cmd.link.outgoing_cost'] . "\n"; - - // $trafficsMap[$src][$target]['In'] = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.incoming_cost']; - $trafficsMap[$src][$target]['In'] = $link['zbee_nwk.cmd.link.incoming_cost']; - // $trafficsMap[$src][$target]['Out'] = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.outgoing_cost']; - $trafficsMap[$src][$target]['Out'] = $link['zbee_nwk.cmd.link.outgoing_cost']; - } - } - } - } - } - } - - // print_r( $listOfMACTraffic ); - - // print_r( $listOfNWKTraffic ); - - if (0) { - // print_r( $trafficsMap ); - // print_r( $listOfNE ); - $listOfNE = array_unique( $listOfNE ); - sort( $listOfNE ); - // print_r( $listOfNE ); - - echo "\n"; - - echo "In "; - foreach ( $listOfNE as $NE_Trg ) - { - echo $NE_Trg." "; - } - echo "\n"; - foreach ( $listOfNE as $NE_Src ) - { - echo $NE_Src.""; - foreach ( $listOfNE as $NE_Trg ) - { - if ( isset($trafficsMap[$NE_Src][$NE_Trg]['In']) ) { echo " ".$trafficsMap[$NE_Src][$NE_Trg]['In']; } else { echo " "; } - } - echo " ".$knownNE[$NE_Src]."\n"; - } - - echo "\n"; - - - echo "Out "; - foreach ( $listOfNE as $NE_Trg ) - { - echo $NE_Trg." "; - } - echo "\n"; - foreach ( $listOfNE as $NE_Src ) - { - echo $NE_Src.""; - foreach ( $listOfNE as $NE_Trg ) - { - if ( isset($trafficsMap[$NE_Src][$NE_Trg]['Out']) ) { echo " ".$trafficsMap[$NE_Src][$NE_Trg]['Out']; } else { echo " "; } - } - echo " ".$knownNE[$NE_Src]."\n"; - } - - print_r( $trafficsMap ); echo "\n"; - } - ?> - - - diff --git a/resources/archives/RadioTrafficMap.php b/resources/archives/RadioTrafficMap.php deleted file mode 100644 index 0fa3858238..0000000000 --- a/resources/archives/RadioTrafficMap.php +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -

Abeille Network

- -
- - - - -
- - - - - - - - -On dessine un triangle plein - - - - - - - -L ordre d affichage est important - -Maison - - - - - -Abeilles - - $Abeille ) { - echo $AbeilleId . "\n"; - echo ''."\n"; - echo ' '.$AbeilleId .' '."\n"; - } - ?> - -Liaisons Radio - -M pour move to -L pour Line to - $liaisonRadio ) { - // echo ''."\n"; - // } - - - // $voisinesMap - - foreach ( $listOfMACTraffic as $SrcDst ) { - - // print_r( $SrcDst ); - - foreach ( $SrcDst as $Src => $Dst ) { - $sourceIdName = $knownNE[$Src]; - $targetIdName = $knownNE[$Dst]; - // echo $sourceIdName . ' - ' . $targetIdName; echo "\n"; - if ($sourceIdName!=$targetIdName){ - if ( ($sourceIdName==$NE) || ("All"==$NE) || ($sourceIdName==$NE2) ) { - echo ''."\n"; - $midX = ( $Abeilles[$sourceIdName]['position']['x'] + $Abeilles[$targetIdName]['position']['x'] ) / 2; - $midY = ( $Abeilles[$sourceIdName]['position']['y'] + $Abeilles[$targetIdName]['position']['y'] ) / 2; - // echo ''.$link[$InOut].''."\n"; - - // print_r( $InOut ); - // print_r( $link ); - } - } - } - } - ?> - - - - - -Sorry, your browser does not support inline SVG. - - - - - diff --git a/resources/archives/RadioVoisines.php b/resources/archives/RadioVoisines.php deleted file mode 100644 index 0152ba4b2f..0000000000 --- a/resources/archives/RadioVoisines.php +++ /dev/null @@ -1,166 +0,0 @@ - $subarr) { - foreach ($subarr as $subkey => $subvalue) { - echo $subvalue." "; - } - echo "\n"; - } - return $out; - } - - $listOfNE = array(); - $voisinesMap = array(); - - - - - - $voisines = Voisines::getDataFromJson('essai.json'); - - // echo "items:\n"; - // print_r($voisines); - - foreach ($voisines as $key => $NE){ - //commandes - if ( isset( $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status'] ) ) - { - if ( $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['zbee_nwk.cmd.id'] == "0x00000008" ) - { - // print_r($NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']); - - // echo "src: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src'] . "\n"; - $src = substr( $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src'], -4 ); - $listOfNE[] = $src; - - // echo "src IEEE: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.src64'] . "\n"; - - // echo "dst: " . $NE['_source']['layers']['zbee_nwk']['zbee_nwk.dst'] . "\n"; - - // print_r($NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']); - - $link_status = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']; - - // echo "Link_Status: \n"; - // print_r( $link_status ); - - foreach ($link_status as $key => $link){ - - if ( substr( $key, 0, 4) == "Link" ) - { - //echo "Target: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.address'] . "\n"; - - // $target = substr( $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.address'], -4 ); - $target = substr( $link['zbee_nwk.cmd.link.address'], -4 ); - $listOfNE[] = $target; - - // echo "->".substr( $key, 0, 4)."<-\n"; - //echo "Incoming Cost: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.incoming_cost'] . "\n"; - // echo "Incoming Cost: " . $link['zbee_nwk.cmd.link.incoming_cost'] . "\n"; - //echo "Outgoing Cost: " . $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.outgoing_cost'] . "\n"; - // echo "Incoming Cost: " . $link['zbee_nwk.cmd.link.outgoing_cost'] . "\n"; - - // $voisinesMap[$src][$target]['In'] = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.incoming_cost']; - $voisinesMap[$src][$target]['In'] = $link['zbee_nwk.cmd.link.incoming_cost']; - // $voisinesMap[$src][$target]['Out'] = $NE['_source']['layers']['zbee_nwk']['Command Frame: Link Status']['Link 1']['zbee_nwk.cmd.link.outgoing_cost']; - $voisinesMap[$src][$target]['Out'] = $link['zbee_nwk.cmd.link.outgoing_cost']; - } - } - } - } - } - - if (0) { - // print_r( $voisinesMap ); - // print_r( $listOfNE ); - $listOfNE = array_unique( $listOfNE ); - sort( $listOfNE ); - // print_r( $listOfNE ); - - echo "\n"; - - echo "In "; - foreach ( $listOfNE as $NE_Trg ) - { - echo $NE_Trg." "; - } - echo "\n"; - foreach ( $listOfNE as $NE_Src ) - { - echo $NE_Src.""; - foreach ( $listOfNE as $NE_Trg ) - { - if ( isset($voisinesMap[$NE_Src][$NE_Trg]['In']) ) { echo " ".$voisinesMap[$NE_Src][$NE_Trg]['In']; } else { echo " "; } - } - echo " ".$knownNE[$NE_Src]."\n"; - } - - echo "\n"; - - - echo "Out "; - foreach ( $listOfNE as $NE_Trg ) - { - echo $NE_Trg." "; - } - echo "\n"; - foreach ( $listOfNE as $NE_Src ) - { - echo $NE_Src.""; - foreach ( $listOfNE as $NE_Trg ) - { - if ( isset($voisinesMap[$NE_Src][$NE_Trg]['Out']) ) { echo " ".$voisinesMap[$NE_Src][$NE_Trg]['Out']; } else { echo " "; } - } - echo " ".$knownNE[$NE_Src]."\n"; - } - - print_r( $voisinesMap ); echo "\n"; - } - ?> - - - diff --git a/resources/archives/RadioVoisinesMap.php b/resources/archives/RadioVoisinesMap.php deleted file mode 100644 index 7e9c2757e5..0000000000 --- a/resources/archives/RadioVoisinesMap.php +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -

Abeille Network

- -
- - - - -
- - - - - - - - -On dessine un triangle plein - - - - - - - -L ordre d affichage est important - -Maison - - - - - -Abeilles - - $Abeille ) { - echo $AbeilleId . "\n"; - echo ''."\n"; - echo ' '.$AbeilleId .' '."\n"; - } - ?> - -Liaisons Radio - -M pour move to -L pour Line to - $liaisonRadio ) { - // echo ''."\n"; - // } - - - // $voisinesMap - - foreach ( $voisinesMap as $sourceId => $voisine ) { - - foreach ( $voisine as $targetId => $link ) { - $sourceIdName = $knownNE[$sourceId]; - $targetIdName = $knownNE[$targetId]; - echo $sourceIdName . ' - ' . $targetIdName; echo "\n"; - if ($sourceIdName!=$targetIdName){ - if ( ($sourceIdName==$NE) || ("All"==$NE) || ($sourceIdName==$NE2) ) { - echo ''."\n"; - $midX = ( $Abeilles[$sourceIdName]['position']['x'] + $Abeilles[$targetIdName]['position']['x'] ) / 2; - $midY = ( $Abeilles[$sourceIdName]['position']['y'] + $Abeilles[$targetIdName]['position']['y'] ) / 2; - echo ''.$link[$InOut].''."\n"; - - print_r( $InOut ); - print_r( $link ); - } - } - } - } - ?> - - - - - -Sorry, your browser does not support inline SVG. - - - - - diff --git a/resources/archives/RouteRecord.json b/resources/archives/RouteRecord.json deleted file mode 100644 index 45cd749bea..0000000000 --- a/resources/archives/RouteRecord.json +++ /dev/null @@ -1,7526 +0,0 @@ -[ - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 21:59:53.716336000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "75593.716336000", - "frame.time_delta": "0.008224000", - "frame.time_delta_displayed": "0.000000000", - "frame.time_relative": "395.402283000", - "frame.number": "746", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "232", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000cb51", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "88", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "644904", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "c9:cb:31:c6", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 21:59:53.720176000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "75593.720176000", - "frame.time_delta": "0.001696000", - "frame.time_delta_displayed": "0.003840000", - "frame.time_relative": "395.406123000", - "frame.number": "748", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "233", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000ada9", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "90", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "644905", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "ec:38:0e:00", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:00:56.055024000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "75656.055024000", - "frame.time_delta": "0.002192000", - "frame.time_delta_displayed": "62.334848000", - "frame.time_relative": "457.740971000", - "frame.number": "871", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "240", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006c78", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "97", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "644912", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "d1:ab:ce:35", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:14:53.733360000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "76493.733360000", - "frame.time_delta": "0.006368000", - "frame.time_delta_displayed": "837.678336000", - "frame.time_relative": "1295.419307000", - "frame.number": "2157", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "54", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00003395", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "151", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "644982", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "aa:db:41:01", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:14:53.739120000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "76493.739120000", - "frame.time_delta": "0.003616000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "1295.425067000", - "frame.number": "2159", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "55", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006e43", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "153", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "644983", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "8f:c8:a9:65", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:24:27.799504000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "77067.799504000", - "frame.time_delta": "0.002464000", - "frame.time_delta_displayed": "574.060384000", - "frame.time_relative": "1869.485451000", - "frame.number": "2850", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "95", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000ccc3", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "62", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645023", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "5f:24:1d:5f", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:29:53.076352000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "77393.076352000", - "frame.time_delta": "0.007648000", - "frame.time_delta_displayed": "325.276848000", - "frame.time_relative": "2194.762299000", - "frame.number": "3977", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "150", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00004749", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "216", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645078", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "b0:94:bf:ae", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:29:53.082112000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "77393.082112000", - "frame.time_delta": "0.003616000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "2194.768059000", - "frame.number": "3979", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "151", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000425e", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645079", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "4b:2d:7f:b3", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:30:14.464224000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "77414.464224000", - "frame.time_delta": "0.012768000", - "frame.time_delta_displayed": "21.382112000", - "frame.time_relative": "2216.150171000", - "frame.number": "4042", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "156", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000008ba", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "99", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645084", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "62:99:a9:36", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:30:14.468704000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "77414.468704000", - "frame.time_delta": "0.002272000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "2216.154651000", - "frame.number": "4044", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "157", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f75a", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "100", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645085", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "a4:f4:aa:c7", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:47.923648000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78167.923648000", - "frame.time_delta": "0.003920000", - "frame.time_delta_displayed": "753.454944000", - "frame.time_relative": "2969.609595000", - "frame.number": "5024", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "227", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000c98e", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "101", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645155", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "05:2f:3e:56", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:47.944448000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78167.944448000", - "frame.time_delta": "0.010848000", - "frame.time_delta_displayed": "0.020800000", - "frame.time_relative": "2969.630395000", - "frame.number": "5030", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "228", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00004a76", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "102", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645156", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "b4:b5:4d:3b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:47.953088000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78167.953088000", - "frame.time_delta": "0.006432000", - "frame.time_delta_displayed": "0.008640000", - "frame.time_relative": "2969.639035000", - "frame.number": "5032", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "229", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00002d5d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "103", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645157", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fd:cc:77:eb", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.236784000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.236784000", - "frame.time_delta": "0.001824000", - "frame.time_delta_displayed": "10.283696000", - "frame.time_relative": "2979.922731000", - "frame.number": "5061", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "234", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000672f", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "104", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645162", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "0f:73:2f:5e", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.241264000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.241264000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "2979.927211000", - "frame.number": "5062", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "234", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000672f", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "104", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645162", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "0f:73:2f:5e", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.244784000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.244784000", - "frame.time_delta": "0.001312000", - "frame.time_delta_displayed": "0.003520000", - "frame.time_relative": "2979.930731000", - "frame.number": "5064", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "235", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000093c7", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "105", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645163", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "90:d9:81:70", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.257264000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.257264000", - "frame.time_delta": "0.012480000", - "frame.time_delta_displayed": "0.012480000", - "frame.time_relative": "2979.943211000", - "frame.number": "5065", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "235", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000093c7", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "105", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645163", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "90:d9:81:70", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.261744000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.261744000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "2979.947691000", - "frame.number": "5066", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "236", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00008b9c", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "106", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645164", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "55:34:41:88", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:42:58.306864000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78178.306864000", - "frame.time_delta": "0.016192000", - "frame.time_delta_displayed": "0.045120000", - "frame.time_relative": "2979.992811000", - "frame.number": "5075", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "240", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000017a7", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "105", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645168", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "c7:6b:2d:67", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:44:53.653776000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78293.653776000", - "frame.time_delta": "0.011408000", - "frame.time_delta_displayed": "115.346912000", - "frame.time_relative": "3095.339723000", - "frame.number": "5543", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "8", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000068ec", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "31", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645192", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "96:89:ad:9d", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:44:53.658256000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78293.658256000", - "frame.time_delta": "0.002336000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "3095.344203000", - "frame.number": "5545", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "9", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006ab2", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "33", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645193", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "82:a9:9a:a6", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:44:53.662736000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "78293.662736000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "3095.348683000", - "frame.number": "5546", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "9", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006ab2", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "33", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645193", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "82:a9:9a:a6", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:59:32.743536000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "79172.743536000", - "frame.time_delta": "0.002768000", - "frame.time_delta_displayed": "879.080800000", - "frame.time_relative": "3974.429483000", - "frame.number": "6856", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "80", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000a0d6", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "107", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645264", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "34:a1:2d:94", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:59:53.141024000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "79193.141024000", - "frame.time_delta": "0.007360000", - "frame.time_delta_displayed": "20.397488000", - "frame.time_relative": "3994.826971000", - "frame.number": "6957", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "86", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000d976", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "93", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645270", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "9e:b9:9d:6b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 22:59:53.146144000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "79193.146144000", - "frame.time_delta": "0.002992000", - "frame.time_delta_displayed": "0.005120000", - "frame.time_relative": "3994.832091000", - "frame.number": "6959", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "87", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00005ce4", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "95", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645271", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "e6:29:44:90", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:17.305152000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80057.305152000", - "frame.time_delta": "0.001680000", - "frame.time_delta_displayed": "864.159008000", - "frame.time_relative": "4858.991099000", - "frame.number": "8246", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "153", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000902c", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "108", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645337", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "61:b7:fc:8b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:17.327232000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80057.327232000", - "frame.time_delta": "0.003488000", - "frame.time_delta_displayed": "0.022080000", - "frame.time_relative": "4859.013179000", - "frame.number": "8253", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "153", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000902c", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "108", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645337", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "61:b7:fc:8b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:17.332032000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80057.332032000", - "frame.time_delta": "0.002592000", - "frame.time_delta_displayed": "0.004800000", - "frame.time_relative": "4859.017979000", - "frame.number": "8255", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "154", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000872c", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "109", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645338", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "c2:8c:bf:f2", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:17.336192000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80057.336192000", - "frame.time_delta": "0.001952000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "4859.022139000", - "frame.number": "8257", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "155", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00001c8c", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "110", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645339", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "46:37:44:b7", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:39.274128000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80079.274128000", - "frame.time_delta": "0.002016000", - "frame.time_delta_displayed": "21.937936000", - "frame.time_relative": "4880.960075000", - "frame.number": "8432", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "166", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000578a", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "63", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645350", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "9f:93:56:6b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:54.217936000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80094.217936000", - "frame.time_delta": "0.006176000", - "frame.time_delta_displayed": "14.943808000", - "frame.time_relative": "4895.903883000", - "frame.number": "8569", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "174", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000060a1", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "159", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645358", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "b6:e0:cb:87", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:14:54.223696000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "80094.223696000", - "frame.time_delta": "0.003616000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "4895.909643000", - "frame.number": "8571", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "175", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000b660", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "161", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645359", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "85:c3:43:fd", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:39:24.044672000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81564.044672000", - "frame.time_delta": "0.008640000", - "frame.time_delta_displayed": "1469.820976000", - "frame.time_relative": "6365.730619000", - "frame.number": "10888", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "61", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006fd4", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "111", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645501", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "e6:ff:53:8f", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:39:24.049152000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81564.049152000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "6365.735099000", - "frame.number": "10889", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "61", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006fd4", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "111", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645501", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "e6:ff:53:8f", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:39:24.054912000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81564.054912000", - "frame.time_delta": "0.003552000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "6365.740859000", - "frame.number": "10891", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "62", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000733f", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "112", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645502", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "34:9c:f4:eb", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:39:24.059072000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81564.059072000", - "frame.time_delta": "0.001952000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "6365.745019000", - "frame.number": "10893", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "63", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f05d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "113", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645503", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "6a:24:b5:14", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:44:54.564368000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81894.564368000", - "frame.time_delta": "0.006304000", - "frame.time_delta_displayed": "330.505296000", - "frame.time_relative": "6696.250315000", - "frame.number": "11697", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "111", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000eeff", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "27", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645551", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "51:b8:09:9c", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:44:54.568208000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "81894.568208000", - "frame.time_delta": "0.001696000", - "frame.time_delta_displayed": "0.003840000", - "frame.time_relative": "6696.254155000", - "frame.number": "11699", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "112", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000c3ba", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "29", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645552", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "44:34:a0:bd", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:54:18.114512000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82458.114512000", - "frame.time_delta": "0.003568000", - "frame.time_delta_displayed": "563.546304000", - "frame.time_relative": "7259.800459000", - "frame.number": "12661", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "195", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00003500", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "114", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645635", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "39:d5:e1:8c", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:59:53.228384000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82793.228384000", - "frame.time_delta": "0.008272000", - "frame.time_delta_displayed": "335.113872000", - "frame.time_relative": "7594.914331000", - "frame.number": "13426", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "232", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000b5ee", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "89", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645672", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "c6:31:12:a0", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 23:59:53.233504000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82793.233504000", - "frame.time_delta": "0.002960000", - "frame.time_delta_displayed": "0.005120000", - "frame.time_relative": "7594.919451000", - "frame.number": "13428", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "233", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000005e0", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "91", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645673", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "48:38:0a:b2", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:00:00.315968000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82800.315968000", - "frame.time_delta": "0.001328000", - "frame.time_delta_displayed": "7.082464000", - "frame.time_relative": "7602.001915000", - "frame.number": "13459", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "236", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000422d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "115", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645676", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "76:f2:ee:7e", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:00:00.325568000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82800.325568000", - "frame.time_delta": "0.004224000", - "frame.time_delta_displayed": "0.009600000", - "frame.time_relative": "7602.011515000", - "frame.number": "13463", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "237", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00000e64", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "116", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645677", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "41:13:d0:7f", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:00:00.331328000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "82800.331328000", - "frame.time_delta": "0.003536000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "7602.017275000", - "frame.number": "13465", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "238", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000bb53", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "117", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645678", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "41:e6:32:4b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:04:52.499552000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "83092.499552000", - "frame.time_delta": "0.002864000", - "frame.time_delta_displayed": "292.168224000", - "frame.time_relative": "7894.185499000", - "frame.number": "13832", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "5", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00005b9b", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "64", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645701", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "8f:06:d9:49", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:04:52.503072000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "83092.503072000", - "frame.time_delta": "0.003520000", - "frame.time_delta_displayed": "0.003520000", - "frame.time_relative": "7894.189019000", - "frame.number": "13833", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "5", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00005b9b", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "64", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645701", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "8f:06:d9:49", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:15:00.565936000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "83700.565936000", - "frame.time_delta": "0.007536000", - "frame.time_delta_displayed": "608.062864000", - "frame.time_relative": "8502.251883000", - "frame.number": "15291", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "99", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000016ab", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "154", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645795", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "86:97:50:4d", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:15:00.571696000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "83700.571696000", - "frame.time_delta": "0.003616000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "8502.257643000", - "frame.number": "15293", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "100", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000008d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "156", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645796", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "7b:60:f0:b7", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:20:45.939200000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84045.939200000", - "frame.time_delta": "0.006976000", - "frame.time_delta_displayed": "345.367504000", - "frame.time_relative": "8847.625147000", - "frame.number": "15777", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "125", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000081c9", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "118", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645821", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "9d:9c:7c:94", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:20:45.944960000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84045.944960000", - "frame.time_delta": "0.003536000", - "frame.time_delta_displayed": "0.005760000", - "frame.time_relative": "8847.630907000", - "frame.number": "15779", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "126", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000ec28", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "119", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645822", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "f9:9d:f3:f6", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:20:45.948800000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84045.948800000", - "frame.time_delta": "0.001616000", - "frame.time_delta_displayed": "0.003840000", - "frame.time_relative": "8847.634747000", - "frame.number": "15781", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "127", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000bdc2", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "120", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645823", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "c4:7c:f4:22", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.942976000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.942976000", - "frame.time_delta": "0.005952000", - "frame.time_delta_displayed": "552.994176000", - "frame.time_relative": "9400.628923000", - "frame.number": "17096", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "201", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000e313", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645897", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "6e:c9:67:8a", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.947136000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.947136000", - "frame.time_delta": "0.004160000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "9400.633083000", - "frame.number": "17097", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "201", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000e313", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645897", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "6e:c9:67:8a", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.951296000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.951296000", - "frame.time_delta": "0.004160000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "9400.637243000", - "frame.number": "17098", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "201", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000e313", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645897", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "6e:c9:67:8a", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.954496000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.954496000", - "frame.time_delta": "0.003200000", - "frame.time_delta_displayed": "0.003200000", - "frame.time_relative": "9400.640443000", - "frame.number": "17099", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "201", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000e313", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645897", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "6e:c9:67:8a", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.963776000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.963776000", - "frame.time_delta": "0.004608000", - "frame.time_delta_displayed": "0.009280000", - "frame.time_relative": "9400.649723000", - "frame.number": "17102", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "202", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000a7d6", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "220", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645898", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "1c:c2:a2:b8", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.972416000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.972416000", - "frame.time_delta": "0.003824000", - "frame.time_delta_displayed": "0.008640000", - "frame.time_relative": "9400.658363000", - "frame.number": "17104", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "202", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000a7d6", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "220", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645898", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "1c:c2:a2:b8", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.976576000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.976576000", - "frame.time_delta": "0.004160000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "9400.662523000", - "frame.number": "17105", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "202", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000a7d6", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "220", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645898", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "1c:c2:a2:b8", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.981056000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.981056000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "9400.667003000", - "frame.number": "17106", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "203", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f150", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645899", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fb:10:65:62", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.985536000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.985536000", - "frame.time_delta": "0.004480000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "9400.671483000", - "frame.number": "17107", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "203", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f150", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645899", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fb:10:65:62", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.992256000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.992256000", - "frame.time_delta": "0.002112000", - "frame.time_delta_displayed": "0.006720000", - "frame.time_relative": "9400.678203000", - "frame.number": "17110", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "203", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f150", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645899", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fb:10:65:62", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:58.997680000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84598.997680000", - "frame.time_delta": "0.005424000", - "frame.time_delta_displayed": "0.005424000", - "frame.time_relative": "9400.683627000", - "frame.number": "17111", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "203", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f150", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645899", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fb:10:65:62", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:59.030640000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84599.030640000", - "frame.time_delta": "0.004944000", - "frame.time_delta_displayed": "0.032960000", - "frame.time_relative": "9400.716587000", - "frame.number": "17119", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "206", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x000080ad", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "220", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645902", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "59:17:61:a1", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:29:59.034800000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "84599.034800000", - "frame.time_delta": "0.002000000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "9400.720747000", - "frame.number": "17121", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "207", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00004970", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "218", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645903", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "63:0e:99:33", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:42:11.716960000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85331.716960000", - "frame.time_delta": "0.001136000", - "frame.time_delta_displayed": "732.682160000", - "frame.time_relative": "10133.402907000", - "frame.number": "18338", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "17", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f107", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "121", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645969", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "fe:3d:fb:82", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:42:11.731680000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85331.731680000", - "frame.time_delta": "0.009040000", - "frame.time_delta_displayed": "0.014720000", - "frame.time_relative": "10133.417627000", - "frame.number": "18342", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "18", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00003942", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "122", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645970", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "ec:a7:63:e5", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:42:11.736160000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85331.736160000", - "frame.time_delta": "0.002256000", - "frame.time_delta_displayed": "0.004480000", - "frame.time_relative": "10133.422107000", - "frame.number": "18344", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "19", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00000734", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "123", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "645971", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "5c:66:dd:73", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:44:58.674448000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85498.674448000", - "frame.time_delta": "0.006416000", - "frame.time_delta_displayed": "166.938288000", - "frame.time_relative": "10300.360395000", - "frame.number": "19075", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "50", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000b7c3", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "26", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646002", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "86:47:8b:70", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:44:58.678288000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85498.678288000", - "frame.time_delta": "0.001696000", - "frame.time_delta_displayed": "0.003840000", - "frame.time_relative": "10300.364235000", - "frame.number": "19077", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "51", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000c8bd", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "28", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646003", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "d0:85:58:49", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:52:34.648624000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "85954.648624000", - "frame.time_delta": "0.003488000", - "frame.time_delta_displayed": "455.970336000", - "frame.time_relative": "10756.334571000", - "frame.number": "19731", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "85", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00005efe", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "124", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646037", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "40:45:1b:00", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:55:04.014016000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "86104.014016000", - "frame.time_delta": "0.002368000", - "frame.time_delta_displayed": "149.365392000", - "frame.time_relative": "10905.699963000", - "frame.number": "19954", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "99", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000377d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "65", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646051", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "7e:f8:00:af", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:59:58.062320000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "86398.062320000", - "frame.time_delta": "0.007632000", - "frame.time_delta_displayed": "294.048304000", - "frame.time_relative": "11199.748267000", - "frame.number": "20681", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "134", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f240", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "89", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646086", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "45:e7:c1:13", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 00:59:58.066480000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "86398.066480000", - "frame.time_delta": "0.002016000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "11199.752427000", - "frame.number": "20683", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "135", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00000d85", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "91", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646087", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "ae:b5:2b:04", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:19:32.364944000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "87572.364944000", - "frame.time_delta": "0.007440000", - "frame.time_delta_displayed": "1174.298464000", - "frame.time_relative": "12374.050891000", - "frame.number": "22939", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "250", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00004852", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "125", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646202", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "20:bd:58:4b", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:19:32.369744000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "87572.369744000", - "frame.time_delta": "0.002592000", - "frame.time_delta_displayed": "0.004800000", - "frame.time_relative": "12374.055691000", - "frame.number": "22941", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "251", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00004f07", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "126", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646203", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "55:65:49:86", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:19:32.373904000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "87572.373904000", - "frame.time_delta": "0.001952000", - "frame.time_delta_displayed": "0.004160000", - "frame.time_relative": "12374.059851000", - "frame.number": "22943", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "252", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000be12", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "127", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646204", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "de:47:92:50", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:29:59.130784000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "88199.130784000", - "frame.time_delta": "0.007232000", - "frame.time_delta_displayed": "626.756880000", - "frame.time_relative": "13000.816731000", - "frame.number": "24050", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "52", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000fa0d", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "213", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646260", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "26:5a:b4:4a", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:29:59.134304000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "88199.134304000", - "frame.time_delta": "0.001392000", - "frame.time_delta_displayed": "0.003520000", - "frame.time_relative": "13000.820251000", - "frame.number": "24052", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "53", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000f784", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "215", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646261", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "b9:10:58:e7", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:45:15.998448000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89115.998448000", - "frame.time_delta": "0.002032000", - "frame.time_delta_displayed": "916.864144000", - "frame.time_relative": "13917.684395000", - "frame.number": "25758", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "138", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000e63f", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x0000345f", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "66", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:e4:4e:ce", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646346", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "21:40:4e:5e", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:49:20.290608000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89360.290608000", - "frame.time_delta": "0.006992000", - "frame.time_delta_displayed": "244.292160000", - "frame.time_relative": "14161.976555000", - "frame.number": "26064", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "155", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000d85e", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "128", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646363", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "25:80:8d:95", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:57:02.991776000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89822.991776000", - "frame.time_delta": "0.005632000", - "frame.time_delta_displayed": "462.701168000", - "frame.time_relative": "14624.677723000", - "frame.number": "26631", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "187", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00009709", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "129", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646395", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "e6:65:a2:44", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:57:03.007456000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89823.007456000", - "frame.time_delta": "0.013472000", - "frame.time_delta_displayed": "0.015680000", - "frame.time_relative": "14624.693403000", - "frame.number": "26633", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "188", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00003cf6", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "130", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646396", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "d8:37:ad:83", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:57:03.012576000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89823.012576000", - "frame.time_delta": "0.002912000", - "frame.time_delta_displayed": "0.005120000", - "frame.time_relative": "14624.698523000", - "frame.number": "26635", - "frame.len": "57", - "frame.cap_len": "57", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "57", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "189", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x00006037", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x00001be0", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "131", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:15:8d:00:01:d6:c1:77", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646397", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "2b:61:18:f5", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "1", - "zbee_nwk.cmd.relay_device": "0x000036a6" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:59:58.544672000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89998.544672000", - "frame.time_delta": "0.007536000", - "frame.time_delta_displayed": "175.532096000", - "frame.time_relative": "14800.230619000", - "frame.number": "27293", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "228", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000a0c3", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "83", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646436", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "a0:3b:37:f8", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } - , - { - "_index": "packets-2018-06-12", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 2, 1970 01:59:58.553952000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "89998.553952000", - "frame.time_delta": "0.007120000", - "frame.time_delta_displayed": "0.009280000", - "frame.time_relative": "14800.239899000", - "frame.number": "27295", - "frame.len": "55", - "frame.cap_len": "55", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "55", - "wpan.fcf": "0x00008861", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "1", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "229", - "wpan.dst_pan": "0x0000e19d", - "wpan.dst16": "0x00000000", - "wpan.src16": "0x000036a6", - "wpan.src64": "00:0b:57:ff:fe:95:2a:69", - "wpan.src64.origin": "39", - "wpan.fcs": "0x0000865f", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001a09", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "1", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x00000000", - "zbee_nwk.src": "0x000036a6", - "zbee_nwk.radius": "30", - "zbee_nwk.seqno": "85", - "zbee_nwk.dst64": "00:15:8d:00:01:b2:2e:24", - "zbee_nwk.src64": "00:0b:57:ff:fe:95:2a:69", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "646437", - "zbee.sec.src64": "00:0b:57:ff:fe:95:2a:69", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "f6:18:39:56", - "zbee.sec.key": "b3:5c:b1:c2:5f:18:3d:de:cb:94:89:ba:f7:d0:95:56", - "zbee.sec.key.origin": "14279" - }, - "Command Frame: Route Record": { - "zbee_nwk.cmd.id": "0x00000005", - "zbee_nwk.cmd.relay_count": "0" - } - } - } - } - } -] diff --git a/resources/archives/RouteRecord.php b/resources/archives/RouteRecord.php deleted file mode 100644 index a80efaeeb2..0000000000 --- a/resources/archives/RouteRecord.php +++ /dev/null @@ -1,108 +0,0 @@ - $subarr) { - foreach ($subarr as $subkey => $subvalue) { - echo $subvalue." "; - } - echo "\n"; - } - return $out; - } - - $listOfNE = array(); - $trafficsMap = array(); - $listOfMACTraffic[] = array(); - $listOfNWKTraffic[] = array(); - - - - $packets = packets::getDataFromJson('RouteRecord.json'); - // var_dump( $packets ); - - $routes = array(); - - foreach ($packets as $key => $packet){ - //commandes - if ( isset( $packet['_source']['layers']['zbee_nwk']['Command Frame: Route Record'] ) ) - { - // echo $packet['_source']['layers']['zbee_nwk']['zbee_nwk.src']."\n"; - // echo $packet['_source']['layers']['zbee_nwk']['zbee_nwk.dst']."\n"; - // var_dump( $packet['_source']['layers']['zbee_nwk']['Command Frame: Route Record'] ); - // echo "-------------------------------------\n"; - $data = substr($packet['_source']['layers']['zbee_nwk']['zbee_nwk.src'],-4) . "->"; - // echo substr($packet['_source']['layers']['zbee_nwk']['zbee_nwk.src'],-4) . "->"; - - foreach ($packet['_source']['layers']['zbee_nwk']['Command Frame: Route Record'] as $field => $fieldData ) { - if ( $field == "zbee_nwk.cmd.relay_device" ) { - $data = $data . substr($fieldData,-4)."->"; - // echo substr($fieldData,-4)."->"; - } - - } - - $data = $data . substr($packet['_source']['layers']['zbee_nwk']['zbee_nwk.dst'],-4); - // echo substr($packet['_source']['layers']['zbee_nwk']['zbee_nwk.dst'],-4)."\n"; - // echo "-------------------------------------\n"; - // echo "-------------------------------------\n"; - $routes[] = $data; - } - } - - echo "Results : \n"; - $routes = array_unique( $routes ); - - foreach ( $routes as $id => $route ) { - echo $route . "\n"; - // var_dump( $routes ); - } - - ?> - - - diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead1OnlyFlashed.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead1OnlyFlashed.bin deleted file mode 100644 index 4a5e959dbc..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead1OnlyFlashed.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead2BootGetVersion.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead2BootGetVersion.bin deleted file mode 100644 index 1dfa77e209..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead2BootGetVersion.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead3SetMask17.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead3SetMask17.bin deleted file mode 100644 index 2d86083515..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead3SetMask17.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead4SetMask23.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead4SetMask23.bin deleted file mode 100644 index 6c2a963186..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead4SetMask23.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead5SetMask24StartNetworkAddXiaomiTempRond.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead5SetMask24StartNetworkAddXiaomiTempRond.bin deleted file mode 100644 index f25680910f..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead5SetMask24StartNetworkAddXiaomiTempRond.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead6ProductionJeedomZwave.bin b/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead6ProductionJeedomZwave.bin deleted file mode 100644 index 2566f3cbc9..0000000000 Binary files a/resources/archives/Zigate_Module/ReadJN5168/EEPROMRead6ProductionJeedomZwave.bin and /dev/null differ diff --git a/resources/archives/Zigate_Module/ReadJN5168/read.php b/resources/archives/Zigate_Module/ReadJN5168/read.php deleted file mode 100644 index 385e9bd813..0000000000 --- a/resources/archives/Zigate_Module/ReadJN5168/read.php +++ /dev/null @@ -1,69 +0,0 @@ - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 3; ID : 32; Short Addr : 36a6; IEEE Addr: 000B57fffe952a69; Power Source (0:battery - 1:AC): 01; Link Quality: 67 - - Short Not Found (T7) => AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 4; ID : 33; Short Addr : 2096; IEEE Addr: 000B57fffe490C2a (2 fois); Power Source (0:battery - 1:AC): 01; Link Quality: 36 - - Short Not Found (Lampe Bureau) => AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 5; ID : 34; Short Addr : a714; IEEE Addr: 00158d0001dedc72 (3 fois); Power Source (0:battery - 1:AC): 01; Link Quality: 188 - - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 6; ID : 35; Short Addr : c9f9; IEEE Addr: 000B57fffe88af72; Power Source (0:battery - 1:AC): 01; Link Quality: 112 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 7; ID : 36; Short Addr : 70fb; IEEE Addr: 000B57fffe3a0E7c; Power Source (0:battery - 1:AC): 01; Link Quality: 44 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 8; ID : 37; Short Addr : e4c0; IEEE Addr: 000B57fffed2af6a; Power Source (0:battery - 1:AC): 01; Link Quality: 80 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 9; ID : 38; Short Addr : db83; IEEE Addr: 00158d000183afeb; Power Source (0:battery - 1:AC): 01; Link Quality: 68 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 10; ID : 39; Short Addr : a0da; IEEE Addr: 000B57fffe3a563b; Power Source (0:battery - 1:AC): 01; Link Quality: 47 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 11; ID : 3a; Short Addr : 41c0; IEEE Addr: 00158d000183af7b; Power Source (0:battery - 1:AC): 01; Link Quality: 76 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 12; ID : 3b; Short Addr : d204; IEEE Addr: 000B57fffec53819; Power Source (0:battery - 1:AC): 01; Link Quality: 42 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 13; ID : 3c; Short Addr : 82a6; IEEE Addr: 000B57fffe4bab6a; Power Source (0:battery - 1:AC): 01; Link Quality: 149 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 14; ID : 3d; Short Addr : 60fb; IEEE Addr: 000B57fffe8dbb1a; Power Source (0:battery - 1:AC): 01; Link Quality: 67 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 15; ID : 3e; Short Addr : 6766; IEEE Addr: 000B57fffe3025ad; Power Source (0:battery - 1:AC): 01; Link Quality: 36 - AbeilleParser 2018-09-21 16:13:57[DEBUG]Abeille i: 16; ID : 3f; Short Addr : b807; IEEE Addr: 000B57fffe8e083c; Power Source (0:battery - 1:AC): 01; Link Quality: 34 - */ - -$EEPROM = array(); - -$handle = @fopen("EEPROMRead6ProductionJeedomZwave.bin", "r"); -if ($handle) { - while (!feof($handle)) { - $hex = bin2hex(fread ($handle , 1 )); - array_push($EEPROM, $hex); - print $hex."\n"; - } - fclose($handle); - -} - echo "\n--------------------\n"; - echo "First Octet: "; echo $EEPROM[0x00]; echo "\n"; - - $i = 0x00D8; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - - $i = 0x00F0; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - $i = 0x0198; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - $i = 0x01B0; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - $i = 0x01B0; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - $i = 0x0418; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - $i = 0x0670; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - - $i = 0x06B4; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 2096 - - $i = 0x0768; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 873a - $i = 0x06AC; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // - $i = 0x06B4; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // - $i = 0x0850; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 2096 - $i = 0x0C70; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - $i = 0x0D58; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - $i = 0x0D70; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - $i = 0x0F18; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - $i = 0x0F30; echo "IEEE: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8c09 - - $i = 0x0952; echo "Short: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 873A - $i = 0x0962; echo "Short: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 8C09 - $i = 0x0A4E; echo "Short: "; echo $EEPROM[$i++]; echo $EEPROM[$i++]; echo "\n"; // 404C - - -?> - diff --git a/resources/archives/addParameterToAllTemplates.php b/resources/archives/addParameterToAllTemplates.php deleted file mode 100644 index 715b35c5ec..0000000000 --- a/resources/archives/addParameterToAllTemplates.php +++ /dev/null @@ -1,73 +0,0 @@ -assertSame( 1, count($output) ); - $this->assertSame( 0, $retval ); - } - - function test_proper_parse_str() { - $str = "X=x&Y=y&Z=z"; - $result = '{"X":"x","Y":"y","Z":"z"}'; - $this->assertSame( $result, json_encode(AbeilleCmdPrepare::proper_parse_str($str)) ); - } - - function prepareCmdTest() { - $message = (object) array( - "topic" => "CmdAbeille1/81F6/OnOff", - "payload" => "Action=On&EP=01", - "priority" => 3, - ); - - $result = '{"onoff":"1","dest":"Abeille1","priority":3,"addressMode":"02","address":"81F6","destinationEndpoint":"01","action":"01"}'; - - $this->assertSame( $result, json_encode(AbeilleCmdPrepare::prepareCmd(1, $message, 1)) ); - } - -} - - -?> - diff --git a/resources/archives/core/class/AbeilleCmdProcessTest.class.php b/resources/archives/core/class/AbeilleCmdProcessTest.class.php deleted file mode 100644 index 06f88dccdc..0000000000 --- a/resources/archives/core/class/AbeilleCmdProcessTest.class.php +++ /dev/null @@ -1,101 +0,0 @@ -result = array( $priority, $net, $cmd, $payload, $addr, $addrMode); - } -} - - - -class AbeilleCmdProcessTest extends TestCase { - - function test_phpSyntax() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - exec('php AbeilleCmdProcess.class.php', $output, $retval); - $this->assertSame( 1, count($output) ); - $this->assertSame( 0, $retval ); - } - - function test_checkRequiredParams() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - $required = ['addr']; - $Command_Ok = array( 'addr'=>'1234' ); - $Command_NOk = array( 'zozo'=>'1234' ); - - $this->assertSame( true , AbeilleCmdProcess::checkRequiredParams($required, $Command_Ok) ); - $this->assertSame( false, AbeilleCmdProcess::checkRequiredParams($required, $Command_NOk) ); - } - - function test_sliderToHex() { - // Called to convert '#sliderXX#' - $sliderVal = "#slider34#"; - $type = '28'; - $abeilleCmdProcess = new AbeilleCmdProcess; - $this->assertSame( '22', $abeilleCmdProcess->sliderToHex($sliderVal, $type)); - } - - function test_processCmd() { - $test = new AbeilleCmdProcessKiwi; - - // Test initial checks - $Command = null; - $this->assertSame( null, $test->processCmd($Command)); - - $Command = "Why not"; - $this->assertSame( null, $test->processCmd($Command)); - - $Command = array(); - - // Test commands - $Command = array( "dest" => "Abeille1", 'PDM' =>"", 'req' => "E_SL_MSG_PDM_HOST_AVAILABLE_RESPONSE"); - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","8300","00","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'PDM' =>"", 'req' => "E_SL_MSG_PDM_EXISTENCE_RESPONSE", 'recordId'=>"" ); - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","8208","000000","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'abeilleList' => ""); - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0015","","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'name' => 'setZgLed', 'value' => 1) ; - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0018","01","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'name' => 'setZgLed', 'value' => 0) ; - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0018","00","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'setCertificationCE' => "") ; - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0019","01","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'setCertificationFCC' => "") ; - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0019","02","",null]', json_encode($test->result) ); - - $Command = array( "dest" => "Abeille1", 'TxPower' => "11") ; - $test->processCmd($Command); - $this->assertSame( '[4,"Abeille1","0806","11","",null]', json_encode($test->result) ); - - // ..... need to continue ..... - - } -} - - -?> - diff --git a/resources/archives/core/class/AbeilleCmdTest.class.php b/resources/archives/core/class/AbeilleCmdTest.class.php deleted file mode 100644 index 363470342b..0000000000 --- a/resources/archives/core/class/AbeilleCmdTest.class.php +++ /dev/null @@ -1,23 +0,0 @@ -assertSame( 1, count($output) ); - $this->assertSame( 0, $retval ); - } - -} - - -?> - diff --git a/resources/archives/core/class/AbeilleParserTest.class.php b/resources/archives/core/class/AbeilleParserTest.class.php deleted file mode 100644 index 4b63c47922..0000000000 --- a/resources/archives/core/class/AbeilleParserTest.class.php +++ /dev/null @@ -1,125 +0,0 @@ -assertSame( 0, count($output) ); - $this->assertSame( 0, $retval ); - } - - // function test_deviceAnnounce() { - // fwrite(STDOUT, "\n\n" . __METHOD__ ); - - // global $log; - - // $net = 'Abeille1'; - // $addr = '81F6'; - // $ieee = '14B457FFFE79EBA9'; - // $capa = '8E'; - // $rejoin = '00'; - - // $abeilleParser = new AbeilleParser; - - // // Standard - // $log = []; - // $abeilleParser->deviceAnnounce($net, $addr, $ieee, $capa, $rejoin); - - // $logExpected = '[" EQ new to parser"," Requesting active end points list"]'; - // $this->assertSame( $logExpected, json_encode($log) ); - - // // Change Addr - // $addr = '8888'; - // $log = []; - // $abeilleParser->deviceAnnounce($net, $addr, $ieee, $capa, $rejoin); - - // $logExpected = '[" EQ already known: Addr updated from 81F6 to 8888"," EQ already known: Status=identifying"," Device identification already ongoing"]'; - // $this->assertSame( $logExpected, json_encode($log) ); - - // // New ieee - // $ieee = 'FFB457FFFE79EBFF'; - // $log = []; - // $abeilleParser->deviceAnnounce($net, $addr, $ieee, $capa, $rejoin); - - // $logExpected = '[" ERROR: There is a different EQ (ieee=14B457FFFE79EBA9) for addr 8888"]'; - // $this->assertSame( $logExpected, json_encode($log) ); - // } - - - // function test_deviceUpdate() { - // fwrite(STDOUT, "\n\n" . __METHOD__ ); - - // global $log; - // global $msgToCmd; - // unset($GLOBALS['eqList']); - - // $net = 'Abeille1'; - // $addr = '81F6'; - // $ep = '01'; - - // $abeilleParserDebug = new AbeilleParserDebug; - - // // No update - // $log = []; $msgToCmd = []; - // $abeilleParserDebug->deviceUpdate($net, $addr, $ep, $updType = null, $value = null); - // $logExpected = '[" deviceUpdate(\'\', \'\'): Unknown device detected"," Requesting IEEE"]'; - // $this->assertSame( $logExpected, json_encode($log) ); - // $cmdExpected = '[["CmdAbeille1\/81F6\/getIeeeAddress","priority=5"]]'; - // $this->assertSame( $cmdExpected, json_encode($msgToCmd) ); - - // $log = []; $msgToCmd = []; - // $abeilleParserDebug->deviceUpdate($net, $addr, $ep, $updType = null, $value = null); - // $logExpected = '[" Requesting IEEE"]'; - // $this->assertSame( $logExpected, json_encode($log) ); - // $cmdExpected = '[["CmdAbeille1\/81F6\/getIeeeAddress","priority=5"]]'; - // $this->assertSame( $cmdExpected, json_encode($msgToCmd) ); - - // $GLOBALS['eqList'][$net][$addr]['ieee'] = '14B457FFFE79EBA9'; - - // // update Ep List - // $updType='epList'; - // $value='07'; - // $log = []; $msgToCmd = []; - // $abeilleParserDebug->deviceUpdate($net, $addr, $ep, $updType, $value); - // $this->assertSame( $value, $GLOBALS['eqList'][$net][$addr]['epList'] ); - // $cmdExpected = '[["CmdAbeille1\/81F6\/readAttribute","ep=07&clustId=0000&attrId=0004,0005,0010"]]'; - // $this->assertSame( $cmdExpected, json_encode($msgToCmd) ); - - // // Check status - // $GLOBALS['eqList'][$net][$addr]['status'] = "identifying"; - // $log = []; $msgToCmd = []; - // $return = $abeilleParserDebug->deviceUpdate($net, $addr, $ep, $updType, $value); - // $this->assertSame( false, $return ); - - // } - -} - - -?> - diff --git a/resources/archives/core/class/AbeilleParserTestDB.class.php b/resources/archives/core/class/AbeilleParserTestDB.class.php deleted file mode 100644 index 4f908a2221..0000000000 --- a/resources/archives/core/class/AbeilleParserTestDB.class.php +++ /dev/null @@ -1,93 +0,0 @@ -run(); - sleep(2); - $abeilleParser = new AbeilleParser; - - $group = '4343'; - - $msg = array( - 'src' => 'parser', - 'type' => 'attributeReport', - 'net' => 'Abeille1', - 'addr' => '81F6', - 'ep' => '01', - 'name' => 'Group-Membership', - 'value' => $group, - 'time' => time(), - 'lqi' => '00', - ); - - $abeilleParser->msgToAbeille2($msg); - - sleep(2); - $cmdInfoGroup = cmd::byId(27303); - - $this->assertSame( $group, $cmdInfoGroup->execCmd() ); - } - - // function test_deviceCreate() { - // fwrite(STDOUT, "\n\n" . __METHOD__ ); - - // global $log; - // global $msgToCmd; - // unset($GLOBALS['eqList']); - - // $net = "Abeille1"; - // $addr = "AAAA"; - // $GLOBALS['eqList'][$net] = array(); - // $GLOBALS['eqList'][$net][$addr] = array(); - - // $eq = &$GLOBALS['eqList'][$net][$addr]; - - // // $eq['ieee'] = "FFB457FFFE79EBFF"; - // // $eq['epFirst'] = "01"; - // // $eq['modelIdentifier'] = ""; - // // $eq['manufacturer'] = ""; - // // $eq['jsonId'] = ""; - // // $eq['jsonLocation'] = ""; - // // $eq['capa'] = ""; - - // $abeilleParser = new AbeilleParser; - - // $net = "Abeille1"; - // $addr = "AAAA"; - // $abeilleParser->deviceCreate($net, $addr); - - // sleep(2); - // $eq = Abeille::byLogicalId($net.'/'.$addr, 'Abeille'); - - // $this->assertSame( true, is_object($eq) ); - - // } -} - - -?> - diff --git a/resources/archives/core/class/AbeilleTemplateCmd.class.php b/resources/archives/core/class/AbeilleTemplateCmd.class.php deleted file mode 100644 index 88cc932009..0000000000 --- a/resources/archives/core/class/AbeilleTemplateCmd.class.php +++ /dev/null @@ -1,137 +0,0 @@ -getId(); - return AbeilleCmd::byEqLogicIdAndLogicalId( $eqLogicalId, $logicalId, false )->getConfiguration('uniqId', '-1'); - } - - /** - * Will collect all Cmd with a specific template (uniqId) - * - * @return Return all Cmd with a specific template (uniqId) - */ - public static function getCmdByTemplateUniqId( $uniqId ) { - $return = array(); - $allCmdWithUniqId = AbeilleCmd::searchConfiguration( 'uniqId' ); - - foreach ( $allCmdWithUniqId as $key=>$cmdWithUniqId ) { - if ( $cmdWithUniqId->getConfiguration('uniqId', '') == $uniqId ) { - $return[] = $cmdWithUniqId; - } - } - - return $return; - } - - /** - * Will return the 'main' parameter for the device stored in the template - * @param uniqId Id du template que l selectionne - * @param param un des paramatres principaux comme: name, isVisible, order, type, subtype, invertBinary, template... - * - * @return Return the 'main' parameter for the device stored in the template - */ - public static function getMainParamFromTemplate( $uniqId, $param ) { - $jsonArray = AbeilleTemplateCommon::getJsonForUniqId( $uniqId ); - if ($jsonArray == -1) return -1; - $keys = array_keys ( $jsonArray ); - if (count($keys)!=1) return 0; - if (!isset($jsonArray[$keys[0]][$param])) return 0; - return $jsonArray[$keys[0]][$param]; - } - - /** - * Will return the configuration item for the device stored in the template - * @param uniqId of the template that we want to use - * @param item in the configuration that we want - * - * @return Return return the configuration item for the device stored in the template if exist otherwise '' - */ - public static function getConfigurationFromTemplate( $uniqId, $item ) { - $configurationArray = self::getMainParamFromTemplate( $uniqId, 'configuration' ); - - if (isset($configurationArray[$item])) return $configurationArray[$item]; - else return ''; - } - - - - /** - * - * - */ - public static function compareAllCmdWithTemplateHtmlEnteteTable() { - echo ""; - echo "\n"; - } - - /** - * - * - */ - public static function compareAllCmdWithTemplateHtmlPiedTable() { - echo "
Cmd NameParamJeedom VauleTemplate Value


"; - } - - /** - * Will compare cmd from Abeille to their template - * - * @return Return no, Will compare cmd from Abeille to their template and will echo the result during execution in html format. - */ - public static function compareAllCmdWithTemplate($abeille) { - $items = array( 'isVisible'=>'getIsVisible', - 'name'=>'getName', - 'isHistorized'=>'getIsHistorized', - 'Type'=>'getType', - 'subType'=>'getSubType', - ); - - // 'order'=>'getOrder' - // invertBinary setDisplay('invertBinary' - // 'template'=>'getTemplate', - - // Take Abeile and check if Template value is identical - self::compareAllCmdWithTemplateHtmlEnteteTable(); - - foreach ( $abeille->getCmd() as $cmd ) { - - $uniqId = $cmd->getConfiguration( 'uniqId', -1 ); - - if ( $uniqId == -1 ) { - echo "".$cmd->getName().": This cmd doesn t have a uniqId, I can t identify it s template !\n"; - return; - } - - if (AbeilleTemplateCommon::getJsonFileNameForUniqId($uniqId)==-1) { - echo "".$cmd->getName().": This uniqId (".$uniqId."), doesn t correspond to any template !\n"; - return; - } - - foreach ( $items as $item=>$fct ) { - $templateValue = AbeilleTemplateCmd::getMainParamFromTemplate($uniqId, $item); - if ( $templateValue == -1 ) { - echo "".$cmd->getName().": Error template not found for this parameter (".$uniqId."->".$item.") !\n"; - continue; - } - if ($cmd->$fct() != $templateValue) { - echo "".$cmd->getName()."".$item."".$cmd->$fct().''.$templateValue."\n"; - // var_dump(AbeilleTemplateCommon::getJsonFileNameForUniqId( $uniqId )); - } - } - - } - self::compareAllCmdWithTemplateHtmlPiedTable(); - } - -} - - -?> diff --git a/resources/archives/core/class/AbeilleTemplateCommon.class.php b/resources/archives/core/class/AbeilleTemplateCommon.class.php deleted file mode 100644 index ceb558bc87..0000000000 --- a/resources/archives/core/class/AbeilleTemplateCommon.class.php +++ /dev/null @@ -1,98 +0,0 @@ -"; - } - - /** - * - * - */ - public static function compareTemplateHtmlPiedDePage() { - echo ""; - } - - /** - * Will return the json file name for a template uniqId - * Will return the first file found in the search. - * As uniqId is supposed to be uniq it should be the one. - * - * @return Return the json file name for a template uniqId or -1 if not found - */ - public static function getJsonFileNameForUniqId( $uniqId ) { - $templateFiles = glob('/var/www/html/plugins/Abeille/core/config/devices/*/*.json'); - foreach( $templateFiles as $templateFile ) { - $json = file_get_contents( $templateFile ); - if ( strpos($json, '"'.$uniqId.'"') > 1 ) { - return $templateFile; - } - } - return -1; - } - - /** - * Will return the json array for a template uniqId - * - * @return Return the json array for a template uniqId or -1 if not found - */ - public static function getJsonForUniqId( $uniqId ) { - $file = self::getJsonFileNameForUniqId( $uniqId ); - if ( $file == -1 ) return -1; - $jsonText = file_get_contents( $file ); - $jsonArray = json_decode($jsonText, true); - return $jsonArray; - } - - /** - * Will return all uniqId - * - * @return Return return all uniqId - */ - public static function getAllUniqId( ) { - $uniqIdList = array(); - $templateFiles = glob('/var/www/html/plugins/Abeille/core/config/devices/*/*.json'); - foreach( $templateFiles as $templateFile ) { - $jsonText = file_get_contents( $templateFile ); - $jsonArray = json_decode($jsonText, true); - if (!isset($jsonArray)) continue; - $keys = array_keys ( $jsonArray ); - if (count($keys)!=1) { - echo "Skipping file: ".$templateFile." as can t read it.\n"; - continue; - } - $key = $keys[0]; - if (isset($jsonArray[$key]['configuration'])) { - if (isset($jsonArray[$key]['configuration']['uniqId'])) - $uniqIdList[] = $jsonArray[$key]['configuration']['uniqId']; - else - echo "File: ".$templateFile." has no uniqId.\n"; - } - else { - echo "Configuration chapter not set in json.\n"; - } - } - return $uniqIdList; - } - - /** - * Will return all uniqId duplicated in the template - * - * @return Return return all uniqId duplicated - */ - public static function duplicatedUniqId() { - $doublon = array_count_values (AbeilleTemplateCommon::getAllUniqId()); - foreach ($doublon as $uniqId=>$nb) { - if ($nb>1) { - echo $uniqId." -> ".$nb."\n"; - } - } - } -} - -?> diff --git a/resources/archives/core/class/AbeilleTemplateEq.class.php b/resources/archives/core/class/AbeilleTemplateEq.class.php deleted file mode 100644 index ebe99ccba8..0000000000 --- a/resources/archives/core/class/AbeilleTemplateEq.class.php +++ /dev/null @@ -1,155 +0,0 @@ -getConfiguration('uniqId', ''); - } - - /** - * Will collect all Abeille with a specific template (uniqId) - * @param uniqId identify the json template - * - * @return Return all abeille with a specific template (uniqId) - */ - public static function getEqLogicsByTemplateUniqId( $uniqId ) { - - $allAbeillesWithUniqId = Abeille::byTypeAndSearhConfiguration( 'Abeille', 'uniqId' ); - - foreach ( $allAbeillesWithUniqId as $key=>$abeillesWithUniqId ) { - if ( $abeillesWithUniqId->getConfiguration('uniqId', '') == $uniqId ) { - $return[] = $abeillesWithUniqId; - } - } - - return $return; - } - - /** - * Will return the name o fthe device store n the template - * @param uniqId identify the json template - * - * @return Return the name o fthe device store n the template - */ - public static function getNameJeedomFromTemplate( $uniqId ) { - $jsonArray = self::getJsonForUniqId( $uniqId ); - foreach ( $jsonArray as $key=>$data ) { - return $jsonArray[$key]["type"]; - } - } - - /** - * Will return the timeout for the device stored in the template - * @param uniqId identify the json template - * - * @return Return return the timeout for the device stored in the template - */ - public static function getTimeOutFromTemplate( $uniqId ) { - $jsonArray = AbeilleTemplateCommon::getJsonForUniqId( $uniqId ); - foreach ( $jsonArray as $key=>$data ) { - return $jsonArray[$key]["timeout"]; - } - } - - /** - * Will return the categories for the device stored in the template - * @param uniqId identify the json template - * - * @return Return the categories (array) for the device stored in the template - */ - public static function getCategorieFromTemplate( $uniqId ) { - $jsonArray = AbeilleTemplateCommon::getJsonForUniqId( $uniqId ); - foreach ( $jsonArray as $key=>$data ) { - return $jsonArray[$key]["category"]; - } - } - - /** - * Will return the configuration for the device stored in the template - * @param uniqId identify the json template - * @param item field defined in configuration part of the template - * - * @return Return the configuration item for the device stored in the template if exist otherwise '' - */ - public static function getConfigurationFromTemplate( $uniqId, $item ) { - $jsonArray = AbeilleTemplateCommon::getJsonForUniqId( $uniqId ); - foreach ( $jsonArray as $key=>$data ) { - if (isset($jsonArray[$key]["configuration"][$item])) { - return $jsonArray[$key]["configuration"][$item]; - } - else { - return ''; - } - - } - } - - /** - * - * - */ - public static function compareAllParamWithTemplateHtmlEnteteTable() { - echo "\n"; - echo ''."\n"; - } - - /** - * - * - */ - public static function compareAllParamWithTemplateHtmlPiedTable() { - echo "
{{Paramètre}}Jeedom{{Modèle}}

\n"; - } - - /** - * Will return commands for the device stored in the template - * @param uniqId identify the json template - * - * @return Return the commands (array) for the device stored in the template - */ - public static function getCommandesFromTemplate( $uniqId ) { - $jsonArray = AbeilleTemplateCommon::getJsonForUniqId( $uniqId ); - foreach ( $jsonArray as $key=>$data ) { - return $jsonArray[$key]["commands"]; - } - } - - public static function compareAllParamWithTemplate($abeille) { - echo "
\n"; - echo "
\n"; - echo "

".$abeille->getHumanName()."

\n"; - - $logicalId = $abeille->getLogicalId(); - $uniqId = AbeilleTemplateEq::uniqIdUsedByAnAbeille($logicalId); - - self::compareAllParamWithTemplateHtmlEnteteTable(); - - if ( $uniqId!='') { - $items = array( - 'TimeOut' => array( 'getTimeout', 'getTimeOutFromTemplate' ), - 'icone' => array( 'getConfiguration', 'getConfigurationFromTemplate' ), - 'mainEP' => array( 'getConfiguration', 'getConfigurationFromTemplate' ), - 'poll' => array( 'getConfiguration', 'getConfigurationFromTemplate' ), - ); - - foreach ( $items as $item=>$fcts ) { - $fct0 = $fcts[0]; - $fct1 = $fcts[1]; - - if ($abeille->$fct0($item)==AbeilleTemplateEq::$fct1($uniqId, $item)) $color="green"; else $color="red"; - - echo ''.$item.' ' .$abeille->$fct0($item) . '' . AbeilleTemplateEq::$fct1($uniqId, $item) . "\n"; - } - } - - self::compareAllParamWithTemplateHtmlPiedTable(); - } - -} - -?> diff --git a/resources/archives/core/class/AbeilleTest.class.php b/resources/archives/core/class/AbeilleTest.class.php deleted file mode 100644 index 172a4b466b..0000000000 --- a/resources/archives/core/class/AbeilleTest.class.php +++ /dev/null @@ -1,30 +0,0 @@ -assertSame( 0, count($output) ); - $this->assertSame( 0, $retval ); - } - - function test_volt2pourcent() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - $this->assertSame( 0, Abeille::volt2pourcent(2700) ); - $this->assertSame( 60.0, Abeille::volt2pourcent(3000) ); - $this->assertSame( 100, Abeille::volt2pourcent(4000) ); - } - -} - - -?> - diff --git a/resources/archives/core/class/AbeilleTestDB.class.php b/resources/archives/core/class/AbeilleTestDB.class.php deleted file mode 100644 index 477d73f3c0..0000000000 --- a/resources/archives/core/class/AbeilleTestDB.class.php +++ /dev/null @@ -1,74 +0,0 @@ -assertSame( $result, json_encode(Abeille::health()) ); - } - - function test_deamon_info() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - $result = '{"state":"ok","launchable":"ok","launchable_message":""}'; - $this->assertSame( $result, json_encode(Abeille::deamon_info()) ); - } - - function test_getIEEE() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - - $address = "Abeille1/81F6"; - $IEEE_Result = "14B457FFFE79EBA9"; - - $abeille = new Abeille; - - $this->assertSame( $IEEE_Result, $abeille->getIEEE($address) ); - } - - function test_getEqFromIEEE() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - - $IEEE_Ok = "14B457FFFE79EBA9"; - $IEEE_NOk = "0000000000000000"; - - $abeille = new Abeille; - - $this->assertSame( "Ampoule1", $abeille->getEqFromIEEE($IEEE_Ok)->getName() ); - $this->assertSame( null, $abeille->getEqFromIEEE($IEEE_NOk) ); - } - - function test_checkInclusionStatus() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - $destOk = "Abeille1"; - $detNok = "AbeilleY"; - - $abeille = new Abeille; - - $this->assertSame( 0, $abeille->checkInclusionStatus($destOk) ); - $this->assertSame(-1, $abeille->checkInclusionStatus($detNok) ); - } - - function test_createRuche() { - fwrite(STDOUT, "\n\n" . __METHOD__ ); - $dest = "AbeilleX"; - - $abeille = new Abeille; - - $this->assertSame( "1303", $abeille->byLogicalId("Abeille1/0000","Abeille")->getId() ); - $this->assertSame( false, $abeille->byLogicalId($dest."/0000","Abeille") ); - $abeille->createRuche($dest); - $this->assertSame( "Ruche-".$dest, $abeille->byLogicalId($dest."/0000","Abeille")->getName() ); - } -} - - -?> - diff --git a/resources/archives/core/config/commands/Identify.json b/resources/archives/core/config/commands/Identify.json deleted file mode 100644 index 09d8c5a675..0000000000 --- a/resources/archives/core/config/commands/Identify.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "Identify": { - "subType": "other", - "logicalId": "identify", - "template": "", - "configuration": { - "topic": "identifySend", - "request": "EP=#EP#&duration=0010", - "visibilityCategory": "additionalCommand" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/Lift.json b/resources/archives/core/config/commands/Lift.json deleted file mode 100644 index 3a3b59c184..0000000000 --- a/resources/archives/core/config/commands/Lift.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "Lift": { - "isVisible": 1, - "name": "Lift", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "", - "configuration": { - "minValue": "1", - "maxValue": "254", - "historizeRound": "0", - "calculValueOffset": "", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "Lift", - "unit": "%" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/LivoloSwitchTrick1.json b/resources/archives/core/config/commands/LivoloSwitchTrick1.json deleted file mode 100644 index 87937e27aa..0000000000 --- a/resources/archives/core/config/commands/LivoloSwitchTrick1.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "LivoloSwitchTrick1": { - "subType": "other", - "template": "", - "logicalId": "LivoloSwitchTrick1", - "configuration": { - "topic": "cmd-0006", - "request": "ep=#EP#&cmd=02", - "visibilityCategory": "All", - "execAtCreation": "Yes", - "execAtCreationDelay": 9 - }, - "display": { - "forceReturnLineAfter": "0" - }, - "type": "action", - "genericType": "LIGHT_TOGGLE" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/LivoloSwitchTrick2.json b/resources/archives/core/config/commands/LivoloSwitchTrick2.json deleted file mode 100644 index 2216ab9e6d..0000000000 --- a/resources/archives/core/config/commands/LivoloSwitchTrick2.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "LivoloSwitchTrick2": { - "subType": "other", - "template": "", - "logicalId": "LivoloSwitchTrick2", - "configuration": { - "topic": "cmd-0006", - "request": "ep=#EP#&cmd=01", - "visibilityCategory": "All", - "execAtCreation": "Yes", - "execAtCreationDelay": 10 - }, - "type": "action", - "genericType": "LIGHT_ON" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/LivoloSwitchTrick3.json b/resources/archives/core/config/commands/LivoloSwitchTrick3.json deleted file mode 100644 index 37bba81a3c..0000000000 --- a/resources/archives/core/config/commands/LivoloSwitchTrick3.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "LivoloSwitchTrick3": { - "subType": "other", - "logicalId": "LivoloSwitchTrick3", - "template": "", - "configuration": { - "topic": "cmd-0006", - "request": "ep=#EP#&cmd=01", - "visibilityCategory": "All", - "execAtCreation": "Yes", - "execAtCreationDelay": 11 - }, - "type": "action", - "genericType": "LIGHT_ON" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/LivoloSwitchTrick4.json b/resources/archives/core/config/commands/LivoloSwitchTrick4.json deleted file mode 100644 index 4ba52ad09a..0000000000 --- a/resources/archives/core/config/commands/LivoloSwitchTrick4.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "LivoloSwitchTrick4": { - "subType": "other", - "logicalId": "LivoloSwitchTrick4", - "template": "", - "configuration": { - "topic": "cmd-0006", - "request": "ep=#EP#&cmd=01", - "visibilityCategory": "All", - "execAtCreation": "Yes", - "execAtCreationDelay": 12 - }, - "type": "action", - "genericType": "LIGHT_ON" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/PuissanceCurrentPrise.json b/resources/archives/core/config/commands/PuissanceCurrentPrise.json deleted file mode 100644 index 927735fcd1..0000000000 --- a/resources/archives/core/config/commands/PuissanceCurrentPrise.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "PuissanceCurrentPrise": { - "isVisible": 1, - "invertBinary": "0", - "isHistorized": "1", - "name": "Current", - "subType": "numeric", - "template": "badge", - "configuration": { - "repeatEventManagement": "always", - "historizeRound": "0", - "maxValue": "300", - "minValue": "0", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0B04-#EP#-0508", - "unit": "mA", - "genericType": "" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/PuissanceVoltagePrise.json b/resources/archives/core/config/commands/PuissanceVoltagePrise.json deleted file mode 100644 index 36a247a8cd..0000000000 --- a/resources/archives/core/config/commands/PuissanceVoltagePrise.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "PuissanceVoltagePrise": { - "isVisible": 1, - "invertBinary": "0", - "isHistorized": "1", - "name": "Voltage", - "subType": "numeric", - "template": "badge", - "configuration": { - "repeatEventManagement": "always", - "historizeRound": "0", - "maxValue": "300", - "minValue": "0", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0B04-#EP#-0505", - "unit": "V", - "genericType": "" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/Tilt.json b/resources/archives/core/config/commands/Tilt.json deleted file mode 100644 index 49fe9cb3c5..0000000000 --- a/resources/archives/core/config/commands/Tilt.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Tilt": { - "subType": "numeric", - "template": "", - "configuration": { - "minValue": "0", - "maxValue": "90", - "historizeRound": "0", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "Tilt", - "unit": "deg" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/Xiaomi-ff01.json b/resources/archives/core/config/commands/Xiaomi-ff01.json deleted file mode 100644 index 0eeceb5915..0000000000 --- a/resources/archives/core/config/commands/Xiaomi-ff01.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Xiaomi-ff01": { - "isVisible": 0, - "name": "Specific", - "isHistorized": "0", - "subType": "string", - "invertBinary": "0", - "template": "", - "configuration": { - "visibilityCategory": "additionalCommand" - }, - "type": "info", - "logicalId": "0000-#EP#-ff01-removed", - "comment": "changed ff01 to ff01removed to avoid homebridge to crash as Hex data are in this command info." - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint-Mult.json b/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint-Mult.json deleted file mode 100644 index 65a51c934e..0000000000 --- a/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint-Mult.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "act_tuyaEF00-Set-Setpoint-Mult": { - "comment": "Tuya set setpoint with multiply", - "logicalId": "#EP#-TuyaEF00-Set-Setpoint-Mult", - "subType": "slider", - "template": "", - "configuration": { - "topic": "cmd-tuyaEF00", - "request": "ep=#EP#&cmd=setValueMult&mult=#mult#&data=#slider#", - "minValue": 5, - "maxValue": 30 - }, - "type": "action", - "genericType": "THERMOSTAT_SET_SETPOINT" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint.json b/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint.json deleted file mode 100644 index c681a173de..0000000000 --- a/resources/archives/core/config/commands/act_tuyaEF00-Set-Setpoint.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "act_tuyaEF00-Set-Setpoint": { - "logicalId": "#EP#-TuyaEF00-Set-Setpoint", - "subType": "slider", - "template": "", - "configuration": { - "topic": "cmd-tuyaEF00", - "request": "ep=#EP#&cmd=setValue&data=#slider#", - "minValue": 5, - "maxValue": 30 - }, - "type": "action", - "genericType": "THERMOSTAT_SET_SETPOINT" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/act_tuyaEF00-SetThermostatMode.json b/resources/archives/core/config/commands/act_tuyaEF00-SetThermostatMode.json deleted file mode 100644 index 7074d4b35b..0000000000 --- a/resources/archives/core/config/commands/act_tuyaEF00-SetThermostatMode.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "act_tuyaEF00-SetThermostatMode": { - "subType": "other", - "template": "", - "configuration": { - "topic": "cmd-tuyaEF00", - "request": "ep=#EP#&cmd=setThermostat-Mode" - }, - "type": "action", - "genericType": "GENERIC_ACTION" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/act_zbConfigureReporting.json b/resources/archives/core/config/commands/act_zbConfigureReporting.json deleted file mode 100644 index 62cc1cd3fc..0000000000 --- a/resources/archives/core/config/commands/act_zbConfigureReporting.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "act_zbConfigureReporting": { - "comment": "Generic configure reporting command", - "comment2": "#MININTERVAL#, #MAXINTERVAL# & #CHANGEVAL# are expected in HEXA with proper formatting", - "subType": "other", - "logicalId": "configReport-#EP#-#CLUSTID#-#ATTRID#", - "configuration": { - "topic": "configureReporting", - "request": "ep=#EP#&clustId=#CLUSTID#&attrType=#ATTRTYPE#&attrId=#ATTRID#&minInterval=#MININTERVAL#&maxInterval=#MAXINTERVAL#&changeVal=#CHANGEVAL#" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/danfossTemperatureConsigneGet.json b/resources/archives/core/config/commands/danfossTemperatureConsigneGet.json deleted file mode 100644 index 10378c396b..0000000000 --- a/resources/archives/core/config/commands/danfossTemperatureConsigneGet.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "danfossTemperatureConsigneGet": { - "isVisible": 0, - "logicalId": "#EP#-danfossTemperatureConsigneGet", - "isHistorized": "0", - "subType": "other", - "invertBinary": "0", - "template": "", - "configuration": { - "topic": "readAttribute", - "request": "ep=01&clustId=0201&attrId=0012", - "visibilityCategory": "additionalCommand" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/danfossTemperatureConsigneValue.json b/resources/archives/core/config/commands/danfossTemperatureConsigneValue.json deleted file mode 100644 index a9136841c6..0000000000 --- a/resources/archives/core/config/commands/danfossTemperatureConsigneValue.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "danfossTemperatureConsigneValue": { - "isVisible": 1, - "logicalId": "#EP#-danfossTemperatureConsigneValue", - "isHistorized": "1", - "subType": "numeric", - "template": "badge", - "invertBinary": "0", - "configuration": { - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0201-01-0012", - "unit": "\u00b0C", - "genericType": "TEMPERATURE" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/inf_time-Timestamp.json b/resources/archives/core/config/commands/inf_time-Timestamp.json deleted file mode 100644 index 93f54890a1..0000000000 --- a/resources/archives/core/config/commands/inf_time-Timestamp.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "inf_time-Timestamp": { - "subType": "numeric", - "template": "badge", - "configuration": { - "visibilityCategory": "Time" - }, - "type": "info", - "logicalId": "Time-TimeStamp", - "genericType": "GENERIC_INFO" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/inf_zbAttr-0000-SWBuildID.json b/resources/archives/core/config/commands/inf_zbAttr-0000-SWBuildID.json deleted file mode 100644 index 2ed2ad0722..0000000000 --- a/resources/archives/core/config/commands/inf_zbAttr-0000-SWBuildID.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "inf_zbAttr-0000-SWBuildID": { - "type": "info", - "subType": "string", - "genericType": "GENERIC_INFO", - "configuration": { - "visibilityCategory": "All" - }, - "logicalId": "0000-#EP#-4000" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/levelVolet.json b/resources/archives/core/config/commands/levelVolet.json deleted file mode 100644 index ecb24d8e8d..0000000000 --- a/resources/archives/core/config/commands/levelVolet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "levelVolet": { - "isVisible": 1, - "name": "Level", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "", - "configuration": { - "minValue": "0", - "maxValue": "100", - "historizeRound": "0", - "calculValueOffset": "#value#\/255*100", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0008-01-0000", - "unit": "%", - "genericType": "FLAP_SLIDER" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Lift.json b/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Lift.json deleted file mode 100644 index a2515834b1..0000000000 --- a/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Lift.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "moveToLiftAndTiltBSO_Lift": { - "isVisible": 1, - "logicalId": "#EP#-SetBSOLift", - "subType": "slider", - "value": "Lift", - "template": "", - "configuration": { - "minValue": "1", - "maxValue": "254", - "topic": "moveToLiftAndTiltBSO", - "request": "EP=01&lift=#slider#&inclinaison=#cmdInfo_Tilt_#&duration=10", - "visibilityCategory": "All" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Tilt.json b/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Tilt.json deleted file mode 100644 index 036599b198..0000000000 --- a/resources/archives/core/config/commands/moveToLiftAndTiltBSO_Tilt.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "moveToLiftAndTiltBSO_Tilt": { - "isVisible": 1, - "logicalId": "#EP#-SetBSOTilt", - "subType": "slider", - "value": "Tilt", - "template": "", - "configuration": { - "minValue": "0", - "maxValue": "90", - "topic": "moveToLiftAndTiltBSO", - "request": "EP=01&inclinaison=#slider#&duration=10", - "visibilityCategory": "All" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/offGroup.json b/resources/archives/core/config/commands/offGroup.json deleted file mode 100644 index b48ab528ee..0000000000 --- a/resources/archives/core/config/commands/offGroup.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "offGroup": { - "isVisible": 1, - "logicalId": "#EP#-OffGroup", - "subType": "other", - "template": "", - "configuration": { - "topic": "CmdAbeille\/#addrGroup#\/OnOffGroup", - "request": "Off", - "visibilityCategory": "All" - }, - "display": { - "icon": "<\/i>" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/offGroupBroadcast.json b/resources/archives/core/config/commands/offGroupBroadcast.json deleted file mode 100644 index a0f7b5e018..0000000000 --- a/resources/archives/core/config/commands/offGroupBroadcast.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "offGroupBroadcast": { - "logicalId": "#EP#-offGroupBroadcast", - "isVisible": 1, - "subType": "other", - "template": "", - "configuration": { - "topic": "CmdAbeille\/#addrGroup#\/offGroupBroadcast", - "request": "Off", - "visibilityCategory": "All" - }, - "display": { - "icon": "<\/i>" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/offVolet.json b/resources/archives/core/config/commands/offVolet.json deleted file mode 100644 index 17d9ef915f..0000000000 --- a/resources/archives/core/config/commands/offVolet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "offVolet": { - "isVisible": 1, - "logicalId": "#EP#-offVolet", - "subType": "other", - "template": "", - "configuration": { - "topic": "OnOff", - "request": "Off", - "visibilityCategory": "All" - }, - "type": "action", - "genericType": "FLAP_DOWN" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/onGroup.json b/resources/archives/core/config/commands/onGroup.json deleted file mode 100644 index b5825ee759..0000000000 --- a/resources/archives/core/config/commands/onGroup.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "onGroup": { - "isVisible": 1, - "logicalId": "#EP#-OnGroup", - "subType": "other", - "template": "", - "configuration": { - "topic": "CmdAbeille\/#addrGroup#\/OnOffGroup", - "request": "On", - "visibilityCategory": "All" - }, - "display": { - "icon": "<\/i>" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/onGroupBroadcast.json b/resources/archives/core/config/commands/onGroupBroadcast.json deleted file mode 100644 index 7622ff5e21..0000000000 --- a/resources/archives/core/config/commands/onGroupBroadcast.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "onGroupBroadcast": { - "logicalId": "#EP#-onGroupBroadcast", - "isVisible": 1, - "subType": "other", - "template": "", - "configuration": { - "topic": "CmdAbeille\/#addrGroup#\/onGroupBroadcast", - "request": "On", - "visibilityCategory": "All" - }, - "display": { - "icon": "<\/i>" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/onVolet.json b/resources/archives/core/config/commands/onVolet.json deleted file mode 100644 index e4ccc0e1ff..0000000000 --- a/resources/archives/core/config/commands/onVolet.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "onVolet": { - "isVisible": 1, - "logicalId": "#EP#-onVolet", - "subType": "other", - "template": "", - "configuration": { - "topic": "OnOff", - "request": "On", - "visibilityCategory": "All" - }, - "type": "action", - "genericType": "FLAP_UP" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/poll-0B04-0505-0508-050B.json b/resources/archives/core/config/commands/poll-0B04-0505-0508-050B.json deleted file mode 100644 index f944ed961c..0000000000 --- a/resources/archives/core/config/commands/poll-0B04-0505-0508-050B.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "poll-0B04-0505-0508-050B": { - "isVisible": 0, - "logicalId": "#EP#-poll-0B04-0505-0508-050B", - "isHistorized": "0", - "subType": "other", - "invertBinary": "0", - "template": "", - "configuration": { - "topic": "readAttribute", - "request": "ep=#EP#&clustId=0B04&attrId=0505,0508,050B", - "Polling": "cron", - "PollingOnCmdChange": "0006-#EP#-0000", - "PollingOnCmdChangeDelay": "5" - }, - "type": "action", - "comment": "Triggered by 0006-#EP#-0000 & every minutes" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/setReportLightColorSpectre.json b/resources/archives/core/config/commands/setReportLightColorSpectre.json deleted file mode 100644 index 0b277ea855..0000000000 --- a/resources/archives/core/config/commands/setReportLightColorSpectre.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "setReportLightColorSpectre": { - "logicalId": "#EP#-setReportLightColorSpectre", - "subType": "other", - "template": "", - "configuration": { - "topic": "setReport", - "request": "targetEndpoint=#EP#&ClusterId=0300&AttributeId=0007&AttributeType=21", - "visibilityCategory": "Network", - "execAtCreation": "Yes", - "execAtCreationDelay": 11 - }, - "type": "action", - "nextLine": "after" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/setReportPuissanceLegrand.json b/resources/archives/core/config/commands/setReportPuissanceLegrand.json deleted file mode 100644 index c542b9b6f0..0000000000 --- a/resources/archives/core/config/commands/setReportPuissanceLegrand.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "setReportPuissanceLegrand": { - "logicalId": "#EP#-setReportPuissanceLegrand", - "subType": "other", - "template": "", - "configuration": { - "topic": "setReport", - "request": "targetEndpoint=#EP#&ClusterId=0B04&AttributeId=050B&AttributeType=29", - "visibilityCategory": "Network", - "execAtCreation": "Yes", - "execAtCreationDelay": 11 - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/spiritBatterie-Pourcent.json b/resources/archives/core/config/commands/spiritBatterie-Pourcent.json deleted file mode 100644 index b88f37f37e..0000000000 --- a/resources/archives/core/config/commands/spiritBatterie-Pourcent.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "spiritBatterie-Pourcent": { - "isVisible": 0, - "name": "BatteriePourcent", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "vuMeter", - "configuration": { - "minValue": "0", - "maxValue": "100", - "historizeRound": "1", - "visibilityCategory": "Network", - "calculValueOffset": "#value#\/2" - }, - "type": "info", - "logicalId": "0001-01-0021", - "unit": "%", - "genericType": "BATTERY" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/spiritTemperature.json b/resources/archives/core/config/commands/spiritTemperature.json deleted file mode 100644 index a2a53733d9..0000000000 --- a/resources/archives/core/config/commands/spiritTemperature.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "spiritTemperature": { - "isVisible": 1, - "logicalId": "#EP#-spiritTemperature", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "tempIMG", - "configuration": { - "calculValueOffset": "#value#\/100", - "historizeRound": "1", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0201-#EP#-0000", - "unit": "\u00b0C", - "genericType": "TEMPERATURE" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/spiritUnknown1.json b/resources/archives/core/config/commands/spiritUnknown1.json deleted file mode 100644 index 560effbbea..0000000000 --- a/resources/archives/core/config/commands/spiritUnknown1.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "spiritUnknown1": { - "isVisible": 0, - "logicalId": "#EP#-spiritUnknown1", - "isHistorized": "0", - "subType": "numeric", - "invertBinary": "0", - "template": "badge", - "configuration": { - "calculValueOffset": "#value#", - "historizeRound": "1", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0201-#EP#-0012", - "unit": "", - "genericType": "" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/spiritUnknown2.json b/resources/archives/core/config/commands/spiritUnknown2.json deleted file mode 100644 index e2279c7802..0000000000 --- a/resources/archives/core/config/commands/spiritUnknown2.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "spiritUnknown2": { - "isVisible": 0, - "logicalId": "#EP#-spiritUnknown2", - "isHistorized": "0", - "subType": "numeric", - "invertBinary": "0", - "template": "badge", - "configuration": { - "calculValueOffset": "#value#", - "historizeRound": "1", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0201-#EP#-0014", - "unit": "", - "genericType": "" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/temperatureLight.json b/resources/archives/core/config/commands/temperatureLight.json deleted file mode 100644 index 45e2a73511..0000000000 --- a/resources/archives/core/config/commands/temperatureLight.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "temperatureLight": { - "isVisible": 1, - "name": "temperatureLight", - "isHistorized": "0", - "subType": "numeric", - "invertBinary": "0", - "template": "badge", - "configuration": { - "visibilityCategory": "All", - "minValue": "2000", - "maxValue": "6500", - "visibiltyTemplate": "1", - "calculValueOffset": "intval(1000000\/#value#)" - }, - "type": "info", - "logicalId": "0300-#EP#-0007", - "unit": "K", - "genericType": "LIGHT_COLOR_TEMP" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/temperatureLight1.json b/resources/archives/core/config/commands/temperatureLight1.json deleted file mode 100644 index a9ab04fac2..0000000000 --- a/resources/archives/core/config/commands/temperatureLight1.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "temperatureLight1": { - "isVisible": 1, - "name": "temperatureLight", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "badge", - "configuration": { - "visibilityCategory": "All", - "minValue": "2700", - "maxValue": "5000", - "visibiltyTemplate": "1" - }, - "type": "info", - "logicalId": "Temperature-Light", - "unit": "K", - "genericType": "LIGHT_COLOR_TEMP" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/temperatureLight2.json b/resources/archives/core/config/commands/temperatureLight2.json deleted file mode 100644 index 3124f06463..0000000000 --- a/resources/archives/core/config/commands/temperatureLight2.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "temperatureLight2": { - "isVisible": 1, - "name": "temperatureLight", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "badge", - "configuration": { - "visibilityCategory": "All", - "minValue": "2000", - "maxValue": "6500", - "visibiltyTemplate": "1" - }, - "type": "info", - "logicalId": "Temperature-Light", - "unit": "K", - "genericType": "LIGHT_COLOR_TEMP" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/temperatureLightV2.json b/resources/archives/core/config/commands/temperatureLightV2.json deleted file mode 100644 index af73e103bb..0000000000 --- a/resources/archives/core/config/commands/temperatureLightV2.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "temperatureLightV2": { - "isVisible": 1, - "name": "TemperatureLight", - "isHistorized": "1", - "subType": "numeric", - "invertBinary": "0", - "template": "", - "configuration": { - "historizeRound": "0", - "visibilityCategory": "All" - }, - "type": "info", - "logicalId": "0300-#EP#-0007", - "unit": "K", - "nextLine": "after" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/testSmoke.json b/resources/archives/core/config/commands/testSmoke.json deleted file mode 100644 index f4f059b638..0000000000 --- a/resources/archives/core/config/commands/testSmoke.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "testSmoke": { - "isVisible": 1, - "logicalId": "#EP#-testSmoke", - "subType": "other", - "configuration": { - "topic": "WriteAttributeRequestVibration", - "request": "Proprio=115f&clusterId=0500&attributeId=fff1&attributeType=23&value=03010000&repeat=3", - "visibilityCategory": "Network" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/toggleGroup.json b/resources/archives/core/config/commands/toggleGroup.json deleted file mode 100644 index f44d83eed5..0000000000 --- a/resources/archives/core/config/commands/toggleGroup.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "toggleGroup": { - "logicalId": "#EP#-ToggleGroup", - "isVisible": 1, - "subType": "other", - "template": "", - "configuration": { - "topic": "CmdAbeille\/#addrGroup#\/OnOffGroup", - "request": "Toggle", - "visibilityCategory": "All" - }, - "display": { - "icon": "<\/i>", - "forceReturnLineAfter": "0" - }, - "type": "action" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/commands/zb-CustomInfo.json b/resources/archives/core/config/commands/zb-CustomInfo.json deleted file mode 100644 index edce01a40d..0000000000 --- a/resources/archives/core/config/commands/zb-CustomInfo.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "zb-CustomInfo": { - "name": "Custom info", - "subType": "numeric", - "configuration": [], - "type": "info", - "logicalId": "#CLUSTID#-#EP#-#ATTRID#" - } -} \ No newline at end of file diff --git a/resources/archives/core/config/setAffichage.php b/resources/archives/core/config/setAffichage.php deleted file mode 100644 index 7f396ffefd..0000000000 --- a/resources/archives/core/config/setAffichage.php +++ /dev/null @@ -1,174 +0,0 @@ - {}.new" \;'."\n"; - echo 'Pour remplacer les anciens par les nouveaux:find . -name "[!.]*.json" -print -exec mv {}.new {} \;'."\n"; - exit; - } - - // $NE="LWB010"; - // $NE="LWB006"; - $file=$argv[1]; - - if ( $debug ) echo "File to process: ".$file."\n"; - - -$commands = array( - "0000-0000"=>"Network", // ZCL Version - "0000-0001"=>"Network", // SW / Appli Version - "0000-0002"=>"Network", // Stack Version - "0000-0003"=>"Network", // HW Version - "0000-0004"=>"Network", // Manufacturer Name - "0000-0005"=>"Network", // Model Identifier - "0000-0006"=>"Network", // Date Code - "0000-0010"=>"Network", // Location Description - "0000-03-0001"=>"Network", // SW / Appli Version - "0000-03-0004"=>"Network", // Manufacturer Name - "0000-03-0005"=>"Network", // Model Identifier - "0000-03-4000"=>"All", - "0000-0B-0004"=>"Network", // Manufacturer Name - "0000-0B-0005"=>"Network", // Model Identifier - "0000-0B-4000"=>"Network", - "0000-4000"=>"Network", - - "0000-ff01"=>"additionalCommand", // Proprio Xiaomi - - "0001-0021"=>"Network", // Batterie % based on Ikea sniff - - "0006-0000"=>"All", // On/Off Cluster - OnOff - "0006-02-0000"=>"All", // On/Off Cluster - OnOff - "0006-03-0000"=>"All", // On/Off Cluster - OnOff - "0006-04-0000"=>"All", // On/Off Cluster - OnOff - "0006-05-0000"=>"All", // On/Off Cluster - OnOff - "0006-0B-0000"=>"All", // On/Off Cluster - OnOff - "0006-8000"=>"All", // Multi Press on Xiaomi Switch - "0008-0000"=>"All", // CurrentLevel - "0008-03-0000"=>"All", // CurrentLevel - "0008-0B-0000"=>"All", // CurrentLevel - "000C-03-0055"=>"All", // Rotation angle cube ? - "000C-03-ff05"=>"All", // Rotation cube ? - "000c-ff05"=>"All", // Rotation cube ? - "0012-0055"=>"All", // Mouvement Cube - "0012-02-0055"=>"All", // Mouvement Cube - "0101-0055"=>"All", // Sensor Vibration: 1: Vibration, 2: rotation, 3: chute - "0101-0503"=>"All", // Sensor Vibration: angle - "0300-0003"=>"All", // colorX: Ampoule Ikea - "0300-0004"=>"All", // colorY: Ampoule Ikea - "0400-0000"=>"All", // Luminosite - "0402-0000"=>"All", // Temperature - "0403-0000"=>"All", // Pression - "0403-0010"=>"Network", // Pression - "0403-0014"=>"Network", // Pression Scale - "0405-0000"=>"All", // Humidite - "0406-0000"=>"All", // Presence - "0500-0000"=>"All", // Smoke - - "2200K"=>"All", - "2700K"=>"All", - "4000K"=>"All", - "Batterie-Pourcent"=>"Network", - "Batterie-Volt"=>"Network", - "BindShortToZigateEtat"=>"Network", - "BindShortToZigateLevel"=>"Network", - "BindToZigateEtat"=>"Network", - "BindToZigateLevel"=>"Network", - "Blanc"=>"All", - "Bleu"=>"All", - "Cancel"=>"All", - "Colour"=>"All", - "DownGroup"=>"All", - "getBattery"=>"All", - "getColorX"=>"additionalCommand", - "getColorY"=>"additionalCommand", - "getEtat"=>"additionalCommand", - "getLevel"=>"additionalCommand", - "getManufacturerName"=>"additionalCommand", - "getModelIdentifier"=>"additionalCommand", - "getSWBuild"=>"additionalCommand", - "Group-Membership"=>"Network", - "High"=>"Network", - "Identify"=>"additionalCommand", - "IEEE-Addr"=>"Network", - "Level Stop"=>"All", - "Level"=>"All", - "Link-Quality"=>"Network", - "Low"=>"Network", - "Medium"=>"Network", - "Off"=>"All", - "Off1"=>"All", - "Off2"=>"All", - "On"=>"All", - "On1"=>"All", - "On2"=>"All", - "online"=>"Network", - "Power-Source"=>"Network", - "Rouge"=>"All", - "Sc1"=>"All", - "Sc2"=>"All", - "Sc3"=>"All", - "Sensivity High"=>"Network", - "Sensivity Low"=>"Network", - "Sensivity Medium"=>"Network", - "setReportEtat"=>"Network", - "setReportLevel"=>"Network", - "Short-Addr"=>"Network", - "Start"=>"All", - "Stop"=>"All", - "tbd---conso--"=>"All", - "tbd---puissance--"=>"All", - "tbd---puissance-"=>"All", - "Temperature"=>"All", - "Test"=>"Network", - "Time-Time"=>"Time", - "Toggle"=>"All", - "Toggle1"=>"All", - "Toggle2"=>"All", - "UpGroup"=>"All", - "Var-Duration"=>"All", - "Var-ExpiryTime"=>"All", - "Var-RampUpDown"=>"All", - "Vert"=>"All", - ); - - - // $string = file_get_contents("./".$NE."/".$NE.".json"); - $string = file_get_contents($file); - $json = json_decode($string, true); - - $fileExploded = explode("/",$file); - // var_dump( $fileExploded ); - $NE = $fileExploded[1]; - // var_dump( $json[$NE]["Commandes"] ); - - foreach ( $json as $id=>$equipment ) { - if ( $debug ) var_dump( $id ); - foreach ( $equipment["commands"] as $key=>$command ) { - // var_dump($command["configuration"]); - // var_dump($command["configuration"]["visibilityCategory"]); - if ( isset( $command["configuration"] ) ) { - if ( isset( $command["configuration"]["visibilityCategory"] ) ) { - if ( $debug ) echo $key.'->'.$command["configuration"]["visibilityCategory"]."\n"; - } - else { - if ( $debug ) echo $key . "\n"; - $json[$id]["commands"][$key]["configuration"]["visibilityCategory"] = $commands[$key]; - } - } - else { - if ( $debug ) echo $key . "\n"; - $json[$id]["commands"][$key]["configuration"] = array( "visibilityCategory" => $commands[$key] ); - // $json[$NE]["Commandes"][$key]["configuration"]["visibilityCategory"] = $commands[$key]; - } - } - } - - - if ( $debug==0 ) echo json_encode($json); -?> diff --git a/resources/archives/core/php/AbeilleTest.php b/resources/archives/core/php/AbeilleTest.php deleted file mode 100644 index a684901f65..0000000000 --- a/resources/archives/core/php/AbeilleTest.php +++ /dev/null @@ -1,549 +0,0 @@ -sendCmdToZigate( 'Abeille1', '0092', '0006', "0283E4010102" ); - } - - if ($test==2) { - echo "ON / OFF with no effects: Toggle avec command zigate 0530 idem as test == 1\n"; - - $addressMode = "02"; // 01 pour groupe, 02 pour NE - $targetShortAddress = $argv[2]; - $sourceEndpoint = "01"; - $destinationEndpoint = "01"; - $profile = "0104"; - $cluster = "0006"; - $securityMode = "02"; - $radius = "30"; - // $dataLength = "16"; - - $FrameControlField = "11"; - $SQN = "00"; - $cmd = "02"; // Toggle - - $data2 = $FrameControlField . $SQN . $cmd; - $dataLength = sprintf("%02s",dechex(strlen( $data2 )/2)); - - $data1 = $addressMode . $targetShortAddress . $sourceEndpoint . $destinationEndpoint . $cluster . $profile . $securityMode . $radius . $dataLength; - - $data = $data1 . $data2; - $lenth = sprintf("%04s",dechex(strlen( $data )/2)); - - $cmdQueue->sendCmdToZigate( 'Abeille1', '0530', $lenth, $data ); - } - - if ($test==3) { - echo "Windows Covering test for Store Ikea: Up\n"; - - $addressMode = "02"; // 01 pour groupe, 02 pour NE - $targetShortAddress = $argv[2]; - $sourceEndpoint = "01"; - $destinationEndpoint = "01"; - $profile = "0104"; - $cluster = "0102"; - $securityMode = "02"; - $radius = "30"; - // $dataLength = "16"; - - $FrameControlField = "11"; - $SQN = "00"; - $cmd = "00"; // 00: Up, 01: Down, 02: Stop, 04: Go to lift value (not supported), 05: Got to lift pourcentage. - - $data2 = $FrameControlField . $SQN . $cmd; - $dataLength = sprintf("%02s",dechex(strlen( $data2 )/2)); - - $data1 = $addressMode . $targetShortAddress . $sourceEndpoint . $destinationEndpoint . $cluster . $profile . $securityMode . $radius . $dataLength; - - $data = $data1 . $data2; - $lenth = sprintf("%04s",dechex(strlen( $data )/2)); - - $cmdQueue->sendCmdToZigate( 'Abeille1', '0530', $lenth, $data ); - - } - - if ($test==4) { - echo "Windows Covering test for Store Ikea: lift to %\n"; - - $addressMode = "02"; // 01 pour groupe, 02 pour NE - $targetShortAddress = $argv[2]; - $sourceEndpoint = "01"; - $destinationEndpoint = "01"; - $profile = "0104"; - $cluster = "0102"; - $securityMode = "02"; - $radius = "30"; - // $dataLength = "16"; - - $FrameControlField = "11"; - $SQN = "00"; - $cmd = "05"; // 00: Up, 01: Down, 02: Stop, 04: Go to lift value (not supported), 05: Got to lift pourcentage. - $liftValue = $argv[3]; - - $data2 = $FrameControlField . $SQN . $cmd . $liftValue . $liftValue; - $dataLength = sprintf("%02s",dechex(strlen( $data2 )/2)); - - $data1 = $addressMode . $targetShortAddress . $sourceEndpoint . $destinationEndpoint . $cluster . $profile . $securityMode . $radius . $dataLength; - - $data = $data1 . $data2; - $lenth = sprintf("%04s",dechex(strlen( $data )/2)); - - $cmdQueue->sendCmdToZigate( 'Abeille1', '0530', $lenth, $data ); - - } - - if ($test==5) { - echo "Curtain test Up\n"; - - $Command['addr']="727C"; - $Command['ep']="01"; - - $cmd = "0530"; - - //
- // - // - // - // - // - // - // - // - - // ZCL Control Field - // ZCL SQN - // Command Id - // .... - - $addrMode = "02"; - $addr = $Command['addr']; - $srcEp = "01"; - $dstEp = $Command['ep']; - $profId = "0104"; - $clustId = 'EF00'; - $secMode = "02"; - $radius = "1E"; - - /* ZCL header */ - $fcf = "11"; // Frame Control Field - $sqn = "23"; - $cmdId = "00"; - - $field1 = "00"; - $counterTuya = "01"; // Set to 1, in traces increasse all the time. Not sure if mandatory to increase. - $field3 = "01"; - $field4 = "04"; - $field5 = "00"; - $field6 = "01"; - $cmdIdTuya = "01"; // $Command['cmd']; - - $data2 = $fcf.$sqn.$cmdId.$field1.$counterTuya.$field3.$field4.$field5.$field6.$cmdIdTuya; - $dataLen2 = sprintf("%02s", dechex(strlen($data2) / 2)); - - $data1 = $addrMode.$addr.$srcEp.$dstEp.$clustId.$profId.$secMode.$radius.$dataLen2; - $data = $data1.$data2; - // $lenth = sprintf("%04x", strlen($data) / 2); - - echo $data."\n"; - $cmdQueue->sendCmdToZigate( 'Abeille1', $cmd, $data ); - - } - } - - // Send a L2 Command to the queue to be processed - if ( (100<=$test) && ($test<200) ) { - echo "To execute this test Abeille Daemon has to run.\n"; - - $msg = array(); - // $msgAbeille->priority = 1; - - if ($test==100) { - echo "Test pour BSO\n"; - echo "php AbeilleTest.php 100 adrese lift inclinaison duree\n"; - echo "adresse: 4 digit\n"; - echo "lift: 2 digit\n"; - echo "inclinaison: 2 digit\n"; - echo "duree: 4 digit, FFFF pour vitesse max\n"; - - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/moveToLiftAndTiltBSO'; - $msg['payload'] = 'EP=01&lift='.$argv[3].'&inclinaison='.$argv[4].'&duration='.$argv[5]; - } - - if ($test==108) { - echo "On Off Test\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/OnOff'; - $msg['payload'] = 'Action=Toggle&EP='.$argv[3]; - } - - if ($test==109) { - echo "On Off Test\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/OnOff'; - $msg['payload'] = 'Toggle'; - } - - if ($test==110) { - echo "Reset Ruche\n"; - $msg['topic'] = 'CmdAbeille1/0000/reset'; - $msg['payload'] = 'reset'; - } - - if ($test==111) { - echo "Used to Test PDM messages and dev the PDM feature\n"; - $msg['topic'] = 'CmdAbeille1/0000/PDM'; - $msg['payload'] = 'E_SL_MSG_PDM_HOST_AVAILABLE'; - } - - if ($test==112) { - echo "Test envoie Cmd With Tempo\n"; - $msg['topic'] = 'Tempo'.'CmdAbeille1/'.$argv[2].'/readAttribute' . '&time=' . (time() + 3); - $msg['payload'] = 'ep=01&clustId=0B04&attrId=050B'; - } - - // All Cluster 0000 - attribut 0 to 7 - if ($test==113) { - echo "Test envoie Cmd to get ZCL version\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0000'; - } - - if ($test==114) { - echo "Test envoie Cmd to get Application version\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0001'; - } - - if ($test==115) { - echo "Test envoie Cmd to get Stack version\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0002'; - } - - if ($test==116) { - echo "Test envoie Cmd to get HW version\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0003'; - } - - if ($test==117) { - echo "Test envoie Cmd to get ManufacturerName\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0004'; - } - - if ($test==118) { - echo "Test envoie Cmd to get ModelIdentifier\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0005'; - } - - if ($test==119) { - echo "Test envoie Cmd to get DateCode\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0006'; - } - - if ($test==120) { - echo "Test envoie Cmd to get PowerSource\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0000&attrId=0007'; - } - - if ($test==121) { - echo "Test envoie Cmd to get batterie voltage\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0001&attrId=0021'; - } - - if ($test==122) { - echo "Test envoie Cmd to bind a cluster\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/bindShort'; - $msg['payload'] = 'targetExtendedAddress=00158D0001FFD6E9&targetEndpoint=01&ClusterId=0102&reportToAddress=00158D0001B22E24'; - } - - if ($test==123) { - echo "Test envoie Cmd to setReport an attribut\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/setReport'; - $msg['payload'] = 'targetEndpoint=01&ClusterId=0102&AttributeId=0008&AttributeType=20'; - } - - if ($test==124) { - echo "Test envoie Cmd to DiscoverAttributesCommand\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/discoverAttributes'; - $msg['payload'] = 'ep=01&clustId='.$argv[3].'&startAttrId=0000&maxAttrId=FF'; - } - - if ($test==125) { - echo "Test envoie Cmd to Discover IEEE\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/getIeeeAddress'; - $msg['payload'] = ''; - } - - if ($test==126) { - echo "Test recuperation parametre Scene Count\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0005&attrId=0000'; - } - - if ($test==127) { - echo "Test recuperation parametre Scene Current\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0005&attrId=0001'; - } - - if ($test==128) { - echo "Test recuperation parametre Group Current for scene\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0005&attrId=0002'; - } - - if ($test==129) { - echo "Test recuperation parametre scene active\n"; - $msg['topic'] = 'CmdAbeille1/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0005&attrId=0003'; - } - - if ($test==130) { - echo "Remove Group Tele Innr EP 1, 3-8\n"; - $msg['topic'] = 'CmdAbeille1/0000/removeGroup'; - $msg['payload'] = 'address='.$argv[2].'&DestinationEndPoint='.$argv[3].'&groupAddress='.$argv[4]; - } - - if ($test==131) { - echo "Read white spectre color of an Ikea bulb\n"; - $msg['topic'] = 'CmdAbeille2/'.$argv[2].'/readAttribute'; - $msg['payload'] = 'ep=01&clustId=0300&attrId=0007'; - } - - if ($test==132) { - echo "Set Time to Zigate\n"; - $msg['topic'] = 'CmdAbeille' . $argv[2] . '/0000/zgSetTimeServer'; - $msg['payload'] = ''; - } - - if ($test==133) { - echo "Get Time from Zigate\n"; - $msg['topic'] = 'CmdAbeille' . $argv[2] . '/0000/zgGetTimeServer'; - $msg['payload'] = ''; - } - - // Send the command to the queue for processing - $queueKeyAbeilleToCmd = msg_get_queue(queueKeyAbeilleToCmd); - if ( $queueKeyAbeilleToCmd ) { - if (msg_send($queueKeyAbeilleToCmd, priorityUserCmd, json_encode($msg), false, false)) { - echo "Msg sent: " . json_encode($msg) . "\n"; - } else { - echo "Could not send Msg\n"; - } - } - else { - echo "Can t connect to the queue !\n"; - } - } - - // Send a message to Abeille's queue - if ( (200<=$test) && ($test<300) ) { - switch($test) { - case 200: - echo "Send a Systeme Message to the Ruche to be used by a scenario by the user\n"; - // public static function publishMosquitto($queueId, $priority, $topic, $payload) - Abeille::publishMosquitto($abQueues["xToAbeille"]["id"], PRIO_NORM, "Abeille1/0000/SystemMessage", "Le message"); - break; - case 201: - echo "Send a Systeme Message to the Ruche1 and clean it after 5 sec\n"; - AbeilleTools::sendMessageToRuche("daemonTest1","this is test message from zigate1"); - sleep( 5); - AbeilleTools::sendMessageToRuche("daemonTest1",""); - break; - case 202: - echo "Send a Systeme Message to the Ruche3 and clean it after 5 sec\n"; - AbeilleTools::sendMessageToRuche("daemonTest3","this is test message from zigate3"); - sleep( 5); - AbeilleTools::sendMessageToRuche("daemonTest3",""); - break; - case 203: - echo "Send a Systeme Message to the Ruche1 and 2 and clean them after 5 sec\n"; - AbeilleTools::sendMessageToRuche("daemonTest1","this is test message from zigate1"); - AbeilleTools::sendMessageToRuche("daemonTest2","this is test message from zigate2"); - sleep( 5); - AbeilleTools::clearSystemMessage($parameters); - break; - case 204: - echo "Send a Systeme Message to the Ruche1 and 2 and clean zigate 1 after 5 sec\n"; - AbeilleTools::sendMessageToRuche("daemonTest1","this is test message from zigate1"); - AbeilleTools::sendMessageToRuche("daemonTest2","this is test message from zigate2"); - sleep( 5); - AbeilleTools::clearSystemMessage($parameters,'1'); - break; - case 205: - echo "Send a Systeme Message to the Ruche to create an eq based on a template\n"; - Abeille::publishMosquitto($abQueues["xToAbeille"]["id"], PRIO_NORM, "Abeille1/FFFF/0000-01-0005", "BSO"); - break; - } - } - - // Test Methode/Function - if ( (300<=$test) && ($test<400) ) { - switch ($test) { - case 300: - echo "Test Cron function\n"; - Abeille::cron(); - break; - case 301: - echo "Test Cron15 function\n"; - Abeille::cron15(); - break; - case 302: - echo "Test CronHourly function\n"; - Abeille::cronHourly(); - break; - case 303: - echo "Test CronDaily function\n"; - Abeille::cronDaily(); - break; - case 310: - echo "Test getIEEE\n"; - var_dump(Abeille::getIEEE('Abeille1/B529')); - break; - case 311: - echo "Test getEqFromIEEE\n"; - var_dump(Abeille::getEqFromIEEE('842E14FFFE1396F5')); - break; - case 320: - echo "Test AbeilleParser::execAtCreationCmdForOneNE(logicalId)\n"; - AbeilleParser::execAtCreationCmdForOneNE($argv[2]); - break; - case 330: - echo "Decodage trame prise Xiaomi a l adressse: 4AAE\n"; - $trame = "8002005495000104FCC00101024AAE0200001C5F11E40AF700413D64100103281A9839FE542C429539F187773E963900200F459739A8223C43052101009A20100821160107270000000000000000092100040B20009B100199"; - $abeilleParser = new AbeilleParser; - $abeilleParser->protocolDatas("Abeille1", $trame); - break; - case 331: - echo "Test daemon monitoring\n"; - - echo "Parameters:\n"; - // $parameters = Abeille::getParameters(); - $json = '{"parametersCheck":"ok","parametersCheck_message":"","ab::defaultParent":"125","ab::zgType1":"USB","ab::zgPort1":"\/dev\/ttyUSB3","ab::zgIpAddr1":"192.168.4.1:23","ab::zgEnabled1":"Y","ab::zgType2":"WIFI","ab::zgPort2":"\/dev\/zigate2","ab::zgIpAddr2":"192.168.4.106:23","ab::zgEnabled2":"Y","ab::zgType3":"USB","ab::zgPort3":"\/dev\/ttyUSB2","ab::zgIpAddr3":"192.168.4.119:23","ab::zgEnabled3":"Y","ab::zgType4":"WIFI","ab::zgPort4":"\/dev\/zigate4","ab::zgIpAddr4":"192.168.4.107:23","ab::zgEnabled4":"Y"}'; - $parameters = json_decode($json,1); - // var_dump($parameters); - // echo "Parameters: ".json_encode($parameters)."\n"; - // echo "Nb zigate: ".$parameters['zigateNb']."\n"; - - // $running = AbeilleTools::getRunningDaemons(); - // Kiwi Pro Simu - $running[] = "845 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSocat.php /tmp/zigateWifi2 debug 192.168.4.106:23"; - $running[] = "847 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSocat.php /tmp/zigateWifi4 debug 192.168.4.107:23"; - $running[] = "873 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSerialRead.php Abeille1 /dev/ttyUSB3 debug"; - $running[] = "878 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSerialRead.php Abeille2 /tmp/zigateWifi2 debug"; - $running[] = "883 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSerialRead.php Abeille3 /dev/ttyUSB2 debug"; - $running[] = "892 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../php/AbeilleSerialRead.php Abeille4 /tmp/zigateWifi4 debug"; - $running[] = "896 /usr/bin/php /var/www/html/plugins/Abeille/core/class/AbeilleParser.php debug"; - $running[] = "899 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../core/class/AbeilleCmd.php debug"; - - echo "Running: ".json_encode($running)."\n"; - echo "\n"; - - $diff = AbeilleTools::diffExpectedRunningDaemons($parameters, $running); - echo "Diff: ".json_encode($diff)."\n"; - echo "\n"; - - break; - } - } - - // Test core function of Jeedom - if ( (400<=$test) && ($test<500) ) { - switch ($test) { - case 400: - echo "Cmd ByValue: retourne les commandes qui ont value ou #value# dans le champ value.\n"; - $newVal = 53; - $cmdAction = cmd::byId(23897); - echo "Cmd Action : ".$cmdAction->getName()."\n"; - $cmdInfo = $cmdAction->getCmdValue(); - echo "Cmd Info associée : ".$cmdInfo->getName()." - ".$cmdInfo->execCmd()."\n"; - $cmdInfo->event($newVal); - echo "Cmd Info associée : ".$cmdInfo->getName()." - ".$cmdInfo->execCmd()."\n"; - break; - } - } - - // Test DIY - if ( (500<=$test) && ($test<600) ) { - - if ($test==500) { - echo "Test envoie Cmd to get ZCL version\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep=08&clustId=0000&attrId=0000'; - } - - if ($test==504) { - echo "Test envoie Cmd to get ManufacturerName\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep='.$argv[4].'&clustId=0000&attrId=0004'; - } - - if ($test==505) { - echo "Test envoie Cmd to get ModelIdentifier\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/readAttribute'; - $msg['payload'] = 'ep='.$argv[4].'&clustId=0000&attrId=0005'; - } - - // php AbeilleTest.php 510 2 F0C0 08 - // Led Red DIO6: toglle et visiblement un PWM to control level. - if ($test==510) { - echo "On Off Test\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/OnOff'; - $msg['payload'] = 'Action=Toggle&EP='.$argv[4]; - } - - // Control level Led Rouge - // Minimum puissance - // php AbeilleTest.php 511 2 F0C0 08 02 - // Toute puissance - // php AbeilleTest.php 511 2 F0C0 08 99 - if ($test==511) { - echo "Level Test\n"; - $msg['topic'] = 'CmdAbeille'.$argv[2].'/'.$argv[3].'/setLevel'; - $msg['payload'] = 'EP='.$argv[4].'&Level='.$argv[5].'&duration=10'; - } - - // Send the command to the queue for processing - $queueKeyAbeilleToCmd = msg_get_queue(queueKeyAbeilleToCmd); - if ( $queueKeyAbeilleToCmd ) { - if (msg_send($queueKeyAbeilleToCmd, priorityUserCmd, json_encode($msg), false, false)) { - echo "Msg sent: " . json_encode($msg) . "\n"; - } else { - echo "Could not send Msg\n"; - } - } - else { - echo "Can t connect to the queue !\n"; - } - } - - echo "End of the test.\n"; -?> diff --git a/resources/archives/core/scripts/installPiGpio.abeille.php b/resources/archives/core/scripts/installPiGpio.abeille.php deleted file mode 100644 index 03766a584f..0000000000 --- a/resources/archives/core/scripts/installPiGpio.abeille.php +++ /dev/null @@ -1,55 +0,0 @@ -. - */ -if (!isConnect('admin')) { - throw new Exception('{{401 - Accès non autorisé}}'); -} -?> - - {{Pause}} - -


-
-Lancement des operations.
-
- - diff --git a/resources/archives/core/scripts/installPiGpio.sh b/resources/archives/core/scripts/installPiGpio.sh deleted file mode 100644 index 54a3dfca50..0000000000 --- a/resources/archives/core/scripts/installPiGpio.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/bash - -### -### PiGpio installation script -### Note: This assumes standard plateform (ex: RPI) with supported package -### - -NOW=`date +"%Y-%m-%d %H:%M:%S"` -echo "[${NOW}] Démarrage de '$(basename $0)'" - -echo "Mise-à-jour de la liste des packages" -sudo apt-get -y update -if [ $? -ne 0 ]; then - echo "= ERREUR: 'apt-get update'" - echo "= Problème de droits ?" - exit 1 -fi -echo "= Ok" - -echo "Installation du package 'PiGpio'" -sudo apt-get -y install python-pigpio python3-pigpio python-setuptools python3-setuptools -if [ $? -ne 0 ]; then - echo "= ERREUR: L'installation n'a pas aboutie." - echo "= Il se peut que le package PiGpio ne soit pas supporté sur votre plateforme." - exit 2 -fi -echo "= Ok" - -exit 0 \ No newline at end of file diff --git a/resources/archives/core/scripts/installSocat.sh b/resources/archives/core/scripts/installSocat.sh deleted file mode 100644 index 8c229f731b..0000000000 --- a/resources/archives/core/scripts/installSocat.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/bash - -# Usage: ? - -NOW=`date +"%Y-%m-%d %H:%M:%S"` -echo "[${NOW}] Démarrage de '$(basename $0)' $@" - -echo "Mise-à-jour de la liste des packages" -sudo apt-get -y update - -echo "Installation de Socat" -sudo apt-get install socat -if [ $? -ne 0 ]; then - echo "= ERREUR: L'installation n'a pas aboutie." - echo "= Il se peut que le package 'socat' ne soit pas supporté sur votre plateforme." - exit 2 -fi -echo "= Ok, package installé." - -echo "Vérification finale de 'socat'" -command -v socat -if [ $? -ne 0 ]; then - echo "= ERREUR: Commande 'socat' manquante !" - echo "= Le package 'socat' semble être mal installé." - exit 3 -fi -echo "= Ok" - -exit 0 diff --git a/resources/archives/core/scripts/installWiringPi.sh b/resources/archives/core/scripts/installWiringPi.sh deleted file mode 100644 index 7676bab444..0000000000 --- a/resources/archives/core/scripts/installWiringPi.sh +++ /dev/null @@ -1,50 +0,0 @@ -#! /bin/bash - -### -### WiringPi installation script -### Note: This assumes standard plateform (ex: RPI) with supported package -### Note: WiringOPI is the equivalent for OrangePi -### - -NOW=`date +"%Y-%m-%d %H:%M:%S"` -echo "[${NOW}] Démarrage de '$(basename $0)'" - -echo "Mise-à-jour de la liste des packages" -sudo apt-get -y update -if [ $? -ne 0 ]; then - echo "= ERREUR: 'apt-get update'" - echo "= Problème de droits ?" - exit 1 -fi -echo "= Ok" - -# sudo apt-get -y upgrade - -# echo "installation de git" -# sudo apt-get -y install git-core - -# echo "installation de make" -# sudo apt-get -y install make - -# echo "installation de gcc" -# sudo apt-get -y install gcc - -echo "Installation du package 'WiringPi'" -sudo apt-get -y install wiringpi -if [ $? -ne 0 ]; then - echo "= ERREUR: L'installation n'a pas aboutie." - echo "= Il se peut que le package WiringPi ne soit pas supporté sur votre plateforme." - exit 2 -fi -echo "= Ok" - -echo "Vérification finale" -command -v gpio -if [ $? -ne 0 ]; then - echo "= ERREUR: Commande 'gpio' manquante !" - echo "= Le package WiringPi semble être mal installé." - exit 3 -fi -echo "= Ok" - -exit 0 diff --git a/resources/archives/core/scripts/updateFirmwareDIN.sh b/resources/archives/core/scripts/updateFirmwareDIN.sh deleted file mode 100644 index 577c8fd59f..0000000000 --- a/resources/archives/core/scripts/updateFirmwareDIN.sh +++ /dev/null @@ -1,103 +0,0 @@ -#! /bin/bash -# Zigate-DIN flash programmation script -# updateFirmwareDIN.sh [fwfile] -# where action = flash, check, eraseeeprom - -# NOW=`date +"%Y-%m-%d %H:%M:%S"` -# echo "[${NOW}] Démarrage de '$(basename $0)' $@" -echo "Démarrage de '$(basename $0)' $@" - -# Note: Startup directory is the one from the caller (ajax) -# It is then '/var/www/html/plugins/Abeille/core/ajax' -PROG=${PWD}/../../tmp/JennicModuleProgrammer -BUILD_DIR=${PWD}/../../resources/prog_jennic-0.7/build -FW_DIR=${PWD}/../../resources/fw_zigate -DIN_SCRIPT=${PWD}/../scripts/flash_ZiGate-DIN.py - -# Qq tests preliminaires -echo "Vérifications préliminaires" -error=0 -if [ $# -lt 2 ]; then - echo "= ERREUR: Argument(s) manquant(s) !" - echo "= updateFirmwareDIN.sh [fwfile]" - error=1 -fi -ACTION=$1 -ZGPORT=$2 -FW="" -if [ ${ACTION} != "flash" ] && [ ${ACTION} != "check" ] && [ ${ACTION} != "eraseeeprom" ]; then - echo "= ERREUR: Action '${ACTION}' non supportée." - echo "= Choix=flash/check/eraseeeprom" - error=1 -else - if [ ${ACTION} == "flash" ]; then - FW=$3 - if [ ! -e ${FW_DIR}/${FW} ]; then - echo "= ERREUR: le FW choisi n'existe pas !" - echo "= FW: ${FW}" - error=1 - fi - fi - if [ ! -e ${ZGPORT} ]; then - echo "= ERREUR: le port tty choisi n'existe pas !" - echo "= Port: ${ZGPORT}" - error=1 - fi - command -v python3 >/dev/null - if [ $? -ne 0 ]; then - echo "= ERREUR: 'python3' manquant ou non exécutable !" - echo "= Le package 'python3' est probablement mal installé." - error=1 - fi - if [ ! -e ${PROG} ]; then - # Compiling Jennic programmer since v0.7 - echo "Compilation du programmateur" - pushd ${BUILD_DIR} >/dev/null - sudo make - if [ $? -ne 0 ]; then - echo "= ERREUR: Compilation ratée !" - error=1 - fi - # echo "= ERREUR: Programmateur Jennic manquant !" - # echo "= ${PROG}" - # error=1 - popd >/dev/null - fi - if [ ! -x ${PROG} ]; then - # Attempting to correct execution right - sudo chmod +x ${PROG} >/dev/null - fi - if [ ! -x ${PROG} ]; then - echo "= ERREUR: Le programmateur Jennic n'est pas exécutable !" - echo "= ${PROG}" - error=1 - fi -fi -if [ $error != 0 ]; then - exit 1 -fi -echo "= Ok" - -status=0 - -# Si check seulement on quitte ici -if [ ${ACTION} == "check" ]; then - exit 0 -# elif [ ${ACTION} == "eraseeeprom" ]; then -# echo "Effacement de l'EEPROM" -# echo "- Port tty: ${ZGPORT}" -else - echo "Lancement de la programmation du firmware" - echo "- Port tty: ${ZGPORT}" - echo "- Firmware: ${FW}" - sudo python3 ${DIN_SCRIPT} -s ${ZGPORT} -b 250000 -f ${FW_DIR}/${FW} 2>&1 -fi - -if [ $? -eq 0 ]; then - echo "= Tout s'est bien passé. Vous pouvez fermer ce log." -else - echo "= ATTENTION !!! " - echo "= Quelque chose s'est mal passé." - echo "= Veuillez vérifier le log ci-dessus." -fi -exit $status diff --git a/resources/archives/desktop/Abeille-Js.php b/resources/archives/desktop/Abeille-Js.php deleted file mode 100644 index 24e9e42844..0000000000 --- a/resources/archives/desktop/Abeille-Js.php +++ /dev/null @@ -1,830 +0,0 @@ - - - - diff --git a/resources/archives/desktop/AbeilleEq-Advanced-Common.php b/resources/archives/desktop/AbeilleEq-Advanced-Common.php deleted file mode 100644 index 93ee61333b..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced-Common.php +++ /dev/null @@ -1,76 +0,0 @@ - - -
- - - -
- -
- -
-
- -
- -
- - '; ?> -
-
- -
- - '; - echo ''; - addJsUpdateFunction($eqId, 'Time-Time', 'idLastComm'); - ?> -
- - -
- -
- -
-
- -
- -
- - / - -
-
- -
- -
- getConfiguration('ab::eqModel', null); - $jsonId = $eqModel ? $eqModel['id'] : ''; - if ($jsonId != '') { - echo 'Voir ici si présente'; - } - ?> -
-
- -
- -
- execCmd(); - else - $groups = ""; - echo ''.$groups.''; - ?> -
-
\ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Advanced-Device.php b/resources/archives/desktop/AbeilleEq-Advanced-Device.php deleted file mode 100644 index 214e28cd90..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced-Device.php +++ /dev/null @@ -1,188 +0,0 @@ - - -
- - - -
- -
- getConfiguration('ab::signature', []); - $model = isset($sig['modelId']) ? $sig['modelId'] : ''; - $manuf = isset($sig['manufId']) ? $sig['manufId'] : ''; - // $location = isset($sig['location']) ? $sig['location'] : ''; - echo ''; - echo ''; - // echo ''; - ?> -
-
- - $ep2) { - if (!isset($ep2['servClusters'])) - continue; - if (strpos($ep2['servClusters'], '0000') === false) - continue; // Basic cluster not supported - - echo '
'; - echo ''; - echo '
'; - - $model2 = isset($ep2['modelId']) ? $ep2['modelId'] : ''; - $manuf2 = isset($ep2['manufId']) ? $ep2['manufId'] : ''; - $location2 = isset($ep2['location']) ? $ep2['location'] : ''; - if (($manuf2 != $manuf) || ($model2 != $model) || ($location2 != $location) ) { - echo ''; - echo ''; - echo ''; - if ($manuf == '') - $manuf = $manuf2; // Saving 1st - if ($model == '') - $model = $model2; // Saving 1st - if ($location == '') - $location = $location2; // Saving 1st - } - - echo '
'; - echo '
'; - } - } -?> - -
- -
- '; - echo ' Source:'; - if (($jsonLocation == '') || ($jsonLocation == "Abeille")) - $title = "Le modèle utilisé est celui fourni par Abeille"; - else - $title = "Le modèle utilisé est un modèle local/custom"; - echo ''; - - if ($jsonId == "defaultUnknown") { - if ($sig) { - $id1 = $sig['modelId'].'_'.$sig['manufId']; - $id2 = $sig['modelId']; - $customP = __DIR__."/../../core/config/devices_local/"; - $officialP = __DIR__."/../../core/config/devices/"; - if (file_exists($customP.$id1."/".$id1.".json") || - file_exists($customP.$id2."/".$id2.".json")) { - echo ' INFO: Modèle local/custom disponible.'; - // echo 'Utiliser'; - } else if (file_exists($officialP.$id1."/".$id1.".json") || - file_exists($officialP.$id2."/".$id2.".json")) { - echo ' INFO: Modèle officiel disponible.'; - // echo 'Utiliser'; - } - } - } else { - if ($jsonLocation != 'Abeille') { - echo ' ATTENTION: Issu d\'un modèle local '; - if (file_exists(__DIR__."/../../core/config/devices_local/".$jsonId."/".$jsonId.".json")) - echo 'Supprimer version locale'; - } - } - - echo '{{Mise-à-jour}}'; - echo '{{Réinitialiser}}'; - ?> -
-
- - - - -
- -
- Télécharger'; - ?> -
-
- - -
- -
- Ouvrir'; - ?> -
-
- -
- -
- '; - ?> -
-
- -
- - '; - echo ''; - addJsUpdateFunction($eqId, $cmdLogicId, 'idSwBuild', true); - echo '
'; - ?> - - - -
- -
- {{Réparer}}'; - ?> -
-
- diff --git a/resources/archives/desktop/AbeilleEq-Advanced-Interrogations.php b/resources/archives/desktop/AbeilleEq-Advanced-Interrogations.php deleted file mode 100644 index b4584bde82..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced-Interrogations.php +++ /dev/null @@ -1,357 +0,0 @@ - - -
- - - -
-
-
-

{{Interrogation de l'équipement.}}

-
-
-

{{Sortie dans 'AbeilleParser.log' si mode 'debug' actif.}}

-
- - -
- -
- {{Interroger}}'; - ?> -
-
-
- -
- {{Interroger}}'; - ?> -
-
-
- -
- {{Interroger}}'; - ?> - -
-
-
- -
- {{Interroger}}'; - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpSDR", $mainEP); - ?> -
-
-
- -
- {{Interroger}}'; - ?> -
-
-
- -
- {{Interroger}}'; - ?> -
-
-
- -
- {{Interroger}}'; - ?> - - -
-
- -
- -
- {{Bind}}'; - addEpInput("idEpE", $mainEP); - addClusterButton("idClustIdE"); - // - echo ' TO'; - addIeeeListButton("idIeeeE", true); - addEpInput("idEpE2", $mainEP); - ?> -
-
- -
- -
- {{Unbind}}'; - addEpInput("idEpSrc-UBD", $mainEP); - addClusterButton("idClustId-UBD"); - echo ' TO'; - addIeeeListButton("idAddr-UBD", true); - addEpInput("idEpDst-UBD", $mainEP); - ?> -
-
- -
- -
- {{Bind}}'; - addEpInput("idEpF", $mainEP); - addClusterButton("idClustIdF"); - echo ' TO'; - addGroupInput('idGroupF', 'Destination group'); - ?> -
-
- -
- -
- {{Unbind}}'; - addEpInput("idEpSrc-UBG", $mainEP); - addClusterButton("idClustId-UBG"); - echo ' TO'; - addGroupInput('idGroup-UBG', 'Destination group'); - ?> -
-
- -
- -
- {{Leave}}'; - // addIeeeListButton("idIeeeLR"); - // addClusterButton("idClustIdF"); - // echo ' TO'; - ?> - -
-
- - -
-
- -
- {{Lire}}'; - // echo ''; - addEpInput("idEpA", $mainEP); - addClusterButton("idClustIdA"); - addAttrInput("idAttrIdA"); - addManufCodeInput("idManufIdRA"); // Optional - ?> -
-
-
- -
- {{Ecrire}}'; - addEpInput("idEpWA", $mainEP); - addClusterButton("idClustIdWA"); - addAttrInput("idAttrIdWA"); - addTypeList("idAttrTypeWA"); - ?> - - - -
-
-
- -
- {{Ecrire}}'; - addEpInput("idEpWA2", $mainEP); - addClusterButton("idClustIdWA2"); - addDirInput("idDirWA2"); - addAttrInput("idAttrIdWA2"); - addTypeList("idAttrTypeWA2"); - ?> - - -
-
- -
- -
- {{Interroger}}'; - addEpInput("idEp", $mainEP); - addClusterButton("idClustId"); - addAttrInput("idAttrId"); - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpB", $mainEP); - addClusterButton("idClustIdB"); - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpD", $mainEP); - addClusterButton("idClustIdD"); - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpC", $mainEP); - addClusterButton("idClustIdC"); - ?> -
-
-
- -
- {{Configurer}}'; - addEpInput("idEpCR", $mainEP); - addClusterButton("idClustIdCR"); - addAttrInput("idAttrIdCR"); - addTypeList("idAttrTypeCR"); - ?> - - - - - -
-
- -
- -
- -
- {{Reset}}'; - addEpInput("idEpG", $mainEP); - ?> -
-
-
- -
- {{Add}}'; - addEpInput("idEp-AG", $mainEP); - addGroupInput('idGroup-AG', 'Destination group'); - ?> -
-
-
- -
- {{Get}}'; - addEpInput("idEp-GGM", $mainEP); - // addGroupInput('idGroup-AG', 'Destination group'); - ?> -
-
-
- -
- {{Remove}}'; - addEpInput("idEp-RAG", $mainEP); - // addGroupInput('idGroup-AG', 'Destination group'); - ?> -
-
-
- -
- {{Modifier}}'; - addEpInput("idEpC0201-00", $mainEP); - ?> - -
-
-
- -
- {{Appliquer}}'; - addEpInput("idEp-MTC", $mainEP); - ?> - - -
-
-
- -
- {{Appliquer}}'; - addEpInput("idEp-SW", $mainEP); - addWarningModesList("idMode-SW"); - addCheckbox("idStrobe-SW", "Strobe"); - addSirenLevelList("idSirenL-SW"); - addInput("idDuration-SW", "Duration in sec", "Duration"); - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpC1000-41", $mainEP); - ?> -
-
-
- -
- {{Interroger}}'; - addEpInput("idEpC1000-42", $mainEP); - ?> -
-
diff --git a/resources/archives/desktop/AbeilleEq-Advanced-Specific.php b/resources/archives/desktop/AbeilleEq-Advanced-Specific.php deleted file mode 100644 index b7c090b540..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced-Specific.php +++ /dev/null @@ -1,130 +0,0 @@ - - - - -getConfiguration('paramType', '') == "telecommande") { -?> -
- -
-
-

{{Télécommande}}

-
- -
- -
- -
-
- -
- -
- -
-
-
-getConfiguration('paramType', '') == "telecommande7groups") { -?> -
- -
-
-

{{Télécommande}}

-
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
-getConfiguration('paramType', '') == "paramABC") { -?> -
- -
-
-

{{Calibration (y=ax2+bx+c)}}

-
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- diff --git a/resources/archives/desktop/AbeilleEq-Advanced-Zigate.php b/resources/archives/desktop/AbeilleEq-Advanced-Zigate.php deleted file mode 100644 index 18c1d3c0f6..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced-Zigate.php +++ /dev/null @@ -1,230 +0,0 @@ - - -
- - - -
-
-

{{Zigate}} - -

-
- -
- -
- '; - ?> -
-
- -
- -
- '; - echo ''; - echo ""; - echo '
'; - ?> -
- - -
- -
- '; - if (isset($dbgDeveloperMode)) { - echo '{{Démarrer}}'; - // echo '{{Démarrer scan}}'; - } - ?> -
-
- -
-
- -
-
- '; - echo ''; - addJsUpdateFunction($eqId, 'Network-Channel', 'idChannel', true); - ?> - - {{Appliquer}} -
-
- - -
-
- -
-
- '; - echo ''; - addJsUpdateFunction($eqId, 'permitJoin-Status', 'idInclusionMode', true); - ?> - {{Démarrer}} - {{Arrêter}} -
-
- - -
-
- - -
-
- '; - ?> - '; - addJsUpdateFunction($eqId, 'ZiGate-Time', 'idZgTime', true); - ?> - Lire - Mettre à l'heure -
-
- - -
- -
- '; - echo ''; - addJsUpdateFunction($eqId, 'PAN-ID', 'idPanId'); - echo '
'; - ?> -
- - -
-
- - -
-
- '; - echo ''; - addJsUpdateFunction($eqId, 'Ext_PAN-ID', 'idExtPanId'); - ?> -
- -
- - -
-
- - -
-
- Lire - '.$txPower.''; - addJsUpdateFunction($eqId, 'ZiGate-Power', 'idZgPower'); - ?> - -
-
- -
- -
- ON - OFF -
-
- -
- -
- CE - FCC -
-
- - -
- -
- Normal - Hybride - Raw -
-
- - -
- -
- Effacer -
-
- -
- - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Advanced.php b/resources/archives/desktop/AbeilleEq-Advanced.php deleted file mode 100644 index df0ae57c3f..0000000000 --- a/resources/archives/desktop/AbeilleEq-Advanced.php +++ /dev/null @@ -1,155 +0,0 @@ - - - ?'; - } - - // /* Returns current cmd value identified by its Jeedom name */ - // function getCmdValueByName($eqId, $cmdName) { - // $cmd = AbeilleCmd::byEqLogicIdCmdName($eqId, $cmdName); - // if (!is_object($cmd)) - // return ""; - // return $cmd->execCmd(); - // } - - // /* Returns cmd ID identified by its Jeedom name */ - // function getCmdIdByName($eqId, $cmdName) { - // $cmd = AbeilleCmd::byEqLogicIdCmdName($eqId, $cmdName); - // if (!is_object($cmd)) - // return ""; - // return $cmd->getId(); - // } - - // Add end point input - function addEpInput($id, $defEp) { - echo ''; - } - - function addClusterButton($id) { - global $zbClusters; - echo ''; - } - - // Add direction input - function addDirInput($id) { - echo ''; - } - - // Add manufacturer code input - function addManufCodeInput($id) { - echo ''; - } - - // Create drop down list of IEEE addresses, excluding zigate by default - function addIeeeListButton($id, $withZigate = false) { - echo ''; - } - - function addAttrInput($id) { - echo ''; - } - - // Add a group address input - function addGroupInput($id, $title = 'Group') { - echo ''; - } - - // Create drop down list of Zigbee possible attribute types - function addTypeList($id) { - echo ''; - } - - // Create drop down list of 'Warning modes' (cluster 0502/Start Warning) - function addWarningModesList($id) { - echo ''; - } - - // Create drop down list of 'Siren levels' (cluster 0502/Start Warning) - function addSirenLevelList($id) { - echo ''; - } - - function addCheckbox($id, $title = '', $ph = '') { - // Note: CHECKED by default - echo ''; - } - - function addInput($id, $title = '', $ph = '') { - echo ''; - } - - function addJsUpdateFunction($eqId, $cmdLogicId, $spanId, $isInput = false) { - echo ""; - } -?> - -
- -
diff --git a/resources/archives/desktop/AbeilleEq-Cmds.php b/resources/archives/desktop/AbeilleEq-Cmds.php deleted file mode 100644 index 791abd6f94..0000000000 --- a/resources/archives/desktop/AbeilleEq-Cmds.php +++ /dev/null @@ -1,38 +0,0 @@ - - -
- - -
-
- - -
- - - - - - - - - - - - - - - - - - - - -
{{ID}}{{Cmde Jeedom}}{{Type}}{{Cmde Abeille/logicalId}}{{Cmde Abeille/topic}}{{Paramètres cmde Abeille}}{{Unité/Cron}}{{Options}}{{Supprimer}}
-
-
diff --git a/resources/archives/desktop/AbeilleEq-Js-Cmds.php b/resources/archives/desktop/AbeilleEq-Js-Cmds.php deleted file mode 100644 index ce46c632e7..0000000000 --- a/resources/archives/desktop/AbeilleEq-Js-Cmds.php +++ /dev/null @@ -1,191 +0,0 @@ - - - \ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Js.php b/resources/archives/desktop/AbeilleEq-Js.php deleted file mode 100644 index 0cf5eeb371..0000000000 --- a/resources/archives/desktop/AbeilleEq-Js.php +++ /dev/null @@ -1,804 +0,0 @@ - - - - - \ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Main-Generic.php b/resources/archives/desktop/AbeilleEq-Main-Generic.php deleted file mode 100644 index 136ace17ca..0000000000 --- a/resources/archives/desktop/AbeilleEq-Main-Generic.php +++ /dev/null @@ -1,113 +0,0 @@ - - -
- - - -
- -
- -
-
- -
- -
- -
-
- -
- -
- $value) { - echo ''; - } - ?> -
-
- -
- -
- - -
-
- -
- -
- '; - ?> -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- getConfiguration('battery_type', '') != "") { - echo '{{Batterie}} '; - echo ''; - } else - echo '{{Secteur}}'; - ?> -
-
- -
- -
- '; - ?> -
-
- -
- -
- -
-
- diff --git a/resources/archives/desktop/AbeilleEq-Main-Icon.php b/resources/archives/desktop/AbeilleEq-Main-Icon.php deleted file mode 100644 index a79ce61f0e..0000000000 --- a/resources/archives/desktop/AbeilleEq-Main-Icon.php +++ /dev/null @@ -1,67 +0,0 @@ - - -
- - - -
- -
- -
-
- - - -
-
-
-
- - -
-
\ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Main-Others.php b/resources/archives/desktop/AbeilleEq-Main-Others.php deleted file mode 100644 index d730b8eee9..0000000000 --- a/resources/archives/desktop/AbeilleEq-Main-Others.php +++ /dev/null @@ -1,40 +0,0 @@ - - -
- - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/resources/archives/desktop/AbeilleEq-Main.php b/resources/archives/desktop/AbeilleEq-Main.php deleted file mode 100644 index 7fdc4b53d4..0000000000 --- a/resources/archives/desktop/AbeilleEq-Main.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - -
-
- -
-
diff --git a/resources/archives/desktop/AbeilleEq.php b/resources/archives/desktop/AbeilleEq.php deleted file mode 100644 index 0a121f887d..0000000000 --- a/resources/archives/desktop/AbeilleEq.php +++ /dev/null @@ -1,117 +0,0 @@ - - -var js_dbgDeveloperMode = '.$dbgDeveloperMode.';'; // PHP to JS - /* Dev mode: enabling PHP errors logging */ - error_reporting(E_ALL); - ini_set('error_log', __DIR__.'/../../../../log/AbeillePHP.log'); - ini_set('log_errors', 'On'); - } - - if (!isset($_GET['id'])) - exit("ERROR: Missing 'id'"); - if (!is_numeric($_GET['id'])) - exit("ERROR: 'id' is not numeric"); - - $eqId = $_GET['id']; - $eqLogic = eqLogic::byId($eqId); - if (!$eqLogic) - exit("L'équipement dont l'ID est ".$eqId." n'existe plus. Merci de raffraichir votre page."); - - $eqLogicId = $eqLogic->getLogicalid(); - list($eqNet, $eqAddr) = explode("/", $eqLogicId); - $zgId = substr($eqNet, 7); // Extracting zigate number from network - $zgType = config::byKey('ab::zgType'.$zgId, 'Abeille', '', 1); // USB, WIFI, PI, DIN - $zgChan = config::byKey('ab::zgChan'.$zgId, 'Abeille', 11); // Zigbee channel - $config = []; - $config['ab::zgChan'.$zgId] = $zgChan; - $mainEP = $eqLogic->getConfiguration('mainEP', '01'); - $eqIeee = $eqLogic->getConfiguration('IEEE', ''); - $batteryType = $eqLogic->getConfiguration('battery_type', ''); - $eqName = $eqLogic->getName(); - - $eqModel = $eqLogic->getConfiguration('ab::eqModel', []); - $eqZigbee = $eqLogic->getConfiguration('ab::zigbee', []); - // $eqSettings = $eqLogic->getConfiguration('ab::settings', []); - - echo ''; // PHP to JS - echo ''; // PHP to JS - echo ''; // PHP to JS - echo ''; // PHP to JS - echo ''; // PHP to JS - $abQueues = $GLOBALS['abQueues']; - echo ''; // PHP to JS - echo ''; // PHP to JS - // sendVarToJS('js_eqSettings', $eqSettings); - sendVarToJS('js_config', $config); - - /* Returns cmd ID identified by its Jeedom logical ID name */ - function getCmdIdByLogicId($eqId, $cmdLogicId) { - $cmd = cmd::byEqLogicIdAndLogicalId($eqId, $cmdLogicId); - if (!is_object($cmd)) - return ""; - return $cmd->getId(); - } - - /* Returns current cmd value identified by its Jeedom logical ID name */ - function getCmdValueByLogicId($eqId, $logicId) { - $cmd = AbeilleCmd::byEqLogicIdAndLogicalId($eqId, $logicId); - if (!is_object($cmd)) - return ""; - return $cmd->execCmd(); - } -?> - - -
-
- - - - - diff --git a/resources/archives/desktop/health.js b/resources/archives/desktop/health.js deleted file mode 100644 index 22405ef6c6..0000000000 --- a/resources/archives/desktop/health.js +++ /dev/null @@ -1,5 +0,0 @@ - - -$(function() { - $("#table_healthAbeille").tablesorter(); -}); diff --git a/resources/archives/desktop/modal/installPiGpio.abeille.php b/resources/archives/desktop/modal/installPiGpio.abeille.php deleted file mode 100644 index 9813e59a75..0000000000 --- a/resources/archives/desktop/modal/installPiGpio.abeille.php +++ /dev/null @@ -1,55 +0,0 @@ -. - */ -if (!isConnect('admin')) { - throw new Exception('{{401 - Accès non autorisé}}'); -} -?> - - {{Pause}} - -


-
-Lancement des operations.
-
- - \ No newline at end of file diff --git a/resources/archives/desktop/modal/installSocat.abeille.php b/resources/archives/desktop/modal/installSocat.abeille.php deleted file mode 100644 index cfb1c33717..0000000000 --- a/resources/archives/desktop/modal/installSocat.abeille.php +++ /dev/null @@ -1,56 +0,0 @@ -. - */ - if (!isConnect('admin')) { - throw new Exception('{{401 - Accès non autorisé}}'); - } -?> - - {{Pause}} - -


-
-Lancement des operations.
-
- - diff --git a/resources/archives/desktop/modal/installWiringPi.abeille.php b/resources/archives/desktop/modal/installWiringPi.abeille.php deleted file mode 100644 index db0f902c58..0000000000 --- a/resources/archives/desktop/modal/installWiringPi.abeille.php +++ /dev/null @@ -1,55 +0,0 @@ -. - */ -if (!isConnect('admin')) { - throw new Exception('{{401 - Accès non autorisé}}'); -} -?> - - {{Pause}} - -


-
-Lancement des operations.
-
- - diff --git a/resources/archives/docs/fr_FR/Changelog.rst b/resources/archives/docs/fr_FR/Changelog.rst deleted file mode 100644 index 003d315695..0000000000 --- a/resources/archives/docs/fr_FR/Changelog.rst +++ /dev/null @@ -1,3285 +0,0 @@ -ChangeLog -========= - -240409-BETA-1 -------------- - -- Groupes: Améliorations ajout/suppression de groupe. -- Page santé: - - - Travaille en cours pour amélioration avec thème 'dark'. - - Ajout ID Jeedom. - - Corrections internes. - -240403-BETA-2 -------------- - -- Interne: Parser: Correction regression support Xiaomi. -- Page santé: Amélioration robustesse. -- Affichage des groupes: Equipement barré et pas d'action possible si désactivé. - -240329-BETA-2 -------------- - -- Interne: Support Tuya: Amélioration msg debug. -- Tuya compteur d'énergie: Mise-à-jour du modèle (2691). -- Philips LWA021_SignifyNetherlandsBV: Ajout support préliminaire (2693). -- Interne: Abeille.js: Corrections erreur lors du changement de nom. -- Ampoule E27 TS0505B__TZ3210_mja6r5ix: Ajout support (2694). -- Interne: Parser: Correction mineure. -- Réparation d'équipement: Améliorations. -- Equipement/avancé/interrogations: Améliorations cluster 1000. -- Interne: Cmd: Ajout support vers client pour 'discoverCommandsReceived'. -- Equipement/avancé/interrogations: Découverte des commandes reçues vers client possible. -- powerCycleUsb: Améliorations du script de reboot USB. -- Correction status équipement 'Zigate' si désactivé sur page de config. -- Page santé: Correction: Equipements montrés désactivés si Zigate désactivée. -- Dev: Améliorations 'switch_branch'. -- Page santé: Une couleur par réseau pour plus de clareté. - -240319-BETA-3 -------------- - -- SonOff ZbminiL2: Modèle revu. -- Profalux 2nd gen: Mise-à-jour mineure du modèle. -- Syntaxe modèle d'équipement: Ajout section 'variables' pour support '#groupEPx#'. -- Interne: Parser: Améliorations mineures. -- Interne: 'check_json': Améliorations. -- Interne: eqLogic/configuration: groupEPx => eqModel['variables']. -- Page EQ/avancé: Ajout d'une section 'variables'. Suppression cas 'telecommande7groups'. -- Tuya compteur d'énergie: Modèle préliminaire (2691). -- Page EQuipement: 'variables' migrées sur onglet principal. -- Interne: Configuration sur 'device announce' déplacée de Parser vers Cmd. -- Réseau: Affichage table des liens Zigate 1 à l'ouverture. -- SonOff ZbminiL2: Correction 'mac capa' incorrect => 'RxOnWhenIdle'. -- Interne: Mises-à-jour 'check_json' + 'update_json' pour changement 'tuyaEF00/fromDevice' => 'private/EF00/type=tuya'. -- Modèles d'équipement: Suppression 'tuyaEF00/fromDevice' => remplacé par 'private/EF00/type=tuya'. -- Modèles d'équipement: Suppression 'fromDevice/ED00' => remplacé par 'private/ED00/type=tuya-zosung'. -- Collecte LQI: Traitement messages 'Management LQI response' revu pour clareté. - -240308-BETA-1 -------------- - -- Script: Améliorations 'checkZigate' -- Placement réseau: Améliorations support multi-niveaux. -- Profalux BSO: Mise-à-jour du modèle pour retour level (2689). -- SonOff SNZB-01: Modèle revu: 'Click-Middle' remplacé par 'Click' (valeur 'single', 'double' ou 'long'). - -240223-BETA-2 -------------- - - .. warning:: **Mise-à-jour de modèles** - - - Malgré la volonté de faire des évolutions les plus transparentes possibles, il se peut que certains équipements nécessitent d'être mis-à-jour à partir de leur dernier modèle pour à nouveau fonctionner correctement. Si ils sont sur batterie, réinclusion nécessaire. Si sur secteur, aller à la page 'avancé' et bouton 'mise-à-jour'. - .. warning:: **Zigates v2/+** - - - FW **v3.22 OBLIGATOIRE**. - - La maturité de la v2 n'est pas au niveau de la v1. Le FW qui semble le plus stable n'est PAS le dernier dispo (3.A0) mais le précédent (**3.22**). Nous vous conseillons de faire la mise-à-jour vers celui ci. - .. warning:: **Zigates v1** - - - FW **v3.23 OPDM** recommandé. La version minimale est la '3.1E' mais ne sera bientot plus supportée. - - Le dernier FW officiel est le v3.23. Il est recommandé de basculer dessus pour ne pas faire façe à des soucis déja corrigés. - - D'autre part si vous n'êtes pas en version OPDM (Optimized PDM), il est fortement recommandé de basculer dessus dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - -- Ikea RODRET dimmer: Mise-à-jour du modèle par défaut pour ON/OFF (2684). -- Mise-à-jour FW PiZiGate: Amélioration scripts & support préliminaire PIv2 (2638). -- Dump Zigate: Support préliminaire. -- Scripts: Utilisation de 'python3' et non pas 'python'. -- Scripts/checkTTY: Arret forcé du processus si port utilisé. -- Scripts: updateFirmware => updateZigate. -- Scripts: Nettoyage. Suppression 'installWiringPi' + 'installPiGpio' => 'installPackage' -- Page de config: Correction visuelle mineure. -- Placement réseau: changements en cours. -- Scripts: Correction droits 'installPackage.sh' -- Interne: Abeille: setPIGpio(). -- Support PiGpio: Corrections. - -240216-BETA-1 -------------- - -- Modèle forcé: Correction. -- Réparation d'équipement: Améliorations. -- Interne: Zigbee const: Ajout FC20 + FC21 (Profalux). -- Interne: Cmd: Amélioration 'configureReporting2'. -- Profalux BSO: Mise-à-jour du modèle (2687). -- Interne: Parser: Corrections pour support modèle avec variante ([-variantX]). -- Interne: AbeilleModels: Amélioration pour robustesse. -- Affichage commandes: min/max affiché si slider. 'Inverser' affiché si info binaire. - -240213-BETA-1 -------------- - -- Interne: Cmd: Suppression 'Network_Address_request' => 'getNwkAddress'. -- Page équipment/avancé: Ajout support 'Network_Address_request'. -- Interne: Cmd: 'cmd-Private' revisité. -- Modèle forcé: Corrections. -- Profalux: Cmd: Corrections. -- Réparation d'équipement: Améliorations. -- Interne: Corrections pour meilleur support des modèles avec variante. -- Interne: eqLogic: 'ab::signature' supprimé => 'ab::zigbee'. - -240209-BETA-1 -------------- - -- Modèles: Ajout fabricant & type generic sur certains modèles Philips. -- Ikea RODRET dimmer: Ajout modèle variante 'direct' (2684). -- Interne: Parser+Cmd: Messages en attente supprimés si équipement change de réseau. -- Page config: Bouton 'libérer' visible en mode dev seulement. Pas robuste pour utilisateur final. -- Outils: Script de test en ligne de cmd préliminaire (resources/scripts/checkZigate.sh) -- Profalux BSO tilt: Correction regression (2687). -- Interne: Cmd: Meilleur support '#cmdInfo_xxx'. -- Interne: Cmd: Ajout 'AbeilleCmd-Profalux.php' pour nettoyage modeles. - -240201-BETA-1 -------------- - -- Interne: Amélioration latence. Si equipement sans réponse (NO-ACK), passe en basse priorité. -- Interne: Qq corrections + ajout support 'readAttribute2()' pour test. -- Ikea RODRET dimmer: Mise-à-jour du modèle (2684). -- Ikea capteur qualité de l'air VINDSTYRKA: Mise-à-jour du modèle (2681). -- Interne: Cmd ignorée si déja 'pending' qq soit la priorité. -- Interne: Amélioration 'check_json'. - -240124-BETA-1 -------------- - -- Ikea capteur qualité de l'air VINDSTYRKA: Mise-à-jour du modèle (2681). -- Interne: Cmd: Amélioration formatAttribute() pour type x39/single precision + int8/int24/int32. -- Placement réseau: En cours de revue. -- Interne: Zigbee: Ajout support clusters 040C/CO, 040D/CO2, 042A/PM2.5 -- Page config: Firmwares renommés. -- Page config: Corrections test de port + mise-à-jour FW. -- Page config: Correction canal Zigbee (? = auto) + correction erreur changement. -- Assitant modèle: Ajout support clusters 040C/CO, 040D/CO2 & 042A/PM2.5 -- Ikea RODRET dimmer: Suppport préliminaire (2684). -- Interne: Cmd: getSimpleDescriptor = commande avec ACK. -- Interne: Parser: Correction mauvais EP enregistré lors d'une réponse 'simple descriptor'. -- Remplacement d'équipement: Corrections (2683). - -240116-BETA-1 -------------- - -- Interne: Cmd: clearPending(). -- Zlinky: Mise-à-jour du modèle (2678). -- Placement réseau: Corrections. -- Interne: Suppression fichiers obsoletes => archives. -- Capteur lumière AQARA GZCGQ11LM: Ajout support (2679). -- Ikea Capteur qualité de l'air: Support préliminaire (2681). -- Assistant modèles: Correction cluster 0008. -- Ikea Trafri E27: Support préliminaire (2680). -- Lidl detecteur de mouvement: Correction modèle (2674). -- Page réseau: Revisitée. - -240107-BETA-1 -------------- - -- Réseau: Rework en cours 'graph des liens'. -- Interne: Corrections suite debug 2675 (Modèle 'rucheCommand' inconnu). -- Interne: Parser: Correction 2678 ('getSimpleDescriptor': Paramètre 'ep' vide !). -- ZG-003-RF: Support préliminaire (2408). -- Zlinky: Mise-à-jour du modèle (2678). -- Interne: Cmd: Suppression des messages pending suite changement adresse. - -240104-BETA-1 -------------- - -- Interne: Cmd: Regulation revue. -- Profalux BSO: Modèle revu. Suppression 'lift' (idem 'Set Level'). -- Interne: Cmd: Plus que 3 niveaux de priorités. -- Owon-THS317-ET: Ajout d'un modèle pour les vieux équipements (EP=03 au lieu de 01, voir 2319). -- Interne: Nouvelle lib 'AbeilleModels.php'. -- Page compatibilité: Mise-à-jour. -- Interne: Abeille.class: Utilisation lib 'AbeilleModels.php'. -- Interne: AbeilleTools/getDevicesList() remplacé par AbeilleModels/getModelsList() - -231231-STABLE-1 ---------------- - -Abeille continue son petit chemin, même si exclusivement dédié aux Zigates aujourd'hui. Toujours dans l'idée de rendre son utilisation plus robuste et simple. - - .. warning:: **Mise-à-jour de modèles** - - - Malgré la volonté de faire des évolutions les plus transparentes possibles, il se peut que certains équipements nécessitent d'être mis-à-jour à partir de leur dernier modèle pour à nouveau fonctionner correctement. Si ils sont sur batterie, réinclusion nécessaire. Si sur secteur, aller à la page 'avancé' et bouton 'mise-à-jour'. - .. warning:: **Zigates v2/+** - - - FW **v3.22** recommandé. - - La maturité de la v2 n'est pas au niveau de la v1. Le FW qui semble le plus stable n'est PAS le dernier dispo (3.A0) mais le précédent (**3.22**). Nous vous conseillons de faire la mise-à-jour vers celui ci. - .. warning:: **Zigates v1** - - - FW **v3.23 OPDM** recommandé. La version minimale est la '3.1E' mais ne sera bientot plus supportée. - - Le dernier FW officiel est le v3.23. Il est recommandé de basculer dessus pour ne pas faire façe à des soucis déja corrigés. - - D'autre part si vous n'êtes pas en version OPDM (Optimized PDM), il est fortement recommandé de basculer dessus dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - -231209-BETA-2 -------------- - -- Interne: Correction NPDU regulation. - -231208-BETA-1 -------------- - -- Interne: Mise-à-jour powerCycleUsb pour récuperer sortie 'dmesg' si erreur. -- Interne: AbeilleCmd: Pas de ACK sur requete LQI vers Zigate. -- Placement réseau: Utilisation image par défaut si plan n'existe plus. -- Interne: AbeilleCmd: Correction perte de commandes si trop dans la queue à la fois. -- Interne: AbeilleCmd: Amélioration 'throughput regulation'. - -231207-BETA-2 -------------- - -- Modèles: - - - Tous les modèles utilisent 'act_zbConfigureReporting2'. - - Correction de certains mauvais type d'attribut pour configureReporting2. - - Améliorations outil de check. -- Page santé: Réactivation raffraichissement toutes les 2 sec. -- Interne: Configuration des Zigates au démarrage revue. Déplacée dans AbeilleCmd. -- Rappel: Le mode 'normal' de la Zigate n'est plus supporté donc FW >= 3.1E requis. -- Timeout: Correction pouvant expliquer le passage en timeout de certains équipements. -- Interne: Autre corrections du parser. -- Support Xiaomi: Améliorations internes. - -231205-BETA-6 -------------- - -- Interne: Cmd: Réactivation régulation NPDU pour éviter erreurs x85. -- Assistant modèle: Correction. -- Tuya detecteur de présence ZG-205Z: Support préliminaire. -- Page EQ/avancé: correction suppression modèle local. -- Modèles de commandes: Normalisation noms. -- Correction regression Tuya: 'Call to undefined function tuyaGenSqn()' -- Tuya IH-K009: Mise-à-jour modèle 'TS0201__TZ3000_dowj6gyi'. -- Page santé: Amélioration: Equipements désactivités barrés. -- Support de clusters privés: - - - Syntaxe des modèles revue (mot clef 'private'). - - Support limité à Xiaomi seulement. - - Tous les modèles Xiaomi mis-à-jour. -- Xiaomi Aqara smart plug EU: Mise-à-jour du modèle (2665). -- Tuya/Moes universal remote: Séparation des modèles pour versions batterie et USB. -- Page maintenance/infos clefs: Amélioration affichage. -- Modèles - - - Plusieurs mis-à-jour pour utiliser 'configureReporting2' au lieu de 'configureReporting'. - - Plusieurs corrigés pour reporting cluster 0008. Mauvais type d'attribut. - - Plusieurs corrigés pour reporting cluster 0102. Mauvais type d'attribut ou mauvais attribut. -- Multiprise Lidl HG6338-FR: Mise-à-jour du modèle. - -231202-BETA-3 -------------- - -- Page EQ/avancé: Traductions US. -- Modèles: Nettoyage 'poll=0' -- Modèles: Amélioration 'trigOut' pour support multiples actions. -- Attribut 0000/LocalTemp du cluster 0201 divisé par 100 par défaut. -- Interne: Cmd: Correction 'writeAttribute0530()' -- Interne: Cmd: Corrections 'writeAttribute()' -- Attribut 0012/OccupiedHeatingSetpoint du cluster 0201 divisé par 100 par défaut. -- Danfoss eTRV010x: Modèle en cours de changements (2662). -- Page EQ/avancé: Améliorations écriture attribut. -- Danfoss eTRV010x: Qq commandes cachées par défaut car sans interet (2662). -- Interne: Améliorations constantes Zigbee cluster 0201. - -231130-BETA-2 -------------- - -- Interne: Parser: decode8002, monitoring revu => parserLog2(). -- Danfoss eTRV010x: Modèle en cours de changements (2662). -- Suppression de modèles de commandes obsoletes: - - - spiritBatterie-Pourcent - - spiritTemperature - - spiritUnknown1 - - spiritUnknown2 -- Interne: Cmd: execute() revue préliminaire. -- Modele 'TS0601__TZE200_e3oitdyu' (Moes MS105B): Ajout de signatures alternatives (2473). -- Modele 'TS0601__TZE200_e3oitdyu' (Moes MS105B): Mise-à-jour du modèle pour canal 2 (2473). -- Support Tuya, commandes action: - - - Ajout 'setEnum' - - Ajout support optionnel 'mult' & 'div' pour 'setValue'. - - 'setValueMult' & 'setValueDiv' sont obsoletes => 'setValue' + mult/div - - Modeles obsoletes: act_tuyaEF00-Set-Setpoint, act_tuyaEF00-Set-Setpoint-Mult, act_tuyaEF00-SetThermostatMode -- Page EQ/avancé: Ajout support 'manufCode' sur commande générique. - -231128-BETA-1 -------------- - -- Interne: Cmd: 'configureReporting2' completement revu. -- Ikea Tradfri E27 LED2102G3: Correction image (2626). -- Icones: Qq images renommées - - - 'eTRV0100' => 'Danfoss-Ally-Thermostat' - - 'IkeaTradfriBulbE14WSOpal400lm' => 'Ikea-BulbE14-Globe' - - 'ProfaluxLigthModule' => 'Profalux-LigthModule' - - 'Ikea-BulbE14CandleWhite' => 'Ikea-BulbE14-Candle' - - 'TRADFRIbulbE14Wopch400lm' => 'Ikea-BulbE14-Candle', - - 'TRADFRIbulbE14WS470lm' => 'Ikea-BulbE14-Candle', - - 'TRADFRIbulbE27WSopal1000lm' => 'Ikea-BulbE27', - - 'TRADFRIbulbE27WW806lm' => 'Ikea-BulbE27', -- Interne: Cmd: Mise-à-jour formatAttribute(). -- Interne: Cmd: Correction formatAtrtibute() pour type 0x30/enum8. -- Page 'compatibilité' revue. - -231127-BETA-3 -------------- - -- Page EQ/avancé: - - - Réparation équipement: Améliorations. - - Fonctionalité maintenant accessible à tous. -- Interne: Normalisation infos modèle: 'modelSig'/'modelName'/'modelSource' -- Interne: Normalisation infos modèle: forcedByUser => modelForced -- eTRV0103: Mise-à-jour du modèle. -- Legrand micromodule switch: Mise-à-jour du modèle (2663). -- Tuya double dimmer module QS-Zigbee-D02-TRIAC-2C-LN: Ajout support préliminaire (2664). -- Assistant modèle: Améliorations. -- Xiaomi wall switch sensor_86sw1 & sensor_86sw2: Support+modeles revus. -- Tuya detecteur fumée TS0205__TZ3210_up3pngle: Mise-à-jour du modèle (2658). -- Blitzwolf BW-SHP13: Mise-à-jour du modèle. -- Modèles: Suppression commandes obsolètes: - - - PuissanceVoltagePrise => inf_zbAttr-0B04-RMSVoltage - - PuissanceCurrentPrise => inf_zbAttr-0B04-RMSCurrent - - poll-0B04-0505-0508-050B => act_poll-0B04-0505-0508-050B - - poll-0702-0000 => act_poll-0702-0000 -- Mise-à-jour de qq modèles TS0121. -- SilverCrest-HG08673-FR: Mises-à-jour du modèle (2635). -- Interne: AbeilleCmd: Mises-à-jour 'cmd-0201'. -- Interne: Constante Zigbee cluster 0201: Améliorations. -- Interne: Cmd: configureReporting2, changeVal mis à 0 par défaut. - -231124-BETA-2 -------------- - -- Support commande utilisateur: Amélioration. -- Moes télécommande universelle IR: Mise-à-jour du code (2607). -- Page equipement: Traductions US. -- Réparation équipement: Améliorations. - -231123-BETA-1 -------------- - -- Page équipement - - - Ajout affichage fabricant & modèle. - - Correction affichage dernier LQI. - - Correction traductions US. - - Onglet commandes legèrement revu. - - Onglet commandes: ajout saut de ligne avant/apres. -- Danfoss thermostat eTRV0103: Ajout support (2662). -- Ajout support cmdes utilisateur (ID logique = xxxidxxx::parametres). Utile pour telecommande universelle. -- Moes télécommande universelle IR: Mise-à-jour du code & modèle (2607). - -231119-BETA-1 -------------- - -- SilverCrest-HG08673-FR: Mises-à-jour du modèle (2635). -- ORVIBO CM10ZW: Mises-à-jour du modèle (2024 & 2648). -- Page EQ: Affichage signature du modèle pour support modèles multi-signatures. -- Page EQ: Affichage 'DateCode' (cluster 0000, attrib 0006). -- Ikea wireless dimmer (ICTC-G-1): Modèle revisité. -- Interne: Cmd: 'getRoutingTable' + 'getBindingTable' attendent ACK. -- Interne: Status 'NO-ACK' ne fait du sens que pour équipements en écoute permanente. -- Page EQ/avancé: Traductions US. -- Page EQ/avancé: Réparation de l'état de l'équipement... en cours de revue. -- Interne: AbeilleCmd: Corrections autour de la mise-à-jour d'un équipement. -- Tuya detecteur fumée TS0205__TZ3210_up3pngle: Ajout support préliminaire (2658). -- Page maintenance/infos clefs: Amélioration. -- Interne: Abeille.class: Corrections 'deviceUpdates'. -- Suppression équipement: Correction incompatibilité core '4.3.19' vs '4.4.0' -- Ikea 'TRADFRIcontroloutlet': Mise-à-jour du modèle. - -231110-BETA-1 -------------- - -- Owon-THS317-ET: Mise-à-jour du modèle (2319). -- Page réseau: Amélioration message durant collecte LQI. -- Gledopto GL-SD-001: Mise-à-jour du modèle. -- Tuya ZS08 télécommande universelle alimentée par USB: Ajout support. -- Meilleur support des modèles avec signature alternative. -- Abeille remote control: Commandes 'on all' & 'off all' cachées par défaut. Trop dangereux. -- Interne: Mise-à-jour 'getDevicesList()' + 'getDeviceModel()'. -- Reset de modele: Correction pour signatures alternatives. -- Suppression d'un équipement: Correction permettant d'afficher comment il est utilisé avant suppression (2652). -- Page EQ/avancé: Correction interrogations quand adresse IEEE nécessaire (2653). -- Interne: Correction: AbeilleCmd informé si changement d'adresse via 'device announce' ou migration de réseau. - -231107-BETA-2 -------------- - -- Heiman water sensor (WaterSensor-EM): Mises-à-jour mineures du modèle mais toujours pas de retour d'alarme. -- Interne: AbeilleCmd: Correction regression 'cmd-0006'. -- Tuya 1ch switch module: Correction modèle. -- Découverte d'équipements absents de Jeedom améliorée lors du raffraichissement réseau. - -231106-BETA-5 -------------- - -- IKEA TRADFRIbulbE27opal1000lm: Correction modèle (2644). -- TRV06: Correction modèle. -- Xiaomi Aqara Opple 4 boutons: Mises-à-jour du modèle (2636). -- Modèles: Cmde 'onGroupBroadcast'/'offGroupBroadcast' remplacée (cmd-0006 + addrMode=04). -- Télécommande virtuelle: Correction pour 'onGroupBroadcast'/'offGroupBroadcast'. -- SilverCrest-HG08673-FR: Mises-à-jour du modèle (2635). -- Gledopto Spectre Blanc & RGBW GU10: Correction modèles (2646). -- Profalux volets gen2: Mises-à-jour du modèle MOT-C1Z06C. -- Profalux BSO gen2: Mises-à-jour du modèle. -- Trafri remote control: Mises-à-jour du modèle. -- Modèles: Suppression commande 'toggleGroup' => 'act_zbCmdC-0006-ToggleGroup'. - -231104-BETA-2 -------------- - -- Interne: Cmd: Correction 'cmd-0006'. -- Interne: Zigbee const: Améliorations cluster 0702. - -231103-BETA-1 -------------- - -- Interne: Zigbee const: Correction support cluster 0012, 13 & 14. -- Modèles de cmdes: Ajout 'act_zbCmdC-0006-OffGroup' & 'act_zbCmdC-0006-OnGroup' -- Télécommande virtuelle: revue pour utilisation 'OnOffGroup'. -- Modèles: Cmde 'OnOffGroup' remplacée (cmd-0006 + addrMode=01). -- Modèles d'équipements: Correction retour d'état (bind) sur de nombreux modeles. - -231027-BETA-2 -------------- - -- Interne: Tools/check_json: Améliorations. -- Modèles d'équipement: Correction d'erreurs sur qq modèles. -- Assistant modèles: Améliorations. -- SilverCrest-HG08673-FR: Support préliminaire (2635). -- Page EQ: Corrections pour forçage de modele. -- Xiaomi Aqara Opple 4 boutons: Support préliminaire (2636). - -231023-BETA-2 -------------- - -- Loratap télécommande 6 boutons: Support préliminaire (2631). -- Moes 3 boutons (TS0043__TZ3000_gbm10jnj): Ajout support (2630). -- Interne: Cmd: Ajout 'cmd-0006' pour suppression vieilles commandes 'OnOffX'. -- Interne: Cmd: Suppression support cmds 'OnOff'/'OnOffRaw'/'OnOff2'/'OnOffOSRAM'/'OnOff3'/'OnOff4'/'OnOffHue' - -231020-BETA-2 -------------- - -- Heiman HS1SA: Mise-à-jour modèle. Ajout de signatures alternatives. -- Interne: Mises-à-jour support Tuya-Zosung. -- Sirene iAlarm: Mises-à-jour du modèle (2629). -- Moniteur: Amélioration interne pour support gros messages. -- Moes télécommande universelle IR: Mise-à-jour du code pour ce support particulier (2607). -- Page de config: Vérification adresse IP remplie si type WIFI. - -231012-BETA-1 -------------- - -- Interne: Nettoyage DB 'config' pour clefs zigates 7 à 10. -- Cmd info 'Online': Correction (passage par 0 inattendu). -- Profalux BSO: Modèle revisité. - -231010-BETA-2 -------------- - -- Interne: Msg 8012 n'est plus transmis à 'AbeilleCmd'. -- Interne: Cmd: Correction changement adresse lors d'une nouvelle annonce. -- Interne: Correction status 'NO-ACK' + 'ab::noack' => 'ab::txAck'. -- Interne: Cmd: Mise-à-jour 'ieeeOk' à revisiter. - -231009-BETA-1 -------------- - -- Interne: AbeilleCmd: Nouvelles modifs pour support Tuya Zosung (universal remote). -- Interne: Tuya parser: Support cmd EF00-06 (TY_DATA_SEARCH ?) revue. -- Interne: Cmd & parser: Amélioration fonction de 'monitoring. -- Assistant modèle: Corrections suite changement noms modèles de commandes. -- Sirene iAlarm: Support préliminaire (2629). -- Tuya temp/humidité/afficheur: Mise-à-jour du modèle (2619). - -231004-BETA-1 -------------- - -- Aeotec range extender: Ajout support (2627). - -231002-BETA-1 -------------- - -- Moes télécommande universelle IR: Mise-à-jour du code pour ce support particulier (2607). -- Interne: Parser: Message 'deviceUpdates' seulement si IEEE connue. -- Logs: 'AbeilleSerialReadX.log' déplacé dans '/tmp'. -- Page maintenance: Correction erreur à l'affichage. -- Page maintenance: Amélioration infos clefs. -- Interne: AbeilleSerialRead: Changements mineurs. -- Modeles: Ajout support 'disableTitle' pour cmd action de type 'message'. -- Interne: AbeilleCmd revisité. Variables 'zigates' sorties de la classe. -- Interne: Cmd: 'getNetworkStatus' => 'zgGetNetworkStatus'. -- Interne: Cmd: Suppression message erreur 'Unknown device'. - -230919-BETA-1 -------------- - -- Interne: Parser: Cluster FC00 traité par message 8002 pour future migration mode 'raw'. -- Interne: Ajout surveillance 'NOACK' en plus de 'Timeout'. -- Page santé: Status amélioré => 'Time-out', ''no-ack' ou 'time-out&no-ack' - -230918-BETA-1 -------------- - -- Philips Hue Candle WA: Support preliminaire (2622). - -230915-BETA-1 -------------- - -- Modèles commandes: - - - Suppresssion 'act_zbCmdC-XXXX-Custom.json' - - Ajout 'act_zbCmdC-Generic.json' -- Interne: Cmd: Correction 'cmd-Generic'/'manufCode'. -- Interne: Parser: Generation d'une info 'inf_EP-CLUST-cmdXX' pour toute commande inconnue spécifique cluster. -- Moes télécommande universelle IR: Mise-à-jour du modèle & code (2607). -- Interne: Cmd: Mise-à-jour 'setTemperature'. -- Interne: Parser: Correction mauvaise interprétation 'ColorTempMired' (2544). -- Livarno Home floor lamp: Mise-à-jour du modèle (2544). -- Page updates OTA: Améliorations aspect & traductions US. -- Interne: Cmd+Parser: Améliorations pour support 'restore PDM'. -- Interne: Install: Correction constante nbre de Zigates. -- Nbre de Zigates: 6 supportées au max au lieu de 10. -- Traductions US: Qq corrections concernant la programmation du FW Zigate. -- Interne: Modeles & Parser: Support nouveau format cluster privés. -- Interne: Amélioration support err 14 Zigate. - -230907-BETA-2 -------------- - -- Page maintenance: Amélioration affichage JSON. -- Page maintenance: Affichage JSON du répertoire local 'tmp'. -- Interne: Parser: Support dump/backup tables PDM (msg 'AB00' + 'AB01', FW 'AB01-0000'). -- Page Zigate/avancé: Correction 'Reset HW'. -- Interne: Parser: Support restoration tables PDM (msg 'AB02' + 'AB03', FW 'AB01-0000'). -- Interne: Changement nommage firmwares (zigatevX-YY.ZZ-legacy/opdm.bin). -- Tuya afficheur température & humidité: Support préliminaire (2619). - -230830-BETA-2 -------------- - -- Page EQ/avancé: Correction traductions US. -- Page EQ/avancé: Ajout bouton lecture version FW. -- FW Zigates v1: Suppression FW officiels autres que 3.23. -- Page santé: Correction tri du tableau après raffraichissement. -- Page santé: Corrections traduction US. - -230822-BETA-1 -------------- - -- Ledvance 'PlugValue': Ajout support (2610). -- Modèle de commande: - - - 'inf_zbCmdR-XXXX-Yyyyy' => 'inf_zbCmdC-XXXX-Yyyyy' -- Smart Switch ZG-005-RF: Mise-à-jour du modèle (2608). -- Page EQ/avancé: Possibilité de forcer le modèle d'équipement. -- Page de config: Correction mineure pour mode dev. -- Page de config: Support préliminaire FW custom (mode dev uniquement). -- Lexman LDSENK01F: Ajout support (2613). -- Ajout support préliminaire pour FW Zigate v1 'Abeille'. -- Interne: Pas de polling si équipement désactivé. -- Interne: Amélioration collecte LQI. -- Cmde manquante: Amélioration messages d'erreurs. -- Page EQ/avancé: Correction regression bouton suppression modèle local. -- Interne: Commandes Zigates prefixées par 'zg'. -- Interne: Correction adresse commande 'identifySend'. -- Interne: 'check_json' amélioré. -- Interne: Parser: Correction mineure. -- Page de gestion: Correction pb de selection pour les groupes. - -230811-BETA-1 -------------- - -- Assistant modèle: Mise-à-jour. -- Page santé: Revue pour raffraichissement automatique toutes les 2sec. -- Interne: Suppression 'health.js'. -- Interne: Suppression lecture attrib 0006-0000 & 0008-0000 suite à 'setLevelRaw'/'onoff'/'OnOffTimed'. - -230810-BETA-1 -------------- - -- Interne: Parser: Nettoyage. -- Page de l'équipement: Mise-à-jour traductions 'en_US'. -- Smart Switch ZG-005-RF: Ajout support (2608). -- Interne: Suppression 'Abeille-Js.php' -- Page EQ: Correction mauvais raffraichissement des infos sur recharge de page. -- Interne: Cmd 'identifySend' revisité. -- Page EQ: Ajout support 'identifySend'. -- Modèle de commande: - - - ' Identify.json' => 'act_zbCmdC-Identify' - - 'act_zbCmdG-XXXX-YYYY' => 'act_zbCmdC-XXXX-YYYY' - -230804-BETA-1 -------------- - -- Interne: AbeilleCmd: Ajout support 'cmd-Generic'. -- Page EQ/avancé: Ajout support 'Commande générique'. - -230803-BETA-2 -------------- - -- Page de l'équipement: Corrections translation 'en_US'. -- Interne: jeedom.eqLogic.builSelectCmd() => buildSelectCmd(). Core v4.0 min. -- Interne: Mise-à-jour AbeilleNoise. -- Interne: Ajout cmd 'configureReporting2' (minInterval/maxInterval/changeVal = nombres). -- Page EQ/avancé: Ajout support 'configureReporting2'. -- Nous smart socket A1Z: Mise-à-jour du modèle pour réduire reporting (2460). -- Livarno Home floor lamp: Mise-à-jour du modèle (2544). -- Assistant modèle: Amélioration pour cluster 0300/Color control. - -230730-BETA-1 -------------- - -- Interne: Correction redémarrage Zigate Wifi. -- Maintenance/infos clefs: Ajout nb lignes de log. -- Profalux volet: Template par défaut = shutter pour 'Current Level'. -- Page de config: Corrections translation 'en_US'. -- Page de gestion: Corrections translation 'en_US'. -- Modèles de commandes: - - - Suppression 'zb-CustomInfo.json' obsolète. - - Suppression cmde obsolète 'temperatureLight.json' => 'inf_zbAttr-0300-ColorTemperatureMireds'. - - Suppression cmde obsolète 'temperatureLight1.json' => 'inf_zbAttr-0300-ColorTemperatureMireds'. - - Suppression cmde obsolète 'temperatureLight2.json' => 'inf_zbAttr-0300-ColorTemperatureMireds'. - - Suppression cmde obsolète 'temperatureLightV2.json' => 'inf_zbAttr-0300-ColorTemperatureMireds'. - - attr-XXXX => inf_XXXX -- Moes télécommande universelle IR: Support préliminaire (2607). -- Interne: Suppression fichier 'inconnu.php' obsolète. - -230721-BETA-2 -------------- - -- Page maintenance: Infos clefs: Mise-à-jour. -- Interne: Mise-à-jour 'info.json'. Version minimale du core = 4.0. -- Dependances: Mise-à-jour du code. Unique dépendance de base = python3. -- Zigate WIFI: Socat relancé au bout de 2 mins si pas de signe de la Zigate. -- Affichage commandes: Correction possibilité de les réordonner par drag & drop (2602). - -230718-BETA-1 -------------- - -- Interne: Parser: Améliorations pour reconnaissance fantomes. -- Page équipement: Corrections d'affichage 'type' & 'icone'. -- Blitzwolf temp/humidité/display: Correction signature pour 'TS0201__TZ2000_hjsgdkfl'. -- Volet Profalux: Changement catégorie => 'ouvrant'. -- Interne: AbeilleTools::getParameters() => getConfig(). -- Zigate USB/+: Cycle power off/on si sans réponse depuis plus de 2mins. -- Interne: Supression de qq fichiers obsoletes. -- Page de config: Ajout option avancée pour empecher cycle power OFF/ON sur Zigates USB plantées. -- Page de config: Qq améliorations de traductions US. -- Interne: Améliorations 'powerCycleUsb.sh'. -- Zigate PI/+: HW reset si sans réponse depuis plus de 2mins. - -230711-BETA-1 -------------- - -- Interne: Parser: Corrections d'identification cas Profalux. -- Aubess TS044 _TZ3000_wkai4ga5: Mise-à-jour du modèle pour eviter annonces multiples (2594). -- Controlleur d'arrosage WOX: Mise-à-jour du modèle pour remontée batterie (2599). -- Page maintenance: Mise-à-jour infos clefs. -- Interne: Parser: Support prélim. EF00 cmd 06/TY_DATA_SEARCH. -- Schneider Wiser plug: Support préliminaire (2601). - -230618-BETA-1 -------------- - -- Modeles équipement: Suppression commande 'Xiaomi-ff01'. -- Correction changement de canal Zigate. - -230613-BETA-1 -------------- - -- Modèle équipement: 'value' peut etre surchargé. -- Profalux volet: Valeur par défaut 'Set Level' ajustée sur 'CurrentLevel'. - -230528-STABLE-1 -------------- - -- Tuya garage door controller: Mise-à-jour du modèle (2581). -- Trafri shortcut: Mise-à-jour modèle pour 'Click-Middle'. - -230521-BETA-1 -------------- - - .. important:: Zigates v2 - - - La maturité de la v2 n'est pas au niveau de la v1. Il est donc recommandé de suivre autant que possible les mises-à-jour du firmware (v3.A0 à ce jour). - .. important:: Zigates v1 - - - Le dernier FW officiel est le v3.23. Il est recommandé de basculer dessus pour ne pas faire façe à des soucis déja corrigés. - - Dans tous les cas un FW >= 3.1e est nécéssaire. - - D'autre part si vous n'êtes pas en version OPDM (Optimized PDM), il est fortement recommandé de basculer dessus dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - -- Placement réseau: - - - Affichage de tous les réseaux avec possibilité de masquer. - - Corrections. - - Ajout mode config. -- Interne: Parser: genZclHeader() -- Interne: Cmd: genZclHeader() sur 'discoverCommandsReceived'/'discoverCommandsGenerated'/'discoverAttributesExt'. -- Sonoff SNZB-02D: Support préliminaire (2592). - -230511-BETA-1 -------------- - -- Loratap telecommande 3 boutons: Ajout support (2589). -- Réparation (beta): Améliorations. -- Disjoncteur intelligent Tongou: Mise-à-jour image (2583). -- Tuya: Support message 0x11. -- Tuya garage door controller: Mise-à-jour du modèle (2581). -- Page EQ avancé: Corrections affichage identifiant & modele. -- Placement réseau: Corrections regressions. - -230509-BETA-1 -------------- - -- Page EQ/cmdes: Correction boutons ajouter cmde (mode dev). -- Placement réseau: Ajout bouton d'analyse réseau. -- Placement réseau: Choix du niveau à afficher. -- Garage door controller: Mise-à-jour du modèle (2581). -- Support Tuya: Ajout support message 0x25/INTERNET_STATUS. -- Page de gestion: Correction regression passage en mode inclusion non fonctionnel. -- Page avancé: Correction regression boutons 'Réparer'/'Mise-à-jour'/'Réinit'/'Assistant'. - -230505-BETA-2 -------------- - -- Interne: AbeilleUpload: Crée toute la hierarchie de destination. -- Placement réseau: Possibilité de charger nouveau plan + divers. -- Matsee Plus single phase power meter: Modèle préliminaire (2588). -- Capteur temp & humidité: Modèle préliminaire (2579). - -230503-BETA-2 -------------- - -- OTA: Fichier non FW ignoré. -- OTA: Amélioration msg de debug. -- Page équipement: Correction absence boutons 'sauvegarder'... -- Placement réseau: - - - Améliorations choix de niveaux. - - Couleur des liens en fonction du LQI. - -230502-BETA-1 -------------- - -- Placement réseau: - - - Taille du texte passée à 12px. - - Possibilité de ne pas afficher les liens pour faciliter le positionnement des équipements. - - Les cartes sont stockées en interne dans 'Abeille/tmp/network_maps'. - - Sauvegarde automatique de la position d'un équipement. - - Support préliminaire d'un plan par étage. -- Blitzwolf SHP15: Mise à jour modèle. -- Zigate: Canal Zigbee configuré à chaque démarrage. -- Garage door controller: Support préliminaire (2581). -- Disjoncteur intelligent: Support préliminaire (2583). -- Interne: Prelim. Organisation page 'desktop' revue + nettoyage pour compatibilité core v4.4. -- Interne: Merge 'SW-SDK' + 'SW-Application' => 'FW-Version'. -- Prise murale Tuya: Support préliminaire (2584). - -230426-BETA-1 -------------- - -- Ikea E14 WS globe 470lm: Mise-à-jour modèle (2578). -- Xiaomi 'sensor_ht': Modification modele pour ajout section 'xiaomi'. -- Module volet roulant LoraTap SC500ZB-v2: Mise-à-jour modèle (2552). -- Trafri remote control: Mise-à-jour modele (2576). -- Nouvelles commandes pour cluster 0008. -- Interne: Parser: Correction bugs cluster 0006 & 0008. - -230422-BETA-1 -------------- - -- Network graph: Possibilité de sauver la position d'un équipement. -- Network graph: Renommé en 'Placement réseau'. -- Interne: Placement réseau: Ajout config 'ab::userMap'. -- Plaement réseau: Limitation aux dimensions du plan. -- Interne: Parser: Correction message cluster 0006 dupliqué (2574). -- Placement réseau: Couleur de lien fonction du LQI. -- Interne: Parser: Cmd Ikea cluster 0005 cmd 07 revue. -- Trafri remote control: Mise-à-jour modele (2576). -- Interne: Parser: Correction 'decodeDataType()' pour type 41/42. -- Interne: Parser: Correction 'Attribut report'. -- Ikea E14 WS globe 470lm: Support préliminaire (2578). -- OTA: Correction regression. - -230416-BETA-1 -------------- - -- Modeles: Ajout/correction 'logicalId'. -- Sonoff ZBMINIL2: Mise-à-jour du modèle & image (2569). -- Blitzwolf BW-IS4: Correction type batterie & timeout. -- Tuya temp & humidity display: Ajout support 'TS0201__TZ2000_a476raq2' (2570). -- Interne: Cmd: moveToLiftAndTiltBSO(), correction PHP warning. -- Interne: Parser: Support type 4C pour Xiaomi. -- PaulmannLichtGmbH 500.44: Ajout image. Modele non confirmé (2516). -- Network graph: Modifications internes préliminaires. -- Interne: Correction perte de cmdes lors de la mise-à-jour. -- Interne: Parser: Correction decodeDataType(). -- Interne: Parser: Correction pour inclusion. -- Interne: Suppression des 'comment' durant mise-à-jour des cmdes. -- Interne: Correction 'ep manquant'. - -230408-BETA-5 -------------- - -- Bouton IP55 Moes: Mise-à-jour du modèle (2562). -- Xiaomi sensor_switch.aq2/remote.b1acn01: Mise-à-jour des modèles. -- Interne: Parser: Suppression decodeFF01(). -- Assistant découverte: Améliorations. -- Xiomi plug: Mise-à-jour du modèle. -- Sonoff ZBMINIL2: Ajout support préliminaire (2569). -- Interne: Parser: Extension support attribut non standard. -- TS201 (TS0201__TZ3000_ywagc4rj): Modele specifique pour '%' non standard (2567). -- Curtain module (TS130F__TZ3210_dwytrmda): Ajout support (2568). -- Modele cmd 'click' renommé en 'inf_click'. -- Livolo TI0001: Correction modele (cmds logicalId). -- Modeles: Ajout/correction 'logicalId'. - -230405-BETA-2 -------------- - -- Groupes: Ajout 'suppression de tous les groupes'. -- Image: 'node_TRADFRIonoffswitch.png' => 'node_Ikea-OnOffSwitch.png' -- Loratap roller shutter touch switch v2: Mise-à-jour image (2561). -- Interne: Amélioration process de réparation. -- RDM001: Mise-à-jour du modèle (2185). -- Xiaomi vibration: Mise-à-jour du modèle. -- Xiaomi smoke (sensor_smoke): Modele géré par section 'xiaomi'. -- Interne: Parser: decodeDataType() ne s'arrete plus si erreur de taille. -- Prise Aubess TS011F, _TZ3000_gvn91tmx: Mise-à-jour du modèle (2558). -- TS201: Ajout signature TS0201__TZ3000_ywagc4rj (2567). -- Assistant modele: Mise-à-jour. -- Bouton IP55 Moes: Ajout support préliminaire (2562). -- Fonction 'réparation' préliminaire accessible à tous. - -230328-BETA-2 -------------- - -- Interne: Parser: Correction detection support de groupes. -- Page avancé/réparation: Support préliminaire. -- Page avancé: Ajout 'localisation' pour identifiant Zigbee (cas Profalux). -- Interne: Parser: Suppression support 8085/Level update pour compatibilité mode raw. -- Page avancé: Affichage des differents identifiants Zigbee si plusieurs. -- Loratap roller shutter touch switch v2: Mise-à-jour du modèle (2561). -- Mise-à-jour modèle TS130F__TZ3000_1dd0d5yi. -- Interne: Cmd: Amélioration mesg d'erreurs. -- Modèles: - - - Ajout 'act_setLevel-Light' pour remplacer 'setLevel'. - - Remplacement 'setLevel' => 'act_setLevel-Light' - - Suppression des cmdes info 'Groups' -- Ikea Trafri 470lm E27: Ajout support (2564). -- Groupes: Amélioration pour suppression d'un groupe. -- Page de config: Mise-à-jour des traductions anglaise. - -230326-STABLE-1 ---------------- - -230325-BETA-2 -------------- - -- Legefirm repeteur zigbee: Ajout support (2560). - -230324-BETA-2 -------------- - -- Legrand shutter switch: Correction modèle (2559). -- Interne: Constantes Zigbee, amélioration support cluster 0102. -- Interne: Parser: Ajout support 'unbind response'. -- Interne: createDevice(): Mise-à-jour pour éviter conflit de commandes. -- TRADFRIonoffswitch: Mise-à-jour du modèle. -- Modele de commandes: Suppression de cmde obsoletes. - - - current_position_lift_percentage - - getcurrent_position_lift_percentage -- Interne: Cmd: Changement msg debug. -- Interne: Parser: Correction support 'Node Descriptor Response'. -- Interne: Parser: Amélioration inclusion (ajout lecture 'manufCode'). -- Loratap roller shutter touch switch v2: Support préliminaire (2561). - -230322-BETA-3 -------------- - -- Girier curtain module: Mise-à-jour du modèle (2526). -- Interne: Parser: Correction warning PHP 'Binding table response'. -- Modele TS201 renommage automatique vers 'TS0201__TYZB01_hjsgdkfl'. -- Page avancé: Support préliminaire 'unbind'. -- Interne: Cmd: Support préliminaire 'unbind0031'. -- Interne: Cmd: Ajout support 'remove all groups'. -- Gestion des groupes: Amélioration affichage mineure. -- Groupes de la Zigate: Correction regression. -- Prise Aubess TS011F, _TZ3000_gvn91tmx: Mise-à-jour du modèle (2558). - -230320-BETA-3 -------------- - -- Image: 'Shutterswitchwithneutral' => 'Legrand-ShutterSwitch'. -- Image: 'Xiaomiwleak_aq1' => 'Xiaomi-LeakSensor'. -- Interne: Amélioration remplacement '#addrIEEE#', '#IEEE#' ou '#ZigateIEEE#'. -- 'sensor_wleak.aq1': Mise-à-jour du modèle. -- Page maintenance: Amélioration infos clefs. -- Package de logs: Ajout log 'event'. -- Aqara Motion Sensor P1 RTCGQ14LM/MS-S02: Mise-à-jour modèle (2463). -- Xiaomi 'plug': Mise-à-jour du modèle. - -230319-BETA-1 -------------- - -- Interne: Parser: Correction regression inclusion. -- Interne: Plusieurs correctifs 'deviceUpdates'. -- Page avancé: Ajout 'siren level' pour cmde 'Start Warning' (cluster 0502). -- Sirène M0L0-HS2WD-TY: Ajout info pourcentage batterie (2550). -- Support préliminaire 'pigiod' pour Pi-Zigates. -- Interne: Parser: Amélioration support cmdes specifiques cluster 0008. -- Modele TS201 renommé => TS0201__TYZB01_hjsgdkfl. -- Aubess prise TS011F: Ajout support préliminaire (2558). - -230314-BETA-1 -------------- - -- Loratap shutter: Nouveau modele: TS130F, _TZ3000_femsaaua (2552) -- MOES ZK-FR16M-WH: Mise-à-jour modèle 'TS011F__TZ3000_cphmq0q7' (2554). -- Interne: Cmd 0502: Amélioration pour support 'siren level'. -- Sirène M0L0-HS2WD-TY: Mise-à-jour modèle (2550). -- Commandes: Suppression 'VoltagePrise'. - -230311-BETA-1 -------------- - -- Xiaomi Aqara 2 way control module: Mise-à-jour modèle (2551). -- Page avancé/Mise-à-jour: Amélioration correction icone si invalide. -- Sirène M0L0-HS2WD-TY: Mise-à-jour modèle (2550). -- Interne: parser: correction crash decode8002_MgmtRtgRsp(). -- Image: Renommage 'HS2WD' => 'Heinman-IndoorSiren'. - -230308-BETA-1 -------------- - -- Interne: Parser: Décodage single/double precision revu. -- WarningDevice: Modèle supprimé. Supporté via 'WarningDevice-EF-3.0'. -- Interne: AbeilleTools: Suppression des 'commentX'. -- Page avancé: Cluster 0502/IAS WD, cmd 00/Start warning: Ajout 'duration'. - -230306-BETA-1 -------------- - -- Ikea telecommande 5 boutons: Mise-à-jour modèle (2547). -- Affichage groupes: Petite mise-à-jour. -- Interne: Cmd: Correction 'cmd-0502'. -- Interne: Parser: Msg 8095 désactivé pour support mode 'raw'. -- Page avancé: Support 'cluster 0502/IAS WD, cmd 00/Start warning'. -- Xiaomi Aqara 2 way control module: Mise-à-jour modèle (2551). - -230301-BETA-1 -------------- - -- Interne: Parser: Erreur 'msgToLQICollector' masquée pour FW 0005-03A0 (2546). -- Interne: Parser: Erreur 'msgToRoutingCollector' masquée pour FW 0005-03A0 (2546). - -230228-BETA-1 -------------- - -- Page maintenance/infos clefs: Amélioration mineure. -- Interne: Parser: Amélioration mineure msg debug. -- Nodon SIN-4-2-20: Mise-à-jour modele (2541). -- Innr RC110: Mise-à-jour modèle + renommé 'RC110' => 'RC110_innr'. -- Interne: Cmd: 'addGroup' revu. -- Modèles: 'groupEPx' pour définir une constante de groupe par end point. -- Interne: Configuration équipement faite par AbeilleCmd. -- Interne: getGroupMembership() revu. -- Interne: Parser: Ajout support 'addGroupResponse'/'removeGroupResponse' + zigbee['groups']. -- Interne: Parser: Interrogation des groupes lors de l'inclusion. -- Interne: Groupes: Utilisation eqLogic/config/zigbee/groups au lieu cmde info. - -230219-BETA-1 -------------- - -- Interne: Parser: Changement support clust 0000, attr 0004/5/10. -- Nodon SIN-4-2-20: Correction image (2541). -- Interne: Cmd: Timeout 8s si ACK. -- Xiaomi switch (switch.n0agl1): Correction regression modele (2517). -- Frient keypad: Mise-à-jour modele (2525). - -230215-BETA-2 -------------- - -- Interne: Parser: Améliorations mineures cluster 0004. -- Interne: Abeille.class: 'repeatEventManagement' seulement si reset équipement. -- Frient keypad: Mise-à-jour modele (2525). - -230214-BETA-1 -------------- - -- Interne: Cmd: Correction 'bind0030'. -- Eurotronic SPZB0001: Mise-à-jour modèle. -- Interne: Parser: Optimisation correction valeur suivant spec ZCL. -- Interne: Parser: Correction regression clean location. Peut impacter Profalux. -- Interne: Parser: Suppression progressive decode8100_8102(). -- Interne: Parser: Suppression support messages 80A0/80A3/80A4 pour compatibilité 'raw'. -- Interne: Parser: Optimisations pour compatiblité futur mode 'raw'. -- Frient keypad: Mise-à-jour modele (2525). -- Nodon SIN-4-2-20: Support préliminaire (2541). -- Interne: Parser: Optimisations. -- Page maintenance/infos clefs: Amélioration mineure. -- Interne: Abeille.class: Suppression 'volt2pourcent()'. -- Interne: Parser: Revue decode 8001/logs. -- Interne: SW reset si erreur 06 sur msg 8000 (2490). - -230207-BETA-3 -------------- - -- Interne: SerialRead: Filtrage des msgs de mauvaise longueur. -- Livarno Home floor lamp: Support préliminaire (2544). -- LoraTap Zigbee 3 gang remote: Ajout support (2542). -- Interne: Page maintenance/logs. Correction mineure. -- Interne: Cmd: 004E/LQI attend ACK. -- Interne: Cmd: Timeout 7s si ACK. -- Xiaomi relay (relay.c2acn01): Mise-à-jour modèle. -- Frient keypad: Mise-à-jour modele (2525). -- Interne: Parser: Améliorations support cluster 0501 pour 'Emergency'/'Fire'/'Panic'. -- Interne: Parser: Support 0501/Arm code. -- Page des équipements: Groupes par Zigate (967). - -230204-BETA-2 -------------- - -- Interne: Parser: Nettoyage 'ModelIdentifier' revue; 0 devient caractère de fin. -- Interne: Cmd: Améliorations support clusters 0500 & 0501. -- Interne: Parser: Msg 8401 désactivé. -- Modèles: Correction nom 'inf_zbAttr-0500-ZoneStatus..' => 'inf_zbCmdS-0500-ZoneStatus...'. -- Frient keypad: Mise-à-jour modele (2525). - -230202-BETA-3 -------------- - -- Interne: AbeilleCmd: Mise-à-jour 'getRoutingTable'. -- Interne: Collecte des tables de routage revue. -- Interne: Parser: Amélioration affichage cmds cluster. -- Interne: Zigbee const: Amélioration support cluster 0501. -- Interne: Parser: Amélioration 'getDevice()' si IEEE pas défini. -- Interne: Parser: Amélioration 'cleanModelId()' pour caracteres speciaux. -- Interne: Suppression 'routingTable' de la table 'eqLogic'. -- Réseau/graph des liens: Mise-à-jour. - -230130-BETA-2 -------------- - -- Interne: Parser: Ajout infos debug pour support Xiaomi. -- Modeles: Mise-à-jour 'sensor_cube' + 'sensor_cube.aqgl01'. -- Reseau: Mise-à-jour graphique des liens. -- Perte formule au redémarrage: Correction (2540). -- Interne: Parser: Correction décodage 'routing table response'. - -230126-BETA-2 -------------- - -- Heiman water leakage sensor: Mise-à-jour modèle (2527). -- Xiaomi water leak sensor: Mise-à-jour modèle. -- Interne: Parser: Nettoyage support Xiaomi pour 'magnet.aq2', 'weather'. -- Interne: Parser: Corrections decode 'Mgmt_NWK_Update_notify'. -- Interne: DB config: Ajout 'ab::zgChan' pour sauver choix de canal Zigbee. -- Page de config: Canal Zigbee affiché. -- Interne: Sauvegarde choix du canal Zigbee (11 par défaut). -- Interne: Parser: Correction crash Xiaomi. -- Modele Xiaomi 'sensor_swith' revu. -- Interne: AbeilleCmd: timeout passé de 3 à 4sec avant de déclarer cmd perdue. -- Interne: Correction mise-à-jour (au lieu de reset) équipements au démarrage. -- Interne: AbeilleCmd: Correction setChannel. -- Interne: Changement de canal Zigbee revu (broadcast mgmtNwkUpdateRequest). -- Interne: Parser: Correction erreurs PHP. - -230124-BETA-1 -------------- - -- Page avancé: Ajout version SW du device (clust 0000, attr 4000). -- Interne: Parser: Supression utilisation msg OTA 8503 pour compatibilité raw. -- Xiaomi Aqara QBKG26LM: Mise-à-jour modèle (2174). -- Interne: Parser: Cluster 000C géré par decode8002(). -- Modèles: Suppression cmdes obsoletes 'puissance1', 'puissance', & 'puissanceEP15'. - -230121-BETA-2 -------------- - -- Interne: Parser: Support cluster 0500 cmd 00/Zone status change notif. -- Interne: Parser: Correction regression. -- Interne: Cmd: Changement cosmetique msg debug. - -230120-BETA-1 -------------- - -- Interne: Mise-à-jour équipement revue pour éviter la perte de commandes. -- Réseau: Mise-à-jour graph réseau. -- Aqara Motion Sensor P1 RTCGQ14LM/MS-S02: Mise-à-jour modèle (2463). -- Owon PIR323: Mise-à-jour modèle (2533). -- Interne: Reset SW de la Zigate si pas de réponse depuis plus de 2mins. -- Sonoff ZBMini-L: Ajout support (2539). -- Interne: Parser: Support préliminaire cluster 0020, cmde 'check-in'. -- Interne: Cmd: Support préliminaire cluster 0500 zone enroll response. -- Interne: Reinit à partir du modele revue pour ne pas perdre modifs utilisateur. - -230113-BETA-2 -------------- - -- Xiaomi RTCGQ11LM: Mise-à-jour modele et image. -- Interne: Correction support Xiaomi. -- Owon PIR323: Image (2533). -- Frient keypad: Mise-à-jour modele (2525). - -230112-BETA-3 -------------- - -- Legrand micromodule switch: Mise-à-jour modele et image. -- Interne: Parser: Amélioration mess monitor cas Xiaomi. -- Modèles: Qq nettoyage + ajout logicalId sur certaines actions. -- Lexman smart plug: Support préliminaire (2531). -- Assistant modeles: Mise-à-jour suite renommage des commandes. -- Tuya 1Ch switch module (TS0001__TZ3000_tqlv4ug4): Mise-à-jour modèle. -- Modeles pour Xiaomi: Amélioration syntaxe. -- Page EQ/avancé: Liste pour les types possibles d'attribut. -- Interne: Parser: rxOn n'est plus mis à jour par 'Mgmt_lqi_rsp' (pas fiable). -- Owon PIR323: Ajout support (2533). -- Interne: Parser: 'rxOnWhenIdle' peut etre mis-à-jour par 'node descriptor'. -- Modeles: 'minValue', 'maxValue', 'calculValueOffset' mis a jour seulement si reset. - -230106-BETA-2 -------------- - -- Modeles EQ: Ajout prise en charge 'genericType'. -- Modèles: Ajout du type generique sur qq modeles. - -230106-BETA-1 -------------- - -- Interne: Parser: Correction 'single precision'. -- Modeles commandes: Normalisation de certains noms (inf_zbAttr-XXXX-YYYY). -- Interne: Parser: Correction support Xiaomi. -- Xiaomi Door Sensor MCCGQ11LM: Mise-à-jour du modèle pour restauration 'Battery-Volt'. -- Xiaomi Temp-humidité-pression WSDCGQ11LM: Mise-à-jour du modèle pour restauration 'Battery-Volt'. - -230103-BETA-5 -------------- - -- Modèles: Suppression support ancienne syntaxe 'include'. -- Girier curtain module: Support préliminaire (2526). -- Assistant modèle: Mise-à-jour. -- Maintenance/infos clefs: Amélioration. -- Heiman water sensor: Support préliminaire (2527). -- Interne: Parser: Support de certains devices Xiaomi via decode8002 pour compatibilité mode 'raw'. -- Loratap roller shutter module: Support préliminaire (2528). -- Moes thermostat BRT-100: Mise-à-jour modèle (2467). -- Modèles commandes: 'Short-Addr' & 'IEEE-Addr' => 'inf_addr-Short'/'inf_addr-Ieee'. -- Modèles commandes: 'Link-Quality'/'online' => 'inf_linkQuality'/'inf_online'. -- Modèles commandes: 'Time-Time'/'Time-TimeStamp' => 'inf_time-String'/'inf_time-Timestamp'. -- Modèles EQ: Surcharge possible de 'Polling'. -- Tuya TV02: Mise-à-jour du modèle (2175). -- Xiami RTCGQ11LM: Mise-à-jour du modèle. - -230102-BETA-1 -------------- - -- Interne: Constantes Zigbee: Améliorations. -- Interne: Parser: Update mineure msg debug Xiaomi. -- Interne: Parser: Suppression support 8041, 8043 & 8045 pour compatibilité mode 'raw'. -- Interne: Parser: Suppression support 804A pour compatibilité mode 'raw'. -- Interne: Parser: Suppression support 8030 pour compatibilité mode 'raw'. -- Interne: Parser: Suppression support 8060, 8062 & 8063 pour compatibilité mode 'raw'. -- Profalux shutter: Correction modele pour retour de 'Level'. -- Interne: Parser: decodeDataType(), ajout support type 39/single. -- Frient keypad: Support préliminaire (2525). - -230102-STABLE-1 ---------------- - - .. important:: Zigates v2 - - - Doivent être à jour du dernier firmware disponible (v3.21 à ce jour). - .. important:: Zigates v1 - - - Doivent avoir un firmware >= 3.1e pour un fonctionnement optimal mais la dernière en date (3.21) est fortement recommandée. - - L'équipe Zigate recommande FORTEMENT d'utiliser un firmware **Optimized PDM** (OPDM) dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - -221215-BETA-3 -------------- - -- Interne: Amélioration infos en mode surveillance (AbeilleMonitor.log). -- Zemismart ZW-EC-01 curtain switch: Modèle revu mais équipement déconseillé. -- Interne: AbeilleCmd: Optimisation & nettoyage. -- Heiman HS1HT: Mise-à-jour image (2520). -- Heiman HS1MS-EF: Mise-à-jour image (2521). -- Tuya 1Ch switch module: Ajout support préliminaire 'TS0001__TZ3000_tqlv4ug4'. -- Interne: Correction pour équipement inconnu pendant raffraichissement réseau. - -221214-BETA-9 -------------- - -- Interne: Cmd: 'setLevelVolet' utilise 'cmd-0008'. -- Interne: Cmd: 'setLevel': Suppression 'readAttribute' consecutifs. -- Modèle EQ: Surcharge possible de 'listValue'. -- Interne: Support cmde action de type 'liste'. -- Interne: Parser: Mise à jour 'node descriptor'. -- Heiman HS1HT: Mise-à-jour modèle (2520). -- Interne: Cmd: Mise-à-jour 'writeAttribute' pour '#select#'. -- Moes thermostat BRT-100: Mise-à-jour modèle (2467). -- Maintenance/infos clefs: Amélioration. -- Heiman HS1MS-EF: Support préliminaire (2521). - -221213-BETA-6 -------------- - -- Modele EQ: Support 'trigOut' pour cmde action. -- Tuya TV02: Mise-à-jour. -- Philips SML004: Mise-à-jour modele (2437). -- Moes thermostat BRT-100: Mise-à-jour modèle (2467). -- Tuya: Amélioration support. -- Assistant modèle: Améliorations. -- Aubess 4 buttons switch: Support préliminaire (2512). -- Aqara Motion Sensor P1 RTCGQ14LM/MS-S02: Mise-à-jour modèle (2463). - -221212-BETA-2 -------------- - -- Heiman HS1HT: Support préliminaire (2520). -- Reinitialisation: Remise en cause du modele utilisé chaque fois. -- Interne: Améliorations support Tuya. -- Tuya TV02: Mise-à-jour du modèle (2175). -- Interne: Support cluster FCC0 Xiaomi générique. -- Moes temp/humidity sensor: Mise-à-jour du modèle (2500). -- Tuya mini smart switch: Correction image (2438). -- Aqara Motion Sensor P1 RTCGQ14LM/MS-S02: Mise-à-jour modèle (2463). -- Paulmann 50044: Ajout support préliminaire (2516). - -221209-BETA-4 -------------- - -- Moes thermostat BRT-100: Mise-à-jour modèle (2467). -- Assistant découverte: Améliorations. -- Assistant découverte: Ajout suffixe identiant (ex: discovery-TS0121__TZ3000_rdtixbnu.json) -- Modele TS011F: Ajout de plusieurs marques blanches. -- Icasa ICZB-IW11SW: Ajout support préliminaire (2515). -- Icasa ICZB-IW11D: Ajout support préliminaire (2514). -- Icasa ICZB-DC11: Ajout support préliminaire (2513). -- Interne: Parser: Corrections regressions. - -221208-BETA-1 -------------- - -- Moes thermostat BRT-100: Mise-à-jour modèle (2467). -- Interne: Parser: Amélioration mineure. -- Interne: Abeille.class: Amélioration sur reception msg trop grand. -- Suppression ancien log 'AbeilleConfig' (sans .log) au démarrage. -- Interne: Taille queue xToAbeille étendue. -- Interne: Parser: Affichage nPDU/aPDU avec extended error. - -221204-BETA-1 -------------- - -- Images: Normalisation de noms. -- Interne: Abeille.class: Correction findModel (2509). - -221202-BETA-2 -------------- - -- Suppression chiffres après virgule sur pourcentage batterie. -- Interne: Parser: Nettoyage fonctions obsoletes. -- Interne: Cmd: Activation ACK pour 'setLevelRaw' + 'cmd-0008'. -- Interne: Support préliminaire 'Mgmt Nwk Update Req'. -- Modeles commandes: Amélioration 'valueOffset' pour support ID logique. -- Moes curtain module: Mise-à-jour modèle (2464). -- Aqara Motion Sensor P1 RTCGQ14LM/MS-S02: Mise-à-jour modèle (2463). - -221130-BETA-1 -------------- - -- Syntaxe cmdes: Ajout support 'valueOffset' pour cmde 'action'/'slider'. -- Moes curtain module: Mise-à-jour modèle (2464). -- Renitialiser: Amélioration si équipement etait inconnu mais qu'un modèle existe maintenant. -- Moes BHT-002-GCLZBW: Ajout support préliminaire (2485). -- Livolo TI0001: Mise-à-jour modèle (2476). -- Interne: Améliorations AbeileCmd. -- Interne: AbeilleCmd: Limitation de débit activé. -- Interne: Améliorations préliminaires pour support générique Xiaomi. -- Interne: Parser: Correction pour SW reset sur NDPU bloqué. -- Interne: Collecte LQI: Améliorations mineures. -- Xiaomi Door Sensor MCCGQ11LM: Mise-à-jour du modèle. -- Interne: Parser: decodeDataType(): Ajout support 2B/int32. -- Xiaomi Temp-humidité-pression WSDCGQ11LM: Mise-à-jour du modèle. - -221122-BETA-1 -------------- - -- Page Zigate/avancé: Reset HW possible sur Piv2. -- Page Zigate/avancé: Amélioration selection du canal. -- Modèles EQ: Support customization 'rxOn'. -- Livolo TI0001: Mise-à-jour modèle (2476). -- Moes BRT-100: Mise-à-jour modèle (2467). -- Images: Qq mises-à-jour & renomages. -- Interne: Parser/cleanManufId(): '.' ignoré. -- Philips E27 LWA017: Ajout support (2503). -- Interne: Cmd: Ajout support 'move to level' (cmd-0008). - -221119-BETA-2 -------------- - -- Zigate PI v2: Correction controle GPIO (rc.local n'est plus nécessaire). -- Repeteur Loratap: Ajout support (2498). -- Interne: AbeilleCmd: Pas de renvoi si message 8000 status 06. -- Interne: Abeille.class: 'customization' & 'macCapa'. Encore une update. -- Interne: Reinitialisation d'un équipement: delai interne avant relecture DB par parser. -- Moes temp/humidity sensor: Ajout support (2500). -- Interne: Petite update page santé. -- Maintenance/infos clefs: Ajout status (timeout) de chaque équipement. -- Interne: Abeille.class: Amélioration mineure msg debug executePollCmds(). -- Moes BRT-100: Mise-à-jour modèle (2467). -- Interne: Support Tuya amélioré: Cmd: Ajout 'setValue', 'setValueMult' & 'setValueDiv'. -- GLEDOPTO GL-FL-004P: Support préliminaire (2501). -- Page Zigate/avancé: Modification choix canal zigbee. - -221114-BETA-2 -------------- - -- Interne: Parser: Optimisation. -- Interne: Cmd: Modification gestion ACK. 8702 ignoré au profit de 8011. -- Interne: Parser: Amélioration messages dbg Xiaomi. -- Interne: Parser: Nettoyage 'manufacturer' revu (cleanManufId()). -- Interne: Parser: Correction 'customization' + 'macCapa'. -- Interne: Parser: Divers correctifs & améliorations. - -221110-BETA-2 -------------- - -- Interne: Parser: Surveillance NPDU, timeout 4mins. - -221110-BETA-1 -------------- - -- Interne: Install: Correction 'Batterie Volt' (0001-01-0020). Suppression 'calculValueOffset'. -- Interne: Parser: Check NPDU and force SW reset if stuck for more than 3 mins. -- Modèles: Ajout 'customization' optionnelle pour corriger/forcer infos. - -221108-BETA-1 -------------- - -- Modèles: Nettoyage. Suppression cmds obsoletes setLevelVoletUp/setLevelVoletDown. -- Modèles: Correction 'sensor_86sw1' pour 'Battery-Percent'. -- Modèles: Ajout qq 'manufacturer' manquants. -- Interne: AbeilleCmd: Ajout support 'cmd-0102' + suppression 'WindowsCovering'. -- Moes curtain module: Mise-à-jour modèle (2464). - -221107-BETA-1 -------------- - -- Interne: Parser: 'Batterie-Pourcent' => '0001-01-0021'. -- Interne: install/DB cmd: 'Batterie-Pourcent' => '0001-01-0021' - -221105-BETA-1 -------------- - -- Interne: Parser: Xiaomi tags decode update. -- Modèles: Historisation activée par défaut pour 0400/0402/0403 & 0405 clusters attr 0000. -- Modèles: Surcharge possible de 'isHistorized'. - -221104-BETA-1 -------------- - -- Support: Infos clefs: Affichage type de Zigate. -- Interne: Suppression 'uniqId' DB eqLogic/configuration. -- Interne: Message zigate 804E plus utilisé. Pas assez robuste => decode8002(). - -221103-BETA-2 -------------- - -- Equipements: Qq modeles revus. -- Modèle de commandes: 'Batterie-Volt' remplacé par '0001-01-0020'. -- Interne: Constantes Zigbee: Ajout data types cluster 0000. -- Page EQ/avancé: Message d'erreur si champ manquant. -- Interne: AbeilleCmd: Meilleur support type 'string' pour 'writeAttribute()'. -- Interne: Parser: Cluster 0001 (batterie) traité par 'decode8002()'. -- Modeles: Commandes obsoletes: 'Batterie-Hue', 'Batterie-Pourcent' & 'Batterie-Volt-Konke'. -- Interne: Suppression 'bindShort' obsolete. -- Modèle équipements: Syntaxe 'alternateIds' améliorée. -- Ruche: Cmde 'Set inclusion mode' est de retour pour cas 2476 non résolu. -- Page EQ/avancé pour Zigate: Correction 'Reset HW' pour PI-Zigate. -- Interne: Qq changements autour du séquencement du démarrage des démons. -- Interne: Remplacement cmd obsolete 'levelVoletStop' + nettoyage code. -- Modeles: Support 'notStandard' pour les commandes 'illuminance' qui ne respectent pas la spec ZCL. - -221029-BETA-1 -------------- - -- Interne: Zigbee const: Ajout 0403/pressure. -- Interne: Parser: Attribut '0403-xx-0000' (pressure) directement décodé par 8002. -- Interne: Parser+install+modele: Attribut '0402-xx-0000' (temperature) directement décodé par parser/8002. -- H1 dual wall switch: Mise-à-jour du modèle (2474). -- Interne: Parser+install+modele: Attribut '0400-xx-0000' (illuminance) directement décodé par parser/8002. -- Ajout des FW 3.23 pour les Zigates v1. -- Interne: Optimisation suppression des queues lors de l'arret des démons. -- Interne: Blocage relance des démons si mise-à-jour FW ou test de port. -- Démons start & stop: Amélioration. Devrait limiter les cas 'port toujours utilisé'. - -221024-BETA-1 -------------- - -- Interne: Parser: Correction decodeDataType() impactant types longs (ex: uint48). -- Interne: Parser: Types 18, 19, 28 & 29 maintenant traités par decodeDataType(). -- Interne: Parser+install+modele: Attribut '0405-xx-0000' (humidity) directement décodé par parser. -- Interne: Parser: Cluster 0405 traité par decode8002(). -- Philips E27 white bulb: Mise-à-jour du modèle (2421). -- Page EQ/avancé: amélioration mineure. -- Page maintenance: Correction regression sur 'Telecharger tout'. -- Interne: Parser: Améliorations support cluster 'FCC0' Xiaomi. - -221023-BETA-1 -------------- - -- Interne: Correction regression constantes Zigbee. - -221022-BETA-1 -------------- - -- Moes curtain module: Mise-à-jour modèle (2464). -- Moes 2 gang dimmer module: Modele preliminaire (2473). -- Interne: Premier fichier 'packages.json' pour installation de dependances. -- H1 dual wall switch: Support preliminaire (2474). -- Interne: Cmd: sliderToHex(), ajout support enum8 & 16. -- Nous A1Z smart plug: Mise-à-jour du modèle (2460). -- Page maintenance/logs: Message si pas en mode 'debug' lors du téléchargement. -- Interne: Constantes Zigbee: Definitions des types. -- Philips E14 white bulb: Modele preliminaire (2422). -- Philips E27 white bulb: Modele preliminaire (2421). - -221019-STABLE-1 ---------------- - - .. important:: Les zigates v2 doivent être à jour du dernier firmware disponible (v3.21 à ce jour). - .. important:: Pour les zigates v1, l'équipe Zigate recommande FORTEMENT d'utiliser un firmware **Optimized PDM** (OPDM) dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - - .. important:: Les zigates v1 doivent avoir un firmware >= 3.1e pour un fonctionnement optimal mais la dernière en date (3.21) est fortement recommandée. - -221014-BETA-1 -------------- - -- Aqara Motion Sensor P1 MS-S02: Support preliminaire (2463). -- Silvercrest smart button: Mise-à-jour modèle (2468). -- Page maintenance/logs: Correction ascenseur partie gauche. -- Interne: Arret des démons: Correction mineure & améliorations. - -221010-BETA-1 -------------- - -- Xiaomi D1 wall switch single: Support préliminaire (2466). -- Moes BRT-100: Support préliminaire (2467). -- Silvercrest smart button: Support préliminaire (2468). -- Interne: Cmd+Parser: Ajout support 'discoverCommandsGenerated'. -- Assistant découverte: Amélioration: Ajout recherche commandes generées. -- Network graph: Temporairement masqué. En cours de refonte. -- Moes - Smart Brightness Thermometer: Support préliminaire (2469). -- Assistant découverte: Correction pour support multi EP. - -221007-BETA-1 -------------- - -- Interne: Parser: Amélioration msg debug. -- Network graph: Correction. -- Network graph: Nombreux changements internes.. normalisation, nettoyage. -- Interne: DB eqLogic: 'positionX' => 'ab::settings[physLocationX]'. -- Interne: DB eqLogic: 'positionY' => 'ab::settings[physLocationY]'. -- Interne: Nettoyage DB au démarrage revu. -- Page EQ/avancé d'une Zigate: Ajout boutons 'démarrer/arrêter' pour inclusion. -- Moes curtain module: Support preliminaire (2464). -- Interne: DB config: Suppression clefs obsoletes 'blocageRecuperationEquipement' + 'blocageTraitementAnnonce'. -- Interne: DB config: 'DbVersion' => 'ab::dbVersion'. - -220930-BETA-1 -------------- - -- Interne: Suppression queue 'ctrlToCmd' au profil de 'xToCmd' + améliorations 'CliToQueue'. -- Interne: Mise à jour generation doc. -- Nous A1Z smart plug: Ajout support préliminaire (2460). -- Livarno Home HG07834B: Mise-à-jour modele (2448). -- Philips SML004: Mise-à-jour modele (2437). -- Maintenance/télécharger tout: Ajout alerte si moins de 5000 lignes de logs. -- Interne: Parser: Clusters supportés par 8100/8102 revus à la baisse (=> 8002). - -220928-BETA-1 -------------- - -- Interne: Suppression queue 'assistToCmd' + nettoyage 'assistToParser'. -- Interne: AbeilleCmd: Amélioration 'sliderToHex()'. -- Tuya vibration sensor TS0210: Mise-à-jour modèle (2452). - -220927-BETA-1 -------------- - -- Orvibo CM10ZW: Ajout affichage 'Status X' (2024). -- Livarno Home HG07834B: Mise-à-jour modele (2448). -- Firmware zigate: Recommandation d'utiliser la v3.21. -- Firmwares v1: Suppression des versions < '3.21'. -- Page maintenance/infos clefs: Ajout canal. -- Interne: DB config: Suppression clef obsolete 'agressifTraitementAnnonce'. -- Interne: DB config: 'monitor' => 'ab::monitorId'. -- Interne: Abeille.class: Le manque de déclaration de 'batteryType' ne permet plus de dire que le device est en écoute. -- Interne: Nettoyage code obsolete 'SetPermit' + 'xmlhttpMQTTSend.php'. -- Interne: ZigbeeConst: Mise à jour cluster 0500. - -220924-BETA-1 -------------- - -- Page équipement: Amélioration affichage. -- Tuya vibration sensor TS0210: Mise-à-jour modèle (2452). -- Syntaxe modele EQ: Ajout possibilité surcharge 'repeatEventManagement'. -- Syntaxe modele EQ: Ajout possibilité surcharge 'returnStateTime' & 'returnStateValue'. - -220923-BETA-1 -------------- - -- Interne: Suppression cmde obsolete 'luminositeHue.json'. -- Interne: Normalisation de qq icones Philips. -- Interne: Normalisation de qq icones Iluminize. -- Tuya vibration sensor TS0210: Ajout support préliminaire (2452). -- Interne: DB config: Nettoyage clefs obsoletes. -- Interne: Suppression erreurs PHP sur 'AbeilleEQ-xxx.php' -- Commandes JSON: Suppression cmde obsolete 'PuissanceLegrandPrise' => 'zb-0B04-ActivePower'. -- Assistant modèle: Mise-à-jour pour cluster 0500/IAS zone. -- Assistant modèle: Correction génération 'category'. -- Interne: DB config: 'preventLQIRequest' => 'ab::preventLQIAutoUpdate'. - -220922-BETA-1 -------------- - -- Page EQ/avancé: Affichage code fabricant. -- Interne: Ajout fabricant dans qq modeles JSON. -- Livarno Home: Ajout modele préliminaire (2448). -- Philips SML004: Ajout 'Sensitivity' (2437). -- Interne: Parser: Support cluster 1000 cmd 41 & 42. -- Tuya PIR & illuminance: Mise-à-jour du modele (2409). -- Interne: DB config: 'AbeilleIEEEX' => 'ab::zgIeeeAddrX' -- Interne: DB config: 'AbeilleIEEE_OkX' => 'ab::zgIeeeAddrOkX' -- Interne: Parser: isDuplicated() timeout = 2sec au lieu de 10sec. -- Tuya PIR+illuminance: Mise-à-jour modèle pour 'Illuminance' (2409). - -220916-BETA-1 -------------- - -- Interne: Liste des 'end points' enregistrée dans DB eqLogic. -- Interne: 'manufCode' enregistré dans DB eqLogic. -- Page EQ/avancé: Ajout possibilité d'envoyer une 'Node descriptor request'. - -220916-STABLE-1 ---------------- - - .. important:: Les zigates v2 doivent être à jour du dernier firmware disponible (v3.21 à ce jour). - .. important:: Pour les zigates v1, l'équipe Zigate recommande FORTEMENT d'utiliser un firmware **Optimized PDM** (OPDM) dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - - .. important:: Les zigates v1 doivent avoir un firmware >= 3.1e pour un fonctionnement optimal mais la dernière en date (3.21) est fortement recommandée. - -220914-BETA-1 -------------- - -- Philips SML003 motion sensor: Support préliminaire (2440). -- Tuya smart plug: Support préliminaire (2443). -- Interne: Normalisation du nom de qq icones. -- Tuya iHSW02/WHD02 mini smart plug: Ajout modele (2438). -- Electrovanne Saswell SAS980SWT: Correction modele (2388). -- Silvercrest motion sensor: Support préliminaire (2445). - -220906-BETA-1 -------------- - -- Moes smart dimmer MS105Z: Mise-à-jour modèle pour partie dimmer (2363). -- Interne: Parser: Ajout info msg 8139. -- Interne: Abeille.class: Correction mise-à-jour cmde info (duplicate entry). -- Thermostat Schneider Wiser: Support préliminaire (2436). -- Philips HUE Smart plug LOM008: Mise-à-jour du modèle (2431). -- Interne: Suppression ancienne syntaxe 'tuyaEF00' dans modèles JSON. -- OSRAM Classic A60 TW: Support préliminaire (2435). -- OSRAM Classic B40 TW: Mise-à-jour modèle (2023). -- Philips SML004: Support préliminaire (2437). -- Assistant modèle EQ: Ajout support cluster 0406 (Occupancy) + amélioration 0400. -- Interne: Parser: Cluster 0406 supporté par decode8002() et non plus 8102(). - -220901-BETA-1 -------------- - -- Interne: Suppression queue obsolete 'parserToAbeille'. -- Interne: Optimisation queues 'xmlToAbeille'/'cmdToAbeille'/'abeilleToAbeille' => 'xToAbeille'. -- Page config: Test de port: Amélioration mineure. -- Interne: Optimisation queues dans deamon(): 'parserToAbeille2' => 'xToAbeille'. -- Page santé: Affichage du type d'équipement au lieu de son icone. -- Interne: Ajout type 'Zigate' à l'équipement 'Ruche'. -- Interne: Format JSON eq: Mise-à-jour 'Identify' & 'Groups'. -- Interne: Support Tuya: Amélioration 'transId' + 'setPercent1000'. - -220829-BETA-1 -------------- - -- Page maintenance: Récupération fantomes préliminaire, pour les eq sur secteur (mode dev). -- Philips HUE Smart plug LOM008: Support préliminaire (2431). -- Interne: Nettoyage images: 'LOM001'/'LOM002' => 'PhilipsSignify-Plug' - -220824-BETA-1 -------------- - -- Interne: Mise-à-jour page maintenance. -- Aeotec Multi purpose sensor: Mise-à-jour du modèle pour 'vibration' (2376). -- Page support: Remplacée par page 'maintenance' + améliorations. -- Volet Profalux: Ajout cmde info 'Not Closed' (2429). -- Ikea on/off switch: Correction modele pour batterie à mi valeur (2056). -- JSON équipement: Ajout possibilité surcharge 'calculValueOffset'. -- Interne: 'AbeilleLQI_MapDataAbeilleX.json.lock' => 'AbeilleLQI-AbeilleX.json.lock'. -- Interne: Arret generation ancien format 'AbeilleLQI_MapDataAbeilleX.json'. -- Interne: Recup équipements fantomes. - -220817-BETA-1 -------------- - -- Interne: Boutons 'vider' & 'supprimer' page support. -- Interne: Modifications clefs DB 'config' - - - 'AbeilleActiverX' => 'ab::zgEnabledX'. - - 'AbeilleTypeX' => 'ab::zgTypeX'. - - 'AbeilleSerialPortX' => 'ab::zgPortX'. - - 'IpWifiZigateX' => 'ab::zgIpAddrX'. - - 'AbeilleParentId' => 'ab::defaultParent' -- Gledopto GL-C-008P: Mise-à-jour icone. -- Aubess detecteur de fumée: Ajout support préliminaire (2426). -- Interne: Parser: Read Attributes Response, correction crash cluster ID 0005. - -220810-BETA-2 -------------- - -- Interne: Correction regression DB eqLogic pour 'icone' => 'ab::icon'. -- Zlinky: Amélioration modèle. - -220810-BETA-1 -------------- - -- Orvibo ST30: Correction modèle pour humidité (2193). -- Page de config: Changements mineurs. -- Page zigate/avancé: Choix du canal Zigbee amélioré. -- Page équipement/avancé: Améliorations visuelles mineures. -- Aeotec Multi purpose sensor: Mise-à-jour du modèle pour 'vibration' (2376). -- Gledopto GL-C-007P: Support préliminaire. -- Interne: Nettoyage entrées 'Polling' + 'RefreshData' sur mise-à-jour d'une commande. -- Zlinky: Mise-à-jour modèle (2418). -- Interne: msg_send()/msg_receive() avec json_encode()/json_decode() partout. -- Interne: DB eqLogic, 'icone' => 'ab::icon'. -- INNR RC250: Support préliminaire (2420). - -220714-STABLE-1 ---------------- - - .. important:: Les zigates v2 doivent être à jour du dernier firmware disponible (3.21 à ce jour). - .. important:: Pour les zigates v1, l'équipe Zigate recommande FORTEMENT d'utiliser un firmware **Optimized PDM** (OPDM) dans les cas suivants: - - - Toute nouvelle installation. - - Dès lors qu'un réappairage complet est nécéssaire. - - La version OPDM corrige bon nombre de potentielles corruptions et supporte un plus grand nombre d'équipements. - - Les firmwares avant 3.1e sont forcement 'legacy'. - - Mais **ATTENTION** si vous migrez d'une version 'legacy' vers 'OPDM' il vous faudra **effacer la PDM et réapparairer tous vos équipements**. - - .. important:: Les zigates v1 doivent avoir un firmware >= 3.1e pour un fonctionnement optimal mais la dernière en date (3.21) est fortement recommandée. - -220713-BETA-1 -------------- - -- Profalux: Ajout support volet MOT-C1Z06F (2411). -- Interne: Exclusion de 'resources/archives' des signatures MD5 (2413). - -220707-BETA-1 -------------- - -- Interne: Parser: Amélioration msg monitor si équipement Tuya. -- Ampoule E27 Ledvance white: Mise-à-jour modèle (2400). - -220628-BETA-1 -------------- - -- Mhcozy ZG-0005-RF: Ajout support préliminaire (2408). -- Gledopto GL-C-008P: Ajout support préliminaire (2402). -- Tuya PIR+illuminance: Ajout support préliminaire (2409). - -220625-BETA-1 -------------- - -- Interne: Parser: Fix mineur msg debug. -- Modèles d'équipements: Possibilité de surcharger 'historizeRound'. -- Interne: Parser: Ajout support msg '8001/Log message'. - -220622-BETA-1 -------------- - -- Interne: 'Device Announce' filtré pour Zigate v2 seulement (2404). - -220619-STABLE-1 ---------------- - -- Interne: Support Tuya amélioré (ajout 'rcvValueMult'). -- Tuya TV02: Mise-à-jour du modèle. -- Page EQ: Suppression des boutons 'Recharger' & 'Reconfigurer' pour ne garder que 'Reinitialiser'. -- Ampoule E27 Ledvance couleur: Ajout support préliminaire (2400). -- Smart Air Box: Modèle revu pour utilisation commandes internes génériques (2329). - -220606-BETA-1 -------------- - -- Interne: Parser: Amélioration mineure. -- Nom d'un nouvel équipement = type issu du modèle + Jeedom ID (ex: 'Tuya smoke sensor - 12') (2393). -- Interne: Support Tuya amélioré. -- Moes smart dimmer MS105Z: Mise-à-jour modèle pour partie dimmer (2363). -- Interne: Ajout support préliminaire 'usbreset'. -- Blitzwolf SHP13: Ajout support signature TS011F _TZ3000_amdymr7l (2396). - -220531-BETA-1 -------------- - -- Interne: Suppression code obsolete (xmlhttpConfChange). -- Page santé: Amélioration mineure. -- Mise-à-jour OTA: Amélioration mineure & correction pour support FW Legrand. -- Electrovanne Saswell SAS980SWT: Support préliminaire (2388). -- Ikea Tredanson rideau occultant: Ajout support préliminaire (2392). -- Nom d'un nouvel équipement = type issu du modèle + Jeedom ID (ex: 'Tuya smoke sensor - 12') (2393). -- Réseau: Changement visuel mineur table des liens + utilisation 'AbeilleLQI-AbeilleX.json'. - -220518-BETA-1 -------------- - -- E27 RGB Eglo/Awox (id = TLSR82xx, AwoX): Mise-à-jour du modèle (2384). -- Images: Nettoyage & standardisation des noms (ex: node_Generic-BulbXXX.png). -- Page EQ/avancé: Ajout possibilité de changer la couleur (cluster 0300, move to color). -- Interne: Support Tuya amélioré pour plus de flexibilité. -- Moes smart dimmer MS105Z: Mise-à-jour modèle (2363). -- Aeotec Multi purpose sensor: Mise-à-jour du modèle (2376). -- Page des équipements: Affichage grisé si équipement désactivé. -- Support OTA: Correction regression. -- Page EQ/commandes: Amélioration mineure (2178). - -220515-BETA-1 -------------- - -- Legrand Cable outlet: Mise-à-jour du modèle (850). -- Interne: Cmd: Revue 'commandLegrand'. -- Moes smart dimmer MS105Z: Mise-à-jour modèle (2363). -- Nom d'un nouvel équipement = type issu du modèle (ex: 'Tuya smoke sensor') plutot que 'AbeilleX-Y'. -- Interne: Corrections utilisation obsolete de 'RxOnWhenIdle'. -- E27 RGB Eglo/Awox (id = TLSR82xx, AwoX): Ajout support préliminaire (2384). -- Lidl Dimmable HG07878C: Ajout support préliminaire (2383). -- Interne: Parser: Support revu pour 8002/'configure reporting response'. 8120 n'est plus utilisé. -- Interne: Constantes zigbee. Ajout clusters privés EF00, FC01 & FC40. -- Images: Nettoyage & standardisation des noms (ex: node_Generic-BulbXXX.png). -- Interne: Abeille.class: Optimisation. -- Interne: AbeilleCmd: Ajout support 'manufId' pour 'configureReporting'. -- Page EQ/avancé: 'Configure reporting': Ajout support code fabricant (manufId). -- Page EQ/avancé: Affichage des groupes Zigbee auxquels l'équipement appartient (1713). -- Woox controleur d'arrosage: Ajout support préliminaire (2385). -- Interne: Parser: FC01/FC02 supporté par decode8002. -- Interne: AbeilleCmd: Correction readAttribute() pour 'manufId' renseigné. -- Page EQ/avancé: 'Read attribute': Ajout support code fabricant (manufId). - -220509-BETA-1 -------------- - -- Tuya smoke detector: Support préliminaire (2380). -- Heiman COSensor EF-3.0: Mise-à-jour modèle (2312). -- Interne: Parser: Support cmd 01 générée par cluster 0500 (#EP#-0500-cmd01). -- Aeotec Multi purpose sensor: Mise-à-jour modèle pour vibration (2376). -- Nettoyage cmdes JSON obsolètes: - - - 'etatSwitchLivolo' => 'zb-0006-OnOff' - - 'etatVolet' => 'zb-0006-OnOff' -- Interne: Nettoyage partiel du répertoire 'Network'. -- Interne: Nettoyage 'Abeille.class'. -- Reseau/bruit: Corrections. -- Interne: Optimisation AbeilleCmd autour de 'managementNetworkUpdateRequest'. -- Interne: Parser: Support type 'array'. -- Interne: Parser: Decode 'write attribute response' pour cluster 'private'. - -220428-BETA-1 -------------- - -- Interne: check_json: Améliorations. -- Aeotec Multi purpose sensor: Mise-à-jour modèle (2376) & correction cmde 'zb-0500-ZoneStatus'. -- Modèles de commandes JSON: Mise-à-jour cosmetique. -- Interne: Ajout date derniere mise-à-jour à partir du modèle (ab::eqModel['lastUpdate']). -- Interne: Parser: Optimisation lecture DB 'config'. -- Interne: Parser: Mise-à-jour support cluster 0005/scenes (peut etre cassé). -- Interne: Parser: Corrections regressions. -- Owon multi-sensor THS317-ET: Ajout support. -- Xiaomi sqare sensor: Mise-à-jour modèle pour ne garder qu'une info 'Pressure' = '0403-01-0000' (2370). -- Moes smart dimmer MS105Z: Mise-à-jour modèle (2363). -- Interne: Parser: Correction 'read attribute' pour 'Time cluster'. - -220425-BETA-1 -------------- - -- Interne: Mise-à-jour DB eqLogic - - - 'ab::jsonId' + 'ab::jsonLocation' => 'ab::eqModel['id'/'location]' - - 'MACCapa' => 'ab::zigbee['macCapa']' - - 'RxOnWhenIdle' => 'ab::zigbee['rxOnWhenIdle']' - - 'AC_Power' => 'ab::zigbee['mainsPowered']' -- Interne: Parser: decode8002() monitoring migré en fin de fonction. -- Interne: Parser: Suppression fonction obsolete msgToAbeille(). -- Page EQ/avancé: Correction regressions. -- Aeotec Multi purpose sensor: Ajout support préliminaire (2376). -- Page EQ/avancé: Corrections 'Réinitialiser'. -- Assistant EQ/modèle: Améliorations pour clusters 0402, 0405 & 0500. - -220421-BETA-1 -------------- - -- Interne: Version DB, date = 20220407. -- Analyse/santé: Correction affichage ports utilisés. -- Interne: Nettoyage fonctions obsolètes. -- Interne: Suppression de plusieurs commandes obsolètes (dispos sur page avancée) 'Ruche': - - - 'replaceEquipement' - - 'Get Time' - - 'SystemMessage' (provoque mise à jour erronnée date de communication Zigate) -- Interne: Page EQ/avancé. Qq optimisations. -- Interne: Mise-à-jour controle/redémarrage des démons. -- Zigate v2/apparition équipements inconnus: Ajout verrue (2368). -- Interne: Plus qu'une seule queue d'entrée au parser. -- Interne: Tuya: Support préliminaire TV02. -- Interne: Grosse mise-à-jour pour meilleur support des équipements Tuya. -- Philips LOM007 smart plug: Ajout support (2374). -- JSON commandes: 'forceReturnLineAfter/Before' is obsolete. Replaced by 'nextLine' = 'after/before'. -- Interne: Sauvegarde des infos du modele dans la DB eqLogic => 'ab::eqModel'. -- Page EQ: Ajout affichage type d'équipement. - -220407-BETA-1 -------------- - -- Parser: Amélioration decode routing table. -- WarningDevice-EL-3.0: Mise-à-jour modèle + merge 'WarningDevice'. -- SML002: Mise-à-jour modèle (2309). -- Affichage 'Humidity': Suppression du chiffre apres la virgule. -- Page EQ/avancé: Amélioration (mineure) affichage modèle -- Commande interne IAS WD ('cmd-0502') revue pour flash seul. -- Interne: Constantes Zigbee: Ajout support cluster 0402. -- Nettoyage cmdes JSON obsolètes: - - - 'etatEpXXout' => 'zb-0006-OnOff' + 'ep=XX' - - 'etatEpXXin' => 'zb-0006-OnOff' + 'ep=XX' - - 'etatEp08' => 'zb-0006-OnOff' + 'ep=08' - -220406-STABLE-1 ---------------- - -- Moes MS105Z: Ajout support préliminaire (2363). -- Legrand switch 067723: Mise-à-jour modèle (2361). -- Lidl ampoule livarno lux led gu10 HG08131A: Mise-à-jour modèle (2356). -- Tuya TS011F__TZ3000_cphmq0q7: Mise-à-jour modèle pour support autres signatures. -- Page des équipements: Changement icone si non définie. -- Interne: Mise-à-jour des commandes suite reinclusion/reinit revue. -- Page équipement: Choix icone revu. Affichage du nom du PNG selectionné et non plus une interprétation de ce que c'est. -- Interne: Grosse mise-à-jour des commandes, et suppression des 'info' en doublon. -- Tuya IH-K009: Ajout image. -- Modèles équipement: Correction regression config reporting 0008-0000 (mauvais type). - -220329-BETA-2 -------------- - -- Legrand switch 067723: Mise-à-jour modèle (2361). -- Page EQ/avancé: Amélioration mineure affichage ID Zigbee. -- Interne: Amélioration récupération équipements fantomes. -- Interne: Timeout n'est plus écrasé si réannonce de l'équipement. -- Package de logs: Masquage de la clef 'api' de la table 'config'. -- Package de logs: Masquage des URL. - -220324-BETA-1 -------------- - -- Network graph: Corrections diverses (1820). -- Page de gestion: Suppression du 'Changement de zigate' en double. -- Interne: Cmd 00 cluster 0502/IAS-WD: corrections. -- Frient smoke alarm (SMSZB-120, frientAS): Mise-à-jour modèle (2242). -- Interne: Mise-à-jour à partir du modèle revu pour éviter de créer des cmdes orphelines. -- Interne: Collecte LQI génère nouveau format (AbeilleLQI-AbeilleX.json). -- Réseau/graph des liens: Revu et utilise nouveau format interne + ajout icone équipement. -- Interne: Parser: Amélioration filtrage mauvais paquets LQI/804E. -- Page support: Affiche tout fichier JSON du repertoire temporaire. -- Interne: network.js => AbeilleNetwork.js - -220320-BETA-1 -------------- - -- Interne: Mise-à-jour script de generation de la liste des eq supportés. -- Interne: Mise-à-jour support Tuya EF00 cmd 01. -- Lidl ampoule livarno lux led gu10 HG08131A: Ajout support (2356). -- Interne: Ajout support cmde 00 cluster 0502/IAS WD pour controle sirene. -- Frient smoke alarm (SMSZB-120, frientAS): Mise-à-jour modele (2242). - -220316-BETA-1 -------------- - -- Interne: AbeilleCmdPrepare: nettoyage code obsolete. -- Interne: AbeilleCmdQueue: Timeout étendu à 3sec. -- Philips RWL021: Mise-à-jour modèle pour report battery (1243). -- Evology 4 buttons (3450-Geu_CentraLite): Mise-à-jour modèle (2318). -- Tuya Smart Air Box: Ajout support préliminaire (2329). -- Interne: Parser: Suppression car '/' pour identifiant fabricant (ex 'frient A/S', 2242). -- Correction DB pour erreur getPlugVAW, mauvaise taille d'attribut (508 au lieu de 0508). -- Interne: Ajout support cluster EF00/cmd 02 pour Smart Air Box. -- Frient smoke alarm (SMSZB-120, frientAS): Ajout support (2242). -- JSON équipements: Suppression mots clef obsoletes: 'lastCommunicationTimeOut' & 'type' -- Interne: AbeilleCmd: Akout support cmd 00 pour cluster 0502/IAS WD. -- Interne: Code specifique Tuya isolé. -- Interne: Qq fixes. - -220310-BETA-3 -------------- - -- Interne: SerialRead: Suppression warning fopen(). -- JSON équipements: Suppression cmdes obsoletes - - - 'etatLight' => 'zb-0006-OnOff' - - 'WindowsCoveringUp' => 'zbCmd-0102-UpOpen' - - 'WindowsCoveringDown' => 'zbCmd-0102-DownClose' - - 'WindowsCoveringStop' => 'zbCmd-0102-Stop' -- Philips RWL021: Mise-à-jour modèle (1243). -- Evology 4 buttons (3450-Geu_CentraLite): Ajout support (2318). -- Interne: Parser: Clust 0007 supporté par decode8002(). -- Tradfri GU10 340lm White, LED2005R5: Ajout support (2344). -- Ampoule Lexman Gu10 460lm (ZBEK-4, Adeo): Ajout support (2348). -- Interne: AbeilleCmd: Corrections & améliorations. -- Page EQ/avancé: Configurer le reporting: Ajout type attribut. - -220307-BETA-1 -------------- - -- Interne: AbeilleCmd: Mises-à-jour, corrections, améliorations (dont vitesse) & nettoyage. -- Interne: AbeilleCmd: Gestion mode ACK etendu aux commandes internes suivantes: - - - bind0030 - - configureReporting - - getActiveEnpoints - - writeAttibute - - writeAttribute0530 - - sendReadAttributesResponse - - readReportingConfig -- Legrand double switch (NLIS-Doublelightswitch_Legrand): Ajout support (2343). -- Interne: AbeilleCmd: Suppression cmds obsoletes 'ReadAttributeRequestXX'. -- JSON équipements: Suppression cmdes obsoletes - - - 'getBattery' => 'readAttribute' + 'attrId=0021' - - 'getBatteryVolt' => 'readAttribute' + 'attrId=0020' - - 'getPlugA' => 'poll-0B04-0508' - - 'getPlugPower' => 'poll-0B04-050B' - - 'getPlugV' => 'poll-0B04-0505' -- Interne: AbeilleCmd: Correction génération SQN pour cmds 0530. -- Liste compatibilité: Correction pour suppression affichage 'discovery'. -- Mise à jour OTA: Correction queue. -- Hue outdoor motion sensor SML002: Mise-à-jour modèle (2309). -- Volets Profalux: Correction types génériques pour appli mobiles. -- Analyse équipements/niveau batterie: Correction regression (2345). -- Interne: Parser->Abeille: optimisation msg - - - attributeReport => attributesReportN. - - reportAttributes => attributesReportN. - - readAttributesResponse => readAttributesResponseN. - -220228-BETA-2 -------------- - -- Remplacement d'équipements: Nouvelle mise-à-jour + doc (2337). -- Interne: Parser: Certains messages dupliqués sont ignorés. -- Récupération des fantômes: Amélioration. -- Interne: Migration codes obsoletes vers 'archives': LqiStorage.x, RouteRecord.x, Jennic binary. -- Mini smart socket (TS011F__TZ3000_5f43h46b): Mise-à-jour modèle (2334). -- Interne: Amélioration analyse réseau (collecte LQI). -- Remplacement d'équipements: Correction fonctionalité (2337). - -220223-BETA-1 -------------- - -- Interne: Parser: Correction erreur PHP decode8043(). -- Moes 4 boutons, scene switch, TS004F__TZ3000_xabckq1v: Mise-à-jour modèle (2278). -- Mini smart socket (TS011F__TZ3000_5f43h46b): Ajout support préliminaire (2334). -- JSON équipements: Suppression cmdes obsoletes - - - 'etatSW1', 'etatSW2', 'etatSW3' - - 'etatSwitch' - - 'etatSwitchKonke' -- JSON équipements: Mise-à-jour 'zb-0702-CurrentSummationDelivered'. -- Aqara TVOC moniteur d'air AAQS-S01 (airmonitor.acn01): Mise-à-jour modele (2279). - -220223-STABLE-1 ---------------- - -- Page EQ/avancé: Ajout bouton 'leave request'. -- JSON commandes: Remplacement 'ReadAttributeRequest' => 'readAttribute'. -- Interne: AbeilleCmd/readAttribute(): Ajout support 'manufId'. -- Tuya capteur rond temp & humidité (TS0201__TZ3000_dowj6gyi): Ajout support. -- Ikea E27 bulb (TRADFRIbulbE27CWS806lm): Ajout support (2328). -- Migration d'équipements: Mise-à-jour séquence + ajout doc. -- Réseau/routes: Correction regression fonctionnement. - -220215-BETA-1 -------------- - -- Interne: Amélioration msg debug. -- Interne: Changement gestion cas nouvelle zigate/échange de port. -- Interne: Lecture version zigate (bouton tester) améliorée. -- Mise-à-jour FW zigate: Effacement automatique PDM si passage 'legacy' vers 'OPDM'. -- Page gestion: Mise-à-jour remplacement de zigate suite Jeedom 2.4.X. -- Page zigate/avancé: Selection du canal/masque revue (1683). -- Interne: AbeilleCmd: setChannelMask => setZgChannelMask + améliorations. - -220211-BETA-1 -------------- - -- Profalux v2: Amélioration support. -- Auto-découverte équipement inconnu: Correction format json & améliorations. -- Lexman E27 RGB bulb: Ajout support préliminaire (2295). -- Heiman COSensor EF-3.0: Ajout support (2312). -- Suppression des repertoires vides au démarrage dans 'devices_local'. -- Erreur sur 'exclusion' d'équipement: Nouvelle correction (2305) -- Interne: SerialRead: Message corrompu (err CRC) n'est plus transmis au parser. -- Page équipements/migration: Revu & corrigé pour Jeedom 4.2.x (2322). - -220206-BETA-1 -------------- - -- Erreur sur 'exclusion' d'équipement: Correction (2305) -- Interne: AbeilleSerialRead: msg erreurs masqués (2306). -- Regression controle de 'level' (setLevel): Corrrection (1994). - -220204-BETA-1 -------------- - -- Interne: Correction erreur 'prepareCmd(): Mauvais format de message' (2302). -- Aucun équipement sélectionné: correction (2305). - -220202-BETA-1 -------------- - -- Page config: Changement mineur. Type 'WIFI' => 'WIFI/ETH'. -- Page config: Liste des ports revue + info 'Orange Pi Zero'. -- Aqara TVOC moniteur d'air AAQS-S01: Mise-à-jour modèle (2279). -- Assistant JSON: mise-à-jour. -- Modèle commande JSON: 'getPlugVAW' => 'poll-0B04-0505-0508-050B'. -- Interne: AbeilleCmd: Message debug & améliorations controle de flux envoie. -- Message d'erreur remonté à l'utilisateur si erreur dans log. -- Page gestion: Controle des groupes revu suite core 2.4.7 (2284). -- Legrand 20AX: Mise-à-jour modèle (2213). -- Interne: Correction AbeilleTools sendMessageToRuche(). -- Interne: SerialRead: Suppression mess d'err sur première trame corrompue. -- Mauvaise taille de modale parfois: correction (2177). - -220130-BETA-1 -------------- - -- LivarnoLux applique murale HG06701: Correction modèle (2256). -- Blitzwolf SHP15: Support preliminaire (2277). -- Assistant EQ/JSON: Update. -- Interne: AbeilleCmd: Correction priorité getActiveEndpoints. -- Interne: Parser: Interrogation de tous les EP pour support des eq qui s'identifient via un EP different du premier. -- Interne: Nettoyage config cmdes 'PollingOnCmdChange' & 'PollingOnCmdChangeDelay' lors mise-à-jour équipement. -- Interne: AbeilleCmd: Suppression 'Management_LQI_request' obsolete. -- Tuya 4 buttons (TS004F__TZ3000_xabckq1v): Mise-à-jour modèle (2155). -- Aqara TVOC moniteur d'air AAQS-S01: Mise-à-jour modèle (2279). -- Modeles commandes (JSON): modifications syntaxe - - - 'unite' obsolete => 'unit' - - 'generic_type' obsolete => 'genericType' - - 'trig' obsolete => 'trigOut' - - 'trigOffset' obsolete => 'trigOutOffset' -- Modèles équipements (JSON): améliorations - - - Surcharge possible de 'logicalId' - - Surcharge possible de 'trigOut' - - Surcharge possible de 'trigOutOffset' - - Surcharge possible de 'invertBinary' -- Interne: DB eqLogic, config, ab::trig ou trigOffset => ab::trigOut ou trigOutOffset. -- Xiaomi Aqara MCCGQ14LM (magnet.acn001): Correction modèle (2257). -- Interne: checkGpio() revu pour suppression faux message 'PiZigate inutilisable'. -- Page de config: Ajout bouton vers doc & doc préliminaire correspondante. -- Page de config: Bouton 'activer' renommé en 'libérer'. Trompeur. N'active pas la zigate. -- Xiaomi door: Correction etat inversé (regression 220110-BETA-1). -- Interne: CmdQueue: erreur si message trop gros dans queue 'ParserToCmdAck'. -- Interne: AbeilleCmd: Correction regression suite mise-à-jour 'setLevel'. -- Tuya GU10 color bulb (TS0505B__TZ3210_it1u8ahz): Ajout support (2280). - -220123-BETA-1 -------------- - -- Gledopto GU10 buld GL-S-007Z: Ajout support préliminaire (2270). -- Interne: AbeilleCmd: SimpleDescriptorRequest => getSimpleDescriptor. -- Page EQ/avancé: Ajout support 'Simple descriptor request'. -- Interne: AbeilleCmd: IEEE_Address_request => getIeeeAddress. -- Equipement sur secteur en time-out: Correction. -- Interne: Correction msg debug 'IEEE addr mismatch' au démarrage. -- Orvibo CM10ZW: Support signature alternative (2275). -- Interne: AbeilleCmd: Correction pour espace dans valeur slider. -- Interne: AbeilleCmd: Suppression prepare 'setLevel'. - -220122-BETA-1 -------------- - -- Interne: format message queues vers AbeilleCmd modifié. -- Interne: Fusion de plusieurs queues vers AbeilleCmd. -- Erreur getLevel/getEtat inattendue: Correction (2239). -- Xiaomi Aqara MCCGQ14LM (magnet.acn001): Correction modèle (2257). -- Interne: Parser vers Abeille. Attributs groupés pour optimisation. -- Interne: Qq améliorations page EQ/avancé/Zigate. -- Page de config: Amélioration messages mise-à-jour FW. -- Page support/infos clefs: Affichage revu. -- Interne: Parser: Optimisations & nettoyage. -- Interne: Queues revues. -- Page EQ/avancé: possibilité de télécharger discovery 'automatique'. -- Interne: Abeille.class: Vérification de l'état des queues amélioré. -- Xiaomi H1 double rocker: Mise-à-jour modèle + image (2253). -- Interne: Abeille.class: Suppression interrogateUnknowNE(). -- Page EQ/avancé: Correction regression bouton "Réinitialiser". -- Page EQ/avancé: Réinit 'defaultUnknown' si modèle officiel existe. -- Interne: Commande 'setColor' (cluster 0300) revue. - -220114-BETA-1 -------------- - -- Interne: Ajout support cmd 00/Setpoint, cluster 0201/thermostat. -- Acova Alcantara: Mise à jour modele pour controle temp (2180). -- 'Graph' visible seulement en mode dev. -- Interne: Gestion des queues: log & suppression msg trop gros. A completer. -- Interne: Gestion des queues en cas de msg trop gros. - -220113-BETA-1 -------------- - -- Xiaomi Aqara wall switch D1 (switch.b1nacn02): Mise-à-jour modèle (2262). -- Profalux Zoe: Identifiant 'TG1' = 'TS' (1066). -- Réseau/bruit: fonctionalité masquée sauf mode dev. -- Interne: Parser: 8401/IAS zone status change revisité. -- RH3040 PIR sensor: Mise-à-jour modèle (2252). -- Gledopto GL-SD-001 AC dimmer: Ajout support (2258). -- Tuya télécommande 4 boutons (TS0044): Ajout support (2251). - -220110-BETA-1 -------------- - -- Interne: Début refonte/nettoyage AbeilleCmd pour amélioration controle de flux. -- Interne: Parser: Support nPDU/aPDU sur messages 8000/8012 & 8702 (FW>=3.1e). -- Interne: Cmd: Ajout support optionnel 'manufId' pour 'writeAttribute'. -- Page EQ/avancé: Ecriture attribut améliorée. Ajout support 'direction' & 'manufId'. -- Xiaomi H1 double rocker: Ajout support (2253). -- JSON équipements: Nettoyage commandes obsolètes - - - 'etat' => 'zb-0006-OnOff' - - 'etatCharge0' => 'zb-0006-OnOff' + 'ep=01' - - 'etatCharge1' => 'zb-0006-OnOff' + 'ep=02' - - 'etatCharge2' => 'zb-0006-OnOff' + 'ep=03' - - 'etatCharge6' => 'zb-0006-OnOff' + 'ep=07' - - Ajout surcharge de 'genericType' - - 'etatInter0' => 'zb-0006-OnOff' + 'ep=01' - - 'etatInter1' => 'zb-0006-OnOff' + 'ep=02' - - 'etatInter2' => 'zb-0006-OnOff' + 'ep=03' - - 'etatDoor' => 'zb-0006-OnOff' -- TRADFRIbulbE14WScandleopal470lm LED1949C5: Mise-à-jour modèle (2250). -- Interne: AbeilleCmd: Suppression prepare readReportingConfig() + getBindingTable(). -- Package support: ajout du log 'update'. -- LivarnoLux applique murale HG06701, TS0505A, _TZ3000_5bsf8vaj: Ajout support preliminaire (2256). -- Assistant modèle JSON: Améliorations. -- Interne: Abeille.class: Nettoyage fonctionalités obsolètes. -- Xiaomi Aqara MCCGQ14LM (magnet.acn001): Ajout support préliminaire (2257). -- Lidl HG07878A TS0502A: Correction modèle (2198). -- Interne: Suppression des cmdes Ruche obsolètes au démarrage des démons. -- QS-zigbee-C01 nouvelle version: ajout support (2260). -- Xiaomi Aqara wall switch (switch.b1nacn02): Ajout support (2262). - -220108-STABLE-1 ---------------- - -- Tuya TV02: Ajout image (2175). -- JSON équipements: Correction support params optionnels. -- TRADFRIbulbE14WScandleopal470lm LED1949C5: Ajout support (2250). -- Tuya RH3040 PIR: Ajout support (2252). -- ZBMini: Ajout polling toutes les 15mins pour vérifier toujours en vie. -- Sixwgh WH025/TS011F__TZ3000_cphmq0q7: Ajout polling 0006 + 0702 (2211). -- Interne: Gestion 'PollingOnCmdChange' revue. -- Interne + page EQ/avancé: Ajout support writeAttribute via cmd 0530. -- Page de config: Affichage version connue du firmware. -- Page EQ/avancé: Affichage version complète FW (ex: 0004-0320). - -211214-BETA-3 -------------- - -- dOOwifi DWF-0205ZB-PN-2: Ajout PNG (2241). -- JSON équipements: Nettoyage commandes obsolètes - - - 'spiritSetReportBatterie' => 'zbConfigureReporting' + 'clustId=0001&attrType=20&attrId=0021' - - 'setReportIlluminance' => 'zbConfigureReporting' + 'clustId=0400&attrType=21&attrId=0000' - - 'setReportTemperature' => 'zbConfigureReporting' + 'clustId=0402&attrType=29&attrId=0000' - - 'setReportOccupancy' => 'zbConfigureReporting' + 'clustId=0406&attrType=18&attrId=0000' -- QS-Zigbee-C01: Correction modele pour cmde 'Position'. -- Ajout support Module volet Roulant dOOwifi DWF-0205ZB-PN-2 (2241). -- Firmware: Ajout version 3.21 OPDM+legacy. Suppression versions antérieures à 3.1d. -- Xiaomi Aqara QBKG26LM: Mise-à-jour modèle (2174). - -211210-BETA-1 -------------- - -- Réseau Abeille/routes: Correction erreur si équipement sans parent. -- Support: Mise-à-jour infos clefs. -- JSON équipements - - - Fin de support noms obsoletes: nameJeedom/Categorie/icone/battery_type/Commandes. - - Support surcharge de parametres optionnels. - -211209-BETA-1 -------------- - -- Interne: Création/mise-à-jour ruche revue. -- Interne: Suppression mode 'hybride' forcé. -- Message si FW plus vieux que 3.1D (nécessaire pour certains équipements). - -211208-BETA-2 -------------- - -- Ruche: page équipement/avancé: Correction regression bouton 'setMode'. -- SPLZB-131: RMSVoltage, reporting si variation >= 2V (2109). -- Xiaomi Aqara SSM-U01: Ajout support 'ActivePower' (2234). -- JSON équipements: Nettoyage commandes obsolètes - - - 'setReportBatterie' => 'zbConfigureReporting' + 'clustId=0001&attrType=20&attrId=0021' - - 'setReportBatterieVolt' => 'zbConfigureReporting' + 'clustId=0001&attrType=20&attrId=0020' - - 'setReportEtat' => 'zbConfigureReporting' + 'clustId=0006&attrType=10&attrId=0000' - - 'setReportLevel' => 'zbConfigureReporting' + 'clustId=0008&attrType=10&attrId=0000' - - 'setReportCurrent_Position_Lift_Percentage' => 'zbConfigureReporting' + 'clustId=0102&attrType=10&attrId=0008' - - 'setReportHumidity' => 'zbConfigureReporting' + 'clustId=0405&attrType=20&attrId=0000' -- Récupération équipements fantomes (toujours sur le réseau mais plus dans Jeedom): Améliorations. - -211208-BETA-1 -------------- - -- Interne: AbeilleDebug.log déplacé dans répertoire temporaire Jeedom. -- Support: Generation infos clefs pour support à la création du package. -- Identification équipement: Interrogation EP01 en plus du premier. -- Sonoff S26R2ZB: Ajout support (2221). - -211207-BETA-3 -------------- - -- Acova Alcantara: Version temporaire 'Set-OccupiedHeatingPoint' (2180). -- Tuya/Sixwgh TS011F__TZ3000_cphmq0q7: Cluster 0B04 migré en polling (2211). - -211207-BETA-2 -------------- - -- Interne: Amélioration création ruche vs démarrage. Mode forcé en 'hybride' qq soit FW. -- Philips wall switch module/RDM001: Mise-à-jour modèle & support cluster FC00 (2185). -- JSON équipements: Nettoyage commandes obsolètes - - - 'BindToPowerConfig' => 'zbBindToZigate' + 'clustId=0001' - - 'BindToZigateTemperature' => 'zbBindToZigate' + 'clustId=0402' - - 'BindToZigateRadiateur' => 'zbBindToZigate' + 'clustId=0201' - - 'BindToZigateEtatLegrand' => 'zbBindToZigate' + 'clustId=FC41' - - 'BindToZigatePuissanceLegrand' => 'zbBindToZigate' + 'clustId=0B04' - - 'BindToZigateLightColor' => 'zbBindToZigate' + 'clustId=0300' - - 'BindToZigateOccupancy' => 'zbBindToZigate' + 'clustId=0406' - - 'BindToZigateCurrent_Position_Lift_Percentage' => 'zbBindToZigate' + 'clustId=0102' - - 'BindShortToSmokeHeiman' => 'zbBindToZigate' + 'clustId=0500' - - 'BindShortToZigateBatterie' => 'zbBindToZigate' + 'clustId=0001' -- Interne: AbeilleCmd: Traitement status 8000 groupé + ... -- Xiaomi Aqara SSM-U01: Ajout support (2227). -- Interne: AbeilleCmd: Ajout support cmd 0201/Thermostat. -- Interne: AbeilleCmd: writeAttribute(): Correction direction. -- Interne: Parser: Requetes lecture attributs groupées lors d'une annonce. -- Effacement PDM: Correction regression interne. - -211205-BETA-1 -------------- - -- Orvibo ST30: Mise-à-jour modèle + icone (2193). -- Tuya/Sixwgh TS011F__TZ3000_cphmq0q7: Mise-à-jour modèle + icone (2211). -- Récupération équipements fantomes (toujours sur le réseau mais plus dans Jeedom): Mise-à-jour -- Aqara Smart Wall Switch H1 EU (No Neutral, Double Rocker) (WS-EUK02): Support préliminaire (2224). - -211205-STABLE-1 ---------------- - -- Page EQ/avancé: Ajout bouton reset SW zigate (2176). -- Appairage équipement: correction regression. - -211202-BETA-1 -------------- - -- Récupération équipements fantomes (toujours sur le réseau mais plus dans Jeedom): Partiel. -- Tuya/Sixwgh TS011F__TZ3000_cphmq0q7: Ajout support (2211). -- Page EQ/avancé: Ajout bouton récupération adresse IEEE. -- Message si mode debug et moins de 5000 lignes de log. - -211130-BETA-2 -------------- - -- Dimmer-Switch-ZB3.0_HZC: Mise-à-jour reporting CurrentLevel (2200). -- Philips wall switch module/RDM001: Mise-à-jour modèle (2185). -- Zigate WIFI: Amélioration serial read pour meilleur support coupures de connexion. -- Interne: AbeilleCmd: Nouveau support #slider# appliqué à 'writeAttibute'. - -211129-BETA-2 -------------- - -- Interne: Zigbee const: Ajout cluster 0406. -- Dimmer-Switch-ZB3.0_HZC: Ajout image PNG (2200). -- Interne: Zigbee const: Mise à jour attributs cluster 0300. -- Livarno HG07834C E27 bulb: Ajout support préliminaire (2203). -- Profalux MAI-ZTS: Ajout support telecommande gen 2 (2205). -- Profalux volets 2nd gen: Meme config pour MOT-C1Z06C & MOT-C1Z10C. -- JSON équipements: Nettoyage commandes obsolètes - - - 'xxxxK' => 'zbCmd-0300-MoveToColorTemp' - - 'dateCode' => cmde supprimée - - 'BasicApplicationVersion' => cmde supprimée - - 'Rouge' => 'zbCmd-0300-MoveToColor' - - 'Blanc' => 'zbCmd-0300-MoveToColor' - - 'Bleu' => 'zbCmd-0300-MoveToColor' - - 'Vert' => 'zbCmd-0300-MoveToColor' - -211126-BETA-2 -------------- - -- Interne: Améliorations assistant JSON. -- JSON équipements: Nettoyage commandes obsoletes - - - 'colorX' => 'zb-0300-CurrentX' - - 'colorY' => 'zb-0300-CurrentY' - - 'location' => cmde supprimée - - 'Get-ColorX' => 'zbReadAttribute' + 'clustId=0300&attrId=0003' - - 'Get-ColorY' => 'zbReadAttribute' + 'clustId=0300&attrId=0004' - - 'Level' => 'zb-0008-CurrentLevel' -- Interne: Parser: Data type 30/enum8 décodé comme nombre au lieu de string hex. -- Port interne Zigate Wifi déplacé de /dev/zigateX => /tmp/zigateWifiX pour contourner pb de "read-only file system". - -211125-BETA-1 -------------- - -- Assistant de découverte: Texte de rappel si batterie. -- Tuya RH3001 door sensor: Mise-à-jour JSON (1226). -- Lidl HG07878A TS0502A: Ajout support préliminaire (2198). -- JSON équipements: Nettoyage commandes obsoletes - - - 'BindToZigateEtat' => 'zbBindToZigate' - - 'BindToZigateLevel' => 'zbBindToZigate' - - 'BindToZigateButton' => 'zbBindToZigate' - - 'BindToZigateIlluminance' => 'zbBindToZigate' - - 'levelLight' => 'zb-0008-CurrentLevel' - - 'getLevel' => 'zbReadAttribute' + 'clustId=0008&attrId=0000' -- Démarrage sans Zigate active: Ajout message + démarrage démons annulé. -- Page de config: Zigate Wifi: Correction message 'Port série de la zigate X INVALIDE ! Zigate désactivée'. -- Tuya TS0501B Led controller: Ajout support préliminaire (2199). -- Dimmer-Switch-ZB3.0_HZC: Support préliminaire (2200). - -211122-BETA-1 -------------- - -- Illuminance: Correction cmde JSON 'zb-0400-MeasuredValue.json'. -- Mise-à-jour OTA: Support préliminaire. -- zb-0400/0402/0405-MeasuredValue.json: Correction calcul valeur. -- Philips Hue Wall switch: Ajout support préliminaire (2185). -- Equipements inconnus: Generation d'un "discovery.json" pendant l'inclusion. Suppression d'AbeilleDiscover.log. -- Programmateur Zigate: Correction: Compilation echoue si "tmp" n'existe pas. -- Orvibo ST30: Ajout support préliminaire (2193). -- Acova Alcantara: Mise-à-jour JSON pour 'Set-OccupiedHeatingPoint' (2180). -- JSON équipements: Nettoyage commandes obsoletes - - - 'temperature' => 'zb-0402-MeasuredValue' - - 'bindToZigate' => 'zbBindToZigate' - - 'luminositeXiaomi' => 'zb-0400-MeasuredValue' - - 'getEtat' => 'zbReadAttribute' - - 'humidite' => 'zb-0405-MeasuredValue' - - 'on' => 'zbCmd-0006-On' - - 'off' => 'zbCmd-0006-Off' -- JSON équipements: Ajout possibilité de surcharger 'minValue' & 'maxValue' pour widget slider. -- 1 chan switch module (TS0011, _TZ3000_ji4araar): Ajout JSON sur base TS0011 (2196). - -211121-STABLE-1 ---------------- - -- Acova Alcantara: Ajout support préliminaire (2180). -- Interne: Nettoyage AbeilleZigateConst. -- Interne: Correction CmdPrepare/WriteAttributeRequestGeneric. Impacte Danfoss Ally (1881). -- Ikea bulb E27 White Spectre opal 1055lm: Ajout support (2187). -- Moes ZSS-ZK-THL-C: Ajout support (2191). - -211115-BETA-2 -------------- - -- Moniteur: Suppression message sur équipement inexistant (2186). -- Moniteur: Correction lancement démon. - -211115-BETA-1 -------------- - -- Page de config: Correction bug écriture impossible adresse Wifi. - -211107-BETA-1 -------------- - -- Page Abeilles: Fonctionalité 'scenes' cachée. Scénaris offrent l'équivalent. -- Identification modèles Tuya: Correction. -- Interne: AbeilleCmd, bind0030: Supression fonction prepare. -- Interne: AbeilleCmdPrepare: Correctif pour nmbre de params impair. -- Interne: getVersion => getZgVersion. -- JSON équipements: Amélioration syntaxe permettant de surcharger 'execAtCreationDelay'. -- Sonoff SNZB-02: JSON revu. 'TH01.json' supporte identifiants 'TH01' & '66666'. -- JSON équipements: Correction valeur minInterval & maxInterval (décimal => hexa). -- Page EQ/avancé: Support préliminaire cmds 41 & 42, cluster 1000/Commissioning. -- Silvercrest HG06106C light bulb: Ajout support (2050). -- Legrand 16AX: Mise-à-jour icone. - -211030-BETA-1 -------------- - -- Tuya ZM-CG205 door sensor: Mise-à-jour JSON. Ajout 'ZoneStatus' (2165). -- Interne: Parser: Support réponse cluster 000A/Time, attrib 0007 + ... -- Xiaomi Aqara QBKG26LM: Ajout support (2174). -- Interne: - - - setTimeServer => setZgTimeServer. - - getTimeServer => getZgTimeServer. - - zgSetMode => setZgMode. -- Prise connectée TS0121 _TZ3000_8nkb7mof: Mise-à-jour JSON (2167). -- Interne: Parser: - - - Msg 0006-FD, msgAbeille() supprimé. - - Msg 8030/bind response: revu. -- Tuya QS-Zigbee-C01 volet roulant: Correction image (2169). -- Identification modeles Tuya: modifié. Fabricant/vendeur obligatoire pour éviter de prendre mauvais JSON identifié par modèle seul. -- Silvercrest HG06337-FR: Mise-à-jour JSON pour groups & identify. - -211030-STABLE-2 ---------------- - -- JSON équipement: Amélioration syntaxe permettant de surcharger 'subType' ou 'unite'. -- Zlinky TIC: Diverses corrections dont lecture option tarifaire. -- Tuya repeteur zigbee RP280: Ajout support. -- Page de config - - - Options avancées: Nettoyage autorisé si test d'intégrité ok. - - Partie mise-à-jour (vérification) caché. Pas assez fiable. A revoir. - - Partie 'zigates' revue. -- Tuya ZM-CG205 door sensor: Mise-à-jour JSON (2165). -- Interne: Suppression entrée 'zigateNb' de la DB config. -- eWeLink ZB-SW01: Support préliminaire (2172). - -211022-BETA-1 -------------- - -- **ATTENTION**: Format DB interne modifié. Restaurer sauvegarde si besoin de revenir à une version antérieure. -- Interne: DB équipement: 'modeleJson' => 'ab::jsonId'. -- Interne: Suppression 'archives'. -- Page config: Affichage version firmware complète (ex: 0004-0320). -- Commandes JSON: Suppression 'zbWriteAttribute-Temp'. -- Interne: Parser vers cmd: queues revisitées. -- Silvercrest HG06337: Mise-à-jour JSON (2168). -- Assistant de découverte: Améliorations. -- Tuya QS-Zigbee-C01 volet roulant: Ajout support (2169). -- JSON commandes: Suppression commandes obsoletes 'OnEpXX' & 'OffEpXX'. -- Prise Tuya TS0121__TZ3000_rdtixbnu: Correction RMS Voltage. -- Interne: 'configureReporting' revu pour support 'reportableChange'. -- Page EQ/avancé: Amélioration configureReporting pour support min, max & changeVal. -- Prise NIKO: JSON revisité pour réduire le nombre de reporting RMSvoltage (2003). -- Prise TS0121 _TZ3000_8nkb7mof: Mise-à-jour JSON (2167). - -211019-BETA-1 -------------- - -- JSON commandes: Nettoyage. Suppression commandes obsolètes. -- Interne: decodeDataType(): ajout support enum8/enum16 + ieee. -- Interne: Parser: Support read attributes clusters 0015 & 0100. -- Tuya ZM-CG205 door sensor: Ajout support (2165). -- Test d'intégrité et nettoyage automatique à la mise-à-jour. - -211019-STABLE-1 ---------------- - -- Interne: Correction 'writeAttribute' + mise-à-jour reponse 8110. -- Tuya 4 buttons (TS004F__TZ3000_xabckq1v): Mise-à-jour support (2155). -- Commandes JSON: Suppression 'binToZigate-EPXX-0006' => obsolètes. -- JSON équipements: Ajout support multiple identifiants (ex: 'signalrepeater' & 'SignalRepeater'). -- UseeLink prise SM-SO306: Mise-à-jour (2160). -- Zigate: plusieurs commandes supprimées => supportées dans page équipement/avancé. -- Interne: Parser: Améliorations decodeDataType(). -- UseeLink prise SM-SO306: Ajout support (2160). -- Syntaxe JSON équipement: Ajout possibilité surcharge 'template'. -- Zlinky TIC: Mise-à-jour JSON + icone. -- Niko connected socket outlet: Mise-à-jour image. -- Page EQ/avancé: Ajout possibilité de configurer le reporting. -- Interne: Parser: Support 'configure reporting response' pour 0B04. -- TRADFRI bulb GU10 CWS 345lm: Correction icone E14 => GU10 (2137). -- Ikea Tradfri LED 470lm E14: Mise-à-jour config JSON (2111). -- Tuya 4 boutons: Mise-à-jour (2155). -- Interne: AbeilleCmd: Correction bin0030 vers groupe. -- SPLZB-131: Mise-à-jour JSON. Reporting activé. (2109). -- Page EQ/avancé: Ajout possibilité d'écrire un attribut. -- Interne: AbeilleCmd: Message d'erreur si pb lecture queues. -- Interne: Commandes JSON 'getEtatEpXX' deviennent obsoletes. -- Page EQ/avancé: correction bouton 'reconfiguer' + amélioration message. -- Interne: Zigbee const: corrections pour éviter warning PHP. -- Page équipements: Suppression zone developpeur (bas de page). -- Page EQ/avancé: Ajout interrogation des 'Active end points'. -- Interne: Parser: decodeDataType() revu pour types 41 & 42. -- Interne: Procedure d'inclusion avec support "cas speciaux". -- Suppression log obsolete AbeilleParser (sans '.log') lors de la mise-à-jour/installation. -- Page équipement: Message si équipement à disparu depuis l'ouverture de la page. -- Interne: Parser: Support remontée commandes du cluster 0300 en provenance d'un équipement. -- Osram smart switch mini: Mise-à-jour. Ne supporte que le controle vers Jeedom. - -211004-STABLE-1 ---------------- - -- Correction mauvaise config lors de l'inclusion si #IEEE# ou #ZigateIEEE# utilisé. -- Page santé: correction IEEE manquante pour Ruche. -- Inclusion: Correction pour vieux équipements type Xiaomi (ne repond pas à lecture attribut manufacturer). -- Interne: Identification périph revisitée. -- Assistant Zigbee: Correction & amélioration. -- Interne: Modification astuce identification vieux modeles Xiaomi basé sur IEEE. Non compatible ZLinky. -- Correction regression 'setModeHybride' + mise-à-jour commande interne. -- Assistant Zigbee: Ajout forcage EP01. -- Commandes JSON: nettoyage. -- Assistant Zigbee: Améliorations: ajout découverte etendue des attributs. -- ZLinky TIC: Support préliminaire. -- Interne: Parser: Nettoyage. -- Aqara SSM-U02: Correction icone. -- Xiaomi Mijia Honeywell Détecteur de Fumée: Tentative correction bouton test (2143). -- Ruban LED Lidl: Mise à jour JSON (1737). -- TRADFRIbulbGU10CWS345lm: Mise a jour (2137). -- Interne: Correction erreur PHP: Undefined index: battery_type in AbeilleLQI_Map.php -- Interne: Correction crash inclusion dans cas ou "value" pointe sur commande inexistante. -- Xiaomi smoke detector: bouton test genere crash d'AbeilleCmd (2143). -- Aqara TVOC moniteur d'air AAQS-S01: Support préliminaire (2135). - -210922-STABLE-1 ---------------- - -- Interne: Correction requete "discover attributes extended". -- Loratap 3 boutons: Correction regression (2138). -- Interne: Restoration support historique cmd 0006-FD special Tuya. -- TRADFRIbulbGU10CWS345lm support preliminaire. -- TRADFRIbulbE14CWS470lm support preliminaire. -- SPLZB-132: Correction EP. -- SPLZB-131: Correction RMSVoltage (2109). -- Interne: Tools: check_json amélioré. -- Interne: Parser: Support prélim data type 41, 42, E0, E1, E2. -- Suppression des messages de "réannonce" si équipement connu et activé. - Attention. Si l'équipement quitte (leave) puis revient, le message est toujours présent. -- Legrand dimmer: Mise à jour JSON (983). -- Monitor: Correction bug (Device announce loupé). -- JSON équipements: Mise-à-jour setReport-EPxx => zbConfigureReporting. -- JSON équipements: Nettoyage setReport-EPxx => zbConfigureReporting. -- Assistant de découverte: améliorations et mise à jour doc. -- Interne: Parser: Amélioration pour découverte cluster 0005/Scenes. -- Interne: Correction warning pour "bind to group". -- Page EQ/avancé: ajout bouton "reset to factory". -- Interne: AbeilleCmdPrepare + Process updates. -- JSON équipements: Mise à jour des commandes du type 'toggle'. -- Page EQ/avancé: ajout possibilité de faire un "bind" vers équipement ou groupe. -- Parser: Correction table de binding. - -210916-STABLE-1 ---------------- - -- JSON commandes: 'trig' revu + 'trigOffset' ajouté. -- Niko connected socket: ajout support (2003). -- JSON commandes: suppression de qq cmds obsoletes. -- Interne: Optimisation parser: transfert groupé d'attributs. -- Interne: Link-Quality mis à jour sur attribut report. -- JSON équipements: Mise-à-jour commandes pourcentage batterie. -- Tuya inter 4 buttons: mise-à-jour support 'click' (2122). -- Interne: Améliorations parser + robustesse. -- Correction regression: crash pendant l'inclusion (2125). -- Zemismart TS0042 2 buttons (1272). -- Interne: Parser: Modificaiton support custom single/double/long click pour Tuya. -- Tuya 4 buttons scene switch: Mise-à-jour modèle (2122). -- Ajout FW 3.1e Optimized PDM + 3.20 legacy + 3.20 Optimized PDM -- Osram CLA60 TW: Correction end point par défaut (2117). -- Tuya contact sensor TS0203: Ajout reporting batterie (1270). -- Tuya 4 buttons scene switch: Ajout support (2122). -- Correction mauvais message: "ATTENTION: config locale utilisée ...". -- Interne: Améliorations parser. - -210905-STABLE-1 ---------------- - -- Améliorations assistant EQ. -- Interne: Séquence de démarrage revisitée pour #2093. -- Améliorations assistant EQ. -- Interne: SerialRead, mise-à-jour pour "permission denied". -- Frient SPLZB-131: Support préliminaire. -- Legrand Cable outlet: Ajout support préliminaire (850). Manque controle fil pilote. -- All JSON: 'configuration:battery_type' => 'configuration:batteryType'. -- Assistant: Ajout doc préliminaire pour découverte Zigbee. -- Interne: Séquence de démarrage revisitée pour #2093. -- Page config/options avancées: possibilité de bloquer requetes LQI journalieres. -- Assistant de découverte: améliorations. -- Interne: Collecte LQI: Mise-à-jour mineure. -- Interne: Parser: Amélioration robustesse. -- Ajout support Controleur Tuya LED DC5-24V (2082). -- Ajout Ampoule YANDHI E27 (2087) -- JSON équipements: tous modifiés - - SW & getSWBuild => SWBuildID & Get-SWBuildID -- Interne: Ajout commande générique 'configureReporting'. -- Page gestion: Bouton 'exclure' pour tous. -- JSON commandes: suppression de commandes obsolètes. -- GL-S-003Z: Fichier JSON. Correction end point + divers (2104). -- Page EQ/avancé: ajout possibilité interroger LQI (Mgmt_Lqi_req). - -210824-STABLE-1 ---------------- - -- Xiaomi plug EU: JSON revisité (1578). -- Interne: SerialRead: Ouverture de port améliorée. -- Silvercrest HG06337-FR: Ajout prise Lidl (2053). -- JSON équipements: amélioration nouvelle syntaxe (ajout 'isVisible' & 'nextLine'). -- Page EQ/avancé: mise-à-jour de l'assistant de découverte. -- Page config/options avancées: Support defines. -- Commande JSON 'temperatureLight': correction EP. -- Aqara Opple 6 boutons (2048). -- JSON équipements: tous mis à jour. - - 'Categorie' remplacé par 'category'. - - 'nameJeedom' remplacé par 'type'. - - 'configuration:icone' remplacé par 'configuration:icon'. - - mainEP #EP# remplacé par '01'. - - 'uniqId' supprimé. - - 'Commandes' => 'commands' -- Profalux: Ajout support nouvelle génération volet (id=MOT-C1Z06C/10C, #2091). -- Aqara WS-EUK01 H1 wall switch: ajout support préliminaire (2054). -- Interne: optimisations AbeilleCmdQueue. -- Page santé: ajout dernier niveau batterie. -- Gledopto GL-B-008Z: Correction main EP dans modèle JSON (2096). -- Gledopto GL-C-006: Modèle préliminaire (2092). -- Interne: Taille queue parser->LQI augmentée à 2048. -- Interne: Nettoyage: suppression queue obsolete 'queueKeyLQIToAbeille'. -- Interne: cron15: Lecture ZCLVersion au lieu d'un attribut pas toujours supporté. -- Page EQ/avancé: ajout bouton lecture attribut. -- Interne: tools: Amélioration check_json + update_json -- Modèle JSON telecommande profalux: correction syntaxe type batterie. -- Collecte LQI: Correctif parser pour routeur avec plus de 10 childs. -- Interne: Nettoyage: suppression fichier obsolète 'function.php'. -- JSON: Correction nom 'Konke multi-function button' pour id 3AFE170100510001. -- Ajout support 'Konke multi-function button' avec id 3AFE280100510001. - -210719-STABLE-1 ---------------- - -- ATTENTION: Format JSON des fichiers de commande modifié ! -- Osram classic B40TW: support préliminaire. -- Xiaomi Luminosite: Ajout pourcentage batterie basé sur retour tension (1166). -- Interne: cron15 amélioré. Pas d'interrogation si eq appartient à zigate inactive. -- Inclusion: support revu pour périph qui quitte puis revient sur le réseau. -- Moniteur: Disponible pour tous et plus seulement en mode dev. -- Firmware 3.1e disponible pour tous. -- JSON commandes: Mise-à-jour syntaxe fichier de commande - - 'order' supprimé (obsolète) - - 'uniqId' supprimé (obsolète) - - 'Type' renommé en 'type' - - Ajout 'topic' si manquant pour commandes 'info'. - - Correction clef top commandes 'info' (clef = nom de fichier). -- JSON équipements: Support préliminaire pour directive "use" - - Ex: "cmd_jeedom_name": { "use": "cmd_file_name", "params": "EP=01" } -- Page EQ/avancé: ajout du bouton "reconfigurer". -- Page gestion: suppression du bouton "Apply Settings to NE". -- Page EQ/avancé: version préliminaire de l'assistant de découverte. -- Correction ecrasement widget commande (2075). -- Interne: plusieurs améliorations pour robustesse et support d'erreurs. -- Page EQ/avancé: Ajout bouton "interroger table routage" -- Page EQ/avancé: Ajout bouton "interroger table binding" -- Page EQ/avancé: Ajout bouton "interroger config reporting" -- JSON: Syntaxe commandes modifiée. Type 'execAtCreationDelay' changé en 'nombre' et non plus 'string'. - Devrait corriger le pb de config de certains equipements à l'inclusion. -- Correction perte categorie & icone si equipement se réannonce. -- Correction perte état historisation & affichage des commandes si equipement se réannonce. -- Correction mise-à-jour commandes IEEE-Addr, Short-Addr & Power-Source sur réannonce. -- Page santé: Ajout "dernier LQI" à la place de "Date de création". -- Interne: Meilleur support des JSON avec mainEP=#EP#. - -210704-STABLE-1 ---------------- - -- Modifications syntaxe JSON équipement (avec support rétroactif temporaire): - - 'commands' au lieu de 'Commandes'. - - 'category' au lieu de 'Categorie' - - 'icon' au lieu de 'icone' - - 'batteryType' au lieu de 'battery_type' -- Support JSON equipement: correction pour support multiple categories. -- Page EQ/avancé: recharger JSON accessible à tous. -- Page EQ: type de batterie déplacé vers principale. -- Interne: plusieurs améliorations de robustesse. -- Interne: Parser: Support des messages longs. -- Zigate WIFI: Correction & amélioration arret/démarrage démon. -- Equipement/categories: correction. Effacement categorie résiduelle. -- Trafri motion sensor: Mise-à-jour JSON pour controle de groupe. -- Gestion des démons: correctif sur arret forcé (kill). -- Interne: Parser: affichage erreurs msg_receive(). -- Interne: SerialRead: affichage erreur msg_send(). -- Interne: Serial to parser: Messages trop grands ignores pour ne plus bloquer la pile + message d'erreur. -- Batterie %: Parser renvoi valeur correcte pour 0001-EPX-0021 + Abeille.class + update JSON (2056). - Peut nécessiter de recharger JSON. -- Batterie %: Report dans Jeedom de tous les "end points" et pas seulement 01. - -210620-STABLE-1 ---------------- - -- SPLZB-132: Correction icone + ajout somme conso. -- Correction remontée cluster 0B04 (mauvais EP). -- Orvibo CM10ZW multi functional relay: mise-à-jour icone. -- Nettoyage de vieux fichiers log au démarrage. -- Socat: Amélioration pour avoir les messages d'erreur. -- Interne: Restauration option avancées de récupération des équipements inconnus. -- Xiaomi v1: Correction regression inclusion. Trick ajouté pour Xiaomi. -- Orvibo CM10ZW multi functional relay: support préliminaire. -- Page santé: Correction mauvais affichage du status des zigates. -- Page equipement/avancé: Possibilité de recharger dernier JSON (et mettre à jour les commandes) sans refaire d'inclusion. -- Interne: Suppression AbeilleDev.js (mergé dans Abeille.js). -- Page équipement: Correction rapport d'aspect image (icone). -- Interne: Parser: Support msg 9999/extended error. -- Interne: Parser: Qq améliorations découverte nouvel équipement. -- Interne: SerialRead: Boucle et attend si port disparait au lieu de quitter (2040). -- Page gestion: Correction regression groupes. - -210610-STABLE-3 ---------------- - -- Philips E27 single filament bulb: Ajout modele LWA004 -- Interne: Correction ReadAttributRequest multi attributs -- Interne: Correction 'zgGetZCLStatus()' -- Frient SPLZB-132 Smart Plug Mini: Ajout support préliminaire. -- Interne: Correction eqLogic/configuration. Suppression des champs obsolètes lors de la mise-à-jour de l'équipement. -- Tuya 4 buttons light switch (ESW-0ZAA-EU): support préliminaire (1991). -- Tuya smart socket: Ajout support modele générique 'TS0121__TZ3000_rdtixbnu'. -- Telecommande virtuelle: Correction regression. Plusieurs télécommandes par zigate à nouveau possible (2025). -- Lancement de dépendances: correction erreur (2026). -- Exclusion d'un équipement du réseau: En mode dev uniquement. Nouvelle version. -- Zigate wifi: correction regression. - -210607-STABLE-1 ---------------- - -- ATTENTION: Regression sur les telecommandes virtuelles. Une seule possible avec cette version. -- ATTENTION: Faire un backup pour pouvoir revenir à la precedente "stable". Structure DB eqLogic modifiée: "Ruche" remplacé par "0000" -- Interne: Parser: revue params decodeX() + cleanup -- Zemismart ZW-EC-01 curtain switch: mise-à-jour modèle. -- Interne: Correction timeout. -- Reinclusion: L'equipement et ses commandes sont mis à jour. Seules les commandes obsolètes sont détruites. - Ca permet de ne plus casser le chemin des scénaris et autres utilisateurs des commandes. -- Firmware: Suppression des FW 3.0f, 3.1a & 3.1b. 3.1d = FW suggéré. -- JennicModuleProgrammer: Mise-à-jour v0.7 + améliorations. Compilé avant utilisation. -- Zigate DIN: Ajout support pour mise-à-jour FW. -- Page equipement: section "avancé", mise à jour des champs en temps réel (1839). -- Gestion des groupes: correction regression (2011). -- Telecommande virtuelle: correction regression (2011). -- Interne: Revue decode 8062 (Group membership). -- JSON: Correction setReportTemp (1918). -- Innr RB285C: correction modele corrompu. -- Innr RB165: modele préliminaire. -- Tuya GU10 ZB-CL01: ajout support. -- Hue motion sensor: mise-à-jour JSON. -- Interne: correction message 8120. -- Page config: correction installation WiringPi (1979). -- Introduction de "core/config/devices_local" pour les EQ non supportés par Abeille mais locaux/en cours de dev. -- Zemismart ZW-EC-01 curtain switch: ajout du modèle JSON -- Nouvelle procédure d'inclusion. -- Support des EQ avec identifiants 'communs'. -- Création du log 'AbeilleDiscover.log' si inclusion d'un équipement inconnu. -- Profalux volet: Revue modele JSON. Utilisation cluster 0008 au lieu de 0006 + report. -- Page EQ/commandes: pour mode developpeur, possibilité charger JSON. -- Ordre apparition des cmdes: Suit maintenant l'ordre d'utilisation dans JSON equipement. -- Un équipement peut maintenant être invisible par defaut ('"isVisible":0' dans le JSON). -- Profalux telecommande: S'annonce mais inutilisable côté Jeedom. Cachée à la création. - -210510-STABLE-1 ---------------- - -- Page compatibilité: revisitée + ajout du tri par colonne -- Page santé: ajout de l'état des zigate au top -- Sonoff SNZB-02: support corrigé + support 66666 (ModelIdentifier) (1911) -- Xiaomi GZCGQ01LM: ajout support tension batterie + online (1166) -- Page EQ/params: ajout de l'identifiant zigbee -- Correction "#1908: AbeilleCmd: Unknown command" -- Correction "#1951: pb affichage heure "Derniere comm." -- Correction blocage du parser dans certains cas de démarrage. -- Diverses modifications pour améliorer la robustesse et les messages d'erreurs. -- Monitor (pour developpeur seulement pour l'instant) -- Gestion des démons: revisitée pour éviter redémarrages concurrents. -- Correction "#1948: BSO, lift & tilt" -- JSON: Emplacement des commandes changé de "core/config/devices/Template" vers "core/config/commands" -- Innr RB285C support preliminaire - -11/12/2020 ----------- - -- Prise Xiaomi: fonctions de base dans le master (On/Off/Retour etat). En cours retour de W, Conso, V, A et T°. -- LQI collect revisited & enhanced #1526 -- Ajout du modale Template pour afficher des differences entre les Abeilles dans Jeedom et leur Modele. -- Ajout d un chapitre Update dans la page de configuration pour verifier que certaines contraintes sont satisfaites avant de faire la mise a jour. -- Ajout Télécommande 3 boutons Loratap #1406 -- Contactor 20AX Legrand : Pilotage sur ses fonctions ON/OFF et autre -- Prise Blitzwolf -- Detecteur de fumée HEIMAN HS1SA-E -- TRADFRIDriver30W IKEA - -Beta 24/11/2010 ---------------- - -Surtout faites un backup pour pouvoir revenir en arrière. - -- Premiere version Abeille qui prend en charge le firmware Zigate 3.1d. -- J'ai passé toutes mes zigates en 3.1D (Je ne vais plus tester les evolutions d'Abeille avec les anciennes versions du firmware). -- Essayez de passer sur le firmware 3.1D quand vous pourrez. Perso je vous recommande de faire un erase EEPROM lors de la mise à jour puis de faire un re-inclusion de tout les modules. Attention c'est une operation assez lourde. Assurez vous d'avoir l'adresse IEEE dans la page santé avant de faire cette operation. -- Dans la page de configuration il y a un nouveau paramètre: "Blocage traitement Annonces". Par défaut il doit être sur Non. Il semble qui ai une certaine tendance à ce mettre sur Oui. Mettez le bien sur Non et redémarrer le Démon. -- si vous restez avec une zigate en firmware inférieur à 3.1d, ne surtout pas passer la zigate en mode hybride. - -- Tous les details dans: -https://github.com/KiwiHC16/Abeille/commits/beta?after=61b027c84f673f484073d6f0a73ad0bad08fef0d+34&branch=beta - -12/2019 => 03/2020 ------------------- - -:: - - !!!! Le plugin a été testé avec 1 ou 5 Zigate dans le panneau de configuration !!!! - !!!! Avec d'autres valeur 2, 3, 4, 6... il est for possible que tout !!!! - !!!! ne fonctionne pas comme prévu. Si vous avez 2 zigate, mettez le nombre de !!!! - !!!! zigate à 5 et activer uniquement les zigates presentent. !!!! - -:: - - !!!! Ne pas faire ces manipulations sans avoir fait de backup !!!! - -Attention: cette nouvelle version apporte: - -* le multi-zigate -* la gestion de queue de message avec priorité -* quelques équipements supplémentaires -* corrections de bugs - -Mais comme les changements sont importants et que j'ai pas beaucoup de temps pour tester il peut y avoir des soucis. Donc faites bien une sauvegarde pour revenir en arrière si besoin. - -A noter: - -* La partie graphs n'a pas été complètement vérifiée et il reste des soucis -* les timers ne sont plus dans le Plugin -* un bug critique si vous faites l inclusion d'un type d equipement inconnu par Abeille, il faut redemarrer le demon. - - -06/2019 => 11/2019 ------------------- - -Rien de spécifique à faire. Juste a faire la mise à jour depuis jeedom. - -03/2019 => 06/2019 ------------------- - -Rien de spécifique à faire. - -02/2019 => 03/2019 ------------------- - -Rien de spécifique à faire. Pour les évolution voir le changelog ci dessous. - -01/2019 => 02/2019 ------------------- - -Cette version est en ligne avec le firmware 3.0f de la Zigate -Vous pouvez utiliser un firmware plus vieux mais tout ne fonctionnera pas. (98% fonctionnera) - -Comment procéder: - -* Mettre à jour le plugin Abeille -* Flasher la Zigate avec le firmware 3.0f (*bien faire un erase de l'EEPROM*) -* Connecter la Zigate et démarrer le deamon abeille -* démarrer le réseau Zigbee depuis abeille -* mettre la Zigate en inclusion -* inclure vos routeurs en partant des plus proches au plus lointain -* Vérifier que tout fonctionne -* Inclure les équipements sur piles (dans l'ordre que vous voulez) - -:: - - !!!! Ne pas faire ces manipulations sans avoir fait de backup !!!! - -11/2018 => 01/2019 ------------------- - -Cette mise à jour est importante et délicate. Pour facilité l'intégration de nouveaux équipements par la suite une standardisation des modèles doit être faite. -Cela veut dire que tous les modèles changent et que le objets dans Abeille/Jeedom doivent être mis à jour. -Prévoir du temps, avoir bien fait les backup, et prévoir d'avoir à faire quelques manipulations à la main. Les situations rencontrées vont dépendre de l'historique des équipements dans Jeedom. - -:: - - !!!! Ne pas faire ces manipulations sans avoir fait de backup !!!! - -Solution pour les petits systèmes - -* Cela suppose que vous aller effacer (objets, historiques,...) toutes les données puis re-créer le réseau. -* supprimer le plug in Abeille -* Installer le plug in Abeille depuis le market (ou github) -* Activer et faire la configuration du plugin -* Démarrer le plugin -* Mettre en mode inclusion -* Appairer les devices. - -Solution pour les gros systèmes - -Si la solution précédente demande trop de travail, on peut faire la mise à jour de la façon suivante. Attention, je ne peux pas tester toutes les combinaisons et des opérations supplémentaires seront certainement nécessaires. 90% aura été fait automatiquement. -Il n'y a pas de moyen infaillible pour faire la correspondance entre une commande dans un modèle et une commande dans Jeedom. Le lien est fait soit par le nom dans la commande nom ou quand pas disponible par le nom de l'image utilisée pour le device. De même pour les commande le nom est le moyen de faire le lien. Si vous avez fait des changements de nom, les commandes sortiront en erreur et cela demandera de mettre le nom de la commande dans le modèle le temps de la conversion. -Dans les versions suivantes, nous ne devrions plus avoir ce problème car les commandes auront un Id unique et spécifique. - -* Mettre à jour la plugin avec le market (ou github) -* Vérifier la configuration du plugin et démarrer le plugin en mode debug. -* Demander la mise à jour des objets depuis les templates, bouton: "Appliquer nouveaux modèles" -* 90% des objets devraient être à jour maintenant. -* Tester vos équipements. - -Si un équipement ne fonctionne pas, appliquer de nouveau la mise a jour sur cet équipements uniquement. Pour ce faire dans la page Plugin->Protocol Domotique->Abeille, sélectionnez le device et clic sur bouton: "Apply Template". Ensuite regarder le log "Abeille_updateConfig" pour avoir le détails des opérations faites et éventuellement voir ce qui n'est pas mis à jour. - -vous allez trouver des messages: - -* "parameter identical, no change" qui indique que rien n'a été fait sur ce paramètre (déjà à jour). -* "parameter is not in the template, no change" qui indique que le paramètre de l'objet n'est pas trouvé dans le template. Soit il n'est plus nécessaire et ne sera donc pas utilisé, soit vous l'avez changé et on le garde, soit Jeedom a défini une valeur par défaut et c'est très bien ... -* "Cmd Name: nom ===================================> not found in template" qui indique qu'on ne trouve pas le template pour la commande et que donc la commande n'est pas mise à jour. Ça doit être les 10% à gérer manuellement. Dans ce cas, soit effacer l'objet et le recréer soit me joindre sur le forum. - -Équipements qui sont passés sans soucis sur ma prod: - - * Door Sensor V2 Xiaomi - * Xiaomi Smoke - * Télécommande Ikea 5 boutons - * Xiaomi Présence V2 - * Xiaomi Bouton Carré V2 - * Xiaomi Température Carré - * ... - -Cas rencontrés: - -* plug xiaomi, une commande porte le nom "Manufacturer", doit être remplacé par "societe" et appliquer de nouveau "Apply Template" -* interrupteurs muraux Xiaomi: si la mise a jour ne se fait, il faut malheureusement, supprimer et recréer. -* door sensor xiaomi V2 / xiaomi presence V1: une commande porte le nom "Last", doit être remplacé par "Time-Time", et "Last Stamp" par "Time-Stamp" -* ... - -Secours - -* Si rien n'y fait, aucune des deux solutions précédentes ne résout le soucis, vous pouvez probablement exécuter la méthode suivante sur un équipement (je ne l'ai pas testée): -* supprimer la commande IEEE-Addr de votre objet. -* Zigate en mode inclusion et re-appairage de l'équipement -* un nouvel objet doit être créé. -* Transférer les commandes de l'ancien objet vers le nouveau avec le bouton "Remplacer cette commande par la commande" -* Transférer l'historique des commandes avec le bouton "Copier l'historique de cette commande sur une autre commande" -* Vous testez le nouvel équipement -* si ok vous pouvez supprimer l'ancien. - -2019-11-25 ----------- - -Ce dernières semaines le focus a été sur: -- Compatibilité avec Jeedom V4 et Buster (Debian 10) -- mise en place de la gestion des messages envoyés à la zigate avec creation de fil d'attente. -- Repetition d'un message vers la zigate si elle dit n'avoir pas réussi à le gérer -- Refonte de la détection de équipements lors de l inclusion -- Store et Télécommande Store Ikea -- Demarrage automatique du réseau Zigbee -- Iluminize Dimmable 511.201 -- Iluminize 511.202 -- Osram Smart+ Motion Sensor -- Télécommande OSRAM -- Ajout ampoules INNR RF263 et RF265 -- Corrections de bugs -- ..... - -2019-03-19 ----------- - -* Motion Hue Outdoor integration -* Doc Hue Motion -* Hue Motion Luminosite - -2019-03-18 ----------- - -* Plus de doc sur la radio -* Modification modele sur EP - -2019-03-17 ----------- - -* Resolution sur un systeme en espagnole - -2019-03-16 ----------- - -* start to track APS failures -* dependancy_info debut des modifications - -2019-03-15 ----------- - -* Moved all doc to asciidoc format -* Few correction around modele folder - -2019-03-11 ----------- - -* Ajout capteur IR Motion Hue Indoor - -2019-03-01 ----------- - -* Inclusion de la PiZiGate -* Possibilité de programmer le PiZiGate - -2019-02-27 ----------- - -* OSRAM SMART+ Outdoor Flex Multicolor -* Eurotronic Spirit - -2019-02-15 ----------- - -* Correction probleme volet profalux - - -2019-02-14 ----------- - -* Amelioration de la doc -* Inclusion dans appli web mobile - -2019-02-11 ----------- - -* Amelioration de la doc. -* Reduction log sur annonce -* Prise Xiaomi Encastrée - -2019-02-07 ----------- - -* Mise en place de la cagnotte -* Correction de l affichage des icones sur filtre -* Amélioration retour Tele Ikea - -2019-02-06 ----------- - -* Récupération des groupes dans la Zigate -* Configuration du groupe de la remote ikea On/off depuis abeille -* Formatting of Livolo Switch -* Groupe commande Chaleur ampoule -* GUI to set group to Zigate -* TxPower Command -* Channel setMask and setExtendedPANID added -* Télécommande Ikea Bouton information to Abeille -* Certification configuration -* Led On/Off - -2019-02-04 ----------- - -* Get Group Membership response modification avec source address for 3.0.f -* Fix Sur mise a jour des templates il manque la mise a jour des icônes -* OSRAM Spot LED dimmable connecté Smart+ - Culot GU5.3 -* Now default Zigbee object type could be used to create object in Abeille -* TRADFRIbulbE27WSopal1000lm -* MQTT loop improvement so Abeille should be more reactive -* nom du NE qui fait un Leave dans le message envoyé à la ruche -* Ampoule Hue Flame E14 -* Info move from Ruche to Config page -* A bit more decoding of Xiaomi Fields -* channel mak and ExtPAN setting -* Ajout du Switch Livolo 2 boutons -* Affichage Commande au démarrage -* ClassiA60WClear second modèle added -* setTimeServer / getTimeServer - -2019-01-25 ----------- - -* Ajout commande scene -* Deux petites vidéos pour les docs -* Ajout des scènes et groupes de scènes -* Ajout ampoule LWB004 -* Osram - flex led rgbw -* Osram - garden led rgbw -* GLEDOPTO Controller RGB+CCT -* Ajout de gestion du time server (cluster) - -2019-01-15 ----------- - -* retrait de pause pour avoir un plugin plus réactif -* LCT001 modèle ajouté -* LTW013 Philips Hue modèle ajouté -* Ajout modèle lightstripe philips hue plus modèle ajouté -* doc télécommande Hue -* Ajout LTW010 ampoule Hue White Spectre -* Ajout de la liste des Abeille ayant un groupe avec leur groupe -* LCT015 Bulb Added -* Add Address IEEE in health table - -2018-12-15 ----------- - -* Graph LQI par distance -* télécommande carré Ikea On/Off -* fix température carré xiaomi -* Télécommande Hue retour Boutons vers Abeille (scénario) - -2018-12-11 ----------- - -* Toute la doc sous le format Jeedom - -2018-12-10 ----------- - -* Ampoule Couleur Standard ZigBee -* Ampoule Dimmable Standard ZigBee - -2018-12-09 ----------- - -* Ampoule Spectre Blanc Standard ZigBee -* Blanche Ampoule GLEDOPTO GU10 Couleur/White GLEDOPTO avec hombridge -* Spectre Blanc Ampoule GLEDOPTO GU10 GL-S-004Z avec hombridge -* Retour des volets profalux en automatique -* Poll Automatique -* Ajout/Suppression/Get des groupes depuis l interface Abeille - -2018-12-08 ----------- - -* Couleur Ampoule GLEDOPTO GU10 Couleur/White GL-S-003Z avec hombridge - -2018-12-07 ----------- - -* Couleur Ampoule Ikea avec Homebridge -* Couleur Ampoule OSRAM avec Homebridge -* Couleur Ampoule Hue Go avec Homebridge - -2018-12-05 ----------- - -* Ajout d un paramètre Groupe dans la configuration des devices pour avoir la groupe a commander. Il n'est plus besoin de changer les commandes une à une. - -2018-12-04 ----------- - -* passage aux modèles standardisés (avec include) -* les modèles standardisés permettent de modifier les équipements dans Jeedom sans les effacer et donc sans perdre historique, scénarios associés,... -* ajout des boutons pour appliquer de nouveau les modèles de device -* introduction d'Id unique dans les template pour ne pas confondre les devices par la suite. - -2018-01-12 ----------- - -* Ampoule GLEDOPTO White intégrée - -2018-11-30 ----------- - -* Prise Ikea intégrée -* Ajout des groupes aux devices sélectionnés - -2018-11-26 ----------- - -* Ikea Transformer 30W intégré - -2018-11-24 ----------- - -* Correction TimeOut (en min) - -2018-11-16 ----------- - -* Activation/Désactivation d'un équipement suivant qu'il joint le réseau ou le quitte. -* Rafraichi les informations de la page Health à l'ouverture. - -2018-11-05 ----------- - -* Ajout OSRAM GU10 - -2018-06-14 ----------- - -* Ajout de la connectivité en Wifi. -* Ajout des LQI remontant des trames Zigate - -2018-06-12 ----------- - -* Ajout du double interrupteur mural sur pile xiaomi. -* Network modal (graph automatique du reseau) -* Ajout aqara Cube - -2018-06-11 ----------- - -* Stop for Volet Profalux =253 - -2018-06-01 ----------- - -* Profalux Volets Calibration - -2018-05-30 ----------- - -* Inclusion status dans le widget mis à jour en fonction de l’etat de la Zigate - -2018-05-28 ----------- - -* Ajout des equipements DIY - -2018-01-19 ----------- - -* first version posted on github -* inclus la création des objets IKEA Bulb et Xiaomi Plug, Température Carre/rond, bouton et InfraRouge diff --git a/resources/archives/essai.json b/resources/archives/essai.json deleted file mode 100644 index a5566d11bc..0000000000 --- a/resources/archives/essai.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "_index": "packets-2018-05-10", - "_type": "pcap_file", - "_score": null, - "_source": { - "layers": { - "frame": { - "frame.interface_id": "0", - "frame.encap_type": "104", - "frame.time": "Jan 1, 1970 01:01:32.875056000 CET", - "frame.offset_shift": "0.000000000", - "frame.time_epoch": "92.875056000", - "frame.time_delta": "9.597627000", - "frame.time_delta_displayed": "9.597627000", - "frame.time_relative": "9.597627000", - "frame.number": "2", - "frame.len": "47", - "frame.cap_len": "47", - "frame.marked": "0", - "frame.ignored": "0", - "frame.protocols": "zbparams1:wpan:zbee_nwk", - "frame.coloring_rule.name": "___conversation_color_filter___07", - "frame.coloring_rule.string": "zbee_nwk.cmd.id == 0x08" - }, - "_ws.lua.fake": "", - "wpan": { - "wpan.frame_length": "47", - "wpan.fcf": "0x00008841", - "wpan.fcf_tree": { - "wpan.frame_type": "0x00000001", - "wpan.security": "0", - "wpan.pending": "0", - "wpan.ack_request": "0", - "wpan.pan_id_compression": "1", - "wpan.seqno_suppression": "0", - "wpan.ie_present": "0", - "wpan.dst_addr_mode": "0x00000002", - "wpan.version": "0", - "wpan.src_addr_mode": "0x00000002" - }, - "wpan.seq_no": "149", - "wpan.dst_pan": "0x0000f0ef", - "wpan.dst16": "0x0000ffff", - "wpan.src16": "0x00000304", - "wpan.src64": "00:0b:57:ff:fe:c0:d7:3f", - "wpan.src64.origin": "2", - "wpan.fcs": "0x0000cc3e", - "wpan.fcs_ok": "1" - }, - "zbee_nwk": { - "zbee_nwk.fcf": "0x00001209", - "zbee_nwk.fcf_tree": { - "zbee_nwk.frame_type": "0x00000001", - "zbee_nwk.proto_version": "2", - "zbee_nwk.discovery": "0x00000000", - "zbee_nwk.multicast": "0", - "zbee_nwk.security": "1", - "zbee_nwk.src_route": "0", - "zbee_nwk.ext_dst": "0", - "zbee_nwk.ext_src": "1", - "zbee_nwk.end_device_initiator": "0" - }, - "zbee_nwk.dst": "0x0000fffc", - "zbee_nwk.src": "0x00000304", - "zbee_nwk.radius": "1", - "zbee_nwk.seqno": "97", - "zbee_nwk.src64": "00:0b:57:ff:fe:c0:d7:3f", - "ZigBee Security Header": { - "zbee.sec.field": "0x00000028", - "zbee.sec.field_tree": { - "zbee.sec.key_id": "0x00000001", - "zbee.sec.ext_nonce": "1" - }, - "zbee.sec.counter": "2425182", - "zbee.sec.src64": "00:0b:57:ff:fe:c0:d7:3f", - "zbee.sec.key_seqno": "0", - "zbee.sec.mic": "d2:d3:da:b7", - "zbee.sec.key": "0d:75:0a:06:bf:80:68:ad:fe:40:6a:23:9a:5d:40:ac", - "zbee.sec.decryption_key": "" - }, - "Command Frame: Link Status": { - "zbee_nwk.cmd.id": "0x00000008", - "zbee_nwk.cmd.link.last": "1", - "zbee_nwk.cmd.link.first": "1", - "zbee_nwk.cmd.link.count": "0" - } - } - } - } - } - ] diff --git a/resources/archives/fw_DIY/DIYRuZRT.zip b/resources/archives/fw_DIY/DIYRuZRT.zip deleted file mode 100644 index d21a2b6b9f..0000000000 Binary files a/resources/archives/fw_DIY/DIYRuZRT.zip and /dev/null differ diff --git a/resources/archives/inconnu.php b/resources/archives/inconnu.php deleted file mode 100644 index 0141e9ebd7..0000000000 --- a/resources/archives/inconnu.php +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - -

{{Inconnu ...}}

- - - - -

{{Ci-dessous la liste des informations inconnues remontant du reseau zigbee et de ce fait non gérées par Abeille.}}

-

{{Collecter ces informations permettrait d'améliorer le code d'Abeille.}}

-

-------------------------------------

-\n"; - } -} -?> -

-------------------------------------

- - diff --git a/resources/archives/modelesPage.php b/resources/archives/modelesPage.php deleted file mode 100644 index 8ef17a01b3..0000000000 --- a/resources/archives/modelesPage.php +++ /dev/null @@ -1,152 +0,0 @@ -getTimeout() . "\n"; -// var_dump( $abeille ); - -// $abeilleTemplate = new AbeilleTemplateEq; - -// $uniqId = $abeilleTemplate->uniqIdUsedByAnAbeille($logicalId); -// var_dump( $abeilleTemplate->getEqLogicsByTemplateUniqId('5c07c76620sdsfs8a7') ); -// var_dump( $abeilleTemplate->getJsonFileNameForUniqId('5c07c76620sdsfs8a7') ); -// var_dump( $abeilleTemplate->getJsonForUniqId( '5c07c76620sdsfs8a7' ) ); -// var_dump( $abeilleTemplate->getNameJeedomFromTemplate('5c07c76620sdsfs8a7') ); - -// echo $abeille->getTimeout() . ' <-> ' . $abeilleTemplate->getTimeOutFromTemplate($uniqId) . "\n"; - - - -// '5c07c76620sdsfs8a7' -// Abeille1/3EFE - -// $eqLogicalIdRef = 'Abeille1/3EFE'; -// $logicalId = '0000-01-0004'; - -// $abeille = Abeille::byLogicalId( $logicalId, 'Abeille', false ); - -// echo $abeille->getTimeout() . "\n"; -// var_dump( $abeille ); - -// $abeilleCmdTemplate = new AbeilleCmdTemplate; - -// $uniqId = AbeilleTemplateCmd::uniqIdUsedByAnAbeilleCmd($eqLogicalIdRef, $logicalId); - -// echo "uniqId: ".$uniqId."\n"; -// var_dump( AbeilleCmdTemplate::getCmdByTemplateUniqId($uniqId) ); - -// var_dump( AbeilleTemplateCommon::getJsonFileNameForUniqId($uniqId) ); - -// var_dump( $abeilleTemplate->getJsonForUniqId( '5c07c76620sdsfs8a7' ) ); -// var_dump( $abeilleTemplate->getNameJeedomFromTemplate('5c07c76620sdsfs8a7') ); - -// echo $abeille->getTimeout() . ' <-> ' . $abeilleTemplate->getTimeOutFromTemplate($uniqId) . "\n"; - -if (0) { - var_dump(AbeilleTemplateCmd::getMainParamFromTemplate($uniqId, 'name')); - var_dump(AbeilleTemplateCmd::getMainParamFromTemplate($uniqId, 'configuration')); - - var_dump(AbeilleTemplateCmd::getConfigurationFromTemplate($uniqId, 'visibilityCategory')); - -} - -// Need to change those value base on your installation -$uniqIdEq = '5c07c76620sdsfs8a7'; // device: WS2812_light_controller.json -$uniqIdCmd = '5c07c76623554'; // Cmd: etat.json -$eqLogicalIdRef = 'Abeille1/3EFE'; -$logicalId = '0000-01-0005'; -$param = 'name'; -$item = 'repeatEventManagement'; - -// Process the test requested -switch ($testToRun) { - // Generic answer - case '-help': - case '--help': - echo "File to test functions on class AbeilleTemplateCmd and AbeilleTemplateCommon\n"; - echo "php AbeilleTemplateCmdTest.php testId\n"; - break; - - // AbeilleTemplateCommon Tests Area - case 010: - echo "File for uniqId:\n"; - echo AbeilleTemplateCommon::getJsonFileNameForUniqId($uniqIdEq)."\n"; - break; - case 011: - echo "List all uniqId.\n"; - var_dump(AbeilleTemplateCommon::getJsonForUniqId()); - break; - case 012: - echo "List all uniqId.\n"; - var_dump(AbeilleTemplateCommon::getAllUniqId()); - break; - case 013: - echo "Check if we have uniqId doublon dans tous les templates JSON.\n"; - AbeilleTemplateCommon::duplicatedUniqId(); - break; - - // AbeilleTemplateCmd Tests Area - case 100: - echo "Return the Template (uniqId) used by a Cmd for specific Abeille:\n"; - echo AbeilleTemplateCmd::uniqIdUsedByAnAbeilleCmd($eqLogicalIdRef, $logicalId)."\n"; - break; - case 101: - echo "Return all Cmd with a specific template (uniqId):\n"; - var_dump(AbeilleTemplateCmd::getCmdByTemplateUniqId($uniqIdCmd)); - break; - case 102: - echo "Return the 'main' parameter for the device stored in the template:\n"; - var_dump(AbeilleTemplateCmd::getMainParamFromTemplate( $uniqIdCmd, $param) ); - break; - case 103: - echo "Return the ".$item." parameter for the device stored in the template:\n"; - var_dump(AbeilleTemplateCmd::getConfigurationFromTemplate( $uniqIdCmd, $item ) ); - break; - case 104: - // Ce cas est utilisé pour afficher le modale Modele. - echo "{{Affiche les differences trouvées entre les modèles et les équipements dans Abeille.}}
"; - echo "{{Une différence peut provenir d une modification faite par l utilisateur, ou une evolution du modele.}}
"; - echo "{{Difference ne veut pas dire que cela ne fonctionne pas.}}
"; - echo "{{Pour l instant c est un audit pour les developpeurs. L idée a terme estU de pouvoir mettre a jour les equipements si le modele evolue.}}
"; - echo "{{Actuellement le meilleur moyen pour mettre à jour un equipement si son modele change est de le supprimer de le re-créer.}}
"; - AbeilleTemplateCommon::compareTemplateHtmlEntete(); - foreach ( Abeille::byType('Abeille') as $abeille ) { - // Don't proceed with Ruche as specific template - if (strpos($abeille->getLogicalId(), 'Ruche')>1) continue; - AbeilleTemplateEq::compareAllParamWithTemplate($abeille); - AbeilleTemplateCmd::compareAllCmdWithTemplate($abeille); - } - AbeilleTemplateCommon::compareTemplateHtmlPiedDePage(); - - break; -} - - - -// TODO compare topic et payload - -?> diff --git a/resources/archives/prog_jennic/JennicModuleProgrammerRPI3 b/resources/archives/prog_jennic/JennicModuleProgrammerRPI3 deleted file mode 100644 index 4f82594e6a..0000000000 Binary files a/resources/archives/prog_jennic/JennicModuleProgrammerRPI3 and /dev/null differ diff --git a/resources/archives/resources/prog_jennic-0.7/README.md b/resources/archives/resources/prog_jennic-0.7/README.md deleted file mode 100644 index 9f7058741c..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/README.md +++ /dev/null @@ -1,11 +0,0 @@ -JennicModuleProgrammer -====================== - -JenNet-IP-Border-Router-JennicModuleProgrammer - -This software is owned by NXP B.V. and/or its supplier and is protected under applicable copyright laws. All rights are reserved. We grant You, and any third parties, a license to use this software solely and exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. You, and any third parties must reproduce the copyright and warranty notice and any other legend of ownership on each copy or partial copy of the software. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Copyright NXP B.V. 2012. All rights reserved diff --git a/resources/archives/resources/prog_jennic-0.7/README.txt b/resources/archives/resources/prog_jennic-0.7/README.txt deleted file mode 100644 index f8d95f1daa..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/README.txt +++ /dev/null @@ -1,13 +0,0 @@ -*** -*** Jennic module programmer v0.7 -*** Tcharp38 updated version for Abeille -*** - -From: https://github.com/fairecasoimeme/ZiGate/tree/master/Tools/JennicModuleProgrammer - -Some updates done -- Added full detection of 5168 models (zigate v1 was displayed as "unknown" chip) -- Changed model detection to be performed BEFORE baudrate. - This allows to display a communication error with JN5168 module which might be due to wrong GPIO (RESET & FLASH) settings - instead of getting "Error setting baudrate". -- For Abeille, build directory is located in "tmp" diff --git a/resources/archives/resources/prog_jennic-0.7/build/FlashProgrammerExtension_JN5168.bin b/resources/archives/resources/prog_jennic-0.7/build/FlashProgrammerExtension_JN5168.bin deleted file mode 100644 index 812ae7c566..0000000000 Binary files a/resources/archives/resources/prog_jennic-0.7/build/FlashProgrammerExtension_JN5168.bin and /dev/null differ diff --git a/resources/archives/resources/prog_jennic-0.7/build/Makefile b/resources/archives/resources/prog_jennic-0.7/build/Makefile deleted file mode 100644 index c82de30f23..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/build/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -############################################################################ -# -# This software is owned by NXP B.V. and/or its supplier and is protected -# under applicable copyright laws. All rights are reserved. We grant You, -# and any third parties, a license to use this software solely and -# exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. -# You, and any third parties must reproduce the copyright and warranty notice -# and any other legend of ownership on each copy or partial copy of the -# software. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# Copyright NXP B.V. 2012. All rights reserved -# -############################################################################ - -source := uart.c JN51xx_BootLoader.c Firmware.c main.c - -CFLAGS = -Wall -O2 - -# Define to trace bootloader comms -# CFLAGS += -DDEBUG_BOOTLOADER - -# Define to trace firmware image info -# CFLAGS += -DDEBUG_FIRMWARE - -# Define to trace serial comms -# CFLAGS += -DDEBUG_UART - - -# OBJ := $(source:.c=.o) -BUILDDIR = ../../../tmp/JennicBuildDir/ -OBJ := $(addprefix $(BUILDDIR), $(source:.c=.o)) - -PROJ_CFLAGS += -I../source/ -DDBG_ENABLE -PROJ_CFLAGS += -DVERSION="\"$(shell if [ -f version.txt ]; then cat version.txt; else svnversion ../source; fi)\"" - -vpath %.c ../source - -TARGET = ../../../tmp/JennicModuleProgrammer - -all: $(BUILDDIR) $(TARGET) - -$(TARGET): $(OBJ) - $(CC) $^ $(LDFLAGS) $(PROJ_LDFLAGS) -o $@ - -$(BUILDDIR)%.o: %.c - $(CC) -I. $(CFLAGS) $(PROJ_CFLAGS) -c $< -o $@ - -install: - mkdir -p $(DESTDIR)/usr/bin/ - cp $(TARGET) $(DESTDIR)/usr/bin/ - -clean: - rm -f $(OBJ) $(TARGET) - -$(BUILDDIR): - mkdir -p $(BUILDDIR) diff --git a/resources/archives/resources/prog_jennic-0.7/build/version.txt b/resources/archives/resources/prog_jennic-0.7/build/version.txt deleted file mode 100644 index aa8b127197..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/build/version.txt +++ /dev/null @@ -1 +0,0 @@ -56124 diff --git a/resources/archives/resources/prog_jennic-0.7/source/ChipID.h b/resources/archives/resources/prog_jennic-0.7/source/ChipID.h deleted file mode 100644 index cae9b71231..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/ChipID.h +++ /dev/null @@ -1,126 +0,0 @@ -/***************************************************************************** - * - * MODULE: Chip ID's - * - * COMPONENT: $RCSfile: ChipID.h,v $ - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.25 $ - * - * DATED: $Date: 2009/07/15 08:16:39 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Lee Mitchell - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by Jennic and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on Jennic products. You, and any third parties must reproduce - * the copyright and warranty notice and any other legend of ownership on - * each copy or partial copy of the software. - * - * THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER - * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, - * ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES, - * BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL, - * INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER. - * - * Copyright Jennic Ltd 2005, 2006. All rights reserved - * - ***************************************************************************/ - -#ifndef CHIP_ID_H_INCLUDED -#define CHIP_ID_H_INCLUDED - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Include Files ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -/* Jennic/NXP Chip ID's */ -#define CHIP_ID_MANUFACTURER_ID_MASK 0x00000fff -#define CHIP_ID_PART_MASK 0x003ff000 -#define CHIP_ID_MASK_VERSION_MASK 0x0fc00000 -#define CHIP_ID_REV_MASK 0xf0000000 - -#define CHIP_ID_JN5121_REV1A 0x00000000 /* ZED001 JN5121 Development */ -#define CHIP_ID_JN5121_REV2A 0x10000000 /* ZED002 JN5121 Development */ -#define CHIP_ID_JN5121_REV3A 0x20000000 /* ZED003 JN5121 Production */ - -#define CHIP_ID_JN5131_REV1A 0x00001000 /* Alberich Never Produced */ - -#define CHIP_ID_JN5139_REV1A 0x00002000 /* BAL01 JN5139R */ -#define CHIP_ID_JN5139_REV2A 0x10002000 /* BAL02A JN5139R1 */ -#define CHIP_ID_JN5139_REV2B 0x10002000 /* BAL02B Test Chip Only */ -#define CHIP_ID_JN5139_REV2C 0x10802000 /* BAL02C (Trent ROM) JN5139T01 & JN5139J01 */ - -#define CHIP_ID_JN5147_REV1A 0x00004686 /* */ - -#define CHIP_ID_JN5148_REV2A 0x10004686 /* JAG02A JN5148 */ -#define CHIP_ID_JN5148_REV2B 0x10404686 /* JAG02B JN5148 */ -#define CHIP_ID_JN5148_REV2C 0x10804686 /* JAG02C JN5148 */ -#define CHIP_ID_JN5148_REV2D 0x10C04686 /* JAG02D (Trent2 ROM)JN5148T01 & JN5148J01 */ -#define CHIP_ID_JN5148_REV2E 0x11004686 /* JAG02E (JAG03A?) JN5148Z01 */ - -#define CHIP_ID_JN5142_REV1A 0x00005686 /* PUM01A JN5142 */ -#define CHIP_ID_JN5142_REV1B 0x00425686 /* PUM01B JN5142 */ -#define CHIP_ID_JN5142_REV1C 0x00845686 /* PUM01C JN5142J01 */ - -#define CHIP_ID_COG03 0x00006686 /* Cougar COG03 */ -#define CHIP_ID_COG04 0x00007686 /* Cougar COG04 */ -#define CHIP_ID_JN5168 0x00008686 /* Cougar COG05 */ -#define CHIP_ID_JN5168_COG07A 0x10008686 /* Cougar COG07A */ -#define CHIP_ID_JN5168_COG07B 0x10408686 /* Cougar COG07B */ - -#define CHIP_ID_JN5169 0x6000B686 /* Cougar COG05 */ - - -/* Macro to get just the Part ID from the chip ID */ -#define CHIP_ID_PART(a) (a & CHIP_ID_PART_MASK) - - -/* SPI Flash device ID's */ -#define FLASH_ST_M25P10 0x1010 /* ST microelectronics M25P10 */ -#define FLASH_ST_M25P40 0x1212 /* ST microelectronics M25P40 */ -#define FLASH_SST_SST25VF010A 0xbf49 /* SST SST25VF010A */ -#define FLASH_INTERNAL 0xccee /* Internal on-chip flash */ - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -#if defined __cplusplus -} -#endif - -#endif /* CHIP_ID_H_INCLUDED */ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ diff --git a/resources/archives/resources/prog_jennic-0.7/source/Firmware.c b/resources/archives/resources/prog_jennic-0.7/source/Firmware.c deleted file mode 100644 index fd4e603a1e..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/Firmware.c +++ /dev/null @@ -1,287 +0,0 @@ -/**************************************************************************** - * - * MODULE: Firmware - * - * COMPONENT: $RCSfile: Firmware.c,v $ - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -/****************************************************************************/ -/*** Include files ***/ -/****************************************************************************/ - -#include -#ifdef __linux__ -#include -#endif -#include -#include -#include -#include -#include -#include - -#include "Firmware.h" -#include "JN51xx_BootLoader.h" -#include "dbg.h" - - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#ifdef DEBUG_FIRMWARE -#define TRACE_FIRMWARE TRUE -#else -#define TRACE_FIRMWARE FALSE -#endif - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - - -typedef struct -{ - uint8_t u8ConfigByte0; - uint8_t u8ConfigByte1; - uint16_t u16SpiScrambleIndex; - uint32_t u32TextStartAddress; - uint32_t u32TextLength; - uint32_t u32ROMVersion; - uint32_t u32Unused1; - uint32_t u32BssStartAddress; - uint32_t u32BssLength; - uint32_t u32WakeUpEntryPoint; - uint32_t u32ResetEntryPoint; - uint8_t au8OadData[12]; - uint8_t u8TextDataStart; -} __attribute__ ((packed)) tsBL_BinHeaderV1; - - -typedef struct -{ - uint32_t u32ROMVersion; - uint32_t au32BootImageRecord[4]; - uint64_t u64MacAddress; - uint32_t au32EncryptionInitialisationVector[4]; - uint32_t u32DataSectionInfo; - uint32_t u32BssSectionInfo; - uint32_t u32WakeUpEntryPoint; - uint32_t u32ResetEntryPoint; - uint8_t u8TextDataStart; -} __attribute__ ((packed)) tsBL_BinHeaderV2; - - -/****************************************************************************/ -/*** Local Function Prototypes ***/ -/****************************************************************************/ - -/** Get information from firmare. - * \param[out] ppu8Firmware Pointer to location to store mapped file. - * \param[in] pcFirmwareFile Filename to open - * \return E_FW_OK on success - */ -static teFWStatus iFW_GetInfo(uint8_t *pu8Firmware, tsFW_Info *psFW_Info); - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -extern int iVerbosity; - -/****************************************************************************/ -/*** Local Variables ***/ -/****************************************************************************/ - -static int firmware_fd = 0; -static uint8_t* pu8Firmware = NULL; - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - - -/**************************************************************************** - * - * NAME: iFW_Open - * - * DESCRIPTION: - * Reads required information from the binary image - * - * PARAMETERS: Name RW Usage - * pu8Firmware R Pointer to firmware image to analyse - * psFW_Info W Pointer to Info structure to be filled in - * - * RETURNS: - * int 0 if success - * -1 if an error occured - * - ****************************************************************************/ -teFWStatus iFW_Open(tsFW_Info *psFW_Info, char *pcFirmwareFile) -{ - struct stat sb; - - firmware_fd = open(pcFirmwareFile, O_RDONLY); - if (firmware_fd < 0) - { - fprintf(stderr, "Could not open firmware file\n"); - return E_FW_INVALID_FILE; - } - - if (fstat(firmware_fd, &sb) == -1) /* To obtain file size */ - { - perror("Could not stat file"); - return -1; - } - - psFW_Info->u32ImageLength = (uint32_t)sb.st_size; - - /* Copy-on-write, changes are not written to the underlying file. */ - pu8Firmware = mmap(NULL, sb.st_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, firmware_fd, 0); - - if (pu8Firmware == MAP_FAILED) - { - perror("Could not mmap file"); - return E_FW_ERROR; - } - - if (iVerbosity > 2) - { - printf("Opened firmware file size %d\n", (int)sb.st_size); - } - - return iFW_GetInfo(pu8Firmware, psFW_Info); -} - - - -/**************************************************************************** - * - * NAME: iFW_GetInfo - * - * DESCRIPTION: - * Reads required information from the binary image - * - * PARAMETERS: Name RW Usage - * pu8Firmware R Pointer to firmware image to analyse - * psFW_Info W Pointer to Info structure to be filled in - * - * RETURNS: - * int 0 if success - * -1 if an error occured - * - ****************************************************************************/ -teFWStatus iFW_GetInfo(uint8_t *pu8Firmware, tsFW_Info *psFW_Info) -{ - tsBL_BinHeaderV2 *psHeader = (tsBL_BinHeaderV2 *)pu8Firmware; - - // JN5148-J01 onwards uses multiimage bootloader - check for it's magic number. - if ((ntohl(psHeader->au32BootImageRecord[0]) == 0x12345678) && - (ntohl(psHeader->au32BootImageRecord[1]) == 0x11223344) && - (ntohl(psHeader->au32BootImageRecord[2]) == 0x55667788)) - { - if (iVerbosity > 2) - { - printf("Module uses Bootloader v2 Header\n"); - } - - psFW_Info->u32ROMVersion = ntohl(psHeader->u32ROMVersion); - - psFW_Info->u32TextSectionLoadAddress = 0x04000000 + (((ntohl(psHeader->u32DataSectionInfo)) >> 16) * 4); - psFW_Info->u32TextSectionLength = (((ntohl(psHeader->u32DataSectionInfo)) & 0x0000FFFF) * 4); - psFW_Info->u32BssSectionLoadAddress = 0x04000000 + (((ntohl(psHeader->u32BssSectionInfo)) >> 16) * 4); - psFW_Info->u32BssSectionLength = (((ntohl(psHeader->u32BssSectionInfo)) & 0x0000FFFF) * 4); - - psFW_Info->u32ResetEntryPoint = psHeader->u32ResetEntryPoint; - psFW_Info->u32WakeUpEntryPoint = psHeader->u32WakeUpEntryPoint; - - /* Pointer to and length of image for flash */ - psFW_Info->pu8ImageData = (uint8_t*)&(psHeader->au32BootImageRecord[0]); - - psFW_Info->u32MacAddressLocation = 0x10; - - /* Pointer to text section in image for RAM */ - psFW_Info->pu8TextData = &(psHeader->u8TextDataStart); - } - else - { - tsBL_BinHeaderV1 *psHeader = (tsBL_BinHeaderV1 *)pu8Firmware; - if (iVerbosity > 2) - { - printf("Module uses Bootloader v1 Header\n"); - } - - psFW_Info->u32ROMVersion = ntohl(psHeader->u32ROMVersion); - - psFW_Info->u32TextSectionLoadAddress = ntohl(psHeader->u32TextStartAddress); - psFW_Info->u32TextSectionLength = ntohl(psHeader->u32TextLength); - psFW_Info->u32BssSectionLoadAddress = ntohl(psHeader->u32BssStartAddress); - psFW_Info->u32BssSectionLength = ntohl(psHeader->u32BssLength); - - psFW_Info->u32ResetEntryPoint = psHeader->u32ResetEntryPoint; - psFW_Info->u32WakeUpEntryPoint = psHeader->u32WakeUpEntryPoint; - - /* Pointer to and length of image for flash */ - psFW_Info->pu8ImageData = &(psHeader->u8ConfigByte0); - //psFW_Info->u32ImageLength = sizeof(tsBL_BinHeaderV1) + psFW_Info->u32TextSectionLength; - - psFW_Info->u32MacAddressLocation = 0x30; - - /* Pointer to text section in image for RAM */ - psFW_Info->pu8TextData = &(psHeader->u8TextDataStart); - - } - - DBG_vPrintf(TRACE_FIRMWARE, "u32ROMVersion: 0x%08x\n", psFW_Info->u32ROMVersion); - DBG_vPrintf(TRACE_FIRMWARE, "u32DataSectionInfo: 0x%08x\n", ntohl(psHeader->u32DataSectionInfo)); - DBG_vPrintf(TRACE_FIRMWARE, "u32TextSectionLength: 0x%08x\n", (((ntohl(psHeader->u32DataSectionInfo)) & 0x0000FFFF) * 4)); - - return E_FW_OK; -} - - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ - diff --git a/resources/archives/resources/prog_jennic-0.7/source/Firmware.h b/resources/archives/resources/prog_jennic-0.7/source/Firmware.h deleted file mode 100644 index 5d66077105..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/Firmware.h +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** - * - * MODULE: Firmware - * - * COMPONENT: $RCSfile: Firmware.c,v $ - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -#ifndef FIRMWARE_H_INCLUDED -#define FIRMWARE_H_INCLUDED - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Include files ***/ -/****************************************************************************/ - -#include - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - - -typedef enum -{ - E_FW_OK, - E_FW_ERROR, - E_FW_INVALID_FILE, -} teFWStatus; - - -/** Abstracted firmware information common across bootloaders. */ -typedef struct -{ - uint32_t u32ROMVersion; /**< ROM Version that the FW was built for */ - uint32_t u32TextSectionLoadAddress; /**< Address to load .text section */ - uint32_t u32TextSectionLength; /**< Length (bytes) of .text section */ - uint32_t u32BssSectionLoadAddress; /**< Address of start of .bss section */ - uint32_t u32BssSectionLength; /**< Length (bytes) of .bss section */ - uint32_t u32WakeUpEntryPoint; /**< Address of wake up (warm start) entry point */ - uint32_t u32ResetEntryPoint; /**< Address of rest (cold start) entry point */ - - uint8_t* pu8ImageData; /**< Pointer to loaded image data for Flash */ - uint32_t u32ImageLength; /**< Length (bytes) of image for Flash */ - - uint32_t u32MacAddressLocation; /**< Offset in file of MAC address */ - uint8_t* pu8TextData; /**< Pointer to loaded .text section for RAM */ -} tsFW_Info; - - -/****************************************************************************/ -/*** Local Function Prototypes ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Local Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - - -/** Open a firmware file. - * \param[out] psFW_Info Pointer to location to store firmware file infrmation - * \param[in] pcFirmwareFile Filename to open - * \return E_FW_OK on success - */ -teFWStatus iFW_Open(tsFW_Info *psFW_Info, char *pcFirmwareFile); - - -/****************************************************************************/ -/*** Local Functions ***/ -/****************************************************************************/ - -#if defined __cplusplus -} -#endif - -#endif /* FIRMWARE_H_INCLUDED */ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ - - - diff --git a/resources/archives/resources/prog_jennic-0.7/source/FlashProgrammerExtension_JN5168.bin.h b/resources/archives/resources/prog_jennic-0.7/source/FlashProgrammerExtension_JN5168.bin.h deleted file mode 100644 index eb56f896bb..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/FlashProgrammerExtension_JN5168.bin.h +++ /dev/null @@ -1,210 +0,0 @@ -#ifndef FLASHPROGRAMMEREXTENSION_JN5168_BIN_H -#define FLASHPROGRAMMEREXTENSION_JN5168_BIN_H - -static const unsigned char FlashProgrammerExtension_JN5168_bin[] = { - 0x0a, 0x14, 0x2a, 0x54, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x47, 0xa4, 0x40, 0x05, 0x45, 0x04, 0xa6, 0x04, - 0xc7, 0x38, 0xe0, 0x10, 0x8c, 0xe0, 0x17, 0x08, 0x00, 0x40, 0x38, 0xe0, - 0x0a, 0x8c, 0xe0, 0x38, 0x00, 0x00, 0x80, 0x2c, 0x01, 0x20, 0x0d, 0x40, - 0x2c, 0xe1, 0x60, 0x00, 0xf8, 0x2c, 0xe1, 0x20, 0x2c, 0xe1, 0x60, 0x38, - 0x40, 0xe3, 0xd3, 0x04, 0x74, 0xff, 0x98, 0xe0, 0xa2, 0x00, 0x80, 0x00, - 0x8c, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x98, 0xe0, 0xe3, 0x01, 0x00, 0x00, 0x8c, 0xe0, 0x00, 0x00, 0x00, 0x80, - 0xd8, 0xe0, 0xc2, 0x20, 0x8c, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x38, 0xe0, - 0xe2, 0x8c, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x6c, 0xe3, 0x20, 0x08, 0xe4, - 0x6c, 0x67, 0x20, 0x2d, 0x03, 0x00, 0x2c, 0xc3, 0x20, 0x2c, 0xa3, 0x10, - 0x2d, 0x43, 0x30, 0x98, 0xe0, 0x04, 0x01, 0x00, 0x00, 0x8c, 0xe0, 0x10, - 0x00, 0x00, 0x80, 0xd8, 0xe0, 0xc3, 0x08, 0x8c, 0xe0, 0x00, 0x00, 0x00, - 0x80, 0x8c, 0xe0, 0x50, 0x00, 0x00, 0x80, 0x94, 0xe7, 0xff, 0xfe, 0x00, - 0x00, 0x41, 0x07, 0x2f, 0x00, 0x48, 0x8c, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x8c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x98, 0xe0, 0xe3, 0x01, 0x00, 0x00, - 0x8c, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x38, 0xe0, 0xa2, 0x8c, 0xe0, 0x00, - 0x00, 0x00, 0x80, 0x8c, 0x00, 0x10, 0x00, 0x00, 0x80, 0x8c, 0x00, 0x38, - 0x00, 0x00, 0x80, 0x8c, 0x00, 0x17, 0x08, 0x00, 0x40, 0x00, 0xea, 0x8c, - 0xe0, 0x00, 0x00, 0x00, 0x80, 0x8c, 0xe3, 0x40, 0x08, 0x00, 0x80, 0xd2, - 0xce, 0x8f, 0x40, 0x8c, 0xe3, 0x60, 0x08, 0x00, 0x80, 0xd2, 0xce, 0x6a, - 0x40, 0x8c, 0xe3, 0x50, 0x08, 0x00, 0x80, 0xd2, 0xce, 0x5d, 0x80, 0x8c, - 0xe3, 0x70, 0x08, 0x00, 0x80, 0x60, 0xe7, 0x52, 0x3e, 0x07, 0x3c, 0x60, - 0xe0, 0x3d, 0x6c, 0xe7, 0xf9, 0x60, 0x67, 0x12, 0x0c, 0x80, 0x00, 0x60, - 0x47, 0xb4, 0x40, 0x00, 0x47, 0xa8, 0x00, 0x00, 0x60, 0x98, 0x80, 0x00, - 0x00, 0xc0, 0x00, 0xa4, 0x00, 0x83, 0x60, 0x00, 0x00, 0x00, 0x60, 0x98, - 0x80, 0x00, 0x00, 0x80, 0x00, 0xa4, 0x00, 0xe3, 0x60, 0x00, 0x00, 0x00, - 0x60, 0x98, 0x80, 0x00, 0x00, 0x40, 0x00, 0xa4, 0x00, 0x9d, 0x60, 0x00, - 0x00, 0x47, 0xc8, 0x00, 0xa4, 0x40, 0x34, 0x00, 0x00, 0x00, 0xa4, 0x40, - 0x53, 0xff, 0xff, 0xff, 0x04, 0xc3, 0x24, 0xa3, 0x00, 0x24, 0xe3, 0x80, - 0x6c, 0xe7, 0x10, 0x08, 0xa7, 0x24, 0x63, 0xc0, 0x6c, 0x63, 0x18, 0x24, - 0xe6, 0x40, 0x6c, 0xe7, 0x08, 0x08, 0x67, 0x08, 0x65, 0x47, 0xd2, 0x48, - 0x47, 0xaa, 0x41, 0x98, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x84, - 0xc0, 0x3e, 0xb0, 0x00, 0x20, 0x41, 0x06, 0xd0, 0x00, 0x80, 0x98, 0x60, - 0x00, 0x00, 0x80, 0x00, 0xa4, 0x00, 0x16, 0x60, 0x00, 0x00, 0x38, 0x60, - 0x10, 0x00, 0x88, 0xa4, 0x00, 0x8f, 0xc0, 0x00, 0x00, 0x98, 0xe0, 0x8d, - 0xb0, 0x00, 0x20, 0x8c, 0xe0, 0x2c, 0x0c, 0x00, 0x40, 0x98, 0xe0, 0xfe, - 0xb0, 0x00, 0x20, 0x8c, 0xe0, 0x1c, 0x0c, 0x00, 0x40, 0x0e, 0xf0, 0x98, - 0xe0, 0x05, 0x61, 0x80, 0x00, 0xd3, 0xda, 0x71, 0x00, 0x01, 0xb8, 0x0e, - 0x30, 0x84, 0xe0, 0x3e, 0xb0, 0x00, 0x20, 0x3c, 0x27, 0x00, 0x00, 0xe8, - 0x64, 0xe0, 0x3a, 0x80, 0xe0, 0x3e, 0xb0, 0x00, 0x20, 0x98, 0x80, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x60, 0x41, 0x07, 0xd0, 0x00, 0x80, 0x98, 0x60, - 0x00, 0x00, 0x80, 0x00, 0xa4, 0x00, 0x10, 0x60, 0x00, 0x00, 0x01, 0xa0, - 0x00, 0x60, 0xa4, 0x00, 0x37, 0x60, 0x00, 0x00, 0x34, 0x63, 0x80, 0x40, - 0x03, 0x1d, 0x00, 0x60, 0xa4, 0x00, 0xc4, 0xe0, 0x00, 0x00, 0x05, 0x63, - 0x05, 0x43, 0x01, 0x80, 0x0c, 0x88, 0x01, 0xb8, 0x00, 0x60, 0xa4, 0x00, - 0x33, 0x60, 0x00, 0x00, 0x34, 0x63, 0x80, 0x41, 0x03, 0xb0, 0x98, 0xc0, - 0xf9, 0x61, 0x80, 0x00, 0xd3, 0x8c, 0xd5, 0x7f, 0x98, 0xe0, 0x05, 0x61, - 0x80, 0x00, 0xd2, 0xda, 0x71, 0x00, 0x01, 0x60, 0x0d, 0xe0, 0x00, 0x60, - 0xa4, 0x00, 0xd7, 0x60, 0x00, 0x00, 0xd8, 0xe1, 0x10, 0x40, 0x08, 0xec, - 0xc0, 0x67, 0x3f, 0x7f, 0x60, 0x6a, 0x1a, 0x3e, 0x03, 0x50, 0x01, 0x98, - 0x01, 0xa0, 0xd3, 0x56, 0xc7, 0xdf, 0x44, 0x8b, 0x59, 0x41, 0x0a, 0xe9, - 0x00, 0xef, 0x20, 0xe1, 0xa0, 0xc4, 0xe1, 0x20, 0x80, 0x38, 0xc0, 0xe4, - 0xd2, 0x8e, 0x6e, 0xd8, 0xd3, 0xce, 0x6d, 0x80, 0x38, 0xc0, 0x84, 0xd2, - 0x8e, 0x62, 0xd8, 0x38, 0xc0, 0xa4, 0xd2, 0x8e, 0x68, 0x28, 0x38, 0xc0, - 0xf8, 0xd2, 0xce, 0x6f, 0xd8, 0x0f, 0x42, 0x38, 0xc0, 0x6c, 0xd2, 0x8e, - 0x65, 0x30, 0xd3, 0xce, 0x6b, 0x00, 0x38, 0xc0, 0x4c, 0xd2, 0xce, 0x6d, - 0x58, 0x0f, 0x6c, 0x38, 0xc0, 0x1c, 0xd2, 0x8e, 0x6b, 0x00, 0x38, 0xc0, - 0x16, 0xd2, 0xce, 0x6d, 0x98, 0x0f, 0x0a, 0x38, 0xe0, 0x9c, 0x20, 0xe1, - 0x20, 0x38, 0xe0, 0x28, 0xd2, 0xd6, 0x76, 0x98, 0xc5, 0x61, 0xe0, 0x80, - 0x6d, 0x6b, 0x18, 0xc4, 0xe1, 0x10, 0x80, 0x6c, 0xe7, 0x08, 0x61, 0x6b, - 0x39, 0xc4, 0xe1, 0x50, 0x80, 0x61, 0x6b, 0x39, 0xc5, 0x41, 0xd0, 0x80, - 0x6d, 0x4a, 0x18, 0xc4, 0xe1, 0x30, 0x80, 0x6c, 0xe7, 0x08, 0x61, 0x4a, - 0x39, 0xc4, 0xe1, 0x70, 0x80, 0x61, 0x4a, 0x39, 0xc4, 0xc1, 0xf0, 0x80, - 0x6c, 0xc6, 0x18, 0xc4, 0xe1, 0x08, 0x80, 0x6c, 0xe7, 0x08, 0x60, 0xc6, - 0x39, 0xc4, 0xe1, 0x48, 0x80, 0x60, 0xc6, 0x39, 0xc4, 0xa1, 0xc8, 0x80, - 0x6c, 0xa5, 0x18, 0xc4, 0xe1, 0x28, 0x80, 0x6c, 0xe7, 0x08, 0x60, 0xa5, - 0x39, 0xc4, 0xe1, 0x68, 0x80, 0x60, 0xa5, 0x39, 0xc5, 0x21, 0xa8, 0x80, - 0x6d, 0x29, 0x10, 0xc4, 0x41, 0x88, 0x80, 0x6c, 0x42, 0x10, 0xc4, 0xe1, - 0xb0, 0x80, 0x6c, 0xe7, 0x10, 0xc5, 0x01, 0x90, 0x80, 0x6d, 0x08, 0x10, - 0xc4, 0x61, 0xa0, 0x80, 0xc4, 0x81, 0x60, 0x80, 0x60, 0xa9, 0x29, 0x60, - 0xc2, 0x31, 0x60, 0xe7, 0x51, 0x61, 0x08, 0x59, 0xa4, 0x00, 0x2d, 0x3f, - 0xff, 0xff, 0xd0, 0x60, 0x33, 0xf0, 0x0e, 0xe0, 0x38, 0xe0, 0xec, 0x20, - 0xe1, 0x20, 0xd0, 0x70, 0xb0, 0xf0, 0xc4, 0xc1, 0xa0, 0x80, 0x00, 0x68, - 0x41, 0x06, 0xa0, 0x00, 0x60, 0xa4, 0x00, 0x7a, 0xc0, 0x00, 0x00, 0x20, - 0x01, 0xa0, 0x0c, 0x6c, 0x38, 0xe0, 0xcc, 0x20, 0xe1, 0x20, 0x20, 0x01, - 0x60, 0x20, 0x01, 0xe0, 0x30, 0xe0, 0x61, 0x20, 0xe1, 0x10, 0x20, 0xe1, - 0x90, 0x20, 0x01, 0xa0, 0x00, 0x86, 0x0d, 0xf4, 0x38, 0xe0, 0x04, 0x20, - 0xe1, 0x20, 0xd8, 0x61, 0xa0, 0x80, 0xa4, 0x00, 0x4d, 0xbf, 0xff, 0xff, - 0x05, 0x83, 0xc5, 0x41, 0x90, 0x80, 0x30, 0x61, 0x60, 0x04, 0x8c, 0x04, - 0xaa, 0xa4, 0x00, 0xd9, 0x1f, 0xff, 0xdf, 0x30, 0x8a, 0x40, 0x20, 0x01, - 0xa0, 0x0e, 0xa4, 0x38, 0xe0, 0x64, 0x20, 0xe1, 0x20, 0x00, 0x82, 0x01, - 0x80, 0xd0, 0x50, 0xb9, 0x10, 0xa4, 0x00, 0xce, 0x1f, 0xff, 0xdf, 0x3e, - 0x03, 0x1a, 0x41, 0x03, 0x50, 0x00, 0xe7, 0x20, 0xe1, 0xa0, 0x0e, 0x80, - 0x20, 0x01, 0xa0, 0x6c, 0xe3, 0x11, 0x20, 0xe1, 0x60, 0x20, 0x61, 0xe0, - 0x00, 0x82, 0x0d, 0x18, 0x38, 0xe0, 0x96, 0x20, 0xe1, 0x20, 0x00, 0x8a, - 0x01, 0x80, 0x41, 0x4b, 0x1a, 0xa4, 0x00, 0x62, 0x80, 0x00, 0x00, 0x41, - 0x03, 0x50, 0x00, 0xe7, 0x20, 0xe1, 0xa0, 0x0e, 0x80, 0x20, 0x01, 0xa0, - 0x6c, 0xe3, 0x09, 0x20, 0xe1, 0x60, 0x6c, 0xe3, 0x11, 0x20, 0xe1, 0xe0, - 0x20, 0x61, 0x10, 0x00, 0x8a, 0x0f, 0xd0, 0x38, 0xe0, 0x14, 0x20, 0xe1, - 0x20, 0x0d, 0x4b, 0xd8, 0x61, 0xa0, 0x80, 0xa4, 0x00, 0x84, 0xbf, 0xff, - 0xff, 0x05, 0x83, 0x38, 0xe0, 0x44, 0x20, 0xe1, 0x20, 0x20, 0x01, 0xa0, - 0x00, 0x84, 0x0c, 0x20, 0x30, 0xe7, 0x01, 0x20, 0xe1, 0x20, 0x00, 0x88, - 0x0c, 0x80, 0x00, 0x84, 0x01, 0x80, 0x30, 0xe4, 0x80, 0x3e, 0x07, 0x30, - 0x00, 0xa0, 0x30, 0x41, 0x20, 0x0e, 0xc0, 0x60, 0xe2, 0x2c, 0x24, 0xe7, - 0x00, 0x60, 0xc6, 0x3a, 0x00, 0xb8, 0xd3, 0x48, 0x5a, 0xff, 0xd8, 0xe1, - 0x10, 0x40, 0x08, 0xe5, 0xc0, 0xc7, 0x3f, 0xbf, 0x31, 0x44, 0x80, 0x00, - 0x60, 0xa4, 0x00, 0xa6, 0x20, 0x00, 0x00, 0x34, 0x63, 0x04, 0x40, 0x03, - 0xaf, 0x00, 0x60, 0x3e, 0x0a, 0x20, 0xa4, 0x00, 0x5e, 0x20, 0x00, 0x00, - 0x01, 0x60, 0x0c, 0x90, 0x00, 0x60, 0xa4, 0x00, 0x12, 0x20, 0x00, 0x00, - 0x34, 0x63, 0x04, 0x40, 0x03, 0xaf, 0xd8, 0xe1, 0x10, 0x40, 0x08, 0xeb, - 0x00, 0x60, 0xc4, 0x87, 0x3f, 0xbf, 0xa4, 0x00, 0x6a, 0x20, 0x00, 0x00, - 0x01, 0x78, 0xd3, 0x54, 0xb7, 0xbf, 0x00, 0x60, 0xa4, 0x00, 0x44, 0x20, - 0x00, 0x00, 0x34, 0x63, 0x04, 0x40, 0x03, 0xaf, 0xc4, 0xe1, 0x20, 0x80, - 0x38, 0xc0, 0x84, 0xd2, 0xce, 0x68, 0x4b, 0x98, 0x60, 0x00, 0x00, 0x80, - 0x00, 0x00, 0x80, 0xa4, 0x00, 0xa8, 0xc0, 0x00, 0x00, 0x98, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x80, 0xa4, 0x00, 0xe0, 0xc0, 0x00, 0x00, 0x98, - 0xe0, 0x04, 0x85, 0xe0, 0x00, 0x0c, 0x40, 0xcc, 0xe1, 0x60, 0x40, 0x00, - 0xff, 0xcc, 0xe1, 0x20, 0x40, 0xcc, 0xe1, 0x60, 0x40, 0x41, 0x07, 0x4f, - 0x47, 0xd2, 0x60, 0x00, 0x10, 0x46, 0xc7, 0x3f, 0x00, 0x60, 0xa4, 0x40, - 0xc1, 0xc0, 0x00, 0x00, 0x84, 0x60, 0xbe, 0xb0, 0x00, 0x20, 0xa4, 0x40, - 0xee, 0xc0, 0x00, 0x00, 0x47, 0xa8, 0x00, 0xa4, 0x00, 0x99, 0xc0, 0x00, - 0x00, 0xa4, 0x00, 0xe5, 0xc0, 0x00, 0x00, 0x41, 0x03, 0x5f, 0xa4, 0x00, - 0x29, 0xc0, 0x00, 0x00, 0x47, 0xb8, 0x00, 0x47, 0xa2, 0x00, 0xa4, 0x00, - 0x6b, 0xff, 0xff, 0xff, 0x38, 0x60, 0xf9, 0xa4, 0x00, 0x9b, 0xff, 0xff, - 0xff, 0x00, 0x60, 0xa4, 0x00, 0x8b, 0xff, 0xff, 0xff, 0x05, 0x83, 0x00, - 0x60, 0xa4, 0x00, 0xe3, 0xff, 0xff, 0xff, 0x05, 0x63, 0x00, 0x60, 0xa4, - 0x00, 0xbd, 0xff, 0xff, 0xff, 0x05, 0x43, 0xa4, 0x00, 0x85, 0xff, 0xff, - 0xff, 0x6d, 0x6b, 0x10, 0x61, 0x4a, 0x59, 0x6d, 0x8c, 0x08, 0x60, 0x6a, - 0x61, 0x47, 0xb2, 0x00, 0x47, 0xa4, 0x40, 0x05, 0x44, 0x3e, 0x03, 0x38, - 0x2c, 0x01, 0x00, 0x00, 0x60, 0x00, 0x80, 0x00, 0xa0, 0x00, 0xc0, 0x01, - 0x00, 0xa4, 0x00, 0xd6, 0x40, 0x00, 0x00, 0x81, 0x40, 0xbe, 0xb0, 0x00, - 0x20, 0x47, 0xb4, 0x40, 0xd8, 0xa5, 0x00, 0xff, 0x6c, 0x63, 0x20, 0x6c, - 0xe4, 0x41, 0x08, 0x67, 0x6c, 0x63, 0x40, 0x60, 0x84, 0x23, 0x34, 0x84, - 0xc0, 0x08, 0x64, 0x8c, 0x60, 0x21, 0x00, 0x00, 0x80, 0x00, 0xec, 0x8c, - 0xe0, 0x01, 0x00, 0x00, 0x80, 0x8c, 0xa0, 0x11, 0x00, 0x00, 0x80, 0x47, - 0xd2, 0x48, 0xcc, 0xf0, 0x7a, 0x01, 0x34, 0xc7, 0xe0, 0x41, 0x03, 0x88, - 0x84, 0xe0, 0x7e, 0xb0, 0x00, 0x20, 0x00, 0xf8, 0x80, 0xe0, 0x7e, 0xb0, - 0x00, 0x20, 0x90, 0xe6, 0x00, 0x20, 0x00, 0x20, 0x24, 0xe7, 0x00, 0x8c, - 0xe0, 0x29, 0x00, 0x00, 0x80, 0x3c, 0x26, 0xc0, 0x98, 0xe0, 0x00, 0x80, - 0x80, 0x00, 0x64, 0xe0, 0x3a, 0x8c, 0xe0, 0x09, 0x00, 0x00, 0x80, 0x84, - 0xe0, 0x7e, 0xb0, 0x00, 0x20, 0x3c, 0x07, 0x00, 0x00, 0x68, 0x64, 0x60, - 0x1a, 0x47, 0xd2, 0x48, 0x80, 0x00, 0x7e, 0xb0, 0x00, 0x20, 0x6c, 0x63, - 0x60, 0x8c, 0x60, 0x21, 0x00, 0x00, 0x80, 0x00, 0xe6, 0x8c, 0xe0, 0x01, - 0x00, 0x00, 0x80, 0x8c, 0xe0, 0x47, 0xf0, 0x00, 0x80, 0x94, 0xe7, 0x00, - 0x00, 0x00, 0x08, 0x40, 0x07, 0x2f, 0x98, 0xe0, 0x00, 0x00, 0x00, 0x08, - 0x8c, 0xe0, 0x17, 0xf0, 0x00, 0x80, 0x8c, 0x00, 0x29, 0x00, 0x00, 0x80, - 0x47, 0xd2, 0x48, 0x47, 0xaa, 0x00, 0x05, 0xa3, 0x05, 0x44, 0x05, 0x85, - 0x41, 0x85, 0x84, 0x38, 0xe0, 0x8c, 0x20, 0xe4, 0xd0, 0x38, 0xe0, 0x82, - 0x20, 0xe4, 0x30, 0x20, 0x04, 0xb0, 0x20, 0x04, 0x70, 0x00, 0x60, 0xa4, - 0x00, 0xda, 0xff, 0xff, 0xff, 0x00, 0x80, 0x0c, 0x20, 0x38, 0xe0, 0x9a, - 0x20, 0xe4, 0xb0, 0x38, 0xe0, 0x64, 0x20, 0xe4, 0x70, 0x00, 0x84, 0x60, - 0xe4, 0x54, 0x31, 0x67, 0xd0, 0x05, 0x44, 0x0d, 0xa0, 0x30, 0x8a, 0xd0, - 0x04, 0x6d, 0x3e, 0x04, 0x20, 0xc4, 0xab, 0xff, 0xff, 0xa4, 0x00, 0xff, - 0x7f, 0xff, 0xff, 0x01, 0x58, 0x01, 0x78, 0x44, 0xca, 0x57, 0x41, 0x0c, - 0x70, 0x04, 0x6d, 0x47, 0xca, 0x00, 0xa4, 0x40, 0x46, 0xff, 0xff, 0xff, - 0x47, 0xba, 0x00, 0x47, 0xa6, 0x10, 0x05, 0xc3, 0x01, 0xa0, 0x01, 0x80, - 0x3e, 0x0d, 0x50, 0x41, 0x8e, 0x2c, 0x00, 0x60, 0xa4, 0x00, 0x7f, 0x7f, - 0xff, 0xff, 0x8d, 0x80, 0x21, 0x00, 0x00, 0x80, 0x00, 0xea, 0x8c, 0xe0, - 0x01, 0x00, 0x00, 0x80, 0x00, 0xe0, 0x8c, 0x00, 0x11, 0x00, 0x00, 0x80, - 0x00, 0xf8, 0x38, 0xc0, 0x08, 0xd2, 0xce, 0x6a, 0xff, 0x04, 0x6a, 0xa4, - 0x00, 0x84, 0xff, 0xff, 0xff, 0x0c, 0x4c, 0x00, 0x68, 0xa4, 0x00, 0xb3, - 0x7f, 0xff, 0xff, 0x8d, 0x80, 0x21, 0x00, 0x00, 0x80, 0x38, 0xe0, 0x50, - 0x8c, 0xe0, 0x01, 0x00, 0x00, 0x80, 0x8c, 0xe0, 0x71, 0x00, 0x00, 0x80, - 0x2c, 0xe1, 0x00, 0x8c, 0xe0, 0x71, 0x00, 0x00, 0x80, 0x2c, 0xe1, 0x20, - 0x8c, 0xe0, 0x71, 0x00, 0x00, 0x80, 0x2c, 0xe1, 0x10, 0x8c, 0xe0, 0x71, - 0x00, 0x00, 0x80, 0x2c, 0xe1, 0x30, 0x41, 0x03, 0x90, 0x8c, 0x00, 0x29, - 0x00, 0x00, 0x80, 0x31, 0x61, 0x08, 0x04, 0x6b, 0x04, 0x81, 0x38, 0xa0, - 0x08, 0xa4, 0x00, 0xcf, 0x2f, 0xff, 0xdf, 0x24, 0xe1, 0xd8, 0x38, 0xc0, - 0x8c, 0xd2, 0xce, 0x63, 0x60, 0x2c, 0xe1, 0x78, 0x94, 0xe7, 0x00, 0xff, - 0xff, 0xff, 0x98, 0xc0, 0x00, 0x64, 0x9a, 0x82, 0xd2, 0xce, 0x69, 0xa0, - 0x24, 0xe1, 0x98, 0x38, 0xc0, 0x30, 0xd2, 0x8e, 0x6f, 0x20, 0x38, 0xe0, - 0x30, 0x20, 0xe1, 0x98, 0x2c, 0xe1, 0x48, 0x00, 0xf8, 0x2c, 0xe1, 0x08, - 0x04, 0x6a, 0x04, 0x8b, 0x00, 0xa8, 0xa4, 0x00, 0xa3, 0x7f, 0xff, 0xff, - 0x04, 0x6a, 0x38, 0x80, 0x90, 0x38, 0xa0, 0x30, 0xa4, 0x00, 0x20, 0x7f, - 0xff, 0xff, 0x2c, 0xc1, 0x48, 0x8d, 0x80, 0x21, 0x00, 0x00, 0x80, 0x00, - 0xea, 0x8c, 0xe0, 0x01, 0x00, 0x00, 0x80, 0x8c, 0xc0, 0x11, 0x00, 0x00, - 0x80, 0x04, 0x6a, 0x04, 0x8b, 0x00, 0xa0, 0xa4, 0x00, 0x29, 0x7f, 0xff, - 0xff, 0x01, 0xb8, 0x31, 0x8c, 0x02, 0x38, 0xe0, 0xfc, 0xd2, 0xda, 0x7d, - 0xf7, 0x47, 0xb6, 0x10, 0xcc, 0xf0, 0x40, 0x05, 0x60, 0xe7, 0x21, 0x60, - 0x63, 0x1b, 0x60, 0xe7, 0x18, 0xcc, 0xf0, 0x00, 0x05, 0x47, 0xd2, 0x48, - 0xcc, 0xf0, 0x60, 0x05, 0x60, 0xe7, 0x19, 0x60, 0x84, 0x23, 0x60, 0xe7, - 0x20, 0xcc, 0xf0, 0x20, 0x05, 0x47, 0xd2, 0x48, 0x47, 0xac, 0x00, 0x05, - 0x45, 0x05, 0x66, 0x04, 0xa7, 0x24, 0x41, 0xf0, 0xcc, 0xf0, 0x40, 0x01, - 0x38, 0xe7, 0x08, 0xcc, 0xf0, 0x00, 0x01, 0xd1, 0xd0, 0x32, 0xc0, 0x40, - 0x03, 0x68, 0xcc, 0xf0, 0x40, 0x09, 0x6c, 0xe7, 0x89, 0x34, 0xe7, 0xc0, - 0x3d, 0xe3, 0x38, 0x64, 0xe3, 0x3a, 0x3e, 0x07, 0x18, 0xcc, 0xd0, 0x40, - 0x09, 0x6c, 0xe3, 0x88, 0x94, 0xe7, 0x00, 0x00, 0x60, 0x00, 0x94, 0xc6, - 0xff, 0xff, 0x9f, 0xff, 0x60, 0xe7, 0x31, 0xcc, 0xf0, 0x00, 0x09, 0x3c, - 0x02, 0x00, 0xd8, 0xe0, 0x00, 0x08, 0x64, 0xc0, 0x3a, 0x40, 0x04, 0x30, - 0x98, 0xe6, 0x00, 0x20, 0x00, 0x00, 0x3e, 0x07, 0x32, 0x38, 0xe6, 0x20, - 0x3c, 0x2a, 0x00, 0x64, 0xc7, 0x32, 0x38, 0xe6, 0x40, 0x3c, 0x2b, 0x00, - 0x64, 0xc7, 0x32, 0xcc, 0xd0, 0x20, 0x00, 0x00, 0xee, 0xcc, 0xf0, 0x28, - 0x00, 0x3e, 0x08, 0x3c, 0x60, 0xe0, 0x3d, 0x6c, 0xe7, 0xf9, 0xcc, 0xf0, - 0x08, 0x00, 0xcc, 0xb0, 0x10, 0x00, 0x47, 0xbc, 0x00, 0xcc, 0x70, 0x30, - 0x00, 0x47, 0xd2, 0x48, 0xcc, 0x90, 0x00, 0x00, 0xcc, 0xf0, 0x60, 0x00, - 0x6c, 0x63, 0xc0, 0x38, 0x63, 0x80, 0x94, 0x63, 0x9f, 0x00, 0x00, 0x00, - 0x94, 0xe7, 0x60, 0xff, 0xff, 0xff, 0x60, 0x63, 0x39, 0xcc, 0x70, 0x20, - 0x00, 0x47, 0xd2, 0x48, 0x04, 0x83, 0x00, 0x6e, 0xa4, 0x40, 0x1b, 0xff, - 0xff, 0xff, 0xcc, 0x70, 0x40, 0x00, 0x3e, 0x03, 0x18, 0x47, 0xd2, 0x48, - 0xcc, 0x70, 0x60, 0x00, 0x34, 0x63, 0x80, 0x47, 0xd2, 0x48, 0x00, 0xe0, - 0xd1, 0xe0, 0x3f, 0x80, 0x6c, 0xe3, 0x40, 0x90, 0xe7, 0x10, 0x20, 0x00, - 0x20, 0x2c, 0xe7, 0x40, 0x6c, 0xe7, 0x40, 0xd8, 0xe7, 0x28, 0x0d, 0x08, - 0xf0, 0x2c, 0xe7, 0x40, 0x3e, 0x07, 0x38, 0x04, 0x67, 0x47, 0xd2, 0x48, - 0xd1, 0xe0, 0x33, 0x80, 0x6c, 0xe3, 0x40, 0x90, 0xe7, 0x10, 0x20, 0x00, - 0x20, 0x2c, 0xe7, 0x40, 0x6c, 0xe7, 0x40, 0xd8, 0xe7, 0x00, 0x0d, 0x08, - 0xf0, 0x2c, 0x87, 0x00, 0x47, 0xd2, 0x48, 0x00, 0xe0, 0xd1, 0xe0, 0x3f, - 0x80, 0x6c, 0xe3, 0x40, 0x90, 0xe7, 0x10, 0x20, 0x00, 0x20, 0x2c, 0xe7, - 0x40, 0x6c, 0xe7, 0x40, 0xd8, 0xe7, 0x00, 0x0d, 0x08, 0xf0, 0x2c, 0xe7, - 0x40, 0x3e, 0x07, 0x38, 0x04, 0x67, 0x47, 0xd2, 0x48, 0x47, 0xa4, 0x00, - 0x31, 0x41, 0x10, 0x04, 0xc3, 0x0c, 0xc0, 0x24, 0xe4, 0x00, 0x20, 0xe6, - 0x00, 0x00, 0xd8, 0x00, 0x98, 0x00, 0xbf, 0xd0, 0x7e, 0x52, 0xff, 0x47, - 0xb4, 0x00 -}; - -#endif /* FLASHPROGRAMMEREXTENSION_JN5168_BIN_H */ diff --git a/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.c b/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.c deleted file mode 100644 index 694f78fe4a..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.c +++ /dev/null @@ -1,1656 +0,0 @@ -/**************************************************************************** - * - * MODULE: JN51xx_BootLoader - * - * COMPONENT: $RCSfile: JN51xx_BootLoader.c,v $ - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Lee Mitchell - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -/****************************************************************************/ -/*** Include files ***/ -/****************************************************************************/ - -#include -#ifdef __linux__ -#include -#endif -#include -#include -#include -#include - -#include "uart.h" -#include "JN51xx_BootLoader.h" -#include "FlashProgrammerExtension_JN5168.bin.h" -#include "ChipID.h" -#include "dbg.h" - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#ifdef DEBUG_BOOTLOADER -#define TRACE_BOOTLOADER TRUE -#else -#define TRACE_BOOTLOADER FALSE -#endif - - -#define BL_MAX_CHUNK_SIZE 248 - -#define BL_TIMEOUT_1S 1000000 -#define BL_TIMEOUT_10S 10000000 - - -/* JN513x / JN514x definitions */ -#define JN514X_ROM_ID_ADDR 0x00000004 -#define JN514X_MAC_ADDRESS_LOCATION 0x00000010 - - -/* JN516x definitions */ - -/* Location of MAC address in Index sector */ -#define JN516X_MAC_INDEX_SECTOR_PAGE 5 -#define JN516X_MAC_INDEX_SECTOR_WORD 7 - -/* Location of MAC address in memory map */ -#define JN516X_CUSTOMER_MAC_ADDRESS_LOCATION 0x01001570 -#define JN516X_MAC_ADDRESS_LOCATION 0x01001580 - -/* Location of bootloader information in memory map */ -#define JN516X_BOOTLOADER_VERSION_ADDRESS 0x00000062 -#define JN516X_BOOTLOADER_ENTRY 0x00000066 - -/* Location of device configuration in memory map */ -#define JN516X_INDEX_SECTOR_DEVICE_CONFIG_ADDR 0x01001500 - -/* Location of Customer Settings in memory map */ -#define JN516X_INDEX_CUSTOMER_SETTINGS_ADDR 0x01001510 - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -typedef enum -{ - E_BL_MSG_TYPE_FLASH_ERASE_REQUEST = 0x07, - E_BL_MSG_TYPE_FLASH_ERASE_RESPONSE = 0x08, - E_BL_MSG_TYPE_FLASH_PROGRAM_REQUEST = 0x09, - E_BL_MSG_TYPE_FLASH_PROGRAM_RESPONSE = 0x0a, - E_BL_MSG_TYPE_FLASH_READ_REQUEST = 0x0b, - E_BL_MSG_TYPE_FLASH_READ_RESPONSE = 0x0c, - E_BL_MSG_TYPE_FLASH_SECTOR_ERASE_REQUEST = 0x0d, - E_BL_MSG_TYPE_FLASH_SECTOR_ERASE_RESPONSE = 0x0e, - E_BL_MSG_TYPE_FLASH_WRITE_STATUS_REGISTER_REQUEST = 0x0f, - E_BL_MSG_TYPE_FLASH_WRITE_STATUS_REGISTER_RESPONSE = 0x10, - E_BL_MSG_TYPE_RAM_WRITE_REQUEST = 0x1d, - E_BL_MSG_TYPE_RAM_WRITE_RESPONSE = 0x1e, - E_BL_MSG_TYPE_RAM_READ_REQUEST = 0x1f, - E_BL_MSG_TYPE_RAM_READ_RESPONSE = 0x20, - E_BL_MSG_TYPE_RAM_RUN_REQUEST = 0x21, - E_BL_MSG_TYPE_RAM_RUN_RESPONSE = 0x22, - E_BL_MSG_TYPE_FLASH_READ_ID_REQUEST = 0x25, - E_BL_MSG_TYPE_FLASH_READ_ID_RESPONSE = 0x26, - E_BL_MSG_TYPE_SET_BAUD_REQUEST = 0x27, - E_BL_MSG_TYPE_SET_BAUD_RESPONSE = 0x28, - E_BL_MSG_TYPE_FLASH_SELECT_TYPE_REQUEST = 0x2c, - E_BL_MSG_TYPE_FLASH_SELECT_TYPE_RESPONSE = 0x2d, - - E_BL_MSG_TYPE_GET_CHIPID_REQUEST = 0x32, - E_BL_MSG_TYPE_GET_CHIPID_RESPONSE = 0x33, - /* Flash programmer extension commands */ - E_BL_MSG_TYPE_PDM_ERASE_REQUEST = 0x36, - E_BL_MSG_TYPE_PDM_ERASE_RESPONSE = 0x37, - E_BL_MSG_TYPE_PROGRAM_INDEX_SECTOR_REQUEST = 0x38, - E_BL_MSG_TYPE_PROGRAM_INDEX_SECTOR_RESPONSE = 0x39, - E_BL_MSG_TYPE_EEPROM_READ_REQUEST = 0x3A, - E_BL_MSG_TYPE_EEPROM_READ_RESPONSE = 0x3B, - E_BL_MSG_TYPE_EEPROM_WRITE_REQUEST = 0x3C, - E_BL_MSG_TYPE_EEPROM_WRITE_RESPONSE = 0x3D, -} __attribute ((packed)) teBL_MessageType; - - -typedef enum -{ - E_BL_RESPONSE_OK = 0x00, - E_BL_RESPONSE_NOT_SUPPORTED = 0xff, - E_BL_RESPONSE_WRITE_FAIL = 0xfe, - E_BL_RESPONSE_INVALID_RESPONSE = 0xfd, - E_BL_RESPONSE_CRC_ERROR = 0xfc, - E_BL_RESPONSE_ASSERT_FAIL = 0xfb, - E_BL_RESPONSE_USER_INTERRUPT = 0xfa, - E_BL_RESPONSE_READ_FAIL = 0xf9, - E_BL_RESPONSE_TST_ERROR = 0xf8, - E_BL_RESPONSE_AUTH_ERROR = 0xf7, - E_BL_RESPONSE_NO_RESPONSE = 0xf6, - E_BL_RESPONSE_ERROR = 0xf0, -} __attribute__ ((packed)) teBL_Response; - - -typedef struct -{ - uint16_t u16FlashId; - uint8_t u8FlashType; - char *pcFlashName; -} tsBL_FlashDevice; - -/****************************************************************************/ -/*** Local Function Prototypes ***/ -/****************************************************************************/ - -static int iBL_ReadChipId(int iUartFd, uint32_t *pu32ChipId); -static int iBL_ReadFlashId(int iUartFd, uint16_t *pu16FlashId); -static int iBL_SelectFlashDevice(int iUartFd, uint16_t u16FlashId); -static int iBL_WriteStatusRegister(int iUartFd, uint8_t u8StatusReg); - -static int iBL_RunRAM(int iUartFd, uint32_t u32Address); -static int iBL_ReadRAM(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer); -static int iBL_WriteRAM(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer); - -static int iBL_EraseFlash(int iUartFd); -static int iBL_ReadFlash(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer); -static int iBL_WriteFlash(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer); - -static teBL_Response eBL_Request(int iUartFd, int iTimeoutMicroseconds, teBL_MessageType eTxType, uint8_t u8HeaderLen, uint8_t *pu8Header, uint8_t u8TxLength, uint8_t *pu8TxData, teBL_MessageType *peRxType, uint8_t *pu8RxLength, uint8_t *pu8RxData); - -static int iBL_WriteMessage(int iUartFd, teBL_MessageType eType, uint8_t u8HeaderLength, uint8_t *pu8Header, uint8_t u8Length, uint8_t *pu8Data); -static teBL_Response eBL_ReadMessage(int iUartFd, int iTimeoutMicroseconds, teBL_MessageType *peType, uint8_t *pu8Length, uint8_t *pu8Data); - - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -extern int iVerbosity; - -/****************************************************************************/ -/*** Local Variables ***/ -/****************************************************************************/ - -tsBL_FlashDevice asFlashDevices[] = { - { - .u16FlashId = 0x0505, - .u8FlashType = 4, - .pcFlashName = "ST M25P05-A" - }, - - { - .u16FlashId = 0x1010, - .u8FlashType = 0, - .pcFlashName = "ST M25P10-A" - }, - - { - .u16FlashId = 0x1111, - .u8FlashType = 5, - .pcFlashName = "ST M25P20-A" - }, - - { - .u16FlashId = 0x1212, - .u8FlashType = 3, - .pcFlashName = "ST M25P40" - }, - - { - .u16FlashId = 0xbf49, - .u8FlashType = 1, - .pcFlashName = "SST 25VF010A" - }, - - { - .u16FlashId = 0x1f60, - .u8FlashType = 2, - .pcFlashName = "Atmel 25F512" - }, - - { - .u16FlashId = 0xccee, - .u8FlashType = 8, - .pcFlashName = "JN516x" - }, - -}; - - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ -/**************************************************************************** - * - * NAME: BL_eGetChipId - * - * DESCRIPTION: - * Gets the ChipID - * - * PARAMETERS: Name RW Usage - * iUartFd R Uart file descriptor - * psChipDetails W Pointer to chip details structure - * - * RETURNS: - * teStatus E_STATUS_OK if success - * - ****************************************************************************/ -teStatus BL_eGetChipId(int iUartFd, tsChipDetails *psChipDetails) -{ - uint8_t au8Buffer[6]; - - DBG_vPrintf(TRACE_BOOTLOADER, "Get Chip ID\n"); - - if(psChipDetails == NULL) - { - return E_STATUS_NULL_PARAMETER; - } - - psChipDetails->u32CustomerSettings = 0xFFFFFFFF; - - /* Send chip id request */ - if(iBL_ReadChipId(iUartFd, &psChipDetails->u32ChipId) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error reading chip id\n"); - - /* That failed so it might be an old device that doesn't support the command, try reading it directly */ - if (iBL_ReadRAM(iUartFd, 0x100000FC, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading processor ID register\n"); - return E_STATUS_ERROR; - } - else - { - psChipDetails->u32ChipId = au8Buffer[0] << 24; - psChipDetails->u32ChipId |= au8Buffer[1] << 16; - psChipDetails->u32ChipId |= au8Buffer[2] << 8; - psChipDetails->u32ChipId |= au8Buffer[3] << 0; - } - } - - if (CHIP_ID_PART(psChipDetails->u32ChipId) == CHIP_ID_PART(CHIP_ID_JN5168)) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Reading 6x data\n"); - - if (iBL_ReadRAM(iUartFd, JN516X_BOOTLOADER_VERSION_ADDRESS, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading bootloader version\n"); - return E_STATUS_ERROR; - } - else - { - psChipDetails->u32BootloaderVersion = au8Buffer[0] << 24; - psChipDetails->u32BootloaderVersion |= au8Buffer[1] << 16; - psChipDetails->u32BootloaderVersion |= au8Buffer[2] << 8; - psChipDetails->u32BootloaderVersion |= au8Buffer[3] << 0; - - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Bootloader version 0x%08x\n", psChipDetails->u32BootloaderVersion); - } - - if (iBL_ReadRAM(iUartFd, JN516X_INDEX_SECTOR_DEVICE_CONFIG_ADDR, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading config from flash index sector\n"); - return E_STATUS_ERROR; - } - else - { - psChipDetails->u32RamSize = (au8Buffer[3] & 0x07) >> 0; - psChipDetails->u32FlashSize = (au8Buffer[3] & 0x30) >> 4; - - psChipDetails->u32SupportedFirmware = ( - (psChipDetails->u32FlashSize << 16) | - (psChipDetails->u32RamSize << 24) | - (0x08)); - - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x RAM size %dk\n", (psChipDetails->u32RamSize * 8) + 8); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Flash size %dk\n", (psChipDetails->u32FlashSize * 32) + 32); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Bootloader version 0x%08x\n", psChipDetails->u32BootloaderVersion); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Supported firmware 0x%08x\n", psChipDetails->u32SupportedFirmware); - } - } - else if (CHIP_ID_PART(psChipDetails->u32ChipId) == CHIP_ID_PART(CHIP_ID_JN5169)) - { - - psChipDetails->u32BootloaderVersion = 0; - int bFlashLoad = 1; - int bFlashEnc = 1; - int iCRPLevel = 3; - int iVBOThr = 7; - int bCPUJTAG = 1; - - if (iBL_ReadRAM(iUartFd, JN516X_INDEX_CUSTOMER_SETTINGS_ADDR, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading Customer Settings\n"); - return E_STATUS_ERROR; - } - else - { - bFlashLoad = (au8Buffer[3] >> 7) & 0x01; - bFlashEnc = (au8Buffer[3] >> 6) & 0x01; - iCRPLevel = (au8Buffer[3] >> 4) & 0x03; - iVBOThr = (au8Buffer[3] >> 1) & 0x07; - bCPUJTAG = (au8Buffer[3] >> 0) & 0x01; - - psChipDetails->u32CustomerSettings = au8Buffer[0] << 24; - psChipDetails->u32CustomerSettings |= au8Buffer[1] << 16; - psChipDetails->u32CustomerSettings |= au8Buffer[2] << 8; - psChipDetails->u32CustomerSettings |= au8Buffer[3] << 0; - - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x FLASH_LOAD %d (If 0 then loading firmware from external Flash is disabled)\n", bFlashLoad); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x FLASH_ENC %d (If 0 then the contents of external Flash are decrypted as they are loaded into internal Flash memory)\n", bFlashEnc); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x CRP_LEVEL %d\n", iCRPLevel); - DBG_vPrintf(TRACE_BOOTLOADER, "\t0 = CRP level 2 (no programming allowed via UART)\n"); - DBG_vPrintf(TRACE_BOOTLOADER, "\t1 = CRP level 1 (Flash read protection)\n"); - DBG_vPrintf(TRACE_BOOTLOADER, "\t2 = CRP level 2 (no programming allowed via UART)\n"); - DBG_vPrintf(TRACE_BOOTLOADER, "\t3 = CRP level 0 (no protection))\n"); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x VBO_THR %d\n", iVBOThr); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x CPU_JTAG %d (If 0 then CPU JTAG access is disabled)\n", bCPUJTAG); - } - - if (iBL_ReadRAM(iUartFd, JN516X_INDEX_SECTOR_DEVICE_CONFIG_ADDR, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading config from flash index sector\n"); - return E_STATUS_ERROR; - } - else - { - psChipDetails->u32RamSize = (au8Buffer[3] & 0x07) >> 0; - psChipDetails->u32FlashSize = (au8Buffer[3] & 0x30) >> 4; - - psChipDetails->u32RamSize = 32/8-1; //!!! - psChipDetails->u32FlashSize = 512/32-1; //!!! - - psChipDetails->u32SupportedFirmware = ( - (psChipDetails->u32FlashSize << 16) | - (psChipDetails->u32RamSize << 24) | - (0x08)); - psChipDetails->u32SupportedFirmware = 0x0f03000b; //!!! - - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x RAM size %dk\n", (psChipDetails->u32RamSize * 8) + 8); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Flash size %dk\n", (psChipDetails->u32FlashSize * 32) + 32); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Bootloader version 0x%08x\n", psChipDetails->u32BootloaderVersion); - DBG_vPrintf(TRACE_BOOTLOADER, "JN516x Supported firmware 0x%08x\n", psChipDetails->u32SupportedFirmware); - } - } - else - { - if (iBL_ReadRAM(iUartFd, JN514X_ROM_ID_ADDR, 4, au8Buffer) < 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error Reading ROM ID\n"); - return E_STATUS_ERROR; - } - else - { - psChipDetails->u32SupportedFirmware = au8Buffer[0] << 24; - psChipDetails->u32SupportedFirmware |= au8Buffer[1] << 16; - psChipDetails->u32SupportedFirmware |= au8Buffer[2] << 8; - psChipDetails->u32SupportedFirmware |= au8Buffer[3] << 0; - } - } - - return E_STATUS_OK; -} - - -/**************************************************************************** - * - * NAME: BL_eGetMacAddress - * - * DESCRIPTION: - * Reads the MAC address - * - * PARAMETERS: Name RW Usage - * iUartFd R Uart file descriptor - * psChipDetails W Pointer to chip details structure - * - * RETURNS: - * teStatus E_STATUS_OK if success - * - ****************************************************************************/ -teStatus BL_eGetMacAddress(int iUartFd, tsChipDetails *psChipDetails) -{ - - int iRetval; - uint8_t au8InvalidMac[8] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - - if(psChipDetails == NULL) - { - return E_STATUS_NULL_PARAMETER; - } - - switch(CHIP_ID_PART(psChipDetails->u32ChipId)) - { - case CHIP_ID_PART(CHIP_ID_JN5148_REV2A): - iRetval = iBL_ReadFlash(iUartFd, JN514X_MAC_ADDRESS_LOCATION, 8, psChipDetails->au8MacAddress); - break; - - case CHIP_ID_PART(CHIP_ID_JN5168): - case CHIP_ID_PART(CHIP_ID_JN5169): - /* First we read the customer specific MAC address, and if its not all F's, we use that */ - iRetval = iBL_ReadRAM(iUartFd, JN516X_CUSTOMER_MAC_ADDRESS_LOCATION, 8, psChipDetails->au8MacAddress); - - /* If its all F's, read factory assigned MAC */ - if(memcmp(psChipDetails->au8MacAddress, au8InvalidMac, 8) == 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "No customer MAC address - using factory\n"); - iRetval = iBL_ReadRAM(iUartFd, JN516X_MAC_ADDRESS_LOCATION, 8, psChipDetails->au8MacAddress); - } - break; - - default: - return E_STATUS_ERROR; - - } - - return (iRetval < 0) ? E_STATUS_ERROR : E_STATUS_OK; -} - - -/**************************************************************************** - * - * NAME: BL_eGetChipDetails - * - * DESCRIPTION: - * Get details of the device - * - * PARAMETERS: Name RW Usage - * iUartFd R Uart file descriptor - * psChipDetails W Pointer to chip details structure - * - * RETURNS: - * int E_STATUS_OK if success - * - ****************************************************************************/ -teStatus BL_eGetChipDetails(int iUartFd, tsChipDetails *psChipDetails) -{ - teStatus eStatus; - - eStatus = BL_eGetChipId(iUartFd, psChipDetails); - if (eStatus != E_STATUS_OK) - { - return eStatus; - } - - eStatus = BL_eGetMacAddress(iUartFd, psChipDetails); - if (eStatus != E_STATUS_OK) - { - return eStatus; - } - return E_STATUS_OK; -} - - -/**************************************************************************** - * - * NAME: BL_iReprogram - * - * DESCRIPTION: - * Reprograms the device - * - * PARAMETERS: Name RW Usage - * pu8Firmware R Pointer to firmware image to download - * pu64Address R Pointer to MAC Address. If NULL, read from flash. - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -teStatus BL_eReprogram(int iUartFd, tsChipDetails *psChipDetails, tsFW_Info *psFWImage) -{ - - int n; - uint16_t u16FlashId; - uint8_t u8ChunkSize; - uint8_t au8Buffer1[BL_MAX_CHUNK_SIZE + 1]; - uint8_t au8Buffer2[BL_MAX_CHUNK_SIZE + 1]; - - if (memcmp(&psFWImage->u32ROMVersion, &psChipDetails->u32SupportedFirmware, 4) != 0) - { - printf("Incompatible firmware (Built for 0x%08x, Device is 0x%08x)\n", psFWImage->u32ROMVersion, psChipDetails->u32SupportedFirmware); - return E_STATUS_INCOMPATIBLE; - } - - /* First, depending on chip type, we may need to copy the MAC address into the firmware image - * Also, some images have a 4 byte header in the binary that needs stripping off, so do that here - * by adjusting start point and length to suit */ - switch(CHIP_ID_PART(psChipDetails->u32ChipId)) - { - - case CHIP_ID_PART(CHIP_ID_JN5148_REV2A): - memcpy(&psFWImage->pu8ImageData[JN514X_MAC_ADDRESS_LOCATION], psChipDetails->au8MacAddress, 8); - break; - - case CHIP_ID_PART(CHIP_ID_JN5168): - case CHIP_ID_PART(CHIP_ID_JN5169): - break; - - default: - printf("Unsupported chip type 0x%08x\n", psChipDetails->u32ChipId); - return E_STATUS_ERROR; - break; - } -#if 0 - /* Dump the file contents in hex */ - DBG_vPrintf(TRACE_BOOTLOADER, "Dumping %d bytes\n", psFWImage->u32ImageLength); - for(n = 0; n < psFWImage->u32ImageLength; n++) - { - - if((n % 16) == 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\n%08x: ", n); - } - - DBG_vPrintf(TRACE_BOOTLOADER, " %02x", psFWImage->pu8ImageData[n]); - - } - DBG_vPrintf(TRACE_BOOTLOADER, "\n"); -#endif - - - /* Get the flash Id */ - if(iBL_ReadFlashId(iUartFd, &u16FlashId) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error getting flash id...\n"); - return E_STATUS_ERROR; - } - DBG_vPrintf(TRACE_BOOTLOADER, "FlashId: %04x\n", u16FlashId); - - /* Set the flash type */ - if(iBL_SelectFlashDevice(iUartFd, u16FlashId) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error setting flash type...\n"); - return E_STATUS_ERROR; - } - - /* If its not internal flash, we need to enable write access */ - if(u16FlashId != FLASH_INTERNAL) - { - if(iBL_WriteStatusRegister(iUartFd, 0x00) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error writing to flash status register...\n"); - return E_STATUS_ERROR; - } - } - - /* Erase the flash memory */ - if (iVerbosity > 0) - { - printf("Erasing: 0%%\n"); - } - if(iBL_EraseFlash(iUartFd) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error erasing flash...\n"); - return E_STATUS_ERROR; - } - - if((psChipDetails->u32CustomerSettings&0x30) != 0x30){ - DBG_vPrintf(TRACE_BOOTLOADER, "Cannot check for Flash blankess, because of CRP\n"); - }else{ - /* Ensure that flash is erased */ - DBG_vPrintf(TRACE_BOOTLOADER, "Checking flash is blank...\n"); - memset(au8Buffer2, 0xFF, 64); - - if (iBL_ReadFlash(iUartFd, 0, 64, au8Buffer1) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error reading Flash at address 0x%08x\n", 0); - return E_STATUS_ERROR; - } - else - { - if (memcmp(au8Buffer1, au8Buffer2, 64)) - { - printf("Failed to erase Flash: not blank!\n"); -#if 0 - { - /* Dump the contents in hex */ - DBG_vPrintf(TRACE_BOOTLOADER, "Dumping %d bytes\n", 64); - for(n = 0; n < 64; n++) - { - - if((n % 16) == 0) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\n%08x: ", n); - } - - DBG_vPrintf(TRACE_BOOTLOADER, " %02x", au8Buffer1[n]); - - } - DBG_vPrintf(TRACE_BOOTLOADER, "\n"); - - } -#endif - - return E_STATUS_ERROR; - } - else - { - DBG_vPrintf(TRACE_BOOTLOADER, "Flash erase success\n"); - - if (iVerbosity > 0) - { - printf("%c[AErasing: 100%%\n", 0x1B); - } - } - } - } - - if (iVerbosity > 0) - { - printf("Writing Program to Flash\n\n"); - } - - for(n = 0; n < psFWImage->u32ImageLength;) - { - if((psFWImage->u32ImageLength - n) > 128) - { - u8ChunkSize = 128; - } - else - { - u8ChunkSize = psFWImage->u32ImageLength - n; - } - - if(iBL_WriteFlash(iUartFd, n, u8ChunkSize, psFWImage->pu8ImageData + n) == -1) - { - printf("Failed to write at address 0x%08x\n", n); - return E_STATUS_ERROR; - } - - n += u8ChunkSize; - - if (iVerbosity > 0) - { - printf("%c[AWriting: %3d%%\n", 0x1B, (n * 100) / psFWImage->u32ImageLength); - } - } - - if((psChipDetails->u32CustomerSettings&0x30) != 0x30) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Cannot verify Flash, because of CRP\n"); - } - else - { - if (iVerbosity > 0) - { - printf("Verifying Program in Flash\n\n"); - } - - for(n = 0; n < psFWImage->u32ImageLength;) - { - if((psFWImage->u32ImageLength - n) > 128) - { - u8ChunkSize = 128; - } - else - { - u8ChunkSize = psFWImage->u32ImageLength - n; - } - - if (iBL_ReadFlash(iUartFd, n, u8ChunkSize, au8Buffer1) == -1) - { - printf("Error reading at address 0x%08x\n", n); - return E_STATUS_ERROR; - } - else - { - if (memcmp(psFWImage->pu8ImageData + n, au8Buffer1, u8ChunkSize)) - { - printf("Verify failed at address 0x%08x!\n", n); - return E_STATUS_ERROR; - } - } - - n += u8ChunkSize; - - if (iVerbosity > 0) - { - printf("%c[AVerifying: %3d%%\n", 0x1B, (n * 100) / psFWImage->u32ImageLength); - } - } - } - - return E_STATUS_OK; -} - - -teStatus BL_eSetBaudrate(int iUartFd, uint32_t u32Baudrate) -{ - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[6]; - uint32_t u32Divisor; - - // Divide 1MHz clock bu baudrate to get the divisor, round to closest - u32Divisor = (1000000+u32Baudrate/2) / u32Baudrate; - - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Actual baud rate set %d\n", __FUNCTION__, 1000000/u32Divisor); - - au8Buffer[0] = (uint8_t)u32Divisor; - au8Buffer[1] = 0; - au8Buffer[2] = 0; - au8Buffer[3] = 0; - au8Buffer[4] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_SET_BAUD_REQUEST, 1, au8Buffer, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_SET_BAUD_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return E_STATUS_ERROR; - } - return E_STATUS_OK; -} - -teStatus BL_EEPROMErase(int iUartFd, uint32_t iEraseAll) -{ - - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t au8CmdBuffer[1]; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[6]; - - au8CmdBuffer[0] = (uint8_t)(iEraseAll) & 0xff; - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_PDM_ERASE_REQUEST, 1, au8CmdBuffer, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return E_STATUS_ERROR; - } - - return E_STATUS_OK; -} - -#if 0 -/**************************************************************************** - * - * NAME: iBL_DownloadFirmwareToRam - * - * DESCRIPTION: - * Downloads the given firmware to the module's RAM. - * see \ZED-TL\Sw\Source\boot.c for details - * - * PARAMETERS: Name RW Usage - * pu8Firmware R Pointer to firmware image to download - * pu64Address R Pointer to MAC Address. If NULL, read from flash. - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -int iBL_DownloadFirmwareToRam(tsFW_Info *psFW_Info, uint64_t *pu64MAC_Address) -{ - int n; - uint8_t u8ChunkSize; - -// if(psBinHeader->u8ConfigByte0 == 0xff && psBinHeader->u8ConfigByte1 == 0xff && psBinHeader->u16SpiScrambleIndex == 0xffff) -// { -// DBG_vPrintf(TRACE_BOOTLOADER, "\nFlash image is invalid, aborting."); -// return(-1); -// } - - DBG_vPrintf(TRACE_BOOTLOADER, "\nText Start 0x%08x - Len %d bytes", psFW_Info->u32TextSectionLoadAddress, psFW_Info->u32TextSectionLength); - DBG_vPrintf(TRACE_BOOTLOADER, "\nBSS Start 0x%08x - Len %d bytes", psFW_Info->u32BssSectionLoadAddress, psFW_Info->u32BssSectionLength); - DBG_vPrintf(TRACE_BOOTLOADER, "\nReset entry point 0x%08x", ntohl(psFW_Info->u32ResetEntryPoint)); - DBG_vPrintf(TRACE_BOOTLOADER, "\nWake entry point 0x%08x", ntohl(psFW_Info->u32WakeUpEntryPoint)); - - printf("\nHeader is at %p\n", psFW_Info->pu8ImageData); - printf("Text Start at %p\n", psFW_Info->pu8TextData); - -#if 0 - if (pu64MAC_Address) - { - uint64_t u64Temp; - u64Temp = htobe64(*pu64MAC_Address); - memset(au8Buffer, 0, 12); - memcpy(au8Buffer, &u64Temp, sizeof(uint64_t)); - } - else - { - DBG_vPrintf(TRACE_BOOTLOADER, "Reading module MAC address from flash.\n"); - /* Read out the module's MAC address & license key, we need to write them back to RAM */ - if(iBL_ReadFlash(MAC_ADDR_LOCATION, 12, au8Buffer) != 12) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\nFailed to read module's MAC address"); - return(-1); - } - } -#endif -// DBG_vPrintf(TRACE_BOOTLOADER, "\nLoading .text\n"); - /* Download text segment */ - for(n = 0; n < psFW_Info->u32TextSectionLength;) - { - if((psFW_Info->u32TextSectionLength - n) > BL_MAX_CHUNK_SIZE) - { - u8ChunkSize = BL_MAX_CHUNK_SIZE; - } - else - { - u8ChunkSize = psFW_Info->u32TextSectionLength - n; - } - - if(iBL_WriteRAM(psFW_Info->u32TextSectionLoadAddress + n, u8ChunkSize, psFW_Info->pu8TextData + n) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\nProblem writing chunk"); - return(-1); - } - - printf("Wrote chunk length %d at address 0x%08x: 0x%08x\n", u8ChunkSize, psFW_Info->u32TextSectionLoadAddress + n, ntohl(*((uint32_t*)(psFW_Info->pu8TextData + n)))); - - if (1) - { - uint8_t au8Buffer[BL_MAX_CHUNK_SIZE + 1]; - if (iBL_ReadRAM(psFW_Info->u32TextSectionLoadAddress + n, u8ChunkSize, au8Buffer) == -1) - { - printf("Error reading at address 0x%08x\n", psFW_Info->u32TextSectionLoadAddress + n); - return -1; - } - else - { - if (memcmp(psFW_Info->pu8TextData + n, au8Buffer, u8ChunkSize)) - { - printf("Data read at address 0x%08x is incorrect\n", psFW_Info->u32TextSectionLoadAddress + n); - return -1; - } - } - } - - n += u8ChunkSize; - - //DBG_vPrintf(TRACE_BOOTLOADER, "Loading: %3d%%\n%c[A", (n * 100) / psFW_Info->u32TextSectionLength, 0x1B); - DBG_vPrintf(TRACE_BOOTLOADER, "Loading: %3d%%\n", (n * 100) / psFW_Info->u32TextSectionLength); - } - - /* Write back MAC address & license key */ -// if(iBL_WriteRAM(psFW_Info->u32TextSectionLoadAddress, 12, au8Buffer) == -1) -// { -// DBG_vPrintf(TRACE_BOOTLOADER, "\nProblem writing chunk"); -// return(-1); -// } -#if 1 - DBG_vPrintf(TRACE_BOOTLOADER, "\nLoading .bss \n"); - - /* Download BSS segment */ - { - uint8_t au8Buffer[127]; - memset(au8Buffer, 0, sizeof(au8Buffer)); - for(n = 0; n < psFW_Info->u32BssSectionLength;) - { - if((psFW_Info->u32BssSectionLength - n) > sizeof(au8Buffer)) - { - u8ChunkSize = sizeof(au8Buffer); - } - else - { - u8ChunkSize = psFW_Info->u32BssSectionLength - n; - } - if(iBL_WriteRAM(psFW_Info->u32BssSectionLoadAddress + n, u8ChunkSize, au8Buffer) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\nProblem writing BSS"); - return(-1); - } - - n += u8ChunkSize; - - DBG_vPrintf(TRACE_BOOTLOADER, "Loading: %3d%%\n%c[A", (n * 100) / psFW_Info->u32BssSectionLength, 0x1B); - } - } -#endif - - DBG_vPrintf(TRACE_BOOTLOADER, "\nStarting module application"); - iBL_RunRAM(psFW_Info->u32ResetEntryPoint); - - return(0); -} -#endif - - - - - - - - - -/**************************************************************************** - * - * NAME: iBL_ReadChipId - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_ReadChipId(int iUartFd, uint32_t *pu32ChipId) -{ - - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[256]; // Was 6 bytes, but chip ID response is 11 bytes!!! As the length is given in a byte, this should always work. - - if(pu32ChipId == NULL) - { - return(-1); - } - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_GET_CHIPID_REQUEST, 0, NULL, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_GET_CHIPID_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return(-1); - } - - *pu32ChipId = au8Buffer[0] << 24; - *pu32ChipId |= au8Buffer[1] << 16; - *pu32ChipId |= au8Buffer[2] << 8; - *pu32ChipId |= au8Buffer[3] << 0; - - return(0); -} - - -/**************************************************************************** - * - * NAME: iBL_ReadFlashId - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_ReadFlashId(int iUartFd, uint16_t *pu16FlashId) -{ - - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[6]; - - if(pu16FlashId == NULL) - { - return(-1); - } - - *pu16FlashId = 0x0000; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_FLASH_READ_ID_REQUEST, 0, NULL, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_READ_ID_RESPONSE) - { - /* Failed to read Flash ID */ - DBG_vPrintf(TRACE_BOOTLOADER, "Could not read Flash type!\n"); - return -1; - } - - *pu16FlashId = au8Buffer[0] << 8; - *pu16FlashId |= au8Buffer[1] << 0; - - return 0; -} - - -/**************************************************************************** - * - * NAME: iBL_ReadFlashId - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_SelectFlashDevice(int iUartFd, uint16_t u16FlashId) -{ - int n; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[6]; - - /* Search for flash type given flash device id code */ - for(n = 0; n < sizeof(asFlashDevices) / sizeof(tsBL_FlashDevice); n++) - { - /* If we found a match, send command to select this flash device type */ - if(asFlashDevices[n].u16FlashId == u16FlashId) - { - - DBG_vPrintf(TRACE_BOOTLOADER, "Flash type is %s\n", asFlashDevices[n].pcFlashName); - - au8Buffer[0] = asFlashDevices[n].u8FlashType; - au8Buffer[1] = 0; - au8Buffer[2] = 0; - au8Buffer[3] = 0; - au8Buffer[4] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_FLASH_SELECT_TYPE_REQUEST, 5, au8Buffer, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_SELECT_TYPE_RESPONSE) - { - /* Failed to select flash type */ - DBG_vPrintf(TRACE_BOOTLOADER, "Could not select Flash type!\n"); - return -1; - } - - return 0; - - } - } - - /* Flash type not found */ - return -1; - -} - - -/**************************************************************************** - * - * NAME: iBL_WriteStatusRegister - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_WriteStatusRegister(int iUartFd, uint8_t u8StatusReg) -{ - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t u8RxDataLen = 0; - uint8_t au8Buffer[6]; - - DBG_vPrintf(TRACE_BOOTLOADER, "Writing %02x to flash status register\n", u8StatusReg); - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_FLASH_WRITE_STATUS_REGISTER_REQUEST, 1, &u8StatusReg, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_WRITE_STATUS_REGISTER_RESPONSE) - { - /* Failed to write to flash status register */ - DBG_vPrintf(TRACE_BOOTLOADER, "Could not write to status register!\n"); - return -1; - } - - return 0; -} - - -/**************************************************************************** - * - * NAME: iBL_RunRAM - * - * DESCRIPTION: - * Starts the module executing code from a given address - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_RunRAM(int iUartFd, uint32_t u32Address) -{ - uint8_t u8RxDataLen = 0; - uint8_t au8CmdBuffer[4]; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - - au8CmdBuffer[3] = (uint8_t)(u32Address >> 0) & 0xff; - au8CmdBuffer[2] = (uint8_t)(u32Address >> 8) & 0xff; - au8CmdBuffer[1] = (uint8_t)(u32Address >> 16) & 0xff; - au8CmdBuffer[0] = (uint8_t)(u32Address >> 24) & 0xff; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_RAM_RUN_REQUEST, 4, au8CmdBuffer, 0, NULL, &eRxType, &u8RxDataLen, NULL); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_RAM_RUN_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return(-1); - } - - return(0); -} - - -/**************************************************************************** - * - * NAME: iBL_ReadRAM - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_ReadRAM(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer) -{ - uint8_t u8RxDataLen = 0; - uint8_t au8CmdBuffer[6]; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - - if(u8Length > 0xfc || pu8Buffer == NULL) - { - return -1; - } - - au8CmdBuffer[0] = (uint8_t)(u32Address >> 0) & 0xff; - au8CmdBuffer[1] = (uint8_t)(u32Address >> 8) & 0xff; - au8CmdBuffer[2] = (uint8_t)(u32Address >> 16) & 0xff; - au8CmdBuffer[3] = (uint8_t)(u32Address >> 24) & 0xff; - au8CmdBuffer[4] = u8Length; - au8CmdBuffer[5] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_RAM_READ_REQUEST, 6, au8CmdBuffer, 0, NULL, &eRxType, &u8RxDataLen, pu8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_RAM_READ_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: @%08x Response %02x\n", __FUNCTION__, u32Address, eResponse); - return -1; - } - - return(u8RxDataLen); -} - -/**************************************************************************** - * - * NAME: iBL_WriteRAM - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_WriteRAM(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer) -{ - uint8_t u8RxDataLen = 0; - uint8_t au8CmdBuffer[6]; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - - if(u8Length > 0xfc || pu8Buffer == NULL) - { - return(-1); - } - - au8CmdBuffer[0] = (uint8_t)(u32Address >> 0) & 0xff; - au8CmdBuffer[1] = (uint8_t)(u32Address >> 8) & 0xff; - au8CmdBuffer[2] = (uint8_t)(u32Address >> 16) & 0xff; - au8CmdBuffer[3] = (uint8_t)(u32Address >> 24) & 0xff; - au8CmdBuffer[4] = u8Length; - au8CmdBuffer[5] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_RAM_WRITE_REQUEST, 4, au8CmdBuffer, u8Length, pu8Buffer, &eRxType, &u8RxDataLen, pu8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_RAM_WRITE_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return(-1); - } - - return(u8Length); -} - - -/**************************************************************************** - * - * NAME: iBL_EraseFlash - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_EraseFlash(int iUartFd) -{ - uint8_t u8RxDataLen = 0; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - uint8_t au8Buffer[64]; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_10S, E_BL_MSG_TYPE_FLASH_ERASE_REQUEST, 0, NULL, 0, NULL, &eRxType, &u8RxDataLen, au8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_ERASE_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return(-1); - } - - return(u8RxDataLen); -} - - -/**************************************************************************** - * - * NAME: iBL_ReadFlash - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_ReadFlash(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer) -{ - uint8_t u8RxDataLen = 0; - uint8_t au8CmdBuffer[6]; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - - if(u8Length > 0xfc || pu8Buffer == NULL) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Parameter error\n"); - return -1; - } - - au8CmdBuffer[0] = (uint8_t)(u32Address >> 0) & 0xff; - au8CmdBuffer[1] = (uint8_t)(u32Address >> 8) & 0xff; - au8CmdBuffer[2] = (uint8_t)(u32Address >> 16) & 0xff; - au8CmdBuffer[3] = (uint8_t)(u32Address >> 24) & 0xff; - au8CmdBuffer[4] = u8Length; - au8CmdBuffer[5] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_FLASH_READ_REQUEST, 6, au8CmdBuffer, 0, NULL, &eRxType, &u8RxDataLen, pu8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_READ_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return -1; - } - - return u8RxDataLen; -} - - -/**************************************************************************** - * - * NAME: iBL_WriteFlash - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -static int iBL_WriteFlash(int iUartFd, uint32_t u32Address, uint8_t u8Length, uint8_t *pu8Buffer) -{ - uint8_t u8RxDataLen = 0; - uint8_t au8CmdBuffer[6]; - teBL_Response eResponse = 0; - teBL_MessageType eRxType = 0; - - if(u8Length > 0xfc || pu8Buffer == NULL) - { - return -1; - } - - au8CmdBuffer[0] = (uint8_t)(u32Address >> 0) & 0xff; - au8CmdBuffer[1] = (uint8_t)(u32Address >> 8) & 0xff; - au8CmdBuffer[2] = (uint8_t)(u32Address >> 16) & 0xff; - au8CmdBuffer[3] = (uint8_t)(u32Address >> 24) & 0xff; - au8CmdBuffer[4] = u8Length; - au8CmdBuffer[5] = 0; - - eResponse = eBL_Request(iUartFd, BL_TIMEOUT_1S, E_BL_MSG_TYPE_FLASH_PROGRAM_REQUEST, 4, au8CmdBuffer, u8Length, pu8Buffer, &eRxType, &u8RxDataLen, pu8Buffer); - if(eResponse != E_BL_RESPONSE_OK || eRxType != E_BL_MSG_TYPE_FLASH_PROGRAM_RESPONSE) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%s: Response %02x\n", __FUNCTION__, eResponse); - return -1; - } - - return u8Length; -} - - - -/****************************************************************************/ -/*** Local Functions ***/ -/****************************************************************************/ -/**************************************************************************** - * - * NAME: eBL_Request - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * void - ****************************************************************************/ -static teBL_Response eBL_Request(int iUartFd, int iTimeoutMicroseconds, teBL_MessageType eTxType, uint8_t u8HeaderLen, uint8_t *pu8Header, uint8_t u8TxLength, uint8_t *pu8TxData, - teBL_MessageType *peRxType, uint8_t *pu8RxLength, uint8_t *pu8RxData) -{ - /* Check data is not too long */ - if(u8TxLength > 0xfd) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Data too long\n"); - return(E_BL_RESPONSE_ERROR); - } - - /* Send message */ - if(iBL_WriteMessage(iUartFd, eTxType, u8HeaderLen, pu8Header, u8TxLength, pu8TxData) == -1) - { - return(E_BL_RESPONSE_ERROR); - } - /* Get the response to the request */ - return(eBL_ReadMessage(iUartFd, iTimeoutMicroseconds, peRxType, pu8RxLength, pu8RxData)); -} - - -/**************************************************************************** - * - * NAME: iBL_WriteMessage - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * int 0 if success - * -1 if an error occured - * - ****************************************************************************/ -static int iBL_WriteMessage(int iUartFd, teBL_MessageType eType, uint8_t u8HeaderLength, uint8_t *pu8Header, uint8_t u8Length, uint8_t *pu8Data) -{ - uint8_t u8CheckSum = 0; - int n; - - uint8_t au8Msg[256]; - - /* total message length cannot be > 255 bytes */ - if(u8HeaderLength + u8Length >= 0xfe) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Length too big\n"); - return(-1); - } - - /* Message length */ - au8Msg[0] = u8HeaderLength + u8Length + 2; - - /* Message type */ - au8Msg[1] = (uint8_t)eType; - - /* Message header */ - memcpy(&au8Msg[2], pu8Header, u8HeaderLength); - - /* Message payload */ - memcpy(&au8Msg[2 + u8HeaderLength], pu8Data, u8Length); - - DBG_vPrintf(TRACE_BOOTLOADER, "\nSend Data :"); - for(n = 0; n < u8HeaderLength + u8Length + 2; n++) - { - u8CheckSum ^= au8Msg[n]; - DBG_vPrintf(TRACE_BOOTLOADER, "%02x ", au8Msg[n]); - } - DBG_vPrintf(TRACE_BOOTLOADER, "%02x \r\n",u8CheckSum); - /* Message checksum */ - au8Msg[u8HeaderLength + u8Length + 2] = u8CheckSum; - - /* Write whole message to UART */ - UART_eWrite(iUartFd, au8Msg, u8HeaderLength + u8Length + 3); - - return(0); - -} - - -/**************************************************************************** - * - * NAME: eBL_ReadMessage - * - * DESCRIPTION: - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * void - ****************************************************************************/ -static teBL_Response eBL_ReadMessage(int iUartFd, int iTimeoutMicroseconds, teBL_MessageType *peType, uint8_t *pu8Length, uint8_t *pu8Data) -{ - - int n; - teStatus eStatus; - uint8_t au8Msg[256]; - uint8_t u8CalculatedCheckSum = 0; - uint8_t u8Length = 0; - teBL_Response eResponse = E_BL_RESPONSE_OK; - int iAttempts = 0; - int iBytesRead = 0; - int iTotalBytesRead = 0; - - /* Get the length byte */ - if((UART_eRead(iUartFd, iTimeoutMicroseconds, 1, &u8Length, &iBytesRead) != E_STATUS_OK) || (iBytesRead != 1)) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error getting length\n"); - return(E_BL_RESPONSE_NO_RESPONSE); - } - - DBG_vPrintf(TRACE_BOOTLOADER, "Got length %d\n", u8Length); - - /* Add length to checksum */ - u8CalculatedCheckSum ^= u8Length; - - do - { - /* Get the rest of the message */ - eStatus = UART_eRead(iUartFd, iTimeoutMicroseconds, u8Length - iTotalBytesRead, &au8Msg[iTotalBytesRead], &iBytesRead); - if(eStatus != E_STATUS_OK) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Error reading message from UART\n"); - return(E_BL_RESPONSE_NO_RESPONSE); - } - - iTotalBytesRead += iBytesRead; - iAttempts++; - - } while((iTotalBytesRead < u8Length) && (iBytesRead > 0 || iAttempts < 256)); // Right now we are receiving the chars one by one. - - if(iTotalBytesRead != u8Length) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Got %d bytes but expected %d after %d attempts: ", iTotalBytesRead, u8Length, iAttempts); - for(n = 0; n < iTotalBytesRead; n++) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%02x ", au8Msg[n]); - } - DBG_vPrintf(TRACE_BOOTLOADER, "\n"); - - return(E_BL_RESPONSE_NO_RESPONSE); - } - - /* Add rest of message to checksum */ - DBG_vPrintf(TRACE_BOOTLOADER, "Got Data "); - for(n = 0; n < u8Length; n++) - { - DBG_vPrintf(TRACE_BOOTLOADER, "%02x ", au8Msg[n]); - u8CalculatedCheckSum ^= au8Msg[n]; - } - DBG_vPrintf(TRACE_BOOTLOADER, "\n"); - - if(u8CalculatedCheckSum != 0x00) - { - DBG_vPrintf(TRACE_BOOTLOADER, "Checksum bad, got %02x expected %02x\n", u8CalculatedCheckSum, 0); - return(E_BL_RESPONSE_CRC_ERROR); - } - - *peType = au8Msg[0]; - *pu8Length = u8Length - 3; - eResponse = au8Msg[1]; - memcpy(pu8Data, &au8Msg[2], *pu8Length); - - return(eResponse); - -} - -#if 0 -/**************************************************************************** - * - * NAME: pcGetName - * - * DESCRIPTION: Lookup name representing an ID. - * - * PARAMETERS: Name RW Usage - * - * RETURNS: - * void - ****************************************************************************/ -static const char *pcGetName (tsIDNameLookup *psIDNameLookup, int iID) -{ - uint32_t i; - for (i = 0; i < psIDNameLookup->u32Length; i++) - { - if (psIDNameLookup->asPairs[i].iID == iID) - { - return psIDNameLookup->asPairs[i].pcName; - } - } - return "Unknown"; -} -#endif - - -/**************************************************************************** - * - * NAME: BL_DownloadExtensionToRamBeforeErase - * - * DESCRIPTION: - * - * - * - * PARAMETERS: Name RW Usage - * pu8Firmware R Pointer to firmware image to download - * pu64Address R Pointer to MAC Address. If NULL, read from flash. - * - * RETURNS: - * int 0 if success - * -1 if an error occurred - * - ****************************************************************************/ -int BL_DownloadExtensionToRamBeforeErase(int iUartFd, tsFW_Info *psFW_Info) -{ - int n; - uint8_t u8ChunkSize; - - - DBG_vPrintf(TRACE_BOOTLOADER, "\nText Start 0x%08x - Len %d bytes", psFW_Info->u32TextSectionLoadAddress, psFW_Info->u32TextSectionLength); - DBG_vPrintf(TRACE_BOOTLOADER, "\nBSS Start 0x%08x - Len %d bytes", psFW_Info->u32BssSectionLoadAddress, psFW_Info->u32BssSectionLength); - DBG_vPrintf(TRACE_BOOTLOADER, "\nReset entry point 0x%08x", ntohl(psFW_Info->u32ResetEntryPoint)); - DBG_vPrintf(TRACE_BOOTLOADER, "\nWake entry point 0x%08x", ntohl(psFW_Info->u32WakeUpEntryPoint)); - - for(n = 0; n < 0x0000097c;) - { - if((0x0000097c - n) > 128) - { - u8ChunkSize = 128; - } - else - { - u8ChunkSize = 0x0000097c - n; - } - - if(iBL_WriteRAM(iUartFd,0x04000400 + n, u8ChunkSize, (uint8_t*)FlashProgrammerExtension_JN5168_bin + n) == -1) - { - DBG_vPrintf(TRACE_BOOTLOADER, "\nProblem writing chunk"); - return(-1); - } - - DBG_vPrintf(TRACE_BOOTLOADER,"Wrote chunk length %d at address 0x%08x: 0x%08x\n", u8ChunkSize, 0x04000400 + n, ntohl(*((uint32_t*)(FlashProgrammerExtension_JN5168_bin + n)))); - - if (1) - { - uint8_t au8Buffer[128 + 1]; - if (iBL_ReadRAM(iUartFd,0x04000400 + n, u8ChunkSize, au8Buffer) == -1) - { - printf("Error reading at address 0x%08x\n", 0x04000400 + n); - return -1; - } - else - { - if (memcmp(FlashProgrammerExtension_JN5168_bin + n, au8Buffer, u8ChunkSize)) - { - printf("Data read at address 0x%08x is incorrect\n", 0x04000400 + n); - return -1; - } - } - } - - n += u8ChunkSize; - - DBG_vPrintf(TRACE_BOOTLOADER, "Loading: %3d%%\n", (n * 100) / 0x0000097c); - } - DBG_vPrintf(TRACE_BOOTLOADER, "\nStarting module application"); - iBL_RunRAM(iUartFd, 0x24050004); - BL_eSetBaudrate(iUartFd, 38400); - BL_EEPROMErase(iUartFd,1); - DBG_vPrintf(TRACE_BOOTLOADER, "\nErase OK"); - iBL_RunRAM(iUartFd, 0x66000000); - - return(0); -} - - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ - diff --git a/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.h b/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.h deleted file mode 100644 index 6604d9b1a5..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/JN51xx_BootLoader.h +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** - * - * MODULE: JN51xx_BootLoader - * - * COMPONENT: $RCSfile: JN51xx_BootLoader.h,v $ - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.1 $ - * - * DATED: $Date: 2008/10/17 10:22:11 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Lee Mitchell - * - * DESCRIPTION: - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -#ifndef JN51XX_BOOTLOADER_H_INCLUDED -#define JN51XX_BOOTLOADER_H_INCLUDED - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Include files ***/ -/****************************************************************************/ - -#include - -#include "Firmware.h" -#include "common.h" - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -/** Structure Contatining Imformation about connected device */ -typedef struct -{ - uint32_t u32ChipId; - uint32_t u32SupportedFirmware; - - uint32_t u32RamSize; - uint32_t u32FlashSize; - - uint32_t u32BootloaderVersion; - - uint32_t u32CustomerSettings; - - uint8_t au8MacAddress[8]; -} tsChipDetails; - -/****************************************************************************/ -/*** Local Function Prototypes ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Local Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - -teStatus BL_eGetChipDetails(int iUartFd, tsChipDetails *psChipDetails); -teStatus BL_eReprogram(int iUartFd, tsChipDetails *psChipDetails, tsFW_Info *psFWImage); -teStatus BL_eSetBaudrate(int iUartFd, uint32_t u32Baudrate); -teStatus BL_EEPROMErase(int iUartFd, uint32_t iEraseAll); - -int BL_DownloadExtensionToRamBeforeErase(int iUartFd,tsFW_Info *psFW_Info); - -/****************************************************************************/ -/*** Local Functions ***/ -/****************************************************************************/ - -#if defined __cplusplus -} -#endif - -#endif /* JN51XX_BOOTLOADER_H_INCLUDED */ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ - diff --git a/resources/archives/resources/prog_jennic-0.7/source/common.h b/resources/archives/resources/prog_jennic-0.7/source/common.h deleted file mode 100644 index c7f4ce4afc..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/common.h +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** - * - * MODULE: Jennic Module Programmer - * - * COMPONENT: Common Include - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -#ifndef COMMON_H_INCLUDED -#define COMMON_H_INCLUDED - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Include Files ***/ -/****************************************************************************/ - -#include - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#define FALSE 0 -#define TRUE 1 - -#define PUBLIC -#define PRIVATE static - -#define MAX_ERROR_STRING_LEN - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -typedef enum -{ - E_STATUS_OK, - E_STATUS_ERROR, - E_STATUS_ERROR_WRITING, - E_STATUS_ERROR_READING, - E_STATUS_FAILED_TO_OPEN_FILE, - E_STATUS_BAD_PARAMETER, - E_STATUS_NULL_PARAMETER, - E_STATUS_INCOMPATIBLE, -} teStatus; - - - - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -#if defined __cplusplus -} -#endif - -#endif /* COMMON_H_INCLUDED */ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ diff --git a/resources/archives/resources/prog_jennic-0.7/source/dbg.h b/resources/archives/resources/prog_jennic-0.7/source/dbg.h deleted file mode 100644 index 751905954b..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/dbg.h +++ /dev/null @@ -1,271 +0,0 @@ -/***************************************************************************** - * - * MODULE: Debug tracing - * - * COMPONENT: dbg.h - * - * AUTHOR: MRR - * - * DESCRIPTION: Provide printf style debug tracing - * - * $HeadURL: http://svn/sware/Projects/Cortex/Modules/DBG/Tags/CORTEX_DBG_1v2_RC1/Include/dbg.h $ - * - * $Revision: 21882 $ - * - * $LastChangedBy: mwild $ - * - * $LastChangedDate: 2009-11-13 13:30:19 +0000 (Fri, 13 Nov 2009) $ - * - * $Id: dbg.h 21882 2009-11-13 13:30:19Z mwild $ - * - ***************************************************************************** - * - * This software is owned by Jennic and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on Jennic products. You, and any third parties must reproduce - * the copyright and warranty notice and any other legend of ownership on each - * copy or partial copy of the software. - * - * THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER - * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, - * ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES, - * BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL, - * INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER. - * - * Copyright Jennic Ltd. 2007 All rights reserved - * - ****************************************************************************/ - -#ifndef DBG_H_ -#define DBG_H_ - -/****************************************************************************/ -/*** Include Files ***/ -/****************************************************************************/ - -#include "common.h" - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#ifdef __GNUC__ - -#ifdef DBG_VERBOSE -/* note - a warning will be issued if ASSERTION evaluates to FALSE at - * compile time */ -#define DBG_vAssert(STREAM, ASSERTION) \ - do { \ - const bool_t bAssertion = (ASSERTION); \ - typedef char DBG_STATIC_ASSERT_FAILED[bAssertion ? 0 : -1]; \ - bool_t bEval = ((STREAM) && !bAssertion) ? \ - dbg_vAssertImpl(__FILE__, \ - __LINE__, \ - #ASSERTION), TRUE : FALSE; \ - bEval = bEval; \ - } while(0) -#else -/* note - a warning will be issued if ASSERTION evaluates to FALSE at - * compile time */ -#define DBG_vAssert(STREAM, ASSERTION) \ - do { \ - const bool_t bAssertion = (ASSERTION); \ - typedef char DBG_STATIC_ASSERT_FAILED[bAssertion ? 0 : -1]; \ - bool_t bEval = ((STREAM) && !bAssertion) ? \ - dbg_vAssertImpl("", \ - 0, \ - #ASSERTION), TRUE : FALSE; \ - bEval = bEval; \ - } while(0) -#endif - -/* need to write this in such a way that FORMAT doesn't get linked in - * if STREAM isn't enabled, but all the ARGS still get evaluated in - * case they may cause side effects - * (may still need work to make this portable to non GCC compilers) */ -#ifdef DBG_VERBOSE -#define DBG_vPrintf(STREAM, FORMAT, ARGS...) \ - do { \ - const char *pccFormatIn = (FORMAT); \ - const char *pccFormat = (STREAM) ? \ - pccFormatIn : NULL; \ - dbg_vPrintfImpl(__FILE__, __LINE__, pccFormat, ## ARGS); \ - } while(0) -#else -#define DBG_vPrintf(STREAM, FORMAT, ARGS...) \ - do { \ - const char *pccFormatIn = (FORMAT); \ - const char *pccFormat = (STREAM) ? \ - pccFormatIn : NULL; \ - (STREAM) ? \ - dbg_vPrintfImpl("",0, pccFormat, ## ARGS) : \ - dbg_vPrintfNullImpl("",0, pccFormat, ## ARGS); \ - } while(0) -#endif - -/* define empty functions as inline, so they - * 1) don't take up any space - * 2) don't attempt to link to the library functions */ -#define DBG_INLINE static inline __attribute__((always_inline)) - -/* set up printf style warnings */ -#define DBG_FORMAT_PRINTF(A, B) -//__attribute__((format (__printf__, A, B))) - -#else - -#ifdef DBG_VERBOSE -/* note - a warning will be issued if ASSERTION evaluates to FALSE at - * compile time */ -#define DBG_vAssert(STREAM, ASSERTION) \ - do { \ - const bool_t bAssertion = (ASSERTION); \ - bool_t bEval = ((STREAM) && !bAssertion) ? \ - dbg_vAssertImpl(__FILE__, \ - __LINE__, \ - #ASSERTION), TRUE : FALSE; \ - bEval = bEval; \ - } while(0) -#else -/* note - a warning will be issued if ASSERTION evaluates to FALSE at - * compile time */ -#define DBG_vAssert(STREAM, ASSERTION) \ - do { \ - const bool_t bAssertion = (ASSERTION); \ - bool_t bEval = ((STREAM) && !bAssertion) ? \ - dbg_vAssertImpl("", \ - 0, \ - #ASSERTION), TRUE : FALSE; \ - bEval = bEval; \ - } while(0) -#endif - -/* need to write this in such a way that FORMAT doesnt get linked in - * if STREAM isnt enabled, but all the ARGS still get evaluated in - * case they may cause side effects - * (may still need work to make this portable to non GCC compilers) */ -#ifdef DBG_VERBOSE -#define DBG_vPrintf \ - dbg_vSetFileLine(__FILE__, __LINE__); \ - dbg_vPrintfImpl2 -#else -#define DBG_vPrintf \ - dbg_vSetFileLine("",0); \ - dbg_vPrintfImpl2 -#endif - -#define DBG_INLINE static -#define DBG_FORMAT_PRINTF(A, B) -#endif - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -typedef struct -{ - void (*prInitHardwareCb)(void); - void (*prPutchCb) (char c); - void (*prFlushCb) (void); - void (*prFailedAssertCb)(void); - -} tsDBG_FunctionTbl; - - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - -#if defined(DBG_ENABLE) || defined(DBG_C_) - -PUBLIC void DBG_vInit(tsDBG_FunctionTbl *psFunctionTbl); - -PUBLIC void DBG_vReset(void); - -void DBG_vDumpStack(void); - -#ifndef __GNUC__ -PUBLIC void dbg_vSetFileLine(const char *pcFileName, - uint32_t u32LineNumber); - -DBG_FORMAT_PRINTF(3, 4) -PUBLIC void dbg_vPrintfImpl2(bool_t bStream, - const char *pcFormat, - ...); -#endif - -DBG_FORMAT_PRINTF(3, 4) -PUBLIC void dbg_vPrintfImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcFormat, - ...); - -PUBLIC void dbg_vAssertImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcAssertionString); -#else /* defined(DBG_ENABLE) || defined(DBG_C_) */ - -/* need to make sure the parameters are still evaluated in a safe scope */ -#define DBG_vInit(psFunctionTbl) ((void)(psFunctionTbl)) - -#define DBG_vReset() ((void)0) - -#define DBG_vDumpStack() ((void)0) - -#ifndef __GNUC__ -DBG_INLINE -PUBLIC void dbg_vSetFileLine(const char *pcFileName, - uint32_t u32LineNumber){} - -DBG_FORMAT_PRINTF(3, 4) -DBG_INLINE -PUBLIC void dbg_vPrintfImpl2(bool_t bStream, - const char *pcFormat, - ...){} -#endif - -DBG_FORMAT_PRINTF(3, 4) -DBG_INLINE -PUBLIC void dbg_vPrintfImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcFormat, - ...){} - -DBG_INLINE -PUBLIC void dbg_vAssertImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcAssertionString){} -#endif /* defined(DBG_ENABLE) || defined(DBG_C_) */ - -DBG_INLINE -PUBLIC void dbg_vPrintfNullImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcFormat, - ...){} - -DBG_INLINE -PUBLIC void dbg_vAssertNullImpl(const char *Private_pcSrcFileName, - uint32_t Private_u32SrcLineNumber, - const char *pcAssertionString){} - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -extern const char DBG_gszVERSION[]; - -#if defined __cplusplus -}; -#endif - -#endif /*DBG_H_*/ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ diff --git a/resources/archives/resources/prog_jennic-0.7/source/main.c b/resources/archives/resources/prog_jennic-0.7/source/main.c deleted file mode 100644 index 6e45719f05..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/main.c +++ /dev/null @@ -1,342 +0,0 @@ -/**************************************************************************** - * - * MODULE: Jennic Module Programmer - * - * COMPONENT: Main file - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "JN51xx_BootLoader.h" -#include "Firmware.h" -#include "uart.h" -#include "ChipID.h" -#include "dbg.h" - -#define vDelay(a) usleep(a * 1000) - -int iVerbosity = 1; - -#ifndef VERSION -#error Version is not defined! -#else -const char *Version = "0.7(r" VERSION ")-Abeille"; -#endif - - -const char *cpSerialDevice = NULL; -const char *pcFirmwareFile = NULL; - -char *pcMAC_Address = NULL; -uint64_t u64MAC_Address; -uint64_t *pu64MAC_Address = NULL; - - -int iInitialSpeed=38400; -int iProgramSpeed=1000000; - - -void print_usage_exit(char *argv[]) -{ - fprintf(stderr, "Usage: %s\n", argv[0]); - fprintf(stderr, " Arguments:\n"); - fprintf(stderr, " -s --serial Serial device for 15.4 module, e.g. /dev/tts/1\n"); - fprintf(stderr, " Options:\n"); - fprintf(stderr, " -V --verbosity Verbosity level. Increses amount of debug information. Default 0.\n"); - fprintf(stderr, " -I --initialbaud Set initial baud rate\n"); - fprintf(stderr, " -P --programbaud Set programming baud rate\n"); - fprintf(stderr, " -e --erase Erase EEProm.\n"); - fprintf(stderr, " -f --firmware Load module flash with the given firmware file.\n"); - fprintf(stderr, " -v --verify Verify image. If specified, verify the image programmedwas loaded correctly.\n"); - fprintf(stderr, " -m --mac Set MAC address of device. If this is not specified, the address is read from flash.\n"); - exit(EXIT_FAILURE); -} - - -int main(int argc, char *argv[]) -{ - tsChipDetails sChipDetails; - int iUartFd; - struct termios sUartOptions; - - tsFW_Info sFW_Info; - // int iVerify = 0; // Tcharp38: unused - int iErase = 0; - printf("JennicModuleProgrammer Version: %s\n", Version); - - { - static struct option long_options[] = - { - {"help", no_argument, NULL, 'h'}, - {"verbosity", required_argument, NULL, 'V'}, - {"initialbaud", required_argument, NULL, 'I'}, - {"programbaud", required_argument, NULL, 'P'}, - {"serial", required_argument, NULL, 's'}, - {"erase", no_argument, NULL, 'e'}, - {"firmware", required_argument, NULL, 'f'}, - {"verify", no_argument, NULL, 'v'}, - {"mac", required_argument, NULL, 'm'}, - { NULL, 0, NULL, 0} - }; - signed char opt; - int option_index; - - while ((opt = getopt_long(argc, argv, "hs:V:f:vI:P:m:e", long_options, &option_index)) != -1) - { - switch (opt) - { - case 0: - - case 'h': - print_usage_exit(argv); - break; - case 'V': - iVerbosity = atoi(optarg); - break; - case 'v': - // iVerify = 1; - break; - case 'e': - iErase = 1; - break; - case 'I': - { - char *pcEnd; - errno = 0; - iInitialSpeed = strtoul(optarg, &pcEnd, 0); - if (errno) - { - printf("= ERROR: Initial baud rate '%s' cannot be converted to 32 bit integer (%s)\n", optarg, strerror(errno)); - print_usage_exit(argv); - } - if (*pcEnd != '\0') - { - printf("= ERROR: Initial baud rate '%s' contains invalid characters\n", optarg); - print_usage_exit(argv); - } - break; - } - case 'P': - { - char *pcEnd; - errno = 0; - iProgramSpeed = strtoul(optarg, &pcEnd, 0); - if (errno) - { - printf("= ERROR: Program baud rate '%s' cannot be converted to 32 bit integer (%s)\n", optarg, strerror(errno)); - print_usage_exit(argv); - } - if (*pcEnd != '\0') - { - printf("= ERROR: Program baud rate '%s' contains invalid characters\n", optarg); - print_usage_exit(argv); - } - break; - } - case 's': - cpSerialDevice = optarg; - break; - case 'f': - pcFirmwareFile = optarg; - break; - case 'm': - pcMAC_Address = optarg; - u64MAC_Address = strtoll(pcMAC_Address, (char **) NULL, 16); - pu64MAC_Address = &u64MAC_Address; - break; - - default: /* '?' */ - print_usage_exit(argv); - } - } - } - - if ((!cpSerialDevice)) - { - /* Missing parameters */ - print_usage_exit(argv); - } - - fflush(stdout); - - if (UART_eInitialise((char *)cpSerialDevice, iInitialSpeed, &iUartFd, &sUartOptions) != E_STATUS_OK) - { - fprintf(stderr, "= ERROR opening serial port\n"); - return -1; - } - - UART_eSetRTS(iUartFd, 1); // nRESET - UART_eSetDTR(iUartFd, 1); // nPROG - struct timespec ts; - ts.tv_sec = 0; - ts.tv_nsec = 100000000; // 100 ms - nanosleep(&ts, NULL); - UART_eSetRTS(iUartFd, 0); // nRESET - ts.tv_sec = 0; - ts.tv_nsec = 100000000; // 100 ms - nanosleep(&ts, NULL); - UART_eSetDTR(iUartFd, 0); // nPROG - - /* Read module details at initial baud rate */ - if (BL_eGetChipDetails(iUartFd, &sChipDetails) != E_STATUS_OK) - { - fprintf(stderr, "= ERROR: Failed to read chip ID.\n"); - fprintf(stderr, "= Check Zigate GPIO control (flash mode set + reset pulse required) !\n"); - return -1; - } - - - if (iVerbosity > 0) - { - const char *pcPartName; - - switch (sChipDetails.u32ChipId) - { - case (CHIP_ID_JN5148_REV2A): pcPartName = "JN5148"; break; - case (CHIP_ID_JN5148_REV2B): pcPartName = "JN5148"; break; - case (CHIP_ID_JN5148_REV2C): pcPartName = "JN5148"; break; - case (CHIP_ID_JN5148_REV2D): pcPartName = "JN5148J01"; break; - case (CHIP_ID_JN5148_REV2E): pcPartName = "JN5148Z01"; break; - - case (CHIP_ID_JN5142_REV1A): pcPartName = "JN5142"; break; - case (CHIP_ID_JN5142_REV1B): pcPartName = "JN5142"; break; - case (CHIP_ID_JN5142_REV1C): pcPartName = "JN5142J01"; break; - - case (CHIP_ID_JN5168): - case (CHIP_ID_JN5168_COG07A): - case (CHIP_ID_JN5168_COG07B): - pcPartName = "JN5168"; break; - - case (CHIP_ID_JN5169): pcPartName = "JN5169"; break; - - default: pcPartName = "Unknown"; break; - } - - printf("- Detected Chip: %s\n", pcPartName); - if (!strcmp(pcPartName, "Unknown")) - printf("- u32ChipId=0x%08x\n", sChipDetails.u32ChipId); - printf("- MAC Address : %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n", - sChipDetails.au8MacAddress[0] & 0xFF, sChipDetails.au8MacAddress[1] & 0xFF, sChipDetails.au8MacAddress[2] & 0xFF, sChipDetails.au8MacAddress[3] & 0xFF, - sChipDetails.au8MacAddress[4] & 0xFF, sChipDetails.au8MacAddress[5] & 0xFF, sChipDetails.au8MacAddress[6] & 0xFF, sChipDetails.au8MacAddress[7] & 0xFF); - } - - - if (iInitialSpeed != iProgramSpeed) - { - if (iVerbosity > 1) - { - printf("Setting baudrate: %d\n", iProgramSpeed); - } - - /* Talking at initial speed - change bootloader to programming speed */ - if (BL_eSetBaudrate(iUartFd, iProgramSpeed) != E_STATUS_OK) - { - printf("= ERROR setting bootloader baudrate\n"); - return -1; - } - /* change local port to programming speed */ - if (UART_eSetBaudRate(iUartFd, &sUartOptions, iProgramSpeed) != E_STATUS_OK) - { - printf("= ERROR setting UART baudrate\n"); - return -1; - } - } - - - if (pcFirmwareFile) - { - /* Have file to program */ - - if (iFW_Open(&sFW_Info, (char *)pcFirmwareFile)) - { - /* Error with file. FW module has displayed error so just exit. */ - return -1; - } - - if (BL_eReprogram(iUartFd, &sChipDetails, &sFW_Info) != E_STATUS_OK) - { - return -1; - } - } - - if (iErase) - { - - /*if (iFW_Open(&sFW_Info, (char *)"FlashProgrammerExtension_JN5168.bin")) - { - printf("= ERROR opening FlashProgrammerExtension_JN5168.bin \n"); - return -1; - }*/ - BL_DownloadExtensionToRamBeforeErase(iUartFd,&sFW_Info); - - printf("Erase EEPROM \n"); - } - - printf("= Success\n"); - return 0; -} - - -void dbg_vPrintfImpl(const char *pcFile, uint32_t u32Line, const char *pcFormat, ...) -{ - va_list argp; - va_start(argp, pcFormat); -#ifdef DBG_VERBOSE - printf("%s:%d ", pcFile, u32Line); -#endif /* DBG_VERBOSE */ - vprintf(pcFormat, argp); - return; -} - diff --git a/resources/archives/resources/prog_jennic-0.7/source/uart.c b/resources/archives/resources/prog_jennic-0.7/source/uart.c deleted file mode 100644 index 36c29e4a76..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/uart.c +++ /dev/null @@ -1,523 +0,0 @@ - -/**************************************************************************** - * - * MODULE: Jennic Module Programmer - * - * COMPONENT: Serial port handling - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ -/****************************************************************************/ -/*** Include files ***/ -/****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#ifdef __linux__ -#include -#elif defined(__MACH__) && defined(__APPLE__) -#include -#endif - -#include "uart.h" -#include "common.h" -#include "dbg.h" - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#ifdef DEBUG_UART -#define TRACE_UART TRUE -#else -#define TRACE_UART FALSE -#endif - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Local Function Prototypes ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Local Variables ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ -/**************************************************************************** - * - * NAME: UART_eInitialise - * - * DESCRIPTION: - * Initialise a UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eInitialise(char *pcDevice, int iBaudRate, int *piFileDescriptor, struct termios *psOptions) -{ - - DBG_vPrintf(TRACE_UART, "Using UART device %s\n", pcDevice); - - //open the device(com port) to be non-blocking (read will return immediately) - *piFileDescriptor = open(pcDevice, O_RDWR | O_NOCTTY);// | O_NONBLOCK | O_NDELAY); - if (*piFileDescriptor < 0) - { - DBG_vPrintf(TRACE_UART, "Failed to open device!\n", pcDevice); - return E_STATUS_FAILED_TO_OPEN_FILE; - } - - if (tcgetattr(*piFileDescriptor, psOptions) == -1) - { - DBG_vPrintf(TRACE_UART, "Failed to get port settings!\n"); - return E_STATUS_ERROR; - } - -#ifdef __linux__ - psOptions->c_iflag &= ~(INPCK | ISTRIP | INLCR | IGNCR | ICRNL | IUCLC | IXON | IXANY | IXOFF); -#elif defined(__MACH__) && defined(__APPLE__) - psOptions->c_iflag &= ~(INPCK | ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXANY | IXOFF); -#else -#error "No support for this architecture (yet)" -#endif - - psOptions->c_iflag = IGNBRK | IGNPAR; -#ifdef __linux__ - psOptions->c_oflag &= ~(OPOST | OLCUC | ONLCR | OCRNL | ONOCR | ONLRET); -#elif defined(__MACH__) && defined(__APPLE__) - psOptions->c_oflag &= ~(OPOST | ONLCR | OCRNL | ONOCR | ONLRET); -#else -#error "No support for this architecture (yet)" -#endif - - psOptions->c_cflag &= ~(CSIZE | CSTOPB | PARENB | CRTSCTS); - psOptions->c_cflag |= CS8 | CREAD | HUPCL | CLOCAL; - psOptions->c_lflag &= ~(ISIG | ICANON | ECHO | IEXTEN); - - fcntl(*piFileDescriptor, F_SETFL, O_NONBLOCK); - - return UART_eSetBaudRate(*piFileDescriptor, psOptions, iBaudRate); - -} - - -/**************************************************************************** - * - * NAME: UART_eClose - * - * DESCRIPTION: - * Close the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eClose(int iFileDescriptor) -{ - - close(iFileDescriptor); - - return E_STATUS_OK; -} - - -/**************************************************************************** - * - * NAME: UART_eSetBaudRate - * - * DESCRIPTION: - * Sets the baud rate of the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eSetBaudRate(int iFileDescriptor, struct termios *psOptions, int iBaudRate) -{ - int iBaud; - -#if (defined(__MACH__) && defined(__APPLE__)) - int bSetNonPOSIXBaudRate = 0; -#endif - - DBG_vPrintf(TRACE_UART, "Changing baud rate to %d\n", iBaudRate); - - switch (iBaudRate) - { - - case 38400: iBaud = B38400; - break; - - case 115200: iBaud = B115200; - break; - - case 230400: iBaud = B230400; - break; - -#ifdef B460800 - case 460800: iBaud = B460800; - break; -#endif - -#ifdef B500000 - case 500000: iBaud = B500000; - break; -#endif - -#ifdef B921600 - case 921600: iBaud = B921600; - break; -#endif - -#ifdef B1000000 - case 1000000: iBaud = B1000000; - break; -#endif - - default: -#if !(defined(__MACH__) && defined(__APPLE__)) - DBG_vPrintf(TRACE_UART, "Unsupported baud rate: %d\n", iBaudRate); - return E_STATUS_BAD_PARAMETER; -#else - bSetNonPOSIXBaudRate = 1; - iBaud = B38400; -#endif - } - - if(tcflush(iFileDescriptor, TCIOFLUSH) == -1) - { - DBG_vPrintf(TRACE_UART, "Error flushing uart\n"); - return E_STATUS_ERROR; - } - - if(cfsetispeed(psOptions, iBaud) == -1) - { - DBG_vPrintf(TRACE_UART, "Error setting input speed\n"); - return E_STATUS_ERROR; - } - - if(cfsetospeed(psOptions, iBaud) == -1) - { - DBG_vPrintf(TRACE_UART, "Error setting output speed\n"); - return E_STATUS_ERROR; - } - - if(tcsetattr(iFileDescriptor, TCSANOW, psOptions) == -1) - { - DBG_vPrintf(TRACE_UART, "Error changing port settings\n"); - return E_STATUS_ERROR; - } - -#if defined(__MACH__) && defined(__APPLE__) - - if(bSetNonPOSIXBaudRate) - { - DBG_vPrintf(TRACE_UART, "Trying to set non-POSIX baud rate: %d\n", iBaudRate); - // The IOSSIOSPEED ioctl can be used to set arbitrary baud rates - // other than those specified by POSIX. The driver for the underlying serial hardware - // ultimately determines which baud rates can be used. This ioctl sets both the input - // and output speed. - - speed_t speed = iBaudRate; - if(ioctl(iFileDescriptor, IOSSIOSPEED, &speed) == -1) - { - DBG_vPrintf(TRACE_UART, "Error calling ioctl(..., IOSSIOSPEED, ...) %s(%d).\n", strerror(errno), errno); - return E_STATUS_BAD_PARAMETER; - } - } - -#endif - - return E_STATUS_OK; -} - -/**************************************************************************** - * - * NAME: UART_eSetRTS - * - * DESCRIPTION: - * Set or clear the RTS signal for the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eSetRTS(int iFileDescriptor, int bValue) -{ - - int status; - - if(ioctl(iFileDescriptor, TIOCMGET, &status) == -1) - { - perror("UART_eSetRTS(): TIOCMGET"); - return E_STATUS_ERROR; - } - if(bValue) - { - status |= TIOCM_RTS; - } - else - { - status &= ~TIOCM_RTS; - } - if(ioctl(iFileDescriptor, TIOCMSET, &status) == -1) - { - perror("UART_eSetRTS(): TIOCMSET"); - return E_STATUS_ERROR; - } - - return E_STATUS_OK; -} - -/**************************************************************************** - * - * NAME: UART_eSetDTR - * - * DESCRIPTION: - * Set or clear the DTR signal for the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eSetDTR(int iFileDescriptor, int bValue) -{ - - int status; - - if(ioctl(iFileDescriptor, TIOCMGET, &status) == -1) - { - perror("UART_eSetDTR(): TIOCMGET"); - return E_STATUS_ERROR; - } - if (bValue) - { - status |= TIOCM_DTR; - } - else - { - status &= ~TIOCM_DTR; - } - if(ioctl(iFileDescriptor, TIOCMSET, &status) == -1) - { - perror("UART_eSetDTR(): TIOCMSET"); - return E_STATUS_ERROR; - } - - return E_STATUS_OK; -} - -/**************************************************************************** - * - * NAME: UART_eFlush - * - * DESCRIPTION: - * Flush the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eFlush(int iFileDescriptor) -{ - uint8_t u8Data; - int iBytesRead; - - if(tcflush(iFileDescriptor, TCIOFLUSH) != 0) - { - return E_STATUS_ERROR; - } - - do - { - UART_eRead(iFileDescriptor, 100, 1, &u8Data, &iBytesRead); - } while(iBytesRead > 0); - - - return E_STATUS_OK; - -} - - -/**************************************************************************** - * - * NAME: UART_eRead - * - * DESCRIPTION: - * Reads from the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eRead(int iFileDescriptor, int iTimeoutMicroseconds, int iBufferLen, uint8_t *pu8Buffer, int *piBytesRead) -{ - int iResult = -1; - struct timeval sTimeout; - fd_set sDescriptors; - int iMaxFd; - char acErrorString[MAX_ERROR_STRING_LEN] = {0}; - - if(pu8Buffer == NULL) - { - return E_STATUS_NULL_PARAMETER; - } - - *piBytesRead = 0; - - sTimeout.tv_usec = iTimeoutMicroseconds % 1000000; - sTimeout.tv_sec = iTimeoutMicroseconds / 1000000; - - FD_ZERO(&sDescriptors); - iMaxFd = iFileDescriptor; - FD_SET(iFileDescriptor, &sDescriptors); - - iResult = select(iMaxFd + 1, &sDescriptors, NULL, NULL, &sTimeout); - if (iResult < 0) - { - strerror_r(errno, acErrorString, sizeof(acErrorString)); - DBG_vPrintf(TRACE_UART, "Error reading from UART: %s\n", acErrorString); - return E_STATUS_ERROR; - } - else if (iResult == 0) - { - DBG_vPrintf(TRACE_UART, "Timeout reading from UART\n"); - } - else - { - if (FD_ISSET(iFileDescriptor, &sDescriptors)) - { - iResult = read(iFileDescriptor, (uint8_t*)pu8Buffer, iBufferLen); - if (iResult > 0) - { -// DBG_vPrintf(TRACE_UART, "Got 0x%02x %c (iResult=%d)\n", *pu8Data, *pu8Data, iResult); -// DBG_vPrintf(TRACE_UART, "[URX%d]", iResult); - - *piBytesRead = iResult; - } - else - { -// DBG_vPrintf(TRACE_UART, "[URX0]"); - - iResult = 0; - } - } - else - { - DBG_vPrintf(TRACE_UART, "FD_ISn't set!\n"); - } - } - - return E_STATUS_OK; - -} - - -/**************************************************************************** - * - * NAME: UART_eWrite - * - * DESCRIPTION: - * Write to the specified UART - * - * RETURNS: - * teStatus - * - ****************************************************************************/ -teStatus UART_eWrite(int iFileDescriptor, uint8_t *pu8Data, int iLength) -{ - - int iBytesWritten; - int iTotalBytesWritten = 0; - - do - { - iBytesWritten = write(iFileDescriptor, &pu8Data[iTotalBytesWritten], iLength - iTotalBytesWritten); - if(iBytesWritten < 0) - { - if(errno != EAGAIN) - { - DBG_vPrintf(TRACE_UART, "Could not write to UART!\n"); - return E_STATUS_ERROR_WRITING; - } - } - else - { - iTotalBytesWritten += iBytesWritten; - } - } while(iTotalBytesWritten < iLength); - - return E_STATUS_OK; - -} - - -/****************************************************************************/ -/*** Local Functions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ diff --git a/resources/archives/resources/prog_jennic-0.7/source/uart.h b/resources/archives/resources/prog_jennic-0.7/source/uart.h deleted file mode 100644 index efd37f2b9c..0000000000 --- a/resources/archives/resources/prog_jennic-0.7/source/uart.h +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - * - * MODULE: Jennic Module Programmer - * - * COMPONENT: Serial port handling - * - * VERSION: $Name: $ - * - * REVISION: $Revision: 1.2 $ - * - * DATED: $Date: 2009/03/02 13:33:44 $ - * - * STATUS: $State: Exp $ - * - * AUTHOR: Matt Redfearn - * - * DESCRIPTION: - * - * - * LAST MODIFIED BY: $Author: lmitch $ - * $Modtime: $ - * - **************************************************************************** - * - * This software is owned by NXP B.V. and/or its supplier and is protected - * under applicable copyright laws. All rights are reserved. We grant You, - * and any third parties, a license to use this software solely and - * exclusively on NXP products [NXP Microcontrollers such as JN5148, JN5142, JN5139]. - * You, and any third parties must reproduce the copyright and warranty notice - * and any other legend of ownership on each copy or partial copy of the - * software. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - - * Copyright NXP B.V. 2012. All rights reserved - * - ***************************************************************************/ - -#ifndef UART_H_INCLUDED -#define UART_H_INCLUDED - -#if defined __cplusplus -extern "C" { -#endif - -/****************************************************************************/ -/*** Include Files ***/ -/****************************************************************************/ - -#include -#include "common.h" - -/****************************************************************************/ -/*** Macro Definitions ***/ -/****************************************************************************/ - -#define UART_USES_SELECT - -/****************************************************************************/ -/*** Type Definitions ***/ -/****************************************************************************/ - -/****************************************************************************/ -/*** Exported Functions ***/ -/****************************************************************************/ - -teStatus UART_eInitialise(char *pcDevice, int iBaudRate, int *piFileDescriptor, struct termios *psOptions); -teStatus UART_eClose(int iFileDescriptor); -teStatus UART_eSetBaudRate(int iFileDescriptor, struct termios *psOptions, int iBaudRate); -teStatus UART_eSetRTS(int iFileDescriptor, int bValue); -teStatus UART_eSetDTR(int iFileDescriptor, int bValue); -teStatus UART_eFlush(int iFileDescriptor); -teStatus UART_eRead(int iFileDescriptor, int iTimeoutMicroseconds, int iBufferLen, uint8_t *pu8Buffer, int *piBytesRead); -teStatus UART_eWrite(int iFileDescriptor, uint8_t *pu8Data, int iLength); - -/****************************************************************************/ -/*** Exported Variables ***/ -/****************************************************************************/ - -#if defined __cplusplus -} -#endif - -#endif /* UART_H_INCLUDED */ - -/****************************************************************************/ -/*** END OF FILE ***/ -/****************************************************************************/ diff --git a/resources/archives/upload.php b/resources/archives/upload.php deleted file mode 100644 index 0226e5d297..0000000000 --- a/resources/archives/upload.php +++ /dev/null @@ -1,56 +0,0 @@ -"; - $uploadOk = 1; - } else { - echo "Le fichier choisi n'est pas une image PNG.
"; - $uploadOk = 0; - } - } - - // Check if file already exists, in my case I don't let the choise I also write on the previous one. - /* - if (file_exists($target_file)) { - echo "Sorry, file already exists."; - $uploadOk = 0; - } - */ - // Check file size - if ($_FILES["fileToUpload"]["size"] > 5000000) { - echo "Désolé. Votre image est trop grande.
"; - $uploadOk = 0; - } - - // Allow certain file formats - // if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { - if( $imageFileType != "png" ) { - echo "Désolé. Seule le format 'PNG' est supporté.
"; - $uploadOk = 0; - } - - // Check if $uploadOk is set to 0 by an error - if ($uploadOk == 0) { - // echo "Sorry, your file was not uploaded.
"; - // if everything is ok, try to upload file - } else { - if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { - echo "Le fichier ". basename( $_FILES["fileToUpload"]["name"]). " a été installé.
"; - } else { - echo "Désolé. Une erreur a eu lieu pendant le transfert.
"; - } - } - echo "La page devrait se rafraichir dans 5 secondes avec le graph du reseau.
"; - echo "Si ca n'est pas le cas il vous faudra la recharger manuellement.
"; - - header("Refresh:5; url=NetworkGraph.php"); -?> diff --git a/resources/archives/usbreset/README.txt b/resources/archives/usbreset/README.txt deleted file mode 100644 index 93f110079e..0000000000 --- a/resources/archives/usbreset/README.txt +++ /dev/null @@ -1,19 +0,0 @@ -Based on https://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line - - - -The run the following commands in terminal: - -Compile the program: - -$ cc usbreset.c -o usbreset -Get the Bus and Device ID of the USB device you want to reset: - -$ lsusb -Bus 002 Device 003: ID 0fe9:9010 DVICO -Make our compiled program executable: - -$ chmod +x usbreset -Execute the program with sudo privilege; make necessary substitution for and ids as found by running the lsusb command: - -$ sudo ./usbreset /dev/bus/usb/002/003 \ No newline at end of file diff --git a/resources/archives/usbreset/makefile b/resources/archives/usbreset/makefile deleted file mode 100644 index f7774cc09f..0000000000 --- a/resources/archives/usbreset/makefile +++ /dev/null @@ -1,24 +0,0 @@ - -source := usbreset.c - -CFLAGS = -Wall -O2 - -# OBJ := $(source:.c=.o) -BUILDDIR = ../../tmp/usbreset_builddir/ -OBJ := $(addprefix $(BUILDDIR), $(source:.c=.o)) - -TARGET = ../../tmp/usbreset - -all: $(BUILDDIR) $(TARGET) - -$(TARGET): $(OBJ) - $(CC) $^ $(LDFLAGS) $(PROJ_LDFLAGS) -o $@ - -$(BUILDDIR)%.o: %.c - $(CC) -I. $(CFLAGS) $(PROJ_CFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) - -$(BUILDDIR): - mkdir -p $(BUILDDIR) diff --git a/resources/archives/usbreset/usbreset.c b/resources/archives/usbreset/usbreset.c deleted file mode 100644 index 76c30c060b..0000000000 --- a/resources/archives/usbreset/usbreset.c +++ /dev/null @@ -1,40 +0,0 @@ -/* usbreset -- send a USB port reset to a USB device */ - -#include -#include -#include -#include -#include - -#include - - -int main(int argc, char **argv) -{ - const char *filename; - int fd; - int rc; - - if (argc != 2) { - fprintf(stderr, "Usage: usbreset device-filename\n"); - return 1; - } - filename = argv[1]; - - fd = open(filename, O_WRONLY); - if (fd < 0) { - perror("Error opening output file"); - return 1; - } - - printf("Resetting USB device %s\n", filename); - rc = ioctl(fd, USBDEVFS_RESET, 0); - if (rc < 0) { - perror("Error in ioctl"); - return 1; - } - printf("Reset successful\n"); - - close(fd); - return 0; -} diff --git a/resources/archives/verification.php b/resources/archives/verification.php deleted file mode 100644 index cf6086080a..0000000000 --- a/resources/archives/verification.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/resources/archives/verification.sh b/resources/archives/verification.sh deleted file mode 100644 index fe05cac12e..0000000000 --- a/resources/archives/verification.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env bash - -MOSQUITTO_SUB=$(which mosquitto_sub) -MOSQUITTO_PUB=$(which mosquitto_pub) -MOSQUITTO_BIN=$(which mosquitto) -HOST=localhost -IDENTSUB="AbeilleSubVerif" -IDENTPUB="AbeillePubVerif" -PORT=1883 - -USER="jeedom" -PASS="jeedom" - -FIFO=/tmp/AbeilleDeamonInput -MLOG=/var/log/mosquitto/mosquitto.log - - - - -## Zigate tests -KEY="OK, au moins un port USB found sur lequel peut être la zigate." -[[ -e $(ls -l /dev/ttyUSB* ) ]] && KEY="WARN: Missing Zigate USB Key" -echo $KEY -ls -l /dev/ttyUSB* - -GRP="OK, www-data belongs to dialout" -[[ $(groups www-data | grep -c dialout ) -eq 0 ]] && GRP="ERROR: www-data does not belong to dial-out" -echo $GRP - - -## Up Link -#Verifier la presence du fichier pipe -PIPE="ERROR, File $FIFO was not found" -[[ -e ${FIFO} ]] && PIPE="OK, File $FIFO was found" -echo $PIPE - -## les demons qui tournent -DEMON_NB="Ok, 4 demons tournent" -[[ $(ps -ef | grep "plugins/Abeille" | grep -v grep | wc -l) -ne 4 ]] && DEMON_NB="Error, nous n'avons pas nos 4 demons qui tournent" -echo $DEMON - - -## MQTT -MSQTT="OK, mosquitto_sub programm found" -[[ -z $(which mosquitto_sub) ]] && MQSTT="ERROR: mosquitto_sub programm not found" -echo $MSQTT - -MSQTT="OK, mosquitto_pub programm found" -[[ -z $(which mosquitto_pub) ]] && MQSTT="ERROR: mosquitto_pub programm not found" -echo $MSQTT - - - -MSQTT="OK, Service mosquitto is running" -[[ $(/etc/init.d/mosquitto status | egrep -ic "not|fail") -ne 0 ]] && MQSTT="ERROR, mosquitto service is not running" -echo $MQSTT - - - -##--------------------------------------------------------------------------------------------- -echo -e "\nChecking connection to mosquitto" - -TOPIC="Abeille/Verif" -MESSAGE="c est moi, timestamp: $(date +%s)" - -[[ -f sub1.log ]] && rm sub1.log - -## nohup $MOSQUITTO_SUB -h $HOST -i $IDENTSUB -p $PORT -t $TOPIC -u $USER -P $PASS -q 0 -C 1 >sub1.log 2>&1 & -nohup mosquitto_sub -h localhost -i tutu -p 1883 -t $TOPIC -u jeedom -P jeedom -q 0 -C 1 >sub1.log 2>&1 & -SUBPID=$! - -sleep 3 - -$MOSQUITTO_PUB -h $HOST -i $IDENTPUB -t $TOPIC -u $USER -P $PASS -m "$MESSAGE" -q 0 -d - -n=5 -while [[ $n -gt 0 ]] - do - cat sub1.log - sleep 1 - echo $n seconds - let n-- - [[ $(wc -l < sub1.log) -gt 0 ]] && break - done; - -MSG="ERROR, message was improperly transmitted or not at all" -[[ $(wc -l < sub1.log) -eq 1 ]] && [[ $(cat sub1.log) == "$MESSAGE" ]] && MSG="OK, message was properly transmitted" -echo "$MSG // expected: $MESSAGE //transmitted: $(cat sub1.log) " - -##--------------------------------------------------------------------------------------------- -## Test lien mosquitto->zigate->mosquitto - -echo -e "\nChecking connection mosquitto->zigate->mosquitto" -[[ -f sub2.log ]] && rm sub2.log - -TOPIC="Abeille/0000/SW-SDK" -##nohup $MOSQUITTO_SUB -h $HOST -i $IDENTSUB -p $PORT -t $TOPIC -u $USER -P $PASS -q 0 -C 1 >sub.log 2>&1 & -nohup mosquitto_sub -h localhost -i toto -p 1883 -t $TOPIC -u jeedom -P jeedom -q 0 -C 1 >sub2.log 2>&1 & -SUBPID=$! - -sleep 3 - -TOPIC="CmdAbeille/0000/getZgVersion" -MESSAGE="Version" -$MOSQUITTO_PUB -h $HOST -i $IDENTPUB -t $TOPIC -u $USER -P $PASS -m "$MESSAGE" -q 0 -d - -n=5 -while [[ $n -gt 0 ]] - do - cat sub2.log - sleep 1 - echo $n seconds - let n-- - [[ $(wc -l < sub2.log) -gt 0 ]] && break - done; - -MSG="ERROR, on ne parvient pas a dialoguer avec la zigate" -[[ $(wc -l < sub2.log) -eq 1 ]] && [[ $(cat sub2.log) == "030D" ]] && MSG="OK, la zigate repond" -echo "$MSG // zigate version expected: 030D // zigate version received: $(cat sub2.log) " - -##--------------------------------------------------------------------------------------------- - - -## On ne peut pas faire le tail sur le log, on n'a pas les droits -##echo -e "\n Mosquitto log" -##tail -5 /var/log/mosquitto/mosquitto.log - -##--------------------------------------------------------------------------------------------- -## As 1 msg should have received, the sub should have terminate itself. -##MSG="OK, no remaining $MOSQUITTO_SUB to kill" -##[[ ! -z $(ps h -o pid -p $SUBPID) ]] && MSG="ERROR, killing remaining $MOSQUITTO_SUB PID $SUBPID" && kill $SUBPID -##echo $MSG - -## COMMENT: transmission aleatoire du message, a investiguer..... -##--------------------------------------------------------------------------------------------- - -## -## -echo "Qui utilise les ports ttyUSB*" -fuser /dev/ttyUSB* -echo "Qui utilise les pipe" -fuser $FIFO -echo "Liste des processus appartenant a www-data" -ps -ef | grep www-data - - - -# -#Envoyer a Mosquitto un demande de version et verifier qu on a un reponse amosquitto -# -#Envoyer par jeedom un message a mosquitto et verifier qu on le recoit -# -#envoyer un messaege de jeedom a mosquitto et verifier qu il revient diff --git a/resources/archives/xmlhttpConfChange.php b/resources/archives/xmlhttpConfChange.php deleted file mode 100644 index 57168cfc1b..0000000000 --- a/resources/archives/xmlhttpConfChange.php +++ /dev/null @@ -1,14 +0,0 @@ -'.$_GET['payload'].'<- vers ->'.$_GET['topic'].'<-'; - - $parameters_info = Abeille::getParameters(); - - Abeille::CmdAffichage($_GET['topic'],$_GET['payload']); - - // echo "Ending - "; - - ?> diff --git a/resources/archives/xmlhttpMQTTSend.php b/resources/archives/xmlhttpMQTTSend.php deleted file mode 100644 index bc666d327f..0000000000 --- a/resources/archives/xmlhttpMQTTSend.php +++ /dev/null @@ -1,52 +0,0 @@ -'.$_GET['payload'].'<- vers ->'.$_GET['topic'].'<-'; - - $queueKeyXmlToAbeille = msg_get_queue(queueKeyXmlToAbeille); - // $queueKeyXmlToCmd = msg_get_queue(queueKeyXmlToCmd); - $queueKeyXmlToCmd = msg_get_queue($abQueues['xToCmd']['id']); - /* - $parameters_info = Abeille::getParameters(); - - $publish = new Mosquitto\Client(); - - $publish->setCredentials( $parameters_info['AbeilleUser'], $parameters_info['AbeillePass'] ); - - $publish->connect( $parameters_info['AbeilleAddress'], $parameters_info['AbeillePort'], 60 ); - - $publish->publish( substr($parameters_info["AbeilleTopic"],0,-1).str_replace('_','/',$_GET['topic']), $_GET['payload'], $parameters_info["AbeilleQos"], 0); - for ($i = 0; $i < 100; $i++) { - // Loop around to permit the library to do its work - $publish->loop(1); - } - $publish->disconnect(); - unset($publish); -*/ - - $msg = array( - 'topic' => str_replace('_','/',$_GET['topic']), - 'payload' => $_GET['payload'], - ); - - if (msg_send( $queueKeyXmlToAbeille, 1, json_encode($msg), false, false)) { - echo "(fichier xmlhttpMQQTSend) added to queue: ".json_encode($msg); - // print_r(msg_stat_queue($queue)); - } - else { - echo "debug","(fichier xmlhttpMQQTSend) could not add message to queue"; - } - - if (msg_send($queueKeyXmlToCmd, 1, json_encode($msg), false, false)) { - echo "(fichier xmlhttpMQQTSend) added to queue: ".json_encode($msg); - // print_r(msg_stat_queue($queue)); - } - else { - echo "debug","(fichier xmlhttpMQQTSend) could not add message to queue"; - } - - echo "Ending - "; -?>