Giter Club home page Giter Club logo

iobroker.cul's Introduction

Logo

ioBroker (windows installer)

NPM version Downloads

NPM

Automate your life!

To install on Linux just run: npx @iobroker/install

To install on Windows: mkdir C:\iobroker && cd C:\iobroker && npx @iobroker/install or use installer

See ioBroker documentation for more information

ioBroker is an integration platform for the Internet of Things, focused on Building Automation, Smart Metering, Ambient Assisted Living, Process Automation, Visualization and Data Logging.

Concept

ioBroker is not just an application, it's more of a concept and a database schema. It offers a very easy way for systems to interoperate. ioBroker defines some common rules for a pair of databases used to exchange data and publish events between different systems.

architecture

Databases

ioBroker uses "in memory" database to hold the data and saves it on disk with reasonable intervals. There are two types of storage:

  • objects (meta/configuration information)
  • states (values)

Objects and states can be stored in "in memory" or in Redis.

Redis is an in-memory key-value data store and also a message broker with publish/subscribe pattern.

It's used to maintain and publish all states of connected systems.

Adapters

Systems are attached to ioBrokers databases via so-called adapters, technically processes running anywhere in the network and connecting all kinds of systems to ioBrokers databases. A connection to ioBrokers databases can be implemented in nearly any programming language on nearly any platform and an adapter can run on any host that is able to reach the databases via ip networking.

See actual list of adapters on iobroker.net

Security

ioBroker is designed to be accessed by trusted adapters inside trusted networks. This means that usually it is not a good idea to expose the ioBroker databases, adapters or any smart home devices directly to the internet or, in general, to an environment where untrusted clients can directly access these network services. Adapters that offer services supposed to be exposed to the internet should be handled with care. You should always activate HTTPS and use valid certificates for web, admin if open it for internet or for example use it with additional security measures like VPN, VLAN and reverse proxies.

Getting Started

Operating System and Hardware

ioBroker.js-controller should run on any hardware and OS that runs Node.js (ARM, x86, Windows, Linux, OSX).

ioBroker spawns a new Node.js process for every adapter instance, so RAM becomes a limiting factor. A single adapter's memory fingerprint is roundabout 10 to 60 MB.

Installation and first steps

Community support

Logos and pictures

All logos are protected by copyright and may not be used without permission.

Please request permission via [email protected]

Logos

License

This module is distributor under the MIT License (MIT). Please notice, that other ioBroker adapters can have different licenses.

The MIT License (MIT)

Copyright (c) 2014-2024 bluefox [email protected], Copyright (c) 2014 hobbyquaker

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.

iobroker.cul's People

Contributors

apollon77 avatar apulanto avatar dependabot[bot] avatar evilels avatar foxriver76 avatar germanbluefox avatar hobbyquaker avatar johnnybyzhang avatar jpk75 avatar ldittmar81 avatar maag-da avatar marcusk2001 avatar mk-2001 avatar radioactive83 avatar unclesamswiss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

iobroker.cul's Issues

Find no way to send FS20 Codes by Objects

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

There is no way to send in Objects

Describe the solution you'd like
A clear and concise description of what you want to happen.

FS20 Objects for sending Homecode, devicecode, cmd

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

I spent the hole night the get a solution... I found a lot of questions about this issu, but no solutions

Additional context

I hope it is the right way to open an issue :) ??

Add any other context or screenshots about the feature request here.

Installation Error

Hello, I'm not able to install.

sudo -u iobroker npm install https://github.com/ioBroker/ioBroker.cul/tarball/master --loglevel error --prefix "/opt/iobroker" 

> @serialport/[email protected] install /opt/iobroker/node_modules/@serialport/bindings
> prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild

