@legro Für die Behandlung im Javascript Adapter mit LONG_PRESS halte ich das für nötig. Probier es halt aus
So sieht es bspw. bei meiner HmIP-RC8 aus:
@legro Für die Behandlung im Javascript Adapter mit LONG_PRESS halte ich das für nötig. Probier es halt aus
So sieht es bspw. bei meiner HmIP-RC8 aus:
@joachim-knape Ich habe nen Asus Riegelkontakt mit nem HmIP-FCI1 kombiniert. Funktionier ebenfalls einwandfrei. Etwas friemelig einzubauen ist es allerdings und du musst genügend Platz haben um den FCI1 in der Laibung zu verstecken. Bei mir habe ich den hinter die Falle verbaut.
@xbow42 said in [[Vorlage] Skript: bitte alle mitmachen.
Done
@scrounger
Mein Use Case war ursprünglich wie folgt:
Da es keinen PRESS_LONG_RELEASE gibt, habe ich meinen Use Case etwas umdefiniert:
Mit dieser Umsetzung sind ich und meine bessere Hälfte mittlerweile sehr zufrieden, sogar die Kinder kommen gut damit zurecht.
Ob das nun 100% deinem Anwendungsfall entspricht, weiß ich nicht. Zur Inspiration meines Use Case meine Umsetzung:
/* Handle binding of HM Switch.
07.01.2021 - Initial version (BoW)
*/
const myDebug = false; // enable/disable debug output of script
/*****************************************************************************
* remote button objects/states (with 'Trigger' in its name)
* and
* bound button objects/states and values to set (with 'Target' in its name)
****************************************************************************/
/***** PCP aus/leiser *****/
/* src */ const btn01LongTriggerState = 'hm-rpc.0.nnn1.1.PRESS_LONG';
/* dst */ const btn01LongTargetStateSwitch = 'hm-rpc.0.nnn2.3.STATE';
/* val */ const btn01LongTargetValueSwitch = false;
/* ign */ const btn01LongIgnCurrState = false;
/***** PCP an/lauter *****/
/* src */ const btn02LongTriggerState = 'hm-rpc.0.nnn1.2.PRESS_LONG';
/* dst */ const btn02LongTargetStateSwitch = 'hm-rpc.0.nnn2.3.STATE';
/* val */ const btn02LongTargetValueSwitch = true;
/* ign */ const btn02LongIgnCurrState = false;
/***** PCP specific settings *****/
/* dst */ const btn0102LongTargetStatePlayer = 'squeezeboxrpc.0.Players.MeinPlayer';
/* val */ const btn0102LongTargetValuePlayerVolumeStep = 2;
/* val */ const btn0102LongTargetValuePlayerVolumeInitial = 8;
/*****************************************************************************
* establish bindings
****************************************************************************/
on({id: btn01LongTriggerState, change: 'any'}, function(obj) {
if (myDebug) log("01/L");
let btnCurrentState = getState(btn01LongTargetStateSwitch).val;
let playerPower = getState(btn0102LongTargetStatePlayer + ".Power").val;
let playerConnected = getState(btn0102LongTargetStatePlayer + ".Connected").val; // not really reliable / 20210107 BoW
let playerVolumeVal = getState(btn0102LongTargetStatePlayer + ".Volume").val;
if (! btnCurrentState || ! playerPower || ! playerConnected) {
if (myDebug) log("player off or disconnected, nothing to do");
return;
} else {
if (myDebug) {
log("player connected, volume: " + playerVolumeVal +
", decreasing by: " + btn0102LongTargetValuePlayerVolumeStep);
}
if(playerVolumeVal != null) {
if (playerVolumeVal > 0) {
let newPlayerVolumeVal = playerVolumeVal - btn0102LongTargetValuePlayerVolumeStep;
if (newPlayerVolumeVal < 0) newPlayerVolumeVal = 0;
setState(btn0102LongTargetStatePlayer + ".Volume", newPlayerVolumeVal);
} else {
if (myDebug) log("player volume=0, switching off");
btnSetState('01', 'long', btn01LongTriggerState, btn01LongTargetStateSwitch, btn01LongTargetValueSwitch, btn01LongIgnCurrState);
}
}
}
});
on({id: btn02LongTriggerState, change: 'any'}, function(obj) {
if (myDebug) log("02/L");
let btnCurrentState = getState(btn02LongTargetStateSwitch).val;
let playerPower = getState(btn0102LongTargetStatePlayer + ".Power").val;
let playerConnected = getState(btn0102LongTargetStatePlayer + ".Connected").val; // not really reliable / 20210107 BoW
let playerVolumeVal = getState(btn0102LongTargetStatePlayer + ".Volume").val;
if (! btnCurrentState || ! playerPower || ! playerConnected) {
if (myDebug) log("player off or disconnected, switching on");
btnSetState('02', 'long', btn02LongTriggerState, btn02LongTargetStateSwitch, btn02LongTargetValueSwitch, btn02LongIgnCurrState);
} else {
if (myDebug) {
log("player connected, volume: " + playerVolumeVal +
", inreasing by: " + btn0102LongTargetValuePlayerVolumeStep);
}
if(playerVolumeVal != null) {
let newPlayerVolumeVal = playerVolumeVal + btn0102LongTargetValuePlayerVolumeStep;
if (newPlayerVolumeVal > 100) newPlayerVolumeVal = 100;
setState(btn0102LongTargetStatePlayer + ".Volume", newPlayerVolumeVal);
}
}
});
// workaround for stable volume after switching on
on({id: btn0102LongTargetStatePlayer + ".Power", change: 'ne'}, function(obj) {
let playerPower = getState(btn0102LongTargetStatePlayer + ".Power").val;
let playerVolumeVal = getState(btn0102LongTargetStatePlayer + ".Volume").val;
if (myDebug) {
log(btn0102LongTargetStatePlayer +
" Power:" + playerPower +
", Volume: " + playerVolumeVal);
}
// turned on -> set to initial value
if (playerPower === 1) {
if (myDebug) {
log(btn0102LongTargetStatePlayer +
" Power==1 -> setting initial volume value:" +
btn0102LongTargetValuePlayerVolumeInitial);
}
setState(btn0102LongTargetStatePlayer + ".Volume", btn0102LongTargetValuePlayerVolumeInitial);
}
});
/*****************************************************************************
* helper functions
****************************************************************************/
// Set state for button.
// btnNo - number of button as string
// btnPressType - type of press (short/long) as string
// btnTriggerState - triggered state from button (source state)
// btnTargetState - target state to set (destination state)
// btnTargetValue - target value to set (destination value)
// btnIgnCurrentState - true/false; ignore current state and set anyway;
// necessary if state is a combined state and shall be set in anyway
function btnSetState(btnNo, btnPressType,
btnTriggerState, btnTargetState, btnTargetValue, btnIgnCurrentState) {
if (! btnTargetState || btnTargetValue == null) {
log('btn ' + btnNo + ' ' + btnPressType
+ ': null -> state="' + btnTargetState + '", value="' + btnTargetValue + '"', 'error');
return;
}
let btnCurrentState = getState(btnTargetState).val;
if (myDebug) {
log('btn ' + btnNo + ' ' + btnPressType
+ ': current="' + btnCurrentState + '", new="' + btnTargetValue + '"');
}
if (btnIgnCurrentState || btnCurrentState != btnTargetValue) {
if (myDebug) {
log('btn ' + btnNo + ' ' + btnPressType
+ ': setting "' + btnTargetState + '" = "' + btnTargetValue + '"');
}
setState(btnTargetState, btnTargetValue);
}
}
Nachtrag:
Der PRESS_LONG muss einmalig in der CCU freigeschaltet werden, z.B. so:
const channel = 'xxx:1'; // edit here
const hmRpcInstance = 'hm-rpc.0';
//const dpShort = 'PRESS_SHORT'; // activate or deactivate
const dpLong = 'PRESS_LONG'; // activate or deactivate
if (typeof dpShort !== 'undefined') {
sendTo(hmRpcInstance, 'reportValueUsage', {
ID: channel,
paramType: dpShort,
params: 1},
res => {
log(JSON.stringify(res));
}
);
}
if (typeof dpLong !== 'undefined') {
sendTo(hmRpcInstance, 'reportValueUsage', {
ID: channel,
paramType: dpLong,
params: 1},
res => {
log(JSON.stringify(res));
}
);
}
@paul53 Vielen Dank fürs Bestätigen.
Issue: https://github.com/ioBroker/ioBroker.javascript/issues/597#issue-632406070
Bei mir läuft übrigens derzeit noch JS 2.2.9
@OliverIO Wem sagst du das... Die open source Welt ist groß und man hat auch leider nur soundsoviel Zeit.
Konzentrier dich auf das was dir gefällt und Spaß macht. Mache ich zumindest so
@scrounger
Das mit dem Zeitstempel habe ich mir tatsächlich nie näher angesehen da es problemlos so funktioniert. Kann sein, müsste ich bei Bedarf mal prüfen...
Der Schalter ist in den Einstellungen ziemlich basic:
Und die zugehörigen Direktverknüpfungen. Wichtig ist hier im PRESS_SHORT den langen Tastendruck zu deaktivieren, da sonst das Licht ebenfalls bei PRESS_LONG mit reagiert.
Licht aus:
Licht an:
@sigi234
Guter Hinweis. Alternativ mal curl anweisen ohne ssl Validierung zu arbeiten, evtl. so:
curl -k -sL https://iobroker.net/install.sh | bash -
@Mic Verfolge die Idee seit der Entstehung und würde gerne testen. Sobald ich aus dem Urlaub zurück bin mache ich gerne mit!
Aber die Umsetzung ist genial und super generisch, sowas wünsche ich mir schon lange. Werde versuchen mit HmIP Komponenten Präsenzmelder und squeezeboxrpx ne Chillout Ecke umzusetzen. Bin schon gespannt ob das klappt!
@dslraser Ähm ja genau so war es gedacht, nur leider anders geschrieben
Hast recht!
@thomas-braun
Hm bissl rumgewühlt.
Im Script /home/iobroker/.diag.sh wird bspw. in Zeile 146 Folgendes aufgerufen:
sudo du -h /var/ | sort -rh | head -5;
Rufe ich den Befehl nun per shell auf, erhalte ich:
boehserwolf@iobroker:~:$ sudo du -h /var/ | sort -rh | head -5;
718M /var/
405M /var/log
404M /var/log/journal/10211f417bb24cb79e93cf70efeb0f05
404M /var/log/journal
214M /var/lib
sort: fflush failed: 'standard output': Broken pipe
sort: write error
Ohne das "head -5" gibt es kein Problem.
Bissl googeln: https://unix.stackexchange.com/a/355164
Scheint bekanntes Verhalten zu sein, da sort noch zu viele Daten nachliefert.
Das mag zwar ein Problem sein, aber vermutlich eher nicht meins.
@thomas-braun
Eher nicht. Ist mir zwar auch aufgefallen, habe mir das diag Script allerdings nicht näher angesehen. Werde mal das Netz durchwühlen.
@thomas-braun
Beim Überfliegen würde ich gefühlt nein sagen - aber sieh selbst:
Skript v.2023-04-16
*** BASE SYSTEM ***
Architecture : x86_64
Docker : false
Virtualization : lxc
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Systemuptime and Load:
12:10:29 up 17 days, 22:50, 0 users, load average: 0.18, 0.24, 0.26
CPU threads: 2
*** Time and Time Zones ***
Local time: Thu 2023-06-01 12:10:29 CEST
Universal time: Thu 2023-06-01 10:10:29 UTC
RTC time: n/a
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
*** User and Groups ***
boehserwolf
/home/boehserwolf
boehserwolf sudo iobroker
*** X-Server-Setup ***
X-Server: false
Desktop:
Terminal: tty
Boot Target: graphical.target
*** MEMORY ***
total used free shared buff/cache available
Mem: 4.1G 1.7G 1.0G 0.0K 1.4G 2.4G
Swap: 1.5G 0.0K 1.5G
Total: 5.6G 1.7G 2.6G
4096 M total memory
1672 M used memory
634 M active memory
2174 M inactive memory
1019 M free memory
0 M buffer memory
1403 M swap cache
1536 M total swap
0 M used swap
1535 M free swap
*** FILESYSTEM ***
Filesystem Type Size Used Avail Use% Mounted on
/dev/loop8 ext4 8.8G 6.3G 2.2G 75% /
/dev/md0 ext4 7.3T 4.8T 2.4T 67% /mnt/backup_iobroker
none tmpfs 492K 4.0K 488K 1% /dev
tmpfs tmpfs 12G 0 12G 0% /dev/shm
tmpfs tmpfs 4.7G 120K 4.7G 1% /run
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 2.4G 0 2.4G 0% /run/user/1000
Messages concerning ext4 filesystem in dmesg:
[Sun May 14 13:18:32 2023] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:18:32 2023] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro. Quota mode: none.
[Sun May 14 13:18:34 2023] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: errors=remount-ro. Quota mode: none.
[Sun May 14 13:18:34 2023] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: errors=remount-ro,commit=120. Quota mode: none.
[Sun May 14 13:18:58 2023] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:03 2023] EXT4-fs (loop1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:09 2023] EXT4-fs (loop2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:15 2023] EXT4-fs (loop3): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:20 2023] EXT4-fs (loop4): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:32 2023] EXT4-fs (loop5): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:37 2023] EXT4-fs (loop6): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:42 2023] EXT4-fs (loop7): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Sun May 14 13:19:56 2023] EXT4-fs (loop8): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[Mon May 15 17:53:02 2023] EXT4-fs (sde1): mounted filesystem with ordered data mode. Opts: errors=remount-ro. Quota mode: none.
Show mounted filesystems (real ones only):
TARGET SOURCE FSTYPE OPTIONS
/ /dev/loop8 ext4 rw,relatime
`-/mnt/backup_iobroker /dev/md0[/backup/servers/241_iobroker.wald/iobroker] ext4 rw,relatime,errors=remount-ro,commit=120
Files in neuralgic directories:
/var:
718M /var/
405M /var/log
404M /var/log/journal/10211f417bb24cb79e93cf70efeb0f05
404M /var/log/journal
214M /var/lib
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
Archived and active journals take up 32.0M in the file system.
/opt/iobroker/backups:
188M /opt/iobroker/backups/
/opt/iobroker/iobroker-data:
541M /opt/iobroker/iobroker-data/
299M /opt/iobroker/iobroker-data/files
175M /opt/iobroker/iobroker-data/backup-objects
72M /opt/iobroker/iobroker-data/files/telegram.admin
51M /opt/iobroker/iobroker-data/files/javascript.admin
sort: write failed: 'standard output': Broken pipe
sort: write error
The five largest files in iobroker-data are:
sort: write failed: 'standard output': Broken pipe
sort: write error
33M /opt/iobroker/iobroker-data/files/devices.admin/static/js/main.10538062.js.map
22M /opt/iobroker/iobroker-data/states.jsonl
17M /opt/iobroker/iobroker-data/objects.jsonl
15M /opt/iobroker/iobroker-data/files/telegram.admin/rules/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_d_ts-node_modules_io-1d9f06.44fe4a3f.chunk.js.map
13M /opt/iobroker/iobroker-data/objects.json.migrated
*** NodeJS-Installation ***
/usr/bin/nodejs v16.20.0
/usr/bin/node v16.20.0
/usr/bin/npm 8.19.4
/usr/bin/npx 8.19.4
nodejs:
Installed: 16.20.0-deb-1nodesource1
Candidate: 16.20.0-deb-1nodesource1
Version table:
*** 16.20.0-deb-1nodesource1 500
500 https://deb.nodesource.com/node_16.x bullseye/main amd64 Packages
100 /var/lib/dpkg/status
12.22.12~dfsg-1~deb11u4 500
500 http://security.debian.org bullseye-security/updates/main amd64 Packages
12.22.12~dfsg-1~deb11u3 500
500 http://ftp.de.debian.org/debian bullseye/main amd64 Packages
Temp directories causing npm8 problem: 0
No problems detected
*** ioBroker-Installation ***
ioBroker Status
iobroker is running on this host.
Objects type: jsonl
States type: jsonl
MULTIHOSTSERVICE/enabled: false
Core adapters versions
js-controller: 4.0.24
admin: 6.3.5
javascript: 6.1.4
Adapters from github: 0
Adapter State
+ system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin
system.adapter.admin.1 : admin : iobroker - disabled, port: 8089, bind: 0.0.0.0, run as: admin
system.adapter.alarm.0 : alarm : iobroker - disabled
system.adapter.alarm.1 : alarm : iobroker - disabled
+ system.adapter.backitup.0 : backitup : iobroker - enabled
system.adapter.daswetter.0 : daswetter : iobroker - enabled
+ system.adapter.device-watcher.0 : device-watcher : iobroker - enabled
system.adapter.devices.0 : devices : iobroker - enabled
system.adapter.discovery.0 : discovery : iobroker - disabled
system.adapter.dwd.0 : dwd : iobroker - enabled
system.adapter.flot.0 : flot : iobroker - enabled
+ system.adapter.followthesun.0 : followthesun : iobroker - enabled
+ system.adapter.hm-rega.0 : hm-rega : iobroker - enabled
+ system.adapter.hm-rpc.0 : hm-rpc : iobroker - enabled, port: 0
+ system.adapter.hm-rpc.1 : hm-rpc : iobroker - enabled, port: 0
+ system.adapter.hue.0 : hue : iobroker - enabled, port: 443
system.adapter.ical.0 : ical : iobroker - enabled
system.adapter.icons-mfd-svg.0 : icons-mfd-svg : iobroker - enabled
+ system.adapter.influxdb.0 : influxdb : iobroker - enabled, port: 8086
+ system.adapter.info.0 : info : iobroker - enabled
+ system.adapter.javascript.0 : javascript : iobroker - enabled
+ system.adapter.mqtt.0 : mqtt : iobroker - enabled, port: 1883, bind: 0.0.0.0
+ system.adapter.nut.0 : nut : iobroker - enabled
+ system.adapter.scenes.0 : scenes : iobroker - enabled
+ system.adapter.shelly.0 : shelly : iobroker - enabled, port: 1882, bind: 0.0.0.0
+ system.adapter.simple-api.0 : simple-api : iobroker - enabled, port: 8087, bind: 0.0.0.0 (SSL), run as: admin
+ system.adapter.socketio.0 : socketio : iobroker - enabled, port: 8084, bind: 0.0.0.0, run as: admin
+ system.adapter.squeezeboxrpc.0 : squeezeboxrpc : iobroker - enabled, port: 9000
+ system.adapter.statistics.0 : statistics : iobroker - enabled
+ system.adapter.telegram.0 : telegram : iobroker - enabled, port: 8443, bind: 0.0.0.0
+ system.adapter.trashschedule.0 : trashschedule : iobroker - enabled
system.adapter.vis-colorpicker.0 : vis-colorpicker : iobroker - enabled
system.adapter.vis-history.0 : vis-history : iobroker - enabled
system.adapter.vis-hqwidgets.0 : vis-hqwidgets : iobroker - enabled
system.adapter.vis-jqui-mfd.0 : vis-jqui-mfd : iobroker - enabled
system.adapter.vis-justgage.0 : vis-justgage : iobroker - enabled
system.adapter.vis-metro.0 : vis-metro : iobroker - enabled
system.adapter.vis-plumb.0 : vis-plumb : iobroker - enabled
system.adapter.vis-timeandweather.0 : vis-timeandweather : iobroker - enabled
system.adapter.vis-weather.0 : vis-weather : iobroker - enabled
system.adapter.vis.0 : vis : iobroker - enabled
+ system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin
+ instance is alive
Enabled adapters with bindings
+ system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin
+ system.adapter.hm-rpc.0 : hm-rpc : iobroker - enabled, port: 0
+ system.adapter.hm-rpc.1 : hm-rpc : iobroker - enabled, port: 0
+ system.adapter.hue.0 : hue : iobroker - enabled, port: 443
+ system.adapter.influxdb.0 : influxdb : iobroker - enabled, port: 8086
+ system.adapter.mqtt.0 : mqtt : iobroker - enabled, port: 1883, bind: 0.0.0.0
+ system.adapter.shelly.0 : shelly : iobroker - enabled, port: 1882, bind: 0.0.0.0
+ system.adapter.simple-api.0 : simple-api : iobroker - enabled, port: 8087, bind: 0.0.0.0 (SSL), run as: admin
+ system.adapter.socketio.0 : socketio : iobroker - enabled, port: 8084, bind: 0.0.0.0, run as: admin
+ system.adapter.squeezeboxrpc.0 : squeezeboxrpc : iobroker - enabled, port: 9000
+ system.adapter.telegram.0 : telegram : iobroker - enabled, port: 8443, bind: 0.0.0.0
+ system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin
ioBroker-Repositories
Stable (default): http://download.iobroker.net/sources-dist.json
Beta (latest) : http://download.iobroker.net/sources-dist-latest.json
backup : http://download.iobroker.net/sources-dist.json
Active repo(s): Stable (default)
Installed ioBroker-Instances
Used repository: Stable (default)
Adapter "admin" : 6.3.5 , installed 6.3.5
Adapter "alarm" : 3.3.11 , installed 3.3.11
Adapter "backitup" : 2.6.19 , installed 2.6.19
Adapter "daswetter" : 3.1.8 , installed 3.1.8
Adapter "device-watcher": 2.9.1 , installed 2.9.1
Adapter "devices" : 1.1.2 , installed 1.1.2
Adapter "discovery" : 3.1.0 , installed 3.1.0
Adapter "dwd" : 2.8.3 , installed 2.8.3
Adapter "flot" : 1.11.0 , installed 1.11.0
Adapter "followthesun" : 0.4.1 , installed 0.4.1
Adapter "hm-rega" : 3.0.46 , installed 3.0.46
Adapter "hm-rpc" : 1.15.16 , installed 1.15.16
Adapter "hue" : 3.7.1 , installed 3.7.1
Adapter "ical" : 1.13.2 , installed 1.13.2
Adapter "icons-mfd-svg": 1.1.0 , installed 1.1.0
Adapter "influxdb" : 3.2.0 , installed 3.2.0
Adapter "info" : 1.9.26 , installed 1.9.26
Adapter "javascript" : 6.1.4 , installed 6.1.4
Controller "js-controller": 4.0.24 , installed 4.0.24
Adapter "mqtt" : 4.0.7 , installed 4.0.7
Adapter "nut" : 1.6.0 , installed 1.6.0
Adapter "scenes" : 2.3.9 , installed 2.3.9
Adapter "shelly" : 6.3.1 , installed 6.3.1
Adapter "simple-api" : 2.7.2 , installed 2.7.2
Adapter "socketio" : 4.2.0 , installed 4.2.0
Adapter "squeezeboxrpc": 1.3.9 , installed 1.3.10
Adapter "statistics" : 2.3.0 , installed 2.3.0
Adapter "telegram" : 1.15.2 , installed 1.15.2
Adapter "trashschedule": 2.2.0 , installed 2.2.0
Adapter "vis" : 1.4.16 , installed 1.4.16
Adapter "vis-colorpicker": 1.2.0 , installed 1.2.0
Adapter "vis-history" : 1.0.0 , installed 1.0.0
Adapter "vis-hqwidgets": 1.3.0 , installed 1.3.0
Adapter "vis-jqui-mfd" : 1.0.12 , installed 1.0.12
Adapter "vis-justgage" : 1.0.2 , installed 1.0.2
Adapter "vis-metro" : 1.2.0 , installed 1.2.0
Adapter "vis-plumb" : 1.0.2 , installed 1.0.2
Adapter "vis-timeandweather": 1.2.2, installed 1.2.2
Adapter "vis-weather" : 2.5.6 , installed 2.5.6
Adapter "web" : 4.3.0 , installed 4.3.0
Adapter "ws" : 1.3.0 , installed 1.3.0
Objects and States
Please stand by - This may take a while
Objects: 10104
States: 8915
*** OS-Repositories and Updates ***
Hit:1 http://security.debian.org bullseye-security/updates InRelease
Hit:2 http://ftp.de.debian.org/debian bullseye InRelease
Hit:3 https://deb.nodesource.com/node_16.x bullseye InRelease
Hit:4 http://ftp.de.debian.org/debian bullseye-updates InRelease
Reading package lists...
Pending Updates: 0
*** Listening Ports ***
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 53405 369/master
tcp 0 0 192.168.111.241:42010 0.0.0.0:* LISTEN 1001 128996644 3061972/io.hm-rpc.0
tcp 0 0 0.0.0.0:1882 0.0.0.0:* LISTEN 1001 128997699 3062077/io.shelly.0
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1001 128992120 3061826/iobroker.js
tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 1001 128993221 3061826/iobroker.js
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 44004 175/portmap
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 53271 194/sshd: /usr/sbin
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 1001 128992177 3061844/io.admin.0
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 1001 128996947 3062092/io.web.0
tcp 0 0 0.0.0.0:8084 0.0.0.0:* LISTEN 1001 128997078 3062122/io.socketio
tcp 0 0 0.0.0.0:8087 0.0.0.0:* LISTEN 1001 129004784 3062730/io.simple-a
tcp 0 0 192.168.111.241:49292 0.0.0.0:* LISTEN 1001 128997483 3061987/io.hm-rpc.1
udp 0 0 0.0.0.0:111 0.0.0.0:* 0 44003 175/portmap
udp 0 0 0.0.0.0:33794 0.0.0.0:* 110 49618 84/avahi-daemon: ru
udp 0 0 0.0.0.0:5353 0.0.0.0:* 110 49616 84/avahi-daemon: ru
*** Log File - Last 25 Lines ***
2023-06-01 12:07:15.734 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('OUTDOOR_TEMP_HUM_INFO', '🌡️N/O: 12,4 / 14,0°C | 💦73,0%', 0)
2023-06-01 12:07:16.724 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:07:31.680 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:07:50.142 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:08:11.179 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:08:27.723 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:08:31.111 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('OUTDOOR_TEMP_HUM_INFO', '🌡️N/O: 12,4 / 14,0°C | 💦73,0%', 0)
2023-06-01 12:08:52.439 - info: javascript.0 (3061884) script.js.common.system.checkHomematicServicemeldungen: Neue Servicemeldung: OG Mia Fenster (0007D8A9A5A8ED) --- HmIP-SRH--- Typ: LOW_BAT_ALARM --- Status: 1 Batterie niedrig
2023-06-01 12:08:52.495 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('BATTERIE_HMIP_WARN', 'HmIP Geräte mit (fast) leeren Batterien. Bitte kontrollieren und austauschen.', 0)
2023-06-01 12:08:52.502 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('CCU_HM_ERROR', 'Hm Geräte mit Fehlern. Aktuelle Meldung(en): OG.Mia.Fenster (0007D8A9A5A8ED) - Spannung Batterien/Akkus gering. 1x LR3/AAA --- seit: 01.06.23 12:08:49 Uhr', 0)
2023-06-01 12:08:53.940 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:09:04.731 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:09:16.677 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:09:41.345 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:09:43.485 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('OUTDOOR_TEMP_HUM_INFO', '🌡️N/O: 12,4 / 14,2°C | 💦73,0%', 0)
2023-06-01 12:09:50.933 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:10:00.031 - info: host.iobroker instance system.adapter.dwd.0 started with pid 3112729
2023-06-01 12:10:00.656 - info: dwd.0 (3112729) Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system
2023-06-01 12:10:00.811 - info: dwd.0 (3112729) starting. Version 2.8.3 in /opt/iobroker/node_modules/iobroker.dwd, node: v16.20.0, js-controller: 4.0.24
2023-06-01 12:10:01.196 - info: dwd.0 (3112729) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
2023-06-01 12:10:01.723 - info: host.iobroker instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
2023-06-01 12:10:20.061 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:10:31.586 - info: javascript.0 (3061884) script.js.common.msgHandler.MessageStateCreator: [MessageStateCreator] postMessage('OUTDOOR_TEMP_HUM_INFO', '🌡️N/O: 12,4 / 14,2°C | 💦73,0%', 0)
2023-06-01 12:10:35.458 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
2023-06-01 12:10:54.237 - info: influxdb.0 (3061911) Store 11 buffered influxDB history points
@thomas-braun
Derzeit bin ich "leider" aktuell, so dass ich es nicht sagen kann:
boehserwolf@iobroker:~:$ iob update
Used repository: Stable (default)
Adapter "admin" : 6.3.5 , installed 6.3.5
Adapter "alarm" : 3.3.11 , installed 3.3.11
Adapter "backitup" : 2.6.19 , installed 2.6.19
Adapter "daswetter" : 3.1.8 , installed 3.1.8
Adapter "device-watcher": 2.9.1 , installed 2.9.1
Adapter "devices" : 1.1.2 , installed 1.1.2
Adapter "discovery" : 3.1.0 , installed 3.1.0
Adapter "dwd" : 2.8.3 , installed 2.8.3
Adapter "flot" : 1.11.0 , installed 1.11.0
Adapter "followthesun" : 0.4.1 , installed 0.4.1
Adapter "hm-rega" : 3.0.46 , installed 3.0.46
Adapter "hm-rpc" : 1.15.16 , installed 1.15.16
Adapter "hue" : 3.7.1 , installed 3.7.1
Adapter "ical" : 1.13.2 , installed 1.13.2
Adapter "icons-mfd-svg": 1.1.0 , installed 1.1.0
Adapter "influxdb" : 3.2.0 , installed 3.2.0
Adapter "info" : 1.9.26 , installed 1.9.26
Adapter "javascript" : 6.1.4 , installed 6.1.4
Controller "js-controller": 4.0.24 , installed 4.0.24
Adapter "mqtt" : 4.0.7 , installed 4.0.7
Adapter "nut" : 1.6.0 , installed 1.6.0
Adapter "scenes" : 2.3.9 , installed 2.3.9
Adapter "shelly" : 6.3.1 , installed 6.3.1
Adapter "simple-api" : 2.7.2 , installed 2.7.2
Adapter "socketio" : 4.2.0 , installed 4.2.0
Adapter "squeezeboxrpc": 1.3.9 , installed 1.3.10
Adapter "statistics" : 2.3.0 , installed 2.3.0
Adapter "telegram" : 1.15.2 , installed 1.15.2
Adapter "trashschedule": 2.2.0 , installed 2.2.0
Adapter "vis" : 1.4.16 , installed 1.4.16
Adapter "vis-colorpicker": 1.2.0 , installed 1.2.0
Adapter "vis-history" : 1.0.0 , installed 1.0.0
Adapter "vis-hqwidgets": 1.3.0 , installed 1.3.0
Adapter "vis-jqui-mfd" : 1.0.12 , installed 1.0.12
Adapter "vis-justgage" : 1.0.2 , installed 1.0.2
Adapter "vis-metro" : 1.2.0 , installed 1.2.0
Adapter "vis-plumb" : 1.0.2 , installed 1.0.2
Adapter "vis-timeandweather": 1.2.2, installed 1.2.2
Adapter "vis-weather" : 2.5.6 , installed 2.5.6
Adapter "web" : 4.3.0 , installed 4.3.0
Adapter "ws" : 1.3.0 , installed 1.3.0
boehserwolf@iobroker:~:$ iob upgrade
All adapters are up to date
Danach tritt im journalctl keine Fehlermeldung auf.
Normalerweise tritt der Fehler nur nach einem Update eines Adapters auf.
Nebeninfo: Mein User "boehserwolf" hat die Datei iobroker_completions im home directory:
boehserwolf@iobroker:~:$ cat ~/.iobroker/iobroker_completions
iobroker_yargs_completions()
{
local cur_word args type_list
cur_word="${COMP_WORDS[COMP_CWORD]}"
args=("${COMP_WORDS[@]}")
# ask yargs to generate completions.
type_list=$(iobroker --get-yargs-completions "${args[@]}")
COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) )
# if no match was found, fall back to filename completion
if [ ${#COMPREPLY[@]} -eq 0 ]; then
COMPREPLY=()
fi
return 0
}
complete -o default -F iobroker_yargs_completions iobroker
complete -o default -F iobroker_yargs_completions iob
@thomas-braun
Soweit so klar - den Standard-User habe ich wohl, da ich diese Diskussion vermeiden möchte Nunja zu spät...
Hier ging es nur um das Prinzip und Ursachenforschung sowie Darstellung einer möglichen Problematik.
Interpretiere ich dich nun richtig, dass du die Ursache eher weder am nologin noch an der fehlenden Datei iobroker_completions vermutest?
Weil dann fällt mir derzeit keine Ursache für meine ursprüngliche Problematik ein.
@thomas-braun
Update läuft bei mir immer per Admin-Instanz.
Ich meine mich zu erinnern, dass das Thema nach dem letzten nodejs Update auf v16.x zuerst aufgetreten ist.
Möglicherweise ist der Link von dir aber der Wink in die richtige Richtung. Mein User iobroker hat als shell nologin konfiguriert:
iobroker:x:1001:1001::/home/iobroker:/usr/sbin/nologin
Das heißt also, der User darf sich nicht direkt einloggen:
root@iobroker:~:$ su - iobroker
This account is currently not available.
root@iobroker:~:$ su - iobroker -s /bin/bash
bash: /home/iobroker/.iobroker/iobroker_completions: No such file or directory
iobroker@iobroker:/opt/iobroker$
Könnte mir vorstellen, dass das mittlerweile ein Problem ist. Denn nun sehe ich gerade, dass iobroker die Datei iobroker_completions benötigt.
Vermutlich ist die fehlende Datei die eigentliche Ursache. Was sollte in dieser Datei stehen?
Folgendes Fehlerbild tritt nach JEDEM Update eines Adapters im journalctl auf:
Jun 01 10:43:47 iobroker bash[146]: sh: 0: getcwd() failed: No such file or directory
Jun 01 10:43:56 iobroker bash[146]: sh: 0: getcwd() failed: No such file or directory
Jun 01 10:43:57 iobroker bash[146]: sh: 0: getcwd() failed: No such file or directory
Jun 01 10:43:57 iobroker bash[146]: sh: 0: getcwd() failed: No such file or directory
Ein 'npm rebuild' im iobroker Verzeichnis mit anschließendem 'iob fix' zur Sicherheit bereinigt die Situation dann wieder bis zum nächsten Adapter Update.
Hat jemand eine Idee woran das liegt?
iobroker läuft auf unter Proxmox in einem Debian 11 LXC Container.
EDIT: Debian 10 auf 11 korrigiert - stupid
======================= SUMMARY =======================
v.2023-04-16
Operatingsystem: Debian GNU/Linux 11 (bullseye)
Kernel: 5.15.107-2-pve
Installation: lxc
Timezone: Europe/Berlin (CEST, +0200)
User-ID: 1000
X-Server: false
Boot Target: graphical.target
Pending OS-Updates: 0
Pending iob updates: 0
Nodejs-Installation: /usr/bin/nodejs v16.20.0
/usr/bin/node v16.20.0
/usr/bin/npm 8.19.4
/usr/bin/npx 8.19.4
Recommended versions are nodejs 18.x.y and npm 9.x.y
Your nodejs installation is correct
MEMORY:
total used free shared buff/cache available
Mem: 4.1G 1.7G 1.1G 0.0K 1.3G 2.4G
Swap: 1.5G 383M 1.2G
Total: 5.6G 2.1G 2.3G
Active iob-Instances: 23
Active repo(s): Stable (default)
ioBroker Core: js-controller 4.0.24
admin 6.3.5
ioBroker Status: iobroker is running on this host.
Objects type: jsonl
States type: jsonl
Status admin and web instance:
+ system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin
system.adapter.admin.1 : admin : iobroker - disabled, port: 8089, bind: 0.0.0.0, run as: admin
+ system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin
Objects: 10104
States: 8912
Size of iob-Database:
25M /opt/iobroker/iobroker-data/objects.jsonl
13M /opt/iobroker/iobroker-data/objects.json.migrated
13M /opt/iobroker/iobroker-data/objects.json.bak.migrated
18M /opt/iobroker/iobroker-data/states.jsonl
2.2M /opt/iobroker/iobroker-data/states.json.migrated
2.2M /opt/iobroker/iobroker-data/states.json.bak.migrated
=================== END OF SUMMARY ====================
@boronsbruder @negalein
Besten Dank für eure Einschätzung. Ich finde dieses Projekt wirklich spannend und finde es gleichzeitig praktisch schon eine fertige Darstellung der aktuellen Daten zu haben, ohne dass ein Tablett da sein muss.
Allerdings setze ich sonst auch so gut es geht auf Direktverknüpfungen um im Falle eines Ausfalls alles rudimentär weiter betreiben zu können.
Die Kosten für beide Homematic IP Sensoren halten mich allerdings im Moment noch davon zurück.
Nunja ich überlege einfach noch ein bisschen weiter. Zumindest weiß ich nun etwas mehr.
Kann jemand etwas dazu sagen, ob diese Lösung zur Wind- und Regenerkennung zuverlässig bzw. schnell genug signalisiert bspw. für eine Markise wenn man sonst auf das Homematic IP Universum gesetzt hat? Oder ist es im Falle von sonst fast ausschließlich Homematic IP Komponenten sinnvoller auf einen HmIP Regensensor zzgl. kleiner Wetterstation zur Wind-/Böenerkennung zu setzen?
@w0nk1 Meinst du vielleicht sowas?
https://forum.iobroker.net/topic/32207/script-messagehandler-nachrichten-protokollieren-vis
Kommt dem recht nah. Setzt allerdings auf MDCSS2 von Uhula auf.