npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iobroker.idm-multitalent_002

v1.2.6

Published

Read and write values of a iDM heatpump with multitalent.002 control.

Downloads

29

Readme

Logo

Attention! This is an open source adapter from an individual that is not related to the manufacturer, no warranty or guarantees!

Still the manufacturer agreed to the publishing of this work.

You might loose warranty from the manufacturer!

ioBroker.idm-multitalent_002

NPM version Downloads Number of Installations Current version in stable repository NPM

Tests: Test and Release

idm-multitalent_002 adapter for ioBroker

Read sensor data and read and write settings of a iDM heatpump with multitalent.002 control.

Currently following versions are supported (if your version is not listed but you are interested please contact me):

  • TERRA050701 - idm701 (idm701100)... mostly supported, one installation, running since April 6th, 2022
  • TERRA061001 - idm712 (idm712100)... supported, one experimental installation
  • EVR-070110 - idm722 (idm722100)... in development
  • EVR-II071102 - idm750 (idm750100)... experimentally, no known installation, issues with data definitions
  • EVR-II100201 - EVR752 (EVR752101)... support in development currently, ATTENTION: unstable as of May 2023
  • TERRA130601 - S_H726 (S_H726100)... supported for most values with 2 heating circuits

You need a Ethernet to RS422 converter to connect to the multitalent control. Note that you have to connect ground/shield of your converter to the ground of the control/heatpump in order to prevent electric influences on the sensor readings. There are sensor values and settings values. During a cycle all sensor values and one part of the settings values are read. So the sensor values are read more frequently than the settings values. The changed values are transferred immediately. Note that settings of the heatpump are only read all ~5-6 cycles, so when setting values the acknowledgment might take some time.

During bootup of the control (e.g. after a power loss) no values should be polled from the control. This is currently NOT ensured by the adapter. So you manually need to stop it. If the control of the heatpump did not start due to the adapter then simply stop the adapter and power cycle the control. This should fix the problem. Afterwards you can start the adapter again. I implemented a delayed switch-on of the serial server. This also mitigates the problem.

Example installation:

system overview

Settings of the serial adapter:

 Baud Rate(bps) 19200
 Parity         Even
 Data Bit       8
 Stop Bit       1
 Flow Control   None
 UART FIFO      Disable

Changelog

1.2.6 (2024-09-21)

  • (zloe) fixed reconnect handling

1.2.5 (2024-01-21)

  • (zloe) further fixes in error handling

1.2.4 (2024-01-21)

  • (zloe) further improve logging and handling of transmission errors

1.2.3 (2024-01-21)

  • (zloe) improve handling of data transmission problems

1.2.2 (2024-01-21)

  • (zloe) fix handling of data transmission problems which lead to stopping requesting data

1.2.1 (2024-01-20)

  • (zloe) improving statistics and log messages
  • (zloe) fix data definition for idm722100

1.2.0 (2024-01-19)

  • (zloe) adding support for idm722100

1.1.1 (2023-11-04)

  • (zloe) optimizing protocol
  • (zloe) updated dependencies

1.1.0 (2023-11-02)

  • (zloe) initial version TERRA130601 - S_H726100 support
  • (zloe) updated dependencies

1.0.4 (2023-10-30)

  • (zloe) writing values fix to include scaling factor in datastructure

1.0.3 (2023-10-30)

  • (zloe) fix writing values with scaling factor

1.0.2 (2023-10-30)

  • (zloe) changes to data definitions
  • (zloe) fixed retry after error message from heatpump again

1.0.1 (2023-10-27)

  • (zloe) fixed retry after receiving error message from heatpump

1.0.0 (2023-10-26)

  • (zloe) major rework, go for a dynamic approach

0.2.10 (2023-10-16)

  • (zloe) fixed timing
  • (zloe) updated dependencies
  • (zloe) last version with static timing, timing very relaxed to ensure working

0.2.8 (2023-06-08)

  • (zloe) fixing reconnect timing to avoid pending requests overlapping with reconnection messages

0.2.7 (2023-06-08)

  • (zloe) ongoing work on EVR752101
  • (zloe) updated dependencies, dropped support for nodejs 14
  • (zloe) adjusted timing to hopefully prevent estart loops in some situations

0.2.6 (2023-05-06)

  • (zloe) allowing more values to be written
  • (zloe) more unit tests

0.2.5 (2023-05-05)

  • (zloe) further fixing for version EVR752101, datablock definition fixes