sh: /opt/iobroker/node_modules/.bin/prebuild-install: Permission denied
make: Entering directory '/opt/iobroker/node_modules/@serialport/bindings/build'
  CXX(target) Release/obj.target/bindings/src/serialport.o
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../../nan/nan.h:2294:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
 2294 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
      |                                                              ^
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:78:69: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
   78 |   uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
      |                                                                     ^~~~~~~~~~~~~
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:135:71: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  135 |   uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
      |                                                                       ^~~~~~~~~~~~~~~
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:175:70: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  175 |   uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
      |                                                                      ^~~~~~~~~~~~~~
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:215:70: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  215 |   uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
      |                                                                      ^~~~~~~~~~~~~~
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:270:68: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  270 |   uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
      |                                                                    ^~~~~~~~~~~~
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:314:68: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  314 |   uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
      |                                                                    ^~~~~~~~~~~~
../src/serialport.cpp: In function 'void EIO_AfterGet(uv_work_t*)':
../src/serialport.cpp:329:96: error: no matching function for call to 'v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)'
  329 |     results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts));
      |                                                                                                ^
In file included from /home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:67,
                 from ../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)'
 3547 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note:   candidate expects 3 arguments, 2 provided
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)'
 3550 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note:   candidate expects 3 arguments, 2 provided
../src/serialport.cpp:330:96: error: no matching function for call to 'v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)'
  330 |     results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr));
      |                                                                                                ^
In file included from /home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:67,
                 from ../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)'
 3547 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note:   candidate expects 3 arguments, 2 provided
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)'
 3550 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note:   candidate expects 3 arguments, 2 provided
../src/serialport.cpp:331:96: error: no matching function for call to 'v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)'
  331 |     results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd));
      |                                                                                                ^
In file included from /home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:67,
                 from ../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)'
 3547 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note:   candidate expects 3 arguments, 2 provided
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)'
 3550 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note:   candidate expects 3 arguments, 2 provided
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:363:76: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  363 |   uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
      |                                                                            ^~~~~~~~~~~~~~~~~~~~
../src/serialport.cpp: In function 'void EIO_AfterGetBaudRate(uv_work_t*)':
../src/serialport.cpp:378:106: error: no matching function for call to 'v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)'
  378 |     results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate));
      |                                                                                                          ^
In file included from /home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:67,
                 from ../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)'
 3547 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3547:37: note:   candidate expects 3 arguments, 2 provided
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note: candidate: 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)'
 3550 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
      |                                     ^~~
/home/iobroker/.cache/node-gyp/13.11.0/include/node/v8.h:3550:37: note:   candidate expects 3 arguments, 2 provided
../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)':
../src/serialport.cpp:409:70: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
  409 |   uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
      |                                                                      ^~~~~~~~~~~~~~
../src/serialport.cpp: At global scope:
../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of 'ToParityEnum' [-Wparentheses]
  430 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
      |                            ^
../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of 'ToStopBitEnum' [-Wparentheses]
  449 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
      |                              ^
In file included from ../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:618:43: warning: cast between incompatible function types from 'void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)' {aka 'void (*)(v8::Local<v8::Object>)'} to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
  618 |       (node::addon_register_func) (regfunc),                          \
      |                                           ^
/home/iobroker/.cache/node-gyp/13.11.0/include/node/node.h:652:3: note: in expansion of macro 'NODE_MODULE_X'
  652 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
      |   ^~~~~~~~~~~~~
../src/serialport.cpp:483:1: note: in expansion of macro 'NODE_MODULE'
  483 | NODE_MODULE(serialport, init);
      | ^~~~~~~~~~~
