51 Commits

Author SHA1 Message Date
d479e17d38 Add build-deb.sh again 2020-07-16 19:46:51 +02:00
f9e2edcb09 Adjust Debian rules to cmake 2020-07-16 19:41:01 +02:00
7e5bcaaea2 Add static library (#174) 2020-07-16 18:35:49 +02:00
0dcf1c531e Define SOVERSION (#174) 2020-07-16 18:35:45 +02:00
f498cf1a37 Add Dockerfile.test to run tests from docker (#165) 2020-07-08 15:47:03 +02:00
3897ac72da Rewrite ccpp.yml to use multi-line command (#165)
For enhanced readability, split the commands over several lines.
2020-07-08 15:47:03 +02:00
e89f929f6c Fix bug, test script should accept both 1 and 2 arguments (#165)
Usefull when placing the output in another directory.
2020-07-08 15:47:03 +02:00
69019312c9 Enforce tests execute ok (#165) 2020-07-08 15:47:03 +02:00
2d09cfc41d Move invalid_length*.hex to test/unsupported-frames (#165) 2020-07-08 15:47:03 +02:00
446cf41a2a Move RVD235 out of unsupported
Especially after the recent changes, we can consider Siemens RVD235 as
supported.
2020-07-08 12:48:26 +02:00
ec4bff91db Remove duplicate
rvd235.hex is the same as siemens_rvd235.hex
2020-07-08 12:48:26 +02:00
fe2b4ec024 Add more test frames
Aquametro CALEC MB (Heat)
Eastron SDM630 (Electricity)
Sensus PolluCom E (Heat)
Tecson (Oil)
2020-07-08 11:54:38 +02:00
8d781ad240 Improve product strings for Aquametro and Sensus 2020-07-08 11:54:38 +02:00
67ea2d3900 Implement all of VIF extensions for 0xFB (#166) 2020-07-08 11:31:13 +02:00
5b26e62f55 Implement all of VIF extensions for 0xFD (#166) 2020-07-08 11:31:13 +02:00
6c1e2026d6 Update normalized XML files
This updates the affected XML files after the recent fixes to the VIF
description.
2020-07-07 10:17:39 +02:00
908334af0b Fix VIF descriptions 2020-07-07 10:17:39 +02:00
e27a95c4db Merge pull request #168 from rscada/generate-norm-xml
Also generate normalized XML
2020-07-06 13:07:05 +02:00
9799794213 Add normalized XML files of test frames 2020-07-06 12:55:05 +02:00
bf177d1fe7 Also generate normalized XML
In order to increase the test coverage also generate the normalized version
of XML output.
2020-07-06 12:06:39 +02:00
17a73287c2 Improve BCD decoding (#167)
* Introduce mbus_data_bcd_decode_hex

The convert function mbus_data_bcd_decode (BCD to decimal) suffers from
information loss in case of hexacimal digits. So introduce a new function
mbus_data_bcd_decode_hex (BCD to hexadecimal), which isn't affected and
use this for default XML output. But keep mbus_data_bcd_decode for
normalized output.
2020-06-28 10:28:40 +02:00
1e25cf1096 Fix Linux build target
Linux uses lib as prefix, which results into unintended liblibmbus.so
So avoid such a prefix.
2020-06-27 16:10:17 +02:00
23d8ee4844 Added more medium definitions according to DIN EN 13757-7:2018-06 (#162) 2020-06-05 13:12:44 +02:00
643022388d Add product strings for Sensoco devices (#161) 2020-06-05 13:05:43 +02:00
b5e59aa52f fix: add missing declaration to header (#160) 2020-05-15 19:05:36 +02:00
baf03e2a47 Merge pull request #151 from gocarlos/feat--add-cmake-support
build: add cmake support
2020-04-24 20:18:09 +02:00
ba18321e11 chore: run tests also with pull requests 2020-04-24 15:14:15 +02:00
f569816788 chore: make path to tests optional 2020-04-24 09:55:01 +02:00
716fe0358c fix: debian package blank line in value of field Description 2020-04-14 11:36:39 +02:00
ee3a69e5df docs: add better usage to generate xml script 2020-04-14 11:22:40 +02:00
9f9c7a5dbf fix: unit tests 2020-04-14 11:01:07 +02:00
f31fbea817 build: add devel package 2020-04-14 10:29:22 +02:00
f3a62d560b chore: apply suggestions from code review
Co-Authored-By: Anonymous Maarten <madebr@users.noreply.github.com>
2020-04-01 22:38:53 +02:00
989404de83 chore: simplify cmake 2020-04-01 15:53:54 +02:00
b58aca4432 build: symplify clang tidy 2020-04-01 15:52:21 +02:00
505c25aa9b chore: apply suggestions from code review
Co-Authored-By: Anonymous Maarten <madebr@users.noreply.github.com>
2020-03-31 23:45:53 +02:00
fffdca0504 build: apply suggestions from code review
Co-Authored-By: Anonymous Maarten <madebr@users.noreply.github.com>
2020-03-31 21:42:49 +02:00
b0f413037a test: update generate-xml script 2020-03-31 21:38:51 +02:00
724822b3ab build: add pkg config file 2020-03-31 20:31:18 +02:00
155e245b61 build: add also android 2020-03-31 20:31:18 +02:00
ff2e50a38a build: do not use gnu style warnings for msvc 2020-03-31 20:31:18 +02:00
bd2fa5759b build: remove old build system 2020-03-31 20:31:18 +02:00
6fb724698f build: install doxygen in ci 2020-03-31 20:31:18 +02:00
5a3d13e7ad build: add documentation 2020-03-31 20:31:14 +02:00
576da85302 build: add dockerfiles for deb and rpm 2020-03-31 20:30:53 +02:00
433b3c4219 feat: add github actions
* feat: add github actions

* Update ccpp.yml

* build: build and install deb in container

* build: clean up
2020-03-31 20:30:50 +02:00
e864d27fbf build: add debian package 2020-03-31 20:30:23 +02:00
89db118821 build: add coverage information 2020-03-31 20:30:23 +02:00
d96dcfad09 build: add cmake support
feat: add cmake support

chore: remove old code

revert: remove mbus_data_record_unit

build: do not break existing building system
2020-03-31 20:30:18 +02:00
6edab86078 refactor: clean up some compiler warnings (#152) 2020-03-21 10:50:33 +01:00
62ac3678ff Fix prefixes (#148) 2019-07-08 10:38:20 +02:00
135 changed files with 11204 additions and 608 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
/_build
/build

58
.github/workflows/ccpp.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: CMake
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: build examples and tests
run: |
rm -rf build || true
mkdir -p build
cd build
cmake .. -DLIBMBUS_BUILD_EXAMPLES=ON -DLIBMBUS_BUILD_TESTS=ON -DLIBMBUS_ENABLE_COVERAGE=ON && cmake --build . -j
cd ..
- name: generate test frames
run: |
./test/generate-xml.sh test/test-frames
echo "NOTE: error-frames have about 30 parse errors, and unsupported-frames have 12"
./test/generate-xml.sh test/error-frames || true
./test/generate-xml.sh test/unsupported-frames || true
- name: install and run gcovr
run: sudo pip install gcovr && gcovr build/.
debian:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: build debian package
run: |
rm -rf build || true
mkdir -p build
cd build
cmake .. -DLIBMBUS_PACKAGE_DEB=ON
cpack ..
sudo dpkg -i *.deb
ls /usr/lib
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: build doxygen documentation
run: sudo apt install -y doxygen
- name: build doxygen documentation
run: |
rm -rf build || true
mkdir build
cd build
cmake .. -DLIBMBUS_BUILD_DOCS=ON
cmake --build . --target doc

7
.gitignore vendored
View File

@ -10,7 +10,6 @@ test/Makefile.in
/compile
config.guess
config.sub
config.h.in
configure
/depcomp
/install-sh
@ -72,3 +71,9 @@ test/test-frames/*.xml.new
test/error-frames/*.xml.new
test/unsupported-frames/*.xml.new
/build/
_build/
# IDE
/.vscode/
CMakeLists.txt.user

View File

@ -11,3 +11,5 @@ os:
script:
- ./build.sh
- cd test && make && ./generate-xml.sh test-frames
- cd test && make && ./generate-xml.sh test/error-frames || true
- cd test && make && ./generate-xml.sh test/unsupported-frames || true

309
CMakeLists.txt Normal file
View File

@ -0,0 +1,309 @@
cmake_minimum_required(VERSION 3.5)
project(
libmbus
LANGUAGES CXX C
VERSION "0.9.0")
if(CMAKE_BUILD_TYPE STREQUAL "")
message(STATUS "CMAKE_BUILD_TYPE empty setting to Debug")
set(CMAKE_BUILD_TYPE "Debug")
endif()
# ##############################################################################
# default options -> changed with e.g. cd build && cmake ..
# -DLIBMBUS_BUILD_TESTS=ON
# ##############################################################################
option(LIBMBUS_BUILD_EXAMPLES "build examples" OFF)
option(LIBMBUS_BUILD_TESTS "build tests" OFF)
option(LIBMBUS_ENABLE_COVERAGE "build with coverage support" OFF)
option(LIBMBUS_RUN_CLANG_TIDY "use Clang-Tidy for static analysis" OFF)
option(LIBMBUS_PACKAGE_DEB "build debian package" OFF)
option(LIBMBUS_PACKAGE_RPM "build rpm package" OFF)
option(LIBMBUS_BUILD_DOCS "build documentation" OFF)
option(BUILD_SHARED_LIBS "build shared lib" ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 11)
# Append our module directory to CMake
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_BINARY_DIR}")
# Set the output of the libraries and executables.
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
# ##############################################################################
# static analysis
# ##############################################################################
if(LIBMBUS_RUN_CLANG_TIDY)
find_program(
CLANG_TIDY_EXE
NAMES "clang-tidy"
DOC "/usr/bin/clang-tidy")
if(NOT CLANG_TIDY_EXE)
message(WARNING "clang-tidy not found.")
else()
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
endif()
endif(LIBMBUS_RUN_CLANG_TIDY)
if(LIBMBUS_ENABLE_COVERAGE)
if(NOT CMAKE_BUILD_TYPE MATCHES "(Debug)|(RelWithDebInfo)")
message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading")
endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# using Clang
message(STATUS "Not doing coverage...")
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# using GCC
message(STATUS "Building with code coverage...")
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -ggdb3 -O0 --coverage -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -ggdb3 -O0 --coverage -fprofile-arcs -ftest-coverage ")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_CXX_FLAGS} --coverage -fprofile-arcs -ftest-coverage ")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_FLAGS} --coverage -fprofile-arcs -ftest-coverage ")
link_libraries(-lgcov)
endif()
endif()
include(CheckIncludeFile)
check_include_file(dlfcn.h HAVE_DLFCN_H)
check_include_file(inttypes.h HAVE_INTTYPES_H)
check_include_file(memory.h HAVE_MEMORY_H)
check_include_file(stdlib.h HAVE_STDINT_H)
check_include_file(stdint.h HAVE_STDLIB_H)
check_include_file(strings.h HAVE_STRINGS_H)
check_include_file(string.h HAVE_STRING_H)
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
check_include_file(unistd.h HAVE_UNISTD_H)
# ##############################################################################
# library
# ##############################################################################
set(PACKAGE_STRING "${PROJECT_NAME} ${PROJECT_VERSION}")
set(PACKAGE_VERSION "${PROJECT_VERSION}")
set(VERSION "${PROJECT_VERSION}")
configure_file(${CMAKE_CURRENT_LIST_DIR}/mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h @ONLY)
# list of source files
add_library(objlib OBJECT
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-tcp.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-tcp.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol-aux.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol-aux.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.h")
# shared and static libraries built from the same object files
add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:objlib>)
add_library(libmbus_static STATIC $<TARGET_OBJECTS:objlib>)
set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
set_target_properties(libmbus_static PROPERTIES OUTPUT_NAME mbus)
target_include_directories(
${PROJECT_NAME}
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
target_link_libraries(${PROJECT_NAME} PRIVATE m)
endif()
if(NOT MSVC)
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wno-pedantic)
endif()
set_target_properties(${PROJECT_NAME}
PROPERTIES PREFIX ""
SOVERSION ${VERSION})
if(CLANG_TIDY_EXE)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_EXE}")
endif()
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
# ##############################################################################
# examples
# ##############################################################################
if(LIBMBUS_BUILD_EXAMPLES)
message(STATUS "building examples")
add_subdirectory(bin)
endif()
# ##############################################################################
# tests
# ##############################################################################
if(LIBMBUS_BUILD_TESTS)
message(STATUS "building tests")
enable_testing()
add_subdirectory(test)
endif()
# ##############################################################################
# install
# ##############################################################################
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
set(INSTALL_PKGCONFIG_DIR
"${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig"
CACHE PATH "Installation directory for pkgconfig (.pc) files")
set(INSTALL_INC_DIR
"${CMAKE_INSTALL_INCLUDEDIR}/mbus"
CACHE PATH "Installation directory for headers")
set(INSTALL_LIB_DIR
"${CMAKE_INSTALL_LIBDIR}"
CACHE PATH "Installation directory for libraries")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libmbus.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libmbus.pc @ONLY)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/libmbus.pc
DESTINATION "${INSTALL_PKGCONFIG_DIR}"
COMPONENT dev)
set(LIBMBUS_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}Targets
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
install(
EXPORT ${PROJECT_NAME}Targets
DESTINATION "${LIBMBUS_CONFIG_INSTALL_DIR}"
NAMESPACE ${PROJECT_NAME}::
COMPONENT dev)
configure_package_config_file(cmake/Config.cmake.in ${PROJECT_NAME}Config.cmake INSTALL_DESTINATION
"${LIBMBUS_CONFIG_INSTALL_DIR}")
write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMajorVersion)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION "${LIBMBUS_CONFIG_INSTALL_DIR}"
COMPONENT dev)
install(
DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/mbus/"
DESTINATION "${INSTALL_INC_DIR}"
COMPONENT dev
FILES_MATCHING
PATTERN "*.h")
install(
TARGETS libmbus_static
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev)
# ##############################################################################
# package
# mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack ..
# ##############################################################################
include(InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Open source M-bus (Meter-Bus) library.")
set(CPACK_PACKAGE_DESCRIPTION
"libmbus is an open source library for the M-bus (Meter-Bus) protocol.
The Meter-Bus is a standard for reading out meter data from electricity meters,
heat meters, gas meters, etc. The M-bus standard deals with both the electrical
signals on the M-Bus, and the protocol and data format used in transmissions
on the M-Bus. The role of libmbus is to decode/encode M-bus data, and to handle
the communication with M-Bus devices.
For more information see http://www.rscada.se/libmbus")
set(CPACK_PACKAGE_VENDOR "Raditex Control AB")
set(CPACK_PACKAGE_CONTACT "Stefan Wahren <info@lategoodbye.de>")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/rscada/libmbus/")
set(CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/LICENSE)
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_PACKAGE_DEBUG ON)
set(CPACK_PACKAGE_RELEASE 1)
# create 2 components, libmbus, libmbus-dev
set(CPACK_COMPONENTS_ALL lib dev)
set(CPACK_COMPONENT_LIB_DESCRIPTION "FreeSCADA M-Bus Library.
A free and open-source library for M-Bus (Meter Bus) from the rSCADA project.")
set(CPACK_DEBIAN_LIB_PACKAGE_SECTION libs)
set(CPACK_COMPONENT_DEVEL_DESCRIPTION
"FreeSCADA M-Bus Library Development files.
A free and open-source library for M-Bus (Meter Bus) from the rSCADA project,
including development files.")
set(CPACK_DEBIAN_DEVEL_PACKAGE_SECTION libdevel)
set(CPACK_COMPONENT_DEVEL_DEPENDS lib)
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
set(CPACK_PACKAGE_FILE_NAME
"${CMAKE_PROJECT_NAME}_${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
if(LIBMBUS_PACKAGE_DEB)
set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Stefan Wahren <info@lategoodbye.de>")
set(CPACK_DEBIAN_PACKAGE_SECTION "Development/Languages/C and C++")
set(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
set(CPACK_DEBIAN_PACKAGE_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CPACK_PACKAGE_RELEASE}"
)
endif()
if(LIBMBUS_PACKAGE_RPM)
set(CPACK_GENERATOR "RPM")
set(CPACK_RPM_PACKAGE_LICENSE "BSD")
endif()
include(CPack)
# ##############################################################################
# doc
# mkdir build ; cd build ; cmake .. -DLIBMBUS_BUILD_DOCS=ON ; cmake --build . --target doc
# ##############################################################################
if(LIBMBUS_BUILD_DOCS)
message(STATUS "building with documentation")
# Generate targets for documentation
# check if Doxygen is installed
find_package(Doxygen)
if(Doxygen_FOUND)
# set input and output files
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
# request to configure the file
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
# note the option ALL which allows to build the docs together with the application
add_custom_target(
doc ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM)
message(STATUS "Setup up the Doxygen documention build")
else(Doxygen_FOUND)
message(WARNING "Doxygen need to be installed to generate the doxygen documentation")
endif(Doxygen_FOUND)
endif()

14
Dockerfile.deb Normal file
View File

@ -0,0 +1,14 @@
# docker build . -f Dockerfile.deb -t deb_builder
FROM ubuntu
RUN apt update -y && apt install -y cmake gcc g++ make
COPY . /tmp
RUN cd /tmp && \
mkdir build && \
cd build && \
cmake .. -DLIBMBUS_PACKAGE_DEB=ON && \
cpack .. && \
ls -al && \
dpkg -i *.deb

14
Dockerfile.rpm Normal file
View File

@ -0,0 +1,14 @@
# docker build . -f Dockerfile.rpm -t rpm_builder
FROM fedora
RUN dnf install -y cmake gcc g++ make rpm-build
COPY . /tmp
RUN cd /tmp && \
mkdir build && \
cd build && \
cmake .. -DLIBMBUS_PACKAGE_RPM=ON && \
cpack .. && \
ls -al && \
rpm -i *.rpm

18
Dockerfile.test Normal file
View File

@ -0,0 +1,18 @@
# docker build . -f Dockerfile.test -t test_builder
FROM ubuntu
RUN apt update -y && apt install -y cmake gcc g++ make
COPY . /tmp
RUN cd /tmp && \
mkdir build && \
cd build && \
cmake .. -DLIBMBUS_BUILD_EXAMPLES=ON -DLIBMBUS_BUILD_TESTS=ON -DLIBMBUS_ENABLE_COVERAGE=ON && \
cmake --build . -j && \
cd .. && \
./test/generate-xml.sh test/test-frames
RUN cd /tmp && \
echo "NOTE: error-frames have about 30 parse errors, and unsupported-frames have 12" && \
./test/generate-xml.sh test/error-frames || true ; \
./test/generate-xml.sh test/unsupported-frames || true

View File

@ -25,13 +25,13 @@ DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = libmbus
PROJECT_NAME = "@CMAKE_PROJECT_NAME@"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
PROJECT_NUMBER = @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
@ -581,7 +581,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = mbus
INPUT = @CMAKE_CURRENT_LIST_DIR@/mbus
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@ -1628,3 +1628,6 @@ GENERATE_LEGEND = YES
# the various graphs.
DOT_CLEANUP = YES
USE_MDFILE_AS_MAINPAGE = @CMAKE_CURRENT_LIST_DIR@/README.md

View File

@ -1,25 +0,0 @@
# Copyright (c) 2010
# Robert Johansson
# Raditex AB.
# All rights reserved.
LIB = libmbus.so
CFLAGS = -Wall -W -g -fPIC -I.
HEADERS = mbus.h mbus-protocol.h
OBJS = mbus.o mbus-protocol.o
$(LIB): $(OBJS)
gcc -shared -o $(LIB) $(OBJS)
all: $(LIB)
clean:
rm -rf *.o *core core $(LIB)
test:
(cd test && make)
install: all
cp $(LIB) /usr/local/freescada/lib
cp $(HEADERS) /usr/local/freescada/include

View File

@ -1,20 +0,0 @@
#
#
#
PACKAGE = @PACKAGE@
VERSION = @VERSION@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmbus.pc
docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)
dist_docdir = $(DESTDIR)$(docdir)
doc_DATA = README.md \
COPYING \
hardware/MBus_USB.pdf \
hardware/MBus_USB.txt
SUBDIRS = mbus bin
ACLOCAL = aclocal -I .
ACLOCAL_AMFLAGS = -Werror -I m4

View File

@ -1,4 +1,6 @@
# libmbus: M-bus Library from Raditex Control (http://www.rscada.se) <span style="float:right;"><a href="https://travis-ci.org/rscada/libmbus" style="border-bottom:none">![Build Status](https://travis-ci.org/rscada/libmbus.svg?branch=master)</a></span>
# libmbus: M-bus Library from Raditex Control (http://www.rscada.se) <span style="float:right;"><a href="https://travis-ci.org/rscada/libmbus" style="border-bottom:none">
![Build Status](https://travis-ci.org/rscada/libmbus.svg?branch=master)</a></span>
libmbus is an open source library for the M-bus (Meter-Bus) protocol.
@ -8,4 +10,32 @@ signals on the M-Bus, and the protocol and data format used in transmissions on
the M-Bus. The role of libmbus is to decode/encode M-bus data, and to handle
the communication with M-Bus devices.
## BUILD
with cmake
```bash
rm -rf _build
mkdir _build
cd _build
# configure
# e.g. on linux
cmake .. -DLIBMBUS_BUILD_EXAMPLES=ON
# e.g. for a target device
cmake .. -DLIBMBUS_BUILD_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/foo-bar-baz.cmake
# compile
cmake --build . -j
# install - optional
cmake --build . --target install
```
## CONSUME
```cmake
find_package(libmbus)
add_executable(my_app main.cpp)
target_link_libraries(my_app libmbus::libmbus)
```
For more information see http://www.rscada.se/libmbus

19
bin/CMakeLists.txt Normal file
View File

@ -0,0 +1,19 @@
function(add_example SRCS)
add_executable(${SRCS} ${CMAKE_CURRENT_LIST_DIR}/${SRCS}.c)
target_link_libraries(${SRCS} PRIVATE libmbus::libmbus)
endfunction()
add_example(mbus-serial-request-data)
add_example(mbus-serial-request-data-multi-reply)
add_example(mbus-serial-scan)
add_example(mbus-serial-scan-secondary)
add_example(mbus-serial-select-secondary)
add_example(mbus-serial-set-address)
add_example(mbus-serial-switch-baudrate)
add_example(mbus-tcp-application-reset)
add_example(mbus-tcp-raw-send)
add_example(mbus-tcp-request-data)
add_example(mbus-tcp-request-data-multi-reply)
add_example(mbus-tcp-scan)
add_example(mbus-tcp-scan-secondary)
add_example(mbus-tcp-select-secondary)

View File

@ -1,24 +0,0 @@
#
# Copyright (C) 2011, Robert Johansson, Raditex AB
# All rights reserved.
#
# rSCADA
# http://www.rSCADA.se
# info@rscada.se
#
CFLAGS=-Wall -g -I..
LDFLAGS=-L.. -lm -lmbus
all: mbus-tcp-scan mbus-tcp-request-data
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
mbus-tcp-scan: mbus-tcp-scan.o mbus-tcp.o
gcc -o $@ $^ $(LDFLAGS)
mbus-tcp-request-data: mbus-tcp-request-data.o mbus-tcp.o
gcc -o $@ $^ $(LDFLAGS)
clean:
rm -rf mbus-tcp-request-data mbus-tcp-scan *.o *~

View File

@ -1,102 +0,0 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2010, Raditex AB
# All rights reserved.
#
# rSCADA
# http://www.rSCADA.se
# info@rscada.se
#
# ------------------------------------------------------------------------------
PACKAGE = @PACKAGE@
VERSION = @VERSION@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/src
noinst_HEADERS =
bin_PROGRAMS = mbus-tcp-scan mbus-tcp-request-data mbus-tcp-request-data-multi-reply \
mbus-tcp-select-secondary mbus-tcp-scan-secondary \
mbus-serial-scan mbus-serial-request-data mbus-serial-request-data-multi-reply \
mbus-serial-select-secondary mbus-serial-scan-secondary \
mbus-serial-switch-baudrate mbus-tcp-raw-send mbus-tcp-application-reset \
mbus-serial-set-address
# tcp
mbus_tcp_scan_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_scan_LDADD = -lmbus -lm
mbus_tcp_scan_SOURCES = mbus-tcp-scan.c
mbus_tcp_request_data_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_request_data_LDADD = -lmbus -lm
mbus_tcp_request_data_SOURCES = mbus-tcp-request-data.c
mbus_tcp_request_data_multi_reply_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_request_data_multi_reply_LDADD = -lmbus -lm
mbus_tcp_request_data_multi_reply_SOURCES = mbus-tcp-request-data-multi-reply.c
mbus_tcp_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_select_secondary_LDADD = -lmbus -lm
mbus_tcp_select_secondary_SOURCES = mbus-tcp-select-secondary.c
mbus_tcp_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_scan_secondary_LDADD = -lmbus -lm
mbus_tcp_scan_secondary_SOURCES = mbus-tcp-scan-secondary.c
mbus_tcp_raw_send_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_raw_send_LDADD = -lmbus -lm
mbus_tcp_raw_send_SOURCES = mbus-tcp-raw-send.c
mbus_tcp_application_reset_LDFLAGS = -L$(top_builddir)/mbus
mbus_tcp_application_reset_LDADD = -lmbus -lm
mbus_tcp_application_reset_SOURCES = mbus-tcp-application-reset.c
# serial
mbus_serial_scan_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_scan_LDADD = -lmbus -lm
mbus_serial_scan_SOURCES = mbus-serial-scan.c
mbus_serial_request_data_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_request_data_LDADD = -lmbus -lm
mbus_serial_request_data_SOURCES = mbus-serial-request-data.c
mbus_serial_request_data_multi_reply_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_request_data_multi_reply_LDADD = -lmbus -lm
mbus_serial_request_data_multi_reply_SOURCES = mbus-serial-request-data-multi-reply.c
mbus_serial_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_select_secondary_LDADD = -lmbus -lm
mbus_serial_select_secondary_SOURCES = mbus-serial-select-secondary.c
mbus_serial_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_scan_secondary_LDADD = -lmbus -lm
mbus_serial_scan_secondary_SOURCES = mbus-serial-scan-secondary.c
mbus_serial_switch_baudrate_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_switch_baudrate_LDADD = -lmbus -lm
mbus_serial_switch_baudrate_SOURCES = mbus-serial-switch-baudrate.c
mbus_serial_set_address_LDFLAGS = -L$(top_builddir)/mbus
mbus_serial_set_address_LDADD = -lmbus -lm
mbus_serial_set_address_SOURCES = mbus-serial-set-address.c
# man pages
dist_man_MANS = libmbus.1 \
mbus-tcp-scan.1 \
mbus-tcp-request-data.1 \
mbus-tcp-request-data-multi-reply.1 \
mbus-tcp-select-secondary.1 \
mbus-tcp-scan-secondary.1 \
mbus-tcp-raw-send.1 \
mbus-serial-scan.1 \
mbus-serial-request-data.1 \
mbus-serial-request-data-multi-reply.1 \
mbus-serial-select-secondary.1 \
mbus-serial-scan-secondary.1 \
mbus-serial-switch-baudrate.1
.pod.1:
pod2man --release=$(VERSION) --center=$(PACKAGE) $< \
>.pod2man.tmp.$$$$ 2>/dev/null && mv -f .pod2man.tmp.$$$$ $@ || true
@if grep '\<POD ERRORS\>' $@ >/dev/null 2>&1; \
then \
echo "$@ has some POD errors!"; false; \
fi

View File

@ -8,18 +8,5 @@
#
# ------------------------------------------------------------------------------
if [ ! -f Makefile ]; then
#
# regenerate automake files
#
echo "Running autotools..."
autoheader \
&& aclocal \
&& libtoolize --ltdl --copy --force \
&& automake --add-missing --copy \
&& autoconf
fi
debuild -i -us -uc -b
#sudo pbuilder build $(NAME)_$(VERSION)-1.dsc

View File

@ -1,21 +1,24 @@
#!/bin/sh
#
if [ -f Makefile ]; then
# use existing automake files
echo >> /dev/null
else
# regenerate automake files
echo "Running autotools..."
autoheader \
&& aclocal \
&& case \
$(uname) in Darwin*) glibtoolize --ltdl --copy --force ;; \
*) libtoolize --ltdl --copy --force ;; esac \
&& automake --add-missing --copy \
&& autoconf \
&& ./configure
fi
rm -rf build
mkdir build
cd build
cmake .. -DLIBMBUS_BUILD_EXAMPLES=ON -DLIBMBUS_BUILD_TESTS=ON
cmake --build .
make
# build deb
# rm -rf build
# mkdir build
# cd build
# cmake .. -DLIBMBUS_PACKAGE_DEB=ON
# cpack ..
# dpkg -i *.deb
# build doc
# mkdir build
# cd build
# cmake .. -DLIBMBUS_BUILD_DOCS=ON
# cmake --build . --target doc

15
cmake-format.yaml Normal file
View File

@ -0,0 +1,15 @@
# https://github.com/cheshirekow/cmake_format
# How wide to allow formatted cmake files
line_width: 120
# How many spaces to tab for indent
tab_size: 2
# Format command names consistently as 'lower' or 'upper' case
command_case: "lower"
first_comment_is_literal: False
# enable comment markup parsing and reflow
enable_markup: False

4
cmake/Config.cmake.in Normal file
View File

@ -0,0 +1,4 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
check_required_components("@PROJECT_NAME@")

View File

@ -1,44 +0,0 @@
dnl ----------------------------------------------------------------------------
dnl Copyright (C) 2010, Raditex AB
dnl All rights reserved.
dnl
dnl rSCADA
dnl http://www.rSCADA.se
dnl info@rscada.se
dnl
dnl ----------------------------------------------------------------------------
LT_CONFIG_LTDL_DIR([libltdl])
AC_INIT([libmbus], [0.9.0], [info@rscada.se], [libmbus], [http://www.rscada.se/libmbus/])
AC_CONFIG_AUX_DIR([libltdl/config])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AM_PROG_LIBTOOL
# fix for automake 1.11 & 1.12
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
LDFLAGS="$LDFLAGS -version-info 0:9:0"
dnl ----------------------
dnl
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile mbus/Makefile test/Makefile bin/Makefile libmbus.pc])
AC_OUTPUT
echo \
"----------------------------------------------------------
Configuration:
Source location: ${srcdir}
Compile: ${CC}
Compiler flags: ${CFLAGS}
Linker flags: ${LDFLAGS}
Host system type: ${host}
Install path: ${prefix}
See config.h for further configuration.
----------------------------------------------------------"

2
debian/rules vendored
View File

@ -3,7 +3,7 @@
#export DH_VERBOSE=1
%:
dh --with autoreconf $@
dh $@
.PHONY: override_dh_strip
override_dh_strip:

View File

@ -1,12 +1,12 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@INSTALL_LIB_DIR@
includedir=@INSTALL_INC_DIR@
Name: libmbus
Description: Open source M-bus (Meter-Bus) library.
Requires:
Version: @PACKAGE_VERSION@
Version: @PROJECT_VERSION@
URL: http://www.rscada.se/libmbus/
Libs: -L${libdir} -lmbus -lm
Cflags: -I${includedir}
Cflags: -I${includedir}

View File

@ -1,87 +0,0 @@
#
# spec file for package libmbus
#
# Copyright (c) 2010-2013, Raditex Control AB
# All rights reserved.
#
# rSCADA
# http://www.rSCADA.se
# info@rscada.se
#
Summary: Open source M-bus (Meter-Bus) library
Name: libmbus
Version: 0.9.0
Release: 1
Source: https://github.com/rscada/%{name}/archive/%{version}.tar.gz
URL: https://github.com/rscada/libmbus/
License: BSD
Vendor: Raditex Control AB
Packager: Stefan Wahren <info@lategoodbye.de>
Group: Development/Languages/C and C++
BuildRoot: {_tmppath}/%{name}-%{version}-build
AutoReqProv: on
%description
libmbus: M-bus Library from Raditex Control (http://www.rscada.se)
libmbus is an open source library for the M-bus (Meter-Bus) protocol.
The Meter-Bus is a standard for reading out meter data from electricity meters,
heat meters, gas meters, etc. The M-bus standard deals with both the electrical
signals on the M-Bus, and the protocol and data format used in transmissions
on the M-Bus. The role of libmbus is to decode/encode M-bus data, and to handle
the communication with M-Bus devices.
For more information see http://www.rscada.se/libmbus
%package devel
License: BSD
Summary: Development libraries and header files for using the M-bus library
Group: Development/Libraries/C and C++
AutoReqProv: on
Requires: %{name} = %{version}
%description devel
This package contains all necessary include files and libraries needed
to compile and link applications which use the M-bus (Meter-Bus) library.
%prep -q
%setup -q
# workaround to get it's build
autoreconf
%build
./configure --prefix=/usr
make
%install
rm -Rf "%buildroot"
mkdir "%buildroot"
make install DESTDIR="%buildroot"
%clean
rm -rf "%buildroot"
%files
%defattr (-,root,root)
%doc COPYING README.md
%{_bindir}/mbus-serial-*
%{_bindir}/mbus-tcp-*
%{_libdir}/libmbus.so*
%{_mandir}/man1/libmbus.1
%{_mandir}/man1/mbus-*
%files devel
%defattr (-,root,root)
%{_includedir}/mbus
%{_libdir}/libmbus.a
%{_libdir}/libmbus.la
%{_libdir}/pkgconfig/libmbus.pc
%changelog
* Fri Feb 22 2019 Stefan Wahren <info@lategoodbye.de> - 0.9.0-1
- switch to github repo
- enable man pages
* Fri Mar 29 2013 Stefan Wahren <info@lategoodbye.de> - 0.8.0-1
- Initial package based on the last official release

View File

@ -1,20 +0,0 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2010, Raditex AB
# All rights reserved.
#
# rSCADA
# http://www.rSCADA.se
# info@rscada.se
#
# ------------------------------------------------------------------------------
PACKAGE = @PACKAGE@
VERSION = @VERSION@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
includedir = $(prefix)/include/mbus
include_HEADERS = mbus.h mbus-protocol.h mbus-tcp.h mbus-serial.h mbus-protocol-aux.h
lib_LTLIBRARIES = libmbus.la
libmbus_la_SOURCES = mbus.c mbus-protocol.c mbus-tcp.c mbus-serial.c mbus-protocol-aux.c

56
mbus/config.h.in Normal file
View File

@ -0,0 +1,56 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H "@HAVE_DLFCN_H@"
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H "@HAVE_INTTYPES_H@"
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H "@HAVE_MEMORY_H@"
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H "@HAVE_STDINT_H@"
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H "@HAVE_STDLIB_H@"
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H "@HAVE_STRINGS_H@"
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H "@HAVE_STRING_H@"
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H "@HAVE_SYS_STAT_H@"
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H "@HAVE_SYS_TYPES_H@"
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H "@HAVE_UNISTD_H@"
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "@PROJECT_NAME@"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "info@rscada.se"
/* Define to the full name of this package. */
#define PACKAGE_NAME "@PROJECT_NAME@"
/* Define to the full name and version of this package. */
#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "@PROJECT_NAME@"
/* Define to the home page for this package. */
#define PACKAGE_URL "http://www.rscada.se/libmbus/"
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
/* Version number of package */
#cmakedefine VERSION "@PACKAGE_VERSION@"

View File

@ -201,10 +201,10 @@ mbus_variable_vif vif_table[] = {
{ 0x73, 86400.0, "s", "Averaging Duration" }, /* days */
/* E111 01nn Actuality Duration s */
{ 0x74, 1.0, "s", "Averaging Duration" }, /* seconds */
{ 0x75, 60.0, "s", "Averaging Duration" }, /* minutes */
{ 0x76, 3600.0, "s", "Averaging Duration" }, /* hours */
{ 0x77, 86400.0, "s", "Averaging Duration" }, /* days */
{ 0x74, 1.0, "s", "Actuality Duration" }, /* seconds */
{ 0x75, 60.0, "s", "Actuality Duration" }, /* minutes */
{ 0x76, 3600.0, "s", "Actuality Duration" }, /* hours */
{ 0x77, 86400.0, "s", "Actuality Duration" }, /* days */
/* Fabrication No */
{ 0x78, 1.0, "", "Fabrication No" },
@ -247,7 +247,7 @@ mbus_variable_vif vif_table[] = {
{ 0x108, 1.0e0, "", "Access Number (transmission count)" },
/* E000 1001 Medium (as in fixed header) */
{ 0x109, 1.0e0, "", "Device type" },
{ 0x109, 1.0e0, "", "Medium" },
/* E000 1010 Manufacturer (as in fixed header) */
{ 0x10A, 1.0e0, "", "Manufacturer" },
@ -256,7 +256,7 @@ mbus_variable_vif vif_table[] = {
{ 0x10B, 1.0e0, "", "Parameter set identification" },
/* E000 1100 Model / Version */
{ 0x10C, 1.0e0, "", "Device type" },
{ 0x10C, 1.0e0, "", "Model / Version" },
/* E000 1101 Hardware version # */
{ 0x10D, 1.0e0, "", "Hardware version" },
@ -356,9 +356,9 @@ mbus_variable_vif vif_table[] = {
{ 0x130, 1.0e0, "Reserved", "Reserved" }, /* ???? */
/* E011 00nn Duration of tariff (nn=01 ..11: min to days) */
{ 0x131, 60.0, "s", "Storage interval" }, /* minute(s) */
{ 0x132, 3600.0, "s", "Storage interval" }, /* hour(s) */
{ 0x133, 86400.0, "s", "Storage interval" }, /* day(s) */
{ 0x131, 60.0, "s", "Duration of tariff" }, /* minute(s) */
{ 0x132, 3600.0, "s", "Duration of tariff" }, /* hour(s) */
{ 0x133, 86400.0, "s", "Duration of tariff" }, /* day(s) */
/* E011 01nn Period of tariff [sec(s) to day(s)] */
{ 0x134, 1.0, "s", "Period of tariff" }, /* seconds */
@ -785,8 +785,6 @@ mbus_register_found_event(mbus_handle * handle, void (*event)(mbus_handle * hand
int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, double *value_out, char **quantity_out)
{
double exponent = 0.0;
int i;
medium_unit = medium_unit & 0x3F;
if (unit_out == NULL || value_out == NULL || quantity_out == NULL)
@ -807,7 +805,7 @@ int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, do
break;
default:
for(i=0; fixed_table[i].vif < 0xfff; ++i)
for(int i=0; fixed_table[i].vif < 0xfff; ++i)
{
if (fixed_table[i].vif == medium_unit)
{
@ -820,7 +818,6 @@ int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, do
*unit_out = strdup("Unknown");
*quantity_out = strdup("Unknown");
exponent = 0.0;
*value_out = 0.0;
return -1;
}
@ -835,7 +832,6 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
unsigned char vif, vife;
struct tm time;
int value_out_int;
long value_out_long;
long long value_out_long_long;
*value_out_real = 0.0;
*value_out_str = NULL;
@ -1038,7 +1034,6 @@ int
mbus_vif_unit_normalize(int vif, double value, char **unit_out, double *value_out, char **quantity_out)
{
int i;
double exponent = 1.0;
unsigned newVif = vif & 0xF7F; /* clear extension bit */
MBUS_DEBUG("vif_unit_normalize = 0x%03X \n", vif);
@ -1063,7 +1058,6 @@ mbus_vif_unit_normalize(int vif, double value, char **unit_out, double *value_ou
MBUS_ERROR("%s: Unknown VIF 0x%03X\n", __PRETTY_FUNCTION__, newVif);
*unit_out = strdup("Unknown (VIF=0x%.02X)");
*quantity_out = strdup("Unknown");
exponent = 0.0;
*value_out = 0.0;
return -1;
}

File diff suppressed because it is too large Load Diff

View File

@ -487,10 +487,27 @@ typedef struct _mbus_data_secondary_address {
#define MBUS_VARIABLE_DATA_MEDIUM_HEAT_COOL 0x0D
#define MBUS_VARIABLE_DATA_MEDIUM_BUS 0x0E
#define MBUS_VARIABLE_DATA_MEDIUM_UNKNOWN 0x0F
#define MBUS_VARIABLE_DATA_MEDIUM_IRRIGATION 0x10
#define MBUS_VARIABLE_DATA_MEDIUM_WATER_LOGGER 0x11
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_LOGGER 0x12
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_CONV 0x13
#define MBUS_VARIABLE_DATA_MEDIUM_COLORIFIC 0x14
#define MBUS_VARIABLE_DATA_MEDIUM_BOIL_WATER 0x15
#define MBUS_VARIABLE_DATA_MEDIUM_COLD_WATER 0x16
#define MBUS_VARIABLE_DATA_MEDIUM_DUAL_WATER 0x17
#define MBUS_VARIABLE_DATA_MEDIUM_PRESSURE 0x18
#define MBUS_VARIABLE_DATA_MEDIUM_ADC 0x19
#define MBUS_VARIABLE_DATA_MEDIUM_SMOKE 0x1A
#define MBUS_VARIABLE_DATA_MEDIUM_ROOM_SENSOR 0x1B
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_DETECTOR 0x1C
#define MBUS_VARIABLE_DATA_MEDIUM_BREAKER_E 0x20
#define MBUS_VARIABLE_DATA_MEDIUM_VALVE 0x21
#define MBUS_VARIABLE_DATA_MEDIUM_CUSTOMER_UNIT 0x25
#define MBUS_VARIABLE_DATA_MEDIUM_WASTE_WATER 0x28
#define MBUS_VARIABLE_DATA_MEDIUM_GARBAGE 0x29
#define MBUS_VARIABLE_DATA_MEDIUM_SERVICE_UNIT 0x30
#define MBUS_VARIABLE_DATA_MEDIUM_RC_SYSTEM 0x36
#define MBUS_VARIABLE_DATA_MEDIUM_RC_METER 0x37
//
// Returns the manufacturer ID or zero if the given
@ -554,6 +571,8 @@ const char *mbus_data_fixed_function(int status);
long mbus_data_record_storage_number(mbus_data_record *record);
long mbus_data_record_tariff(mbus_data_record *record);
int mbus_data_record_device(mbus_data_record *record);
const char *mbus_data_record_unit(mbus_data_record *record);
const char *mbus_data_record_value(mbus_data_record *record);
//
// M-Bus frame data struct access/write functions
@ -608,6 +627,7 @@ int mbus_data_bcd_encode(unsigned char *bcd_data, size_t bcd_data_size, int valu
int mbus_data_int_encode(unsigned char *int_data, size_t int_data_size, int value);
long long mbus_data_bcd_decode(unsigned char *bcd_data, size_t bcd_data_size);
long long mbus_data_bcd_decode_hex(unsigned char *bcd_data, size_t bcd_data_size);
int mbus_data_int_decode(unsigned char *int_data, size_t int_data_size, int *value);
int mbus_data_long_decode(unsigned char *int_data, size_t int_data_size, long *value);
int mbus_data_long_long_decode(unsigned char *int_data, size_t int_data_size, long long *value);
@ -643,4 +663,3 @@ int mbus_is_secondary_address(const char * value);
#endif
#endif /* _MBUS_PROTOCOL_H_ */

5
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,5 @@
add_executable(mbus_parse ${CMAKE_CURRENT_LIST_DIR}/mbus_parse.c)
target_link_libraries(mbus_parse PRIVATE libmbus::libmbus)
add_executable(mbus_parse_hex ${CMAKE_CURRENT_LIST_DIR}/mbus_parse_hex.c)
target_link_libraries(mbus_parse_hex PRIVATE libmbus::libmbus)

View File

@ -1,25 +0,0 @@
# ------------------------------------------------------------------------------
# Copyright (C) 2010, Raditex AB
# All rights reserved.
#
# rSCADA
# http://www.rSCADA.se
# info@rscada.se
#
# ------------------------------------------------------------------------------
PACKAGE = @PACKAGE@
VERSION = @VERSION@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/mbus
noinst_HEADERS =
noinst_PROGRAMS = mbus_parse mbus_parse_hex
mbus_parse_LDFLAGS = -L$(top_builddir)/mbus
mbus_parse_LDADD = -lmbus -lm
mbus_parse_SOURCES = mbus_parse.c
mbus_parse_hex_LDFLAGS = -L$(top_builddir)/mbus
mbus_parse_hex_LDADD = -lmbus -lm
mbus_parse_hex_SOURCES = mbus_parse_hex.c

View File

@ -12,66 +12,130 @@
#
#------------------------------------------------------------------------------
# Check if mbus_parse_hex exists
if [ ! -x ./mbus_parse_hex ]; then
echo "mbus_parse_hex not found"
exit 3
fi
NUMBER_OF_PARSING_ERRORS=0
FAILING_TESTS=failing_tests.txt
NEW_TESTS=new_tests.txt
touch $FAILING_TESTS
touch $NEW_TESTS
# Check commandline parameter
if [ $# -ne 1 ]; then
echo "usage: $0 directory"
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
echo "usage: $0 path_to_directory_with_xml_files"
echo "or"
echo "usage: $0 path_to_directory_with_xml_files path_to_mbus_parse_hex_with_filename"
exit 3
fi
directory="$1"
# Check directory
# # Check directory
if [ ! -d "$directory" ]; then
echo "usage: $0 directory"
echo "$directory not found"
exit 3
fi
# Default location is this one
mbus_parse_hex="build/bin/mbus_parse_hex"
# though can be overriten
if [ $# -eq 2 ]; then
mbus_parse_hex="$2"
fi
# Check if mbus_parse_hex exists
if [ ! -x "$mbus_parse_hex" ]; then
echo "mbus_parse_hex not found"
echo "path to mbus_parse_hex: $mbus_parse_hex"
exit 3
fi
generate_xml() {
directory="$1"
hexfile="$2"
mode="$3"
filename=$(basename "$hexfile" .hex)
if [ "$mode" = "normalized" ]; then
options="-n"
mode=".norm"
else
options=""
mode=""
fi
# Parse hex file and write XML in file
"$mbus_parse_hex" $options "$hexfile" > "$directory/$filename$mode.xml.new"
result=$?
# Check parsing result
if [ $result -ne 0 ]; then
NUMBER_OF_PARSING_ERRORS=$((NUMBER_OF_PARSING_ERRORS + 1))
echo "Unable to generate XML for $hexfile"
rm "$directory/$filename$mode.xml.new"
return 1
fi
# Compare old XML with new XML and write in file
diff -u "$directory/$filename$mode.xml" "$directory/$filename$mode.xml.new" 2> /dev/null > "$directory/$filename$mode.dif"
result=$?
case "$result" in
0)
# XML equal -> remove new
rm "$directory/$filename$mode.xml.new"
rm "$directory/$filename$mode.dif"
;;
1)
# different -> print diff
echo "== $directory/$filename$mode failed"
cat "$directory/$filename$mode.dif" && rm "$directory/$filename$mode.dif"
echo ""
echo "$filename$mode" >> $FAILING_TESTS
;;
*)
# no old -> rename XML
echo "Create $filename$mode.xml"
mv "$directory/$filename$mode.xml.new" "$directory/$filename$mode.xml"
rm "$directory/$filename$mode.dif"
echo "$filename$mode" >> $NEW_TESTS
;;
esac
return $result
}
for hexfile in "$directory"/*.hex; do
if [ ! -f "$hexfile" ]; then
continue
fi
filename=`basename $hexfile .hex`
generate_xml "$directory" "$hexfile" "default"
# Parse hex file and write XML in file
./mbus_parse_hex "$hexfile" > "$directory/$filename.xml.new"
result=$?
# Check parsing result
if [ $result -ne 0 ]; then
echo "Unable to generate XML for $hexfile"
rm "$directory/$filename.xml.new"
continue
fi
# Compare old XML with new XML and write in file
diff -u "$directory/$filename.xml" "$directory/$filename.xml.new" 2> /dev/null > "$directory/$filename.dif"
result=$?
case "$result" in
0)
# XML equal -> remove new
rm "$directory/$filename.xml.new"
rm "$directory/$filename.dif"
;;
1)
# different -> print diff
cat "$directory/$filename.dif" && rm "$directory/$filename.dif"
echo ""
;;
*)
# no old -> rename XML
echo "Create $filename.xml"
mv "$directory/$filename.xml.new" "$directory/$filename.xml"
rm "$directory/$filename.dif"
;;
esac
generate_xml "$directory" "$hexfile" "normalized"
done
# Check the size of the file $FAILING_TESTS. Make sure to indicate failure.
if [ -s $FAILING_TESTS ]; then
echo "** There were errors in the following file(s):"
cat $FAILING_TESTS
exit 1
else
rm $FAILING_TESTS
fi
if [ -s $NEW_TESTS ]; then
echo "** There were new test in the following file(s):"
cat $NEW_TESTS
else
rm $NEW_TESTS
fi
# Check that there was no files that failed to parse
if [ $NUMBER_OF_PARSING_ERRORS -ne 0 ]; then
echo "** There were $NUMBER_OF_PARSING_ERRORS files that did not parse, expected 0 files."
echo
exit $NUMBER_OF_PARSING_ERRORS
fi
DIRECTORY_BASENAME="$(basename "$directory")"
echo "** Tests executed successfully in \"$DIRECTORY_BASENAME\"."
echo

View File

@ -18,7 +18,7 @@ int
main(int argc, char *argv[])
{
FILE *fp = NULL;
size_t buff_len, len;
size_t len;
int normalized = 0;
unsigned char buf[1024];
mbus_frame reply;
@ -53,6 +53,7 @@ main(int argc, char *argv[])
if (ferror(fp) != 0)
{
fprintf(stderr, "%s: failed to read '%s'\n", argv[0], file);
fclose(fp);
return 1;
}

View File

@ -18,7 +18,7 @@ int
main(int argc, char *argv[])
{
FILE *fp = NULL;
size_t buff_len, len;
size_t buff_len;
int result, normalized = 0;
unsigned char raw_buff[4096], buff[4096];
mbus_frame reply;
@ -48,11 +48,12 @@ main(int argc, char *argv[])
}
memset(raw_buff, 0, sizeof(raw_buff));
len = fread(raw_buff, 1, sizeof(raw_buff), fp);
fread(raw_buff, 1, sizeof(raw_buff), fp);
if (ferror(fp) != 0)
{
fprintf(stderr, "%s: failed to read '%s'\n", argv[0], file);
fclose(fp);
return 1;
}

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11490378</Id>
<Manufacturer>ACW</Manufacturer>
<Version>14</Version>
<ProductName>Itron BM +m</ProductName>
<Medium>Cold water</Medium>
<AccessNumber>10</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11490378.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>54.321000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2000-00-00</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T11:11:00Z</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>2.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>6.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 01 75 13</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>9011523</Id>
<Manufacturer>ACW</Manufacturer>
<Version>20</Version>
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
<Medium>Water</Medium>
<AccessNumber>37</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>9011523.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>cust. ID</Quantity>
<Value>09LA076755</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T14:26:00Z</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>bat. time</Quantity>
<Value>2516.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.031000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.031000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 01 1F</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11120895</Id>
<Manufacturer>EDC</Manufacturer>
<Version>2</Version>
<ProductName></ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>23</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>35000.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>465000.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>21.536703</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>21.605042</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>92.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>92.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000707</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.357622</Value>
</DataRecord>
<DataRecord id="11">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>18511.912109</Value>
</DataRecord>
<DataRecord id="15">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-07-10T15:25:00Z</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>C</Quantity>
<Value>3571.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>-</Unit>
<Quantity>C</Quantity>
<Value>413.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>c</Quantity>
<Value>1.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>-</Unit>
<Quantity>c</Quantity>
<Value>1.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>24083345</Id>
<Manufacturer>EFE</Manufacturer>
<Version>0</Version>
<ProductName>Engelmann / Elster SensoStar 2</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>102</AccessNumber>
<Status>27</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>24083345.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-12T14:23:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-12-31</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-12-31</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.025000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>11.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>22.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>21.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.090000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>45273600.000000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="24">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000011</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>4990254</Id>
<Manufacturer>EFE</Manufacturer>
<Version>0</Version>
<ProductName>Engelmann WaterStar</ProductName>
<Medium>Warm water (30-90°C)</Medium>
<AccessNumber>12</AccessNumber>
<Status>27</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>4990254.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T12:10:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.332000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.331000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.332000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-12-31</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-12-31</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>2.070000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>102902400.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000008</Value>
</DataRecord>
</MBusData>

View File

@ -6,7 +6,7 @@
<Manufacturer>EFE</Manufacturer>
<Version>0</Version>
<ProductName>Engelmann WaterStar</ProductName>
<Medium>Hot water</Medium>
<Medium>Warm water (30-90°C)</Medium>
<AccessNumber>12</AccessNumber>
<Status>27</Status>
<Signature>0000</Signature>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>44493951</Id>
<Manufacturer>ELS</Manufacturer>
<Version>47</Version>
<ProductName>Elster F96 Plus</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>161</AccessNumber>
<Status>70</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>13131113.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>131.113000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>22.700000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>22.600000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.100000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>63072000.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T13:09:00Z</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-05-31</Value>
</DataRecord>
</MBusData>

View File

@ -48,14 +48,14 @@
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (W)</Unit>
<Value>144445223</Value>
<Value>DDDDEBBD</Value>
</DataRecord>
<DataRecord id="5">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>Volume flow (m m^3/h)</Unit>
<Value>1445223</Value>
<Value>DDEBBD</Value>
</DataRecord>
<DataRecord id="6">

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>24011561</Id>
<Manufacturer>ELV</Manufacturer>
<Version>22</Version>
<ProductName>Elvaco CMa10</ProductName>
<Medium>Other</Medium>
<AccessNumber>63</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Digital Input</Quantity>
<Value>2.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>54.100000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>33.640000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>73.630000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>20.940000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>13.720000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>29.780000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Averaging Duration</Quantity>
<Value>86400.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>20.920000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>20.790000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>24011561.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>262144.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,287 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>32629</Id>
<Manufacturer>EMU</Manufacturer>
<Version>16</Version>
<ProductName>EMU Professional 3/75 M-Bus</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>2</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>32629.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>1364.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>7854.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-2.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-2.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>14.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>14.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>225.700000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>187.400000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>241.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>-0.066000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="24">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="25">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>-0.066000</Value>
</DataRecord>
<DataRecord id="26">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>13.000000</Value>
</DataRecord>
<DataRecord id="27">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="28">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="29">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>500.000000</Value>
</DataRecord>
<DataRecord id="30">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Reset counter</Quantity>
<Value>56.000000</Value>
</DataRecord>
<DataRecord id="31">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
</MBusData>

View File

@ -241,7 +241,7 @@
<DataRecord id="30">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Unrecognized VIF extension: 0x60</Unit>
<Unit>Reset counter</Unit>
<Value>56</Value>
</DataRecord>

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>802657</Id>
<Manufacturer>SVM</Manufacturer>
<Version>8</Version>
<ProductName>Elster F2 / Deltamess F2</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>70</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>5272000.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1204.270000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>917.690000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>28.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>34.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>149014800.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>149014800.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2013-06-29T12:12:00Z</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>Units for H.C.A.</Unit>
<Quantity>H.C.A.</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>Units for H.C.A.</Unit>
<Quantity>H.C.A.</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>C4 09 01 01 12 00 01 01 01 07 57 26 80 00 CD 4E 08 04 07 A3 FF 03 57 26 80 00 04 04 0D 02 FF 0F 05 3C FF 62 E7 62 96 0A 89 0A 02 00 15 40 17 01 00 00 63 42</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>23006207</Id>
<Manufacturer>FIN</Manufacturer>
<Version>35</Version>
<ProductName></ProductName>
<Medium>Electricity</Medium>
<AccessNumber>146</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>1728680.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>1728680.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>230.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.600000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>90.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-30.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>182007</Id>
<Manufacturer>GWF</Manufacturer>
<Version>53</Version>
<ProductName></ProductName>
<Medium>Water</Medium>
<AccessNumber>76</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>182007.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>269.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>12082058</Id>
<Manufacturer>LGB</Manufacturer>
<Version>64</Version>
<ProductName></ProductName>
<Medium>Gas</Medium>
<AccessNumber>64</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>10834.092000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2016-07-22T08:00:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>G0017591208205814</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit></Unit>
<Quantity>Digital Output</Quantity>
<Value>1.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Special supplier information</Quantity>
<Value>15.000000</Value>
</DataRecord>
</MBusData>

View File

@ -52,7 +52,7 @@
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Unrecognized VIF extension: 0x67</Unit>
<Unit>Special supplier information</Unit>
<Value>15</Value>
</DataRecord>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11216301</Id>
<Manufacturer>REL</Manufacturer>
<Version>65</Version>
<ProductName></ProductName>
<Medium>Gas</Medium>
<AccessNumber>177</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>28760.810000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>1900-01-00T00:00:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-12-31</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>25973.820000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2015-12-31</Value>
</DataRecord>
<DataRecord id="5">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>C0 01 01 0C</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>19000055</Id>
<Manufacturer>SBC</Manufacturer>
<Version>22</Version>
<ProductName>Saia-Burgess ALE3</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>191</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>2930.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>2930.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>60.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>60.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>223.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11788</Id>
<Manufacturer>SEN</Manufacturer>
<Version>6</Version>
<ProductName></ProductName>
<Medium>Heat / Cooling load meter</Medium>
<AccessNumber>62</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2015-04-07T14:59:00Z</Value>
</DataRecord>
<DataRecord id="1">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2000-01-01T00:00:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>67108864.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>15803026.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>15145636.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>39831000.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>6162.878000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-170.721784</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>3.230039</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>31.147324</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>31.193100</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>-0.045776</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>11582321.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>756.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11788.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>-19184.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>21265095</Id>
<Manufacturer>SEN</Manufacturer>
<Version>14</Version>
<ProductName>Sensus PolluStat E</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>181</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>20.100000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>20.200000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>21265095.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Customer location</Quantity>
<Value>21265095.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>24351689</Id>
<Manufacturer>SEN</Manufacturer>
<Version>11</Version>
<ProductName>Sensus PolluTherm</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>84</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>24351689.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Customer location</Quantity>
<Value>24351689.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11817314</Id>
<Manufacturer>SLB</Manufacturer>
<Version>6</Version>
<ProductName>CF Compact / Integral MK MaXX</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>3</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11817314.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.020000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>21.800000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>22.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>-0.180000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>101606400.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T14:02:00Z</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1.230000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>3.210000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>3.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>18.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 16</Value>
</DataRecord>
</MBusData>

View File

@ -58,7 +58,7 @@
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Temperature Difference (1e-2 deg C)</Unit>
<Value>1500018</Value>
<Value>F00018</Value>
</DataRecord>
<DataRecord id="7">

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>2</Id>
<Manufacturer>ELV</Manufacturer>
<Version>21</Version>
<ProductName>Elvaco CMa10</ProductName>
<Medium>Other</Medium>
<AccessNumber>13</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Digital Input</Quantity>
<Value>2.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>46.600000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>37.820000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>51.220000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>22.620000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>22.500000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>23.260000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Averaging Duration</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Value during error state</Function>
<StorageNumber>1</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Value during error state</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>2.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>772.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>31425084</Id>
<Manufacturer>ZRM</Manufacturer>
<Version>129</Version>
<ProductName>Minol Minocal C2</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>115</AccessNumber>
<Status>27</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>8</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2015-01-01T00:00:00Z</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>8</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>10</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.074000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.043000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-09-01T08:30:00Z</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Maximum value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>2000.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Maximum value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-09-01T08:30:00Z</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>20.710000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>20.380000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2014-03-13T12:45:00Z</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>32</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-03-01</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>32</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>33</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-02-01</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>33</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>34</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-01-01</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>34</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>35</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-12-01</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>35</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>36</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-11-01</Value>
</DataRecord>
<DataRecord id="24">
<Function>Instantaneous value</Function>
<StorageNumber>36</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="25">
<Function>Instantaneous value</Function>
<StorageNumber>37</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-10-01</Value>
</DataRecord>
<DataRecord id="26">
<Function>Instantaneous value</Function>
<StorageNumber>37</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="27">
<Function>Instantaneous value</Function>
<StorageNumber>38</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-09-01</Value>
</DataRecord>
<DataRecord id="28">
<Function>Instantaneous value</Function>
<StorageNumber>38</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="29">
<Function>Instantaneous value</Function>
<StorageNumber>39</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2013-08-01</Value>
</DataRecord>
<DataRecord id="30">
<Function>Instantaneous value</Function>
<StorageNumber>39</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>3000.000000</Value>
</DataRecord>
<DataRecord id="31">
<Function>Maximum value</Function>
<StorageNumber>32</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2014-03-01</Value>
</DataRecord>
<DataRecord id="32">
<Function>Maximum value</Function>
<StorageNumber>32</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="33">
<Function>Maximum value</Function>
<StorageNumber>32</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>78563412</Id>
<Manufacturer>ABB</Manufacturer>
<Version>2</Version>
<ProductName>ABB Delta-Meter</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>69</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>4</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>4</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>1000000.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>26718590</Id>
<Manufacturer>HYD</Manufacturer>
<Version>40</Version>
<ProductName>ABB F95 Typ US770</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>115</AccessNumber>
<Status>50</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.074200</Value>
</DataRecord>
<DataRecord id="2">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>1311041.300000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>11.041300</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>20.400000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>20.400000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-13T16:34:00Z</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-04-30T23:59:00Z</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-04-30T23:59:00Z</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-12-31T23:59:00Z</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>311590800.000000</Value>
</DataRecord>
</MBusData>

View File

@ -30,14 +30,14 @@
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (1e-1 W)</Unit>
<Value>144521543</Value>
<Value>DDEBB4DD</Value>
</DataRecord>
<DataRecord id="3">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>Volume flow (1e-4 m^3/h)</Unit>
<Value>1521543</Value>
<Value>EBB4DD</Value>
</DataRecord>
<DataRecord id="4">

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>2205100</Id>
<Manufacturer>SLB</Manufacturer>
<Version>2</Version>
<ProductName>Allmess Megacontrol CF-50</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>0</AccessNumber>
<Status>88</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.300000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>128.800000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>51.600000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>77.230000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2012-01-12</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>292291200.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>60 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1 @@
68 38 38 68 08 C8 72 09 31 54 03 B4 05 B0 04 C9 10 FF FF 03 22 9A 00 00 05 2E A0 C8 51 46 05 3E B4 E3 D7 42 05 5B 90 D3 07 43 05 5F 0E AA E7 41 05 63 9C BC D5 42 04 6D 10 09 05 C5 77 16

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>3543109</Id>
<Manufacturer>AMT</Manufacturer>
<Version>176</Version>
<ProductName>Aquametro CALEC MB</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>201</AccessNumber>
<Status>10</Status>
<Signature>FFFF</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>554400.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>13426156.250000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>107.944733</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>135.826416</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>28.958035</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>106.868378</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2096-05-05T09:16:00Z</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>3543109</Id>
<Manufacturer>AMT</Manufacturer>
<Version>176</Version>
<ProductName>Aquametro CALEC MB</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>201</AccessNumber>
<Status>10</Status>
<Signature>FFFF</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>On time (hours)</Unit>
<Value>154</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (kW)</Unit>
<Value>13426.156250</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Volume flow ( m^3/h)</Unit>
<Value>107.944733</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Flow temperature (deg C)</Unit>
<Value>135.826416</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Return temperature (deg C)</Unit>
<Value>28.958035</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Temperature Difference ( deg C)</Unit>
<Value>106.868378</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Time Point (time &amp; date)</Unit>
<Value>2096-05-05T09:16:00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>0</Id>
<Manufacturer>ABB</Manufacturer>
<Version>2</Version>
<ProductName>ABB Delta-Meter</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>0</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>4</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>4</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1 @@
68 90 90 68 08 0A 72 78 65 34 21 24 40 01 02 55 00 00 00 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0A FD 3A 00 05 0A FD 3A 05 00 0A FD 3A 05 00 0A FD 3A 05 00 0A FD 3A 50 00 4D 16

View File

@ -0,0 +1,199 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>21346578</Id>
<Manufacturer>PAD</Manufacturer>
<Version>1</Version>
<ProductName></ProductName>
<Medium>Electricity</Medium>
<AccessNumber>85</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>1234.560000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>123.456000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>123.456000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>123.456000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>123.456000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>12345.600000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>12345.600000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>12345.600000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>12345.600000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>123456.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>123456.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>123456.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>123456.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>500.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>5.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>5.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>5.000000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Dimensionless</Quantity>
<Value>50.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>21346578</Id>
<Manufacturer>PAD</Manufacturer>
<Version>1</Version>
<ProductName></ProductName>
<Medium>Electricity</Medium>
<AccessNumber>85</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>1e-2 V</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m A</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m A</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m A</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m A</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (1e-1 W)</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (1e-1 W)</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (1e-1 W)</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Power (1e-1 W)</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>123456</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>500</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>5</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>5</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>5</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>dimensionless / no VIF</Unit>
<Value>50</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>500023E</Id>
<Manufacturer>SBC</Manufacturer>
<Version>18</Version>
<ProductName></ProductName>
<Medium>Electricity</Medium>
<AccessNumber>19</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>12520.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>12520.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>17744330.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>17744330.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>237.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>3.200000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>790.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-180.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>231.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>3.500000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>810.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-150.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>228.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>6.900000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>1600.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-320.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>3200.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-650.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>4.000000</Value>
</DataRecord>
</MBusData>

View File

@ -2,7 +2,7 @@
<MBusData>
<SlaveInformation>
<Id>5000244</Id>
<Id>500023E</Id>
<Manufacturer>SBC</Manufacturer>
<Version>18</Version>
<ProductName></ProductName>

View File

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>50002E5</Id>
<Manufacturer>@@@</Manufacturer>
<Version>18</Version>
<ProductName></ProductName>
<Medium>Electricity</Medium>
<AccessNumber>37</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>2540.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>2540.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>4441280.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>4441280.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>233.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.100000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>234.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>235.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.100000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Manufacturer specific</Quantity>
<Value>4.000000</Value>
</DataRecord>
</MBusData>

View File

@ -2,7 +2,7 @@
<MBusData>
<SlaveInformation>
<Id>5000345</Id>
<Id>50002E5</Id>
<Manufacturer>@@@</Manufacturer>
<Version>18</Version>
<ProductName></ProductName>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>70112345</Id>
<Manufacturer>ELS</Manufacturer>
<Version>10</Version>
<ProductName>Elster Falcon</ProductName>
<Medium>Water</Medium>
<AccessNumber>2</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1234.567000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2007-02-06T13:58:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2007-01-01</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>456.951000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2008-01-01</Value>
</DataRecord>
<DataRecord id="5">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>5.945000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2008-01-01</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>6.137000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>0E 42 20 01 01 01 00 05 08 5E 01 20 3D 12 08 3D 12 08 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>70112345</Id>
<Manufacturer>ELS</Manufacturer>
<Version>2</Version>
<ProductName>Elster TMP-A</ProductName>
<Medium>Water</Medium>
<AccessNumber>2</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1234.567000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2007-02-06T13:58:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2007-01-01</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>456.951000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2008-01-01</Value>
</DataRecord>
<DataRecord id="5">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>54000834</Id>
<Manufacturer>ELV</Manufacturer>
<Version>50</Version>
<ProductName>Elvaco CMa11</ProductName>
<Medium>Other</Medium>
<AccessNumber>242</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Digital Input</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>45.640000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>45.520000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>%RH</Quantity>
<Value>58.120000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>22.560000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Minimum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>21.600000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>23.390000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Averaging Duration</Quantity>
<Value>86400.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>22.760000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>External temperature</Quantity>
<Value>22.690000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>54000834.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>262144.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>More records follow</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value></Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>623702</Id>
<Manufacturer>EMH</Manufacturer>
<Version>0</Version>
<ProductName>EMH DIZ</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>7</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>4090.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,225 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>10380010</Id>
<Manufacturer>EFE</Manufacturer>
<Version>1</Version>
<ProductName>Engelmann SensoStar 2C</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>30</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>10380010.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-06-06T20:50:00Z</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>12.900000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>800000.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>95.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>43.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>52.580000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>43718400.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Error flags</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.100000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2011-12-31</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>12.900000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>800000.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2010-12-31</Value>
</DataRecord>
<DataRecord id="20">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>8.400000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>500000.000000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
</MBusData>

View File

@ -36,7 +36,7 @@
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>8</Value>
</DataRecord>
@ -45,7 +45,7 @@
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>
@ -54,7 +54,7 @@
<StorageNumber>0</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>
@ -131,7 +131,7 @@
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>8</Value>
</DataRecord>
@ -140,7 +140,7 @@
<StorageNumber>1</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>
@ -149,7 +149,7 @@
<StorageNumber>1</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>
@ -176,7 +176,7 @@
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>5</Value>
</DataRecord>
@ -185,7 +185,7 @@
<StorageNumber>2</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>
@ -194,7 +194,7 @@
<StorageNumber>2</StorageNumber>
<Tariff>3</Tariff>
<Device>0</Device>
<Unit>Unrecognized VIF extension: 0x00</Unit>
<Unit>Energy (0.1 MWh)</Unit>
<Value>0</Value>
</DataRecord>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>3575845</Id>
<Manufacturer>AMT</Manufacturer>
<Version>52</Version>
<ProductName>Aquametro AMTRON</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>158</AccessNumber>
<Status>00</Status>
<Signature>B627</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>1389817000.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>504647.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>41.737434</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>35.463650</Value>
</DataRecord>
</MBusData>

View File

@ -5,7 +5,7 @@
<Id>3575845</Id>
<Manufacturer>AMT</Manufacturer>
<Version>52</Version>
<ProductName></ProductName>
<ProductName>Aquametro AMTRON</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>158</AccessNumber>
<Status>00</Status>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>3575845</Id>
<Manufacturer>AMT</Manufacturer>
<Version>52</Version>
<ProductName>Aquametro AMTRON</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>161</AccessNumber>
<Status>00</Status>
<Signature>B627</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>1389817000.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>504647.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>41.211052</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>35.385593</Value>
</DataRecord>
</MBusData>

View File

@ -5,7 +5,7 @@
<Id>3575845</Id>
<Manufacturer>AMT</Manufacturer>
<Version>52</Version>
<ProductName></ProductName>
<ProductName>Aquametro AMTRON</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>161</AccessNumber>
<Status>00</Status>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>17677731</Id>
<Manufacturer>KAM</Manufacturer>
<Version>1</Version>
<ProductName>Kamstrup 382 (6850-005)</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>0</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>5000.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>10060958</Id>
<Manufacturer>LSE</Manufacturer>
<Version>22</Version>
<ProductName></ProductName>
<Medium>Bus/System</Medium>
<AccessNumber>123</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>5F 42 01 11 FF FF FF FF 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>12345678</Id>
<Manufacturer>PAD</Manufacturer>
<Version>1</Version>
<ProductName></ProductName>
<Medium>Water</Medium>
<AccessNumber>85</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>12.565000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Maximum value</Function>
<StorageNumber>5</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.113000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>218370.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,215 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>12345678</Id>
<Manufacturer>GMC</Manufacturer>
<Version>230</Version>
<ProductName>GMC-I A230 EMMOD 206</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>2</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>86.400000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>95.900000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>3</Device>
<Unit>V</Unit>
<Quantity>Voltage</Quantity>
<Value>105.600000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>0.957000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>1.055000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>3</Device>
<Unit>A</Unit>
<Quantity>Current</Quantity>
<Value>1.150000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>224.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>-202.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>103880.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>150000.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>201590.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>250000.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>300910.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>2</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>350000.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>3</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>402370.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>3</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>450000.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>2</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>224.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>4</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>6</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Instantaneous value</Function>
<StorageNumber>8</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>202.000000</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11490378</Id>
<Manufacturer>ACW</Manufacturer>
<Version>14</Version>
<ProductName>Itron BM +m</ProductName>
<Medium>Cold water</Medium>
<AccessNumber>41</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11490378.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>54.321000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2000-00-00</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T13:29:00Z</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>2.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>6.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 00 8F 13</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11155185</Id>
<Manufacturer>ACW</Manufacturer>
<Version>10</Version>
<ProductName>Itron CF 51</ProductName>
<Medium>Heat / Cooling load meter</Medium>
<AccessNumber>27</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11155185.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>99999900.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>999.900000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>999.900000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>9999.990000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T13:24:00Z</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>8985600.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>11.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>26.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>321.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1.230000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>03 20</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11127667</Id>
<Manufacturer>ACW</Manufacturer>
<Version>11</Version>
<ProductName>Itron CF 55</ProductName>
<Medium>Heat: Inlet</Medium>
<AccessNumber>11</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11127667.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>99999900.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>999.900000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>999.900000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>9999.990000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T11:47:00Z</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>21772800.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>10.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>21.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>03 20</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11100091</Id>
<Manufacturer>ACW</Manufacturer>
<Version>9</Version>
<ProductName>Itron CF Echo 2</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>81</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11100091.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>99999900.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>999.999000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>20.500000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>20.600000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.090000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T13:29:00Z</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>33264000.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>19.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>45.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>20 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>10020380</Id>
<Manufacturer>ACW</Manufacturer>
<Version>20</Version>
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
<Medium>Cold water</Medium>
<AccessNumber>161</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>10020380.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>cust. ID</Quantity>
<Value> </Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-10-25T15:39:00Z</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>bat. time</Quantity>
<Value>4050.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>453.500000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>453.500000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 04 1F</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>10020387</Id>
<Manufacturer>ACW</Manufacturer>
<Version>20</Version>
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
<Medium>Gas</Medium>
<AccessNumber>154</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>10020387.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>cust. ID</Quantity>
<Value> </Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-10-25T15:43:00Z</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>bat. time</Quantity>
<Value>4050.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.260000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.250000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 02 1F</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>12000071</Id>
<Manufacturer>ACW</Manufacturer>
<Version>20</Version>
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
<Medium>Water</Medium>
<AccessNumber>10</AccessNumber>
<Status>30</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>12000071.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>cust. ID</Quantity>
<Value>TEST CYBLE</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T13:43:00Z</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>bat. time</Quantity>
<Value>4338.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>123.490000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.200000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>10 01 1F</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>11817314</Id>
<Manufacturer>SLB</Manufacturer>
<Version>6</Version>
<ProductName>CF Compact / Integral MK MaXX</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>93</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>11817314.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.020000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>21.200000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>21.100000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>0.070000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>34300800.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-24T14:17:00Z</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>1.230000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>3.210000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Firmware version</Quantity>
<Value>3.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Software version</Quantity>
<Value>18.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 16</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>14839120</Id>
<Manufacturer>KAM</Manufacturer>
<Version>1</Version>
<ProductName>Kamstrup 382 (6850-005)</ProductName>
<Medium>Electricity</Medium>
<AccessNumber>4</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>32400.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>1</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>6855817</Id>
<Manufacturer>KAM</Manufacturer>
<Version>8</Version>
<ProductName>Kamstrup Multical 601</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>4</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>6855817.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>37351000.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>561.080000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>3546000.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>101.690000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>46.160000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>55.530000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>34700.000000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>44800.000000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.543000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.628000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>0</Tariff>
<Device>3</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2011-01-05T15:26:00Z</Value>
</DataRecord>
<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>33361000.000000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>500.980000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>55000.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>1.027000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>2</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>0</Tariff>
<Device>1</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="24">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>0</Tariff>
<Device>2</Device>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="25">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>0</Tariff>
<Device>3</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="26">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date)</Quantity>
<Value>2010-12-31</Value>
</DataRecord>
<DataRecord id="27">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>00 00 00 00 E7 E4 00 00 63 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B C9 A5 02 34 53 00 00 E0 B2 03 00 89 9C 68 00 00 00 00 00 01 00 01 07 07 09 01 03 00 00 00 00 00</Value>
</DataRecord>
</MBusData>

View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>66660205</Id>
<Manufacturer>LUG</Manufacturer>
<Version>7</Version>
<ProductName>Landis &amp; Gyr Ultraheat T230</ProductName>
<Medium>Heat: Outlet</Medium>
<AccessNumber>1</AccessNumber>
<Status>10</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Actuality Duration</Quantity>
<Value>4.000000</Value>
</DataRecord>
<DataRecord id="1">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Averaging Duration</Quantity>
<Value>8.000000</Value>
</DataRecord>
<DataRecord id="2">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="3">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="4">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="5">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="6">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>19.500000</Value>
</DataRecord>
<DataRecord id="7">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>19.700000</Value>
</DataRecord>
<DataRecord id="8">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>K</Unit>
<Quantity>Temperature difference</Quantity>
<Value>-0.200000</Value>
</DataRecord>
<DataRecord id="9">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity>Fabrication No</Quantity>
<Value>66660205.000000</Value>
</DataRecord>
<DataRecord id="10">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>s</Unit>
<Quantity>Averaging Duration</Quantity>
<Value>420.000000</Value>
</DataRecord>
<DataRecord id="11">
<Function>Value during error state</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>13568400.000000</Value>
</DataRecord>
<DataRecord id="12">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>13568400.000000</Value>
</DataRecord>
<DataRecord id="13">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>5</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="15">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="16">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="17">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>30.700000</Value>
</DataRecord>
<DataRecord id="18">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>50.700000</Value>
</DataRecord>
<DataRecord id="19">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="20">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="21">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>41065374.600000</Value>
</DataRecord>
<DataRecord id="22">
<Function>Maximum value</Function>
<StorageNumber>0</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>40953732.300000</Value>
</DataRecord>
<DataRecord id="23">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="24">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>m^3</Unit>
<Quantity>Volume</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="25">
<Function>Value during error state</Function>
<StorageNumber>1</StorageNumber>
<Unit>s</Unit>
<Quantity>On time</Quantity>
<Value>12488400.000000</Value>
</DataRecord>
<DataRecord id="26">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>s</Unit>
<Quantity>Operating time</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="27">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>5</Tariff>
<Device>0</Device>
<Unit>Wh</Unit>
<Quantity>Energy</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="28">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>W</Unit>
<Quantity>Power</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="29">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>m^3/h</Unit>
<Quantity>Volume flow</Quantity>
<Value>0.000000</Value>
</DataRecord>
<DataRecord id="30">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Flow temperature</Quantity>
<Value>30.700000</Value>
</DataRecord>
<DataRecord id="31">
<Function>Maximum value</Function>
<StorageNumber>1</StorageNumber>
<Tariff>1</Tariff>
<Device>0</Device>
<Unit>°C</Unit>
<Quantity>Return temperature</Quantity>
<Value>50.700000</Value>
</DataRecord>
<DataRecord id="32">
<Function>Instantaneous value</Function>
<StorageNumber>510</StorageNumber>
<Tariff>0</Tariff>
<Device>0</Device>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2127-01-01T00:00:00Z</Value>
</DataRecord>
<DataRecord id="33">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>-</Unit>
<Quantity>Time point (date &amp; time)</Quantity>
<Value>2012-01-13T12:04:00Z</Value>
</DataRecord>
<DataRecord id="34">
<Function>Manufacturer specific</Function>
<StorageNumber>0</StorageNumber>
<Unit></Unit>
<Quantity></Quantity>
<Value>09 07 00 66 01</Value>
</DataRecord>
</MBusData>

View File

@ -72,7 +72,7 @@
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Temperature Difference (1e-1 deg C)</Unit>
<Value>1500002</Value>
<Value>F00002</Value>
</DataRecord>
<DataRecord id="9">

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>
<SlaveInformation>
<Id>12345678</Id>
<Medium>Water</Medium>
<AccessNumber>10</AccessNumber>
<Status>00</Status>
</SlaveInformation>
<DataRecord id="0">
<Function>Actual value</Function>
<Unit>l</Unit>
<Value>1</Value>
</DataRecord>
<DataRecord id="1">
<Function>Actual value</Function>
<Unit>reserved but historic</Unit>
<Value>135</Value>
</DataRecord>
</MBusData>

Some files were not shown because too many files have changed in this diff Show More