0.2.4 (2023-05-03)

  • (zloe) further fixing for version EVR752101

0.2.3 (2023-05-03)

  • (zloe) further fixing for version EVR752101

0.2.2 (2023-05-01)

  • (zloe) fixed an issue writing values introduced with 0.2.0
  • (zloe) updating dependencies
  • (zloe) further fixing for version EVR752101

0.2.1 (2023-04-30)

  • (zloe) fixed padding in datablock 7 for version IDM712100

0.2.0 (2023-04-30)

  • (zloe) added experimental support for version EVR752101
  • (zloe) fixed bug with signed values

0.1.2 (2022-04-17)

  • (zloe) refactoring

0.1.1 (2022-04-17)

  • (zloe) improved error and reconnect handling

0.1.0 (2022-04-10)

  • (zloe) request static data at a different (less frequent) interval or when changes are sent to the control
  • (zloe) first running version, still missing proper error handling
  • (zloe) do not use custom state parameters as they are overwritten in some circumstances (i do not yet understand how to do this properly)

0.0.2 (2022-02-19)

  • (zloe) initial release

License

MIT License

Copyright (c) 2024 zloe [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Installation

As the adapter is not (yet) listed in the official ioBroker repository you have to download the tgz file from here (github or npmjs).

  1. Upload the file to your ioBroker host
  2. Install it locally (The paths are different on Windows):
    cd /opt/iobroker
    npm i /path/to/tarball.tgz

Developer manual

Missing documentation about the data structures/blocks.

Attention, still experimental, ... the adapter sets values of the heatpump, so do not install, unless you know what you are doing and contacted the author!

Getting started

You are almost done, only a few steps left:

  1. Create a new repository on GitHub with the name ioBroker.idm-multitalent_002

  2. Initialize the current folder as a new git repository:

    git init -b main
    git add .
    git commit -m "Initial commit"
  3. Link your local repository with the one on GitHub:

    git remote add origin https://github.com/zloe/ioBroker.idm-multitalent_002
  4. Push all files to the GitHub repo:

    git push origin main
  5. Head over to main.js and start programming!

Best Practices

We've collected some best practices regarding ioBroker development and coding in general. If you're new to ioBroker or Node.js, you should check them out. If you're already experienced, you should also take a look at them - you might learn something new :)

Scripts in package.json

Several npm scripts are predefined for your convenience. You can run them using npm run <scriptname> | Script name | Description | |-------------|-------------| | test:js | Executes the tests you defined in *.test.js files. | | test:package | Ensures your package.json and io-package.json are valid. | | test:unit | Tests the adapter startup with unit tests (fast, but might require module mocks to work). | | test:integration | Tests the adapter startup with an actual instance of ioBroker. | | test | Performs a minimal test run on package files and your tests. | | check | Performs a type-check on your code (without compiling anything). | | lint | Runs ESLint to check your code for formatting errors and potential bugs. | | release | Creates a new release, see @alcalzone/release-script for more details. |

Writing tests

When done right, testing code is invaluable, because it gives you the confidence to change your code while knowing exactly if and when something breaks. A good read on the topic of test-driven development is https://hackernoon.com/introduction-to-test-driven-development-tdd-61a13bc92d92. Although writing tests before the code might seem strange at first, but it has very clear upsides.

The template provides you with basic tests for the adapter startup and package files. It is recommended that you add your own tests into the mix.

Publishing the adapter

Using GitHub Actions, you can enable automatic releases on npm whenever you push a new git tag that matches the form v<major>.<minor>.<patch>. We strongly recommend that you do. The necessary steps are described in .github/workflows/test-and-release.yml.

Since you installed the release script, you can create a new release simply by calling:

npm run release

Additional command line options for the release script are explained in the release-script documentation.

To get your adapter released in ioBroker, please refer to the documentation of ioBroker.repositories.

Test the adapter manually on a local ioBroker installation

In order to install the adapter locally without publishing, the following steps are recommended:

  1. Create a tarball from your dev directory:
    npm pack
  2. Upload the resulting file to your ioBroker host
  3. Install it locally (The paths are different on Windows):
    cd /opt/iobroker
    npm i /path/to/tarball.tgz

For later updates, the above procedure is not necessary. Just do the following:

  1. Overwrite the changed files in the adapter directory (/opt/iobroker/node_modules/iobroker.idm-multitalent_002)
  2. Execute iobroker upload idm-multitalent_002 on the ioBroker host

Copyright (c) 2024 zloe [email protected]