make: *** [bindings.target.mk:108: Release/obj.target/bindings/src/serialport.o] Error 1
make: Leaving directory '/opt/iobroker/node_modules/@serialport/bindings/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 4.19.108-1-MANJARO-ARM
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/iobroker/node_modules/@serialport/bindings
gyp ERR! node -v v13.11.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @serialport/[email protected] install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @serialport/[email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/iobroker/.npm/_logs/2020-04-30T09_21_38_961Z-debug.log

Problems with S300TH sensor address 0

Describe the bug
Raw data from my S300TH get's received und logged, but no objects are created.
CUL / slowRF / WS Sensors.

To Reproduce
Maybe difficult, but it seems that in main.js, line 331, the code exits although data is received.

Expected behavior
Creation of the objects to show temp and hum.

Screenshots & Logfiles
I just added - for testing purposes - the line "if (obj.address != '0')" and then it worked for me.
Interestingly, obj and obj.protocol have values ...

if (!obj || !obj.protocol || !obj.address) {
if (obj.address != '0'
return;
}

Versions:

  • Adapter version: 1.3.5
  • JS-Controller version: latest
  • Operating system: raspbian

Error at Max! Devices with CUNO device

Hi,
I have a strange error with the CUL Adapter with a flashed MAX! Cube as CUNO.
My window switches are found correctly but if I want to pair a MAX Radiator Thermostat basic, I got an error and the MAX Cube restarts.

Error:
MAX! Radiator Thermostat basic

cul.0 2018-07-16 20:36:54.377 error }
cul.0 2018-07-16 20:36:54.377 error }
cul.0 2018-07-16 20:36:54.377 error }
cul.0 2018-07-16 20:36:54.377 error return prop;
cul.0 2018-07-16 20:36:54.377 error if (this[prop] === value)
cul.0 2018-07-16 20:36:54.377 error if (this.hasOwnProperty(prop)) {
cul.0 2018-07-16 20:36:54.377 error for (var prop in this) {
cul.0 2018-07-16 20:36:54.377 error at TCP.onread (net.js:559:20) getKeyByValue=function (value) {
cul.0 2018-07-16 20:36:54.377 error at Socket.Readable.push (_stream_readable.js:134:10)
cul.0 2018-07-16 20:36:54.377 error at readableAddChunk (_stream_readable.js:176:18)
cul.0 2018-07-16 20:36:54.377 error at Socket.emit (events.js:188:7)
cul.0 2018-07-16 20:36:54.377 error at emitOne (events.js:96:13)
cul.0 2018-07-16 20:36:54.377 error at Socket.telnet.on.data (/opt/iobroker/node_modules/iobroker.cul/node_modules/cul/cul.js:218:17)
cul.0 2018-07-16 20:36:54.377 error at parse (/opt/iobroker/node_modules/iobroker.cul/node_modules/cul/cul.js:297:43)
cul.0 2018-07-16 20:36:54.377 error at Object.module.exports.parse (/opt/iobroker/node_modules/iobroker.cul/node_modules/cul/lib/moritz.js:183:50)
cul.0 2018-07-16 20:36:54.377 error TypeError: Cannot read property 'type' of undefined
cul.0 2018-07-16 20:36:54.377 error }
cul.0 2018-07-16 20:36:54.377 error }
cul.0 2018-07-16 20:36:54.377 error }

And every few seconds this appears in the LOG:

cul.0 2018-07-16 20:36:41.034 info }
cul.0 2018-07-16 20:36:41.034 info }
cul.0 2018-07-16 20:36:41.034 info }
cul.0 2018-07-16 20:36:41.034 info return prop;
cul.0 2018-07-16 20:36:41.034 info if (this[prop] === value)
cul.0 2018-07-16 20:36:41.034 info if (this.hasOwnProperty(prop)) {
cul.0 2018-07-16 20:36:41.034 info for (var prop in this) {
cul.0 2018-07-16 20:36:41.034 info -> getKeyByValue=function (value) {
cul.0 2018-07-16 20:36:41.034 info }
cul.0 2018-07-16 20:36:41.034 info }
cul.0 2018-07-16 20:36:41.034 info }

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/ioBroker/ioBroker.cul

  • [E104] No common.titleLang found in io-package.json
  • [E150] No common.connectionType found in io-package.json
  • [E152] No common.dataSource found in io-package.json
  • [E154] common.dependencies must contain {"js-controller": ">=2.0.0"} or {"js-controller": ">=3.0.0"}
  • [E605] No actual year found in copyright. Please add "Copyright (c) 2014-2022 hobbyquaker [email protected]" at the end of README.md

Thanks,
your automatic adapter checker.

MAX! Window contacts and the MAX! ECO button not correctly applied

** Describe the bug **
In versions 1.3.4 to 1.3.2 the MAX! Window contacts and the MAX! ECO button not correctly applied.
The error no longer occurs in version 1.3.1

** reproduce **

  • CUL adapter and objects deleted and installed in the respective version
  • MAX! Device on factory reset
  • CUL adapter started
  • MAX! read in
  • Errors found

** Screenshots & log files **
Here is a screenshot clarification. Above you can see a properly applied MAX! Window contact, below you can see an incorrectly created window contact. The actual status of the "Isopen" window contact is also missing here.

** Versions: **

  • Hardware: original CUNX
  • Adapter version: 1.3.4 Moritz mode
  • JS controller version: 3.1.6
  • Operating system: PI4 Buster

Please add your adapter to ioBroker.discovery

I am an automatic service from ioBroker that searches adapters and makes suggestions.

I noticed that your adapter is not integrated in the ioBroker.discovery. Using the Discovery adapter, ioBroker can automatically find devices or suggest services to the user for installation. If possible I would live to see your adapter added there.

Some adapters have already been added and you can use them as blueprints. See: https://github.com/ioBroker/ioBroker.discovery You need to fork this project and then create a PR for your adapter to be added.

Basically the plugins can do HTTP calls, UDP discovery, MDNS, UPNP and will iterate over all devices found by IP scan and check local serial ports. If you want you can also add new discovery methods but please try to do that with at least dependencies as possible.

Then create one file under lib/adapters for your adapter to implement the detection and proposal of an instance to the user.

On questions, the other developers will support in the forum or via GitHub issues too.

If no detection is possible, simply close this issue and I won't bother you again. ;-)

Thanks,
your automatic adapter checker.

HMS 100 TFK implementation is wrong

Hello,
the HMS 100 TFK sensor is a reed contact sensor with simple "on" and "off".
The ioBroker status of this sensor looks like temperature/humidity sensor, which is wrong.

Here are FHEM infos for that. I hope that helps.

FHEM HMS 100 TFK

I know that the sensors are old, but i have some pieces and went to ioBroker.
Is it possible to support it correctly?

Best regards
kodejak

Can't learn new Mortiz Devices

Describe the bug
After pressing the paring button on the MAX Heating Thremostat the adapter just breaks with the attached error log.

Screenshots & Logfiles
`

host.iobroker 2020-08-11 11:16:56.155 info instance system.adapter.cul.0 started with pid 2644
host.iobroker 2020-08-11 11:16:26.077 info Restart adapter system.adapter.cul.0 because enabled
host.iobroker 2020-08-11 11:16:26.076 info instance system.adapter.cul.0 terminated with code 0 (NO_ERROR)
host.iobroker 2020-08-11 11:16:26.075 error Caught by controller[1]: at ReadLineParser.Transform._read (_stream_transform.js:191:10)
host.iobroker 2020-08-11 11:16:26.075 error Caught by controller[1]: at ReadLineParser._transform (/opt/iobroker/node_modules/cul/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
host.iobroker 2020-08-11 11:16:26.074 error Caught by controller[1]: at ReadLineParser.Transform.push (_stream_transform.js:152:32)
host.iobroker 2020-08-11 11:16:26.074 error Caught by controller[1]: at ReadLineParser.Readable.push (_stream_readable.js:212:10)
host.iobroker 2020-08-11 11:16:26.073 error Caught by controller[1]: at readableAddChunk (_stream_readable.js:267:11)
host.iobroker 2020-08-11 11:16:26.073 error Caught by controller[1]: at addChunk (_stream_readable.js:295:12)
host.iobroker 2020-08-11 11:16:26.072 error Caught by controller[1]: at ReadLineParser.EventEmitter.emit (domain.js:483:12)
host.iobroker 2020-08-11 11:16:26.072 error Caught by controller[1]: at ReadLineParser.emit (events.js:315:20)
host.iobroker 2020-08-11 11:16:26.071 error Caught by controller[1]: at ReadLineParser.parse (/opt/iobroker/node_modules/cul/cul.js:320:43)
host.iobroker 2020-08-11 11:16:26.070 error Caught by controller[1]: at Object.module.exports.parse (/opt/iobroker/node_modules/cul/lib/moritz.js:183:51)
host.iobroker 2020-08-11 11:16:26.069 error Caught by controller[1]: TypeError: Cannot read property 'type' of undefined
host.iobroker 2020-08-11 11:16:26.061 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected
cul.0 2020-08-11 11:16:25.497 info (2626) Terminated (NO_ERROR): Without reason
cul.0 2020-08-11 11:16:25.496 debug (2626) Plugin sentry destroyed
cul.0 2020-08-11 11:16:25.493 info (2626) terminating
cul.0 2020-08-11 11:16:25.400 debug (2626) ->
cul.0 2020-08-11 11:16:25.395 error (2626) TypeError: Cannot read property 'type' of undefined at Object.module.exports.parse (/opt/iobroker/node_modules/cul/lib/moritz.js:183:51) at ReadLineParser.parse (/opt/iobroker/node_modu
cul.0 2020-08-11 11:16:25.372 error (2626) unhandled promise rejection: Cannot read property 'type' of undefined
cul.0 2020-08-11 11:16:25.368 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
cul.0 2020-08-11 11:15:56.608 debug (2626) ->
cul.0 2020-08-11 11:15:56.599 debug (2626) ->
cul.0 2020-08-11 11:15:54.487 info (2626) starting. Version 1.3.1 in /opt/iobroker/node_modules/iobroker.cul, node: v12.18.3, js-controller: 3.1.6

`
Versions:

Adapter version: 1.3.1
JS-Controller version: 3.1.6
Node version: v12.18.3
Operating system: Rasbian

Compatibility check to js-controller 4.0

Dear Adapter developer,

with js-controller 4.0 object definitions are now also checked that min/max in only provided for number/mixed objects and that the type of the default value matches to the object type.

If something is not correct this is logged as 'warning' or 'info' log.

Please also make sure to update to the lastest @iobroker/testing dependency 2.5.4 or to accept the PR from Apollon77 for legacy testing!

Please spent some time to verify your adapter by ideally starting with a fresh instance and do some actions and verify the log. If you see a warn or info log there from these checks please adjust the adapter and fix the relevant cases.

For questions please refer to ioBroker/ioBroker.js-controller#1749

Please close the issue after you checked it.

Thank you very much for your support to get the best experience for the growing numbers of ioBroker users!

Adapter fails to open after update JS controller to 3.1.6

After updating js controller to 3.1.6 (from 3.1.4) the cul adapter failed to find the serial device.

Message:
SerialPort.list no longer takes a callback and only returns a promise

cul.0 | 2020-07-15 15:13:19.737 | error | at processImmediate (internal/timers.js:456:21)
cul.0 | 2020-07-15 15:13:19.737 | error | at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41)
cul.0 | 2020-07-15 15:13:19.737 | error | at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5313:34)
cul.0 | 2020-07-15 15:13:19.737 | error | at Adapter.emit (events.js:315:20)
cul.0 | 2020-07-15 15:13:19.737 | error | at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.cul/main.js:105:40)
cul.0 | 2020-07-15 15:13:19.737 | error | at Function.SerialPort.list (/opt/iobroker/node_modules/iobroker.cul/node_modules/serialport/node_modules/@serialport/stream/lib/index.js:651:11)
cul.0 | 2020-07-15 15:13:19.737 | error | (2267) TypeError: SerialPort.list no longer takes a callback and only returns a promise
cul.0 | 2020-07-15 15:13:19.725 | error | (2267) unhandled promise rejection: SerialPort.list no longer takes a callback and only returns a promise
Unhandled | 2020-07-15 15:13:19.723 | error | promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().

Release script: Action required

Hi, it looks like you are using @alcalzone/release-script to manage your releases.
When updating to the latest version, you need to remove the following line from your .github/workflows/test-and-release.yml if you want the releases to keep working:

  deploy:
    # Trigger this step only when a commit on master is tagged with a version number
    if: |
      contains(github.event.head_commit.message, '[skip ci]') == false &&
      github.event_name == 'push' &&
-     github.event.base_ref == 'refs/heads/master' &&
      startsWith(github.ref, 'refs/tags/v')

It may also look like this one:

  deploy:
    # Trigger this step only when a commit on master is tagged with a version number
    if: |
      contains(github.event.head_commit.message, '[skip ci]') == false &&
      github.event_name == 'push' &&
-     github.event.base_ref == 'refs/heads/main' &&
      startsWith(github.ref, 'refs/tags/v')

Compatibility check and testing for Node.js 14 and 16

Dear Adapter developer,

Node.js 14 is now available for a year and Node.js 16 was release just some days ago and will become LTS by October 2021. We plan to update the ioBroker Node.js recommendation (currently 12.x) to 14.x later this year.

Please check your adapter with Node.js 14 especially, and ideally also directly with Node.js 16

Please add both versions to the adapter testing which is executed on commits.

If your adapter requires a certain minimum version of Node.js please set the 'engine' setting in package.json accordingly! Please also do this if the adapter is not able to work in certain Node.js versions, so that ioBroker can prevent users from installing te adapter if not compatible!

On questions please talk to us at ioBroker/ioBroker.js-controller#1138

Please close the issue after you checked it.

Thank you very much for your support!

Sending InterTechno Commands

Would it be possible to send InterTechno Commands (http://culfw.de/commandref.html#cmd_i) ?
433 NanoCUL is receiving data from InterTechno devices properly. But I haven't found a way to send any commands back.

Found a way to send InterTechno Commands:

  • disable CUL adapter
  • add cul to additional NPM modules in javascript.x adapter
  • create and run script
var Cul = require('cul');
var cul = new Cul({
    serialport: '/dev/ttyUSB0',
    baudrate: 38400,
    mode: 'SlowRF'
});

cul.on('ready', function () {
    cul.write('is0FFFFF0FFFFF'); // Raw command
});

So, if the adapter would allow write of raw commands, it should work - imho.

Control FHT devices

Hi,
will it be possible to control FHT80b devices?
Greetings from Germany
Bastian

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/ioBroker/ioBroker.cul

  • [E150] No common.connectionType found in io-package.json
  • [E152] No common.dataSource found in io-package.json
  • [E605] No actual year found in copyright. Please add "Copyright (c) 2014-2021 hobbyquaker [email protected]" at the end of README.md
  • [E812] file test/ found in repository, but not found in .npmignore
  • [E814] file appveyor.yml found in repository, but not found in .npmignore
  • [E815] file .travis.yml found in repository, but not found in .npmignore

Thanks,
your automatic adapter checker.

How to control FS20 devices?

How to control a FS20 wall- plug by Iobroker?
The device is showing up in the objects, but all objects are read- only.
So what to do for switching the wall- plugs?

Hardware:
IoBroker, cul- adapter 0.4, NanoCul

Technoline TX29 DTH-IT is not working with this adapter

Describe the bug
Technoline TX29 DTH-IT is not working with this adapter.

To Reproduce
Steps to reproduce the behavior:

  1. Buy a Technoline TX29 DTH-IT and power it with batteries
  2. Buy a CUL868 and connect to computer running ioBroker
  3. Install the CUL adapter in ioBroker
  4. My CUL868 is on /dev/ttyACM0
  5. The sensor will not appear under objects

Expected behavior
The CUL868 supports the "N" Mode, so the sensor should be found and temperature and humidity shown under objects.

Versions:

  • Adapter version: 2.0.2
  • JS-Controller version: 4.0.24
  • Node version: v16.20.0
  • Operating system: Linux raspberrypi 6.1.21-v7+

Details
I have a Technoline TX29 DTH-IT temperature/humidity sensor. Also I have a CUL868 connected to my Raspberry with ioBroker on it. The CUL868 is on version 1.67 and supports the "N" mode. I found out that the TX29 is compatible to the LaCrosse/IT+ 17.241 kbps protocol. If I manually set the CUL to Nr01 mode, I get telegrams from the sensor like that: "N019D85403F98AAAA000038581F".
In FHEM these sensors are recognized as HMS HMS100T.
I suspect that the CUL is not set to the Nr01 mode and rather remains in the X21 mode.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.