From d3e68dcb066e95014e4a50f1dd8f1340819bf90e Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:46:20 +0100 Subject: [PATCH 1/9] Create PopupTimer.xml --- ioBroker/Blockly/PopupTimer.xml | 236 ++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 ioBroker/Blockly/PopupTimer.xml diff --git a/ioBroker/Blockly/PopupTimer.xml b/ioBroker/Blockly/PopupTimer.xml new file mode 100644 index 00000000..0d74ccbf --- /dev/null +++ b/ioBroker/Blockly/PopupTimer.xml @@ -0,0 +1,236 @@ + + + vSTATE + vACTUAL + sec_timer + Intervall + + + vSTATE + + + 0_userdata.0.Timer.NSPanel.1.Countdown.Zustand + + + + + vACTUAL + + + 0_userdata.0.Timer.NSPanel.1.Countdown.Sekunden + + + + + sec_timer + + + val + + + + + + vACTUAL + + + + + + + + ne + + + + default + + + 0_userdata.0.Timer.NSPanel.1.Countdown.Zustand + + + + + + + + state.val + + + + + active + + + + + Intervall + + + Intervall + 1000 + ms + + + + + + GT + + + val + + + + + + vACTUAL + + + + + + + 0 + + + + + + + sec_timer + + + val + + + + + + vACTUAL + + + + + + + false + FALSE + + + Object ID + + + vACTUAL + + + + + TRUE + + + MINUS + + + 1 + + + sec_timer + + + + + 1 + + + + + + + 0 + + + + + + + + + false + FALSE + + + Object ID + + + vACTUAL + + + + + TRUE + + + 0 + + + + + 0 + + + + + false + FALSE + + + Object ID + + + vSTATE + + + + + TRUE + + + idle + + + + + 0 + + + + + An dieser Stelle kann auch noch eine Meldung an Alexa oder Telegram, etc. erfolgen + + + + + + + + + + + + + + + Intervall + + + + + + + + + + + + From c722f18193b8e4d572e3a0fe29a537ca8ba5abe9 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:48:12 +0100 Subject: [PATCH 2/9] Create Spotify_Premium_Alias.js --- ioBroker/Blockly/Spotify_Premium_Alias.js | 51 +++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 ioBroker/Blockly/Spotify_Premium_Alias.js diff --git a/ioBroker/Blockly/Spotify_Premium_Alias.js b/ioBroker/Blockly/Spotify_Premium_Alias.js new file mode 100644 index 00000000..37644540 --- /dev/null +++ b/ioBroker/Blockly/Spotify_Premium_Alias.js @@ -0,0 +1,51 @@ +const aliasPath = 'alias.0.NSPanel_1.Media'; +const aliasDevice = 'PlayerSpotifyPremium'; +//Ergibt alias.0.NSPanel_1.Media.PlayerSpotifyPremium. + +const spotifyPremiumInstanz = 'spotify-premium.0.'; //Falls abweichende Instanznummer, bitte ändern + + +var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; + +function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) { + if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); + else { + var obj = {}; + obj.type = idType; + obj.common = getObject(idSrc).common; + obj.common.alias = {}; + if(idRd) { + obj.common.alias.id = {}; + obj.common.alias.id.read = idRd; + obj.common.alias.id.write = idSrc; + obj.common.read = true; + } else obj.common.alias.id = idSrc; + obj.common.type = idAliasType; + if(obj.common.read !== false && read) obj.common.alias.read = read; + if(obj.common.write !== false && write) obj.common.alias.write = write; + obj.common.name = idName; + obj.common.role = idRole; + obj.common.desc = idDst; + if(min !== undefined) obj.common.min = min; + if(max !== undefined) obj.common.max = max; + if(unit) obj.common.unit = unit; + obj.common.states = states; + if(custom && obj.common.custom) obj.common.custom = custom; + obj.native = {}; + setObject(idDst, obj); + } +} + +createAlias(aliasPath + '.' + aliasDevice, '', spotifyPremiumInstanz + 'player', '', 'channel', 'media', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', spotifyPremiumInstanz + 'player.album', '', 'state', 'media.album', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', spotifyPremiumInstanz + 'player.artistName', '', 'state', 'media.artist', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', spotifyPremiumInstanz + 'player.trackName', '', 'state', 'media.title', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.CONTEXT_DESCRIPTION', 'CONTEXT_DESCRIPTION', spotifyPremiumInstanz + 'player.contextDescription', '', 'state', 'media.station', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', spotifyPremiumInstanz + 'player.skipPlus', '', 'state', 'button.next', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', spotifyPremiumInstanz + 'player.skipMinus', '', 'state', 'button.prev', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', spotifyPremiumInstanz + 'player.play', '', 'state', 'button.play', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', spotifyPremiumInstanz + 'player.pause', '', 'state', 'button.pause', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', spotifyPremiumInstanz + 'player.pause', '', 'state', 'button.stop', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', spotifyPremiumInstanz + 'player.isPlaying', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', spotifyPremiumInstanz + 'player.volume', '', 'state', 'level.volume', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', spotifyPremiumInstanz + 'player.volume', '', 'state', 'value.volume', 'number'); From a5de459f81ee01f7c7baee6910d8054f0f8c4428 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:48:40 +0100 Subject: [PATCH 3/9] Create Alexa2_Alias.js --- ioBroker/Blockly/Alexa2_Alias.js | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 ioBroker/Blockly/Alexa2_Alias.js diff --git a/ioBroker/Blockly/Alexa2_Alias.js b/ioBroker/Blockly/Alexa2_Alias.js new file mode 100644 index 00000000..36c68e8f --- /dev/null +++ b/ioBroker/Blockly/Alexa2_Alias.js @@ -0,0 +1,50 @@ +const aliasPath = 'alias.0.NSPanel_1.Media'; +const aliasDevice = 'PlayerAlexa2'; +//Ergibt alias.0.NSPanel_1.Media.PlayerAlexa2. + +const alexaInstanz = 'alexa2.0.Echo-Devices.'; +const alexaDevice = 'G0XXXXXXXXXXXXXXXX'; //!!! Anpassen !!! Seriennummer des Primär Device (Kann auch Gruppe sein) + +var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; + +function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) { + if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); + else { + var obj = {}; + obj.type = idType; + obj.common = getObject(idSrc).common; + obj.common.alias = {}; + if(idRd) { + obj.common.alias.id = {}; + obj.common.alias.id.read = idRd; + obj.common.alias.id.write = idSrc; + obj.common.read = true; + } else obj.common.alias.id = idSrc; + obj.common.type = idAliasType; + if(obj.common.read !== false && read) obj.common.alias.read = read; + if(obj.common.write !== false && write) obj.common.alias.write = write; + obj.common.name = idName; + obj.common.role = idRole; + obj.common.desc = idDst; + if(min !== undefined) obj.common.min = min; + if(max !== undefined) obj.common.max = max; + if(unit) obj.common.unit = unit; + obj.common.states = states; + if(custom && obj.common.custom) obj.common.custom = custom; + obj.native = {}; + setObject(idDst, obj); + } +} + +createAlias(aliasPath + '.' + aliasDevice, '', alexaInstanz + alexaDevice, '', 'channel', 'media', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', alexaInstanz + alexaDevice + '.Player.currentAlbum', '', 'state', 'media.album', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', alexaInstanz + alexaDevice + '.Player.currentArtist', '', 'state', 'media.artist', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', alexaInstanz + alexaDevice + '.Player.currentTitle', '', 'state', 'media.title', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', alexaInstanz + alexaDevice + '.Player.controlNext', '', 'state', 'button.next', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', alexaInstanz + alexaDevice + '.Player.controlPrevious', '', 'state', 'button.prev', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', alexaInstanz + alexaDevice + '.Player.controlPlay', '', 'state', 'button.play', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', alexaInstanz + alexaDevice + '.Player.controlPause', '', 'state', 'button.pause', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', alexaInstanz + alexaDevice + '.Commands.deviceStop', '', 'state', 'button.stop', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', alexaInstanz + alexaDevice + '.Player.currentState', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', alexaInstanz + alexaDevice + '.Player.volume', '', 'state', 'level.volume', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', alexaInstanz + alexaDevice + '.Player.volume', '', 'state', 'value.volume', 'number'); From 3cd8f6a0f5c978269ef29c0a6619715d1ed35bf8 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:49:11 +0100 Subject: [PATCH 4/9] Create Sonos_Alias.js --- ioBroker/Blockly/Sonos_Alias.js | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 ioBroker/Blockly/Sonos_Alias.js diff --git a/ioBroker/Blockly/Sonos_Alias.js b/ioBroker/Blockly/Sonos_Alias.js new file mode 100644 index 00000000..8fc419f0 --- /dev/null +++ b/ioBroker/Blockly/Sonos_Alias.js @@ -0,0 +1,51 @@ +const aliasPath = 'alias.0.NSPanel_1.Media'; +const aliasDevice = 'PlayerSonos'; +//Ergibt alias.0.NSPanel_1.Media.PlayerSonos. + +const sonosInstanz = 'sonos.0.root.'; +const sonosIP = '192_168_1_212'; + +var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; + +function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) { + if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); + else { + var obj = {}; + obj.type = idType; + obj.common = getObject(idSrc).common; + obj.common.alias = {}; + if(idRd) { + obj.common.alias.id = {}; + obj.common.alias.id.read = idRd; + obj.common.alias.id.write = idSrc; + obj.common.read = true; + } else obj.common.alias.id = idSrc; + obj.common.type = idAliasType; + if(obj.common.read !== false && read) obj.common.alias.read = read; + if(obj.common.write !== false && write) obj.common.alias.write = write; + obj.common.name = idName; + obj.common.role = idRole; + obj.common.desc = idDst; + if(min !== undefined) obj.common.min = min; + if(max !== undefined) obj.common.max = max; + if(unit) obj.common.unit = unit; + obj.common.states = states; + if(custom && obj.common.custom) obj.common.custom = custom; + obj.native = {}; + setObject(idDst, obj); + } +} + +createAlias(aliasPath + '.' + aliasDevice, '', sonosInstanz + sonosIP, '', 'channel', 'media', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', sonosInstanz + sonosIP + '.current_album', '', 'state', 'media.album', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', sonosInstanz + sonosIP + '.current_artist', '', 'state', 'media.artist', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', sonosInstanz + sonosIP + '.current_title', '', 'state', 'media.title', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.CONTEXT_DESCRIPTION', 'CONTEXT_DESCRIPTION', sonosInstanz + sonosIP + '.current_station', '', 'state', 'media.station', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', sonosInstanz + sonosIP + '.next', '', 'state', 'button.next', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', sonosInstanz + sonosIP + '.prev', '', 'state', 'button.prev', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', sonosInstanz + sonosIP + '.play', '', 'state', 'button.play', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', sonosInstanz + sonosIP + '.pause', '', 'state', 'button.pause', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', sonosInstanz + sonosIP + '.stop', '', 'state', 'button.stop', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', sonosInstanz + sonosIP + '.state_simple', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', sonosInstanz + sonosIP + '.volume', '', 'state', 'level.volume', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', sonosInstanz + sonosIP + '.volume', '', 'state', 'value.volume', 'number'); From c32c95e6d49dd84dd3d5f461dca63a6f3bc8bbd7 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:49:45 +0100 Subject: [PATCH 5/9] Create Chrome_Alias.js --- ioBroker/Blockly/Chrome_Alias.js | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 ioBroker/Blockly/Chrome_Alias.js diff --git a/ioBroker/Blockly/Chrome_Alias.js b/ioBroker/Blockly/Chrome_Alias.js new file mode 100644 index 00000000..4cfef960 --- /dev/null +++ b/ioBroker/Blockly/Chrome_Alias.js @@ -0,0 +1,50 @@ +const aliasPath = 'alias.0.NSPanel_1.Media'; // ggfs. Anpassen +const aliasDevice = 'PlayerChromecast'; // ggfs. Anpassen +//Ergibt alias.0.NSPanel_1.Media.PlayerChromecast. + +const chromecastInstanz = 'chromecast.0.'; // Anpasssen, wenn nicht Instanz 0 +const chromecastDevice = 'GoogleHome3224'; // Anpassen an dein eigenes Devoice + +var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; + +function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) { + if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); + else { + var obj = {}; + obj.type = idType; + obj.common = getObject(idSrc).common; + obj.common.alias = {}; + if(idRd) { + obj.common.alias.id = {}; + obj.common.alias.id.read = idRd; + obj.common.alias.id.write = idSrc; + obj.common.read = true; + } else obj.common.alias.id = idSrc; + obj.common.type = idAliasType; + if(obj.common.read !== false && read) obj.common.alias.read = read; + if(obj.common.write !== false && write) obj.common.alias.write = write; + obj.common.name = idName; + obj.common.role = idRole; + obj.common.desc = idDst; + if(min !== undefined) obj.common.min = min; + if(max !== undefined) obj.common.max = max; + if(unit) obj.common.unit = unit; + obj.common.states = states; + if(custom && obj.common.custom) obj.common.custom = custom; + obj.native = {}; + setObject(idDst, obj); + } +} + +createAlias(aliasPath + '.' + aliasDevice, '', chromecastInstanz + chromecastDevice, '', 'channel', 'media', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', chromecastInstanz + chromecastDevice + '.album', '', 'state', 'media.album', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', chromecastInstanz + chromecastDevice + '.artist', '', 'state', 'media.artist', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', chromecastInstanz + chromecastDevice + '.title', '', 'state', 'media.title', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', chromecastInstanz + chromecastDevice + '.next', '', 'state', 'button.next', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', chromecastInstanz + chromecastDevice + '.prev', '', 'state', 'button.prev', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', chromecastInstanz + chromecastDevice + '.play', '', 'state', 'button.play', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', chromecastInstanz + chromecastDevice + '.pause', '', 'state', 'button.pause', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', chromecastInstanz + chromecastDevice + '.stop', '', 'state', 'button.stop', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', chromecastInstanz + chromecastDevice + '.state', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', chromecastInstanz + chromecastDevice + '.volume', '', 'state', 'level.volume', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', chromecastInstanz + chromecastDevice + '.volume', '', 'state', 'value.volume', 'number'); From 2106720fe42254e3d551232e34e9d6640518665d Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:50:29 +0100 Subject: [PATCH 6/9] Create SqueezeBoxRPC_Alias.js --- ioBroker/Blockly/SqueezeBoxRPC_Alias.js | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 ioBroker/Blockly/SqueezeBoxRPC_Alias.js diff --git a/ioBroker/Blockly/SqueezeBoxRPC_Alias.js b/ioBroker/Blockly/SqueezeBoxRPC_Alias.js new file mode 100644 index 00000000..4a5ccd44 --- /dev/null +++ b/ioBroker/Blockly/SqueezeBoxRPC_Alias.js @@ -0,0 +1,51 @@ +const aliasPath = 'alias.0.Media.LMS'; // ggfs. Anpassen +const aliasDevice = 'SqueezePlay'; // ggfs. Anpassen +//Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC + +const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0 +const squeezeBoxDevice = 'SqueezePlay'; // Anpassen an dein eigenes Device + +var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; + +function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) { + if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); + else { + var obj = {}; + obj.type = idType; + obj.common = getObject(idSrc).common + obj.common.alias = {}; + if(idRd) { + obj.common.alias.id = {}; + obj.common.alias.id.read = idRd; + obj.common.alias.id.write = idSrc; + obj.common.read = true; + } else { + obj.common.alias.id = idSrc; + } + obj.common.type = idAliasType; + if(obj.common.read !== false && read) obj.common.alias.read = read; + if(obj.common.write !== false && write) obj.common.alias.write = write; + obj.common.name = idName; + obj.common.role = idRole; + obj.common.desc = idDst; + if(min !== undefined) obj.common.min = min; + if(max !== undefined) obj.common.max = max; + if(unit) obj.common.unit = unit; + obj.common.states = states; + if(custom && obj.common.custom) obj.common.custom = custom; + obj.native = {}; + setObject(idDst, obj); + } +} + +createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM', squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string'); +createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean'); +createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number'); +createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number'); From 1877b49b5bd2a57005a94bdafb20723f5b33acf5 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:55:48 +0100 Subject: [PATCH 7/9] Create CardPower_Emulator_Skript.xml --- .../Blockly/CardPower_Emulator_Skript.xml | 1965 +++++++++++++++++ 1 file changed, 1965 insertions(+) create mode 100644 ioBroker/Blockly/CardPower_Emulator_Skript.xml diff --git a/ioBroker/Blockly/CardPower_Emulator_Skript.xml b/ioBroker/Blockly/CardPower_Emulator_Skript.xml new file mode 100644 index 00000000..a7ec606a --- /dev/null +++ b/ioBroker/Blockly/CardPower_Emulator_Skript.xml @@ -0,0 +1,1965 @@ + + + Debug + dpValues + dpValuesMax + valueDirection + iconString + dpValueUnit + iconColors + j + vSpeed + outJSON + i + bat_loading + bat_temp + + + Debug + + + TRUE + + + + + * * * * * + + + + 0_userdata.0.Test.CardPowerExample.DP2Value + FALSE + + + 1 + + + 3.1234 + + + ADD + + + 1 + + + + + 4 + + + + + 6 + + + + + + + 1 + + + + + + + + + + + 0_userdata.0.Test.CardPowerExample.DP3Value + FALSE + + + 1 + + + 3.1234 + + + ADD + + + 1 + + + + + 3 + + + + + 4 + + + + + + + 1 + + + + + + + + + + + 0_userdata.0.Test.CardPowerExample.DP4Value + FALSE + + + 1 + + + 3.1234 + + + ADD + + + 1 + + + + + 0 + + + + + 6 + + + + + + + 1 + + + + + + + + + + + 0_userdata.0.Test.CardPowerExample.DP6Value + FALSE + + + 1 + + + 3.1234 + + + ADD + + + 1 + + + + + 0 + + + + + 2 + + + + + + + 1 + + + + + + + + + + + + + + + + + + + any + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP1Value + + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP2Value + + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP3Value + + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP4Value + + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP5Value + + + + + default + + + 0_userdata.0.Test.CardPowerExample.DP6Value + + + + + dpValues + + + + + + val + 0_userdata.0.Test.CardPowerExample.DP1Value + + + + + val + 0_userdata.0.Test.CardPowerExample.DP2Value + + + + + val + 0_userdata.0.Test.CardPowerExample.DP3Value + + + + + val + 0_userdata.0.Test.CardPowerExample.DP4Value + + + + + val + 0_userdata.0.Test.CardPowerExample.DP5Value + + + + + val + 0_userdata.0.Test.CardPowerExample.DP6Value + + + + + + + dpValuesMax + + + + + + 3 + + + + + 7 + + + + + 5 + + + + + 0 + + + + + 0 + + + + + 4.6 + + + + + + + valueDirection + + + + + + both + + + + + in + + + + + in + + + + + out + + + + + both + + + + + out + + + + + + + iconString + + + + + + battery-charging-60 + + + + + solar-power-variant + + + + + wind-turbine + + + + + shape + + + + + transmission-tower + + + + + car + + + + + + + dpValueUnit + + + + + + kW + + + + + kW + + + + + kW + + + + + kW + + + + + kW + + + + + kW + + + + + + + iconColors + + + + + + + + j + + + 0 + + + + + vSpeed + + + 1 + + + + + outJSON + + + [ + + + + + i + + + dpValues + + + + + iconColors + + + 10 + + + + + j + + + 1 + + + 1 + + + + + vSpeed + + + 1 + + + + + + + + j + + + + + 1 + + + + + i + + + MINUS + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 2 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 3 + + + + + + + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 4 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 6 + + + + + + + + + + + + + + LT + + + i + + + + + 0 + + + + + + + i + + + MULTIPLY + + + 1 + + + i + + + + + -1 + + + + + + + valueDirection + + + out + + + + + bat_loading + + + FALSE + + + + + + + + + + + valueDirection + + + in + + + + + bat_loading + + + TRUE + + + + + + + + + + + GT + + + i + + + + + + GET + FROM_START + + + dpValuesMax + + + + + 1 + + + + + + + + + i + + + + GET + FROM_START + + + dpValuesMax + + + + + 1 + + + + + + + + + iconColors + + + DIVIDE + + + 1 + + + MULTIPLY + + + 1 + + + i + + + + + 10 + + + + + + + 1 + + + + GET + FROM_START + + + dpValuesMax + + + + + 1 + + + + + + + + + + + + EQ + + + valueDirection + + + + + out + + + + + + + vSpeed + + + iconColors + + + + + + + vSpeed + + + DIVIDE + + + 1 + + + iconColors + + + + + -1 + + + + + + + + + bat_temp + + + i + + + + + + + + + + + + + + + + + 2 + + + + + iconColors + + + MINUS + + + 10 + + + + + 1 + + + DIVIDE + + + 1 + + + MULTIPLY + + + 1 + + + i + + + + + 10 + + + + + + + 1 + + + + GET + FROM_START + + + dpValuesMax + + + + + 2 + + + + + + + + + + + vSpeed + + + MINUS + + + 10 + + + + + 1 + + + iconColors + + + + + + + + + EQ + + + i + + + + + 0 + + + + + + + vSpeed + + + 0 + + + + + + + + + + + + + 3 + + + + + iconColors + + + MINUS + + + 10 + + + + + 1 + + + DIVIDE + + + 1 + + + MULTIPLY + + + 1 + + + i + + + + + 10 + + + + + + + 1 + + + + GET + FROM_START + + + dpValuesMax + + + + + 3 + + + + + + + + + + + vSpeed + + + MINUS + + + 10 + + + + + 1 + + + iconColors + + + + + + + + + EQ + + + i + + + + + 0 + + + + + + + vSpeed + + + 0 + + + + + + + + + + + + + 4 + + + + + iconColors + + + DIVIDE + + + 1 + + + MULTIPLY + + + 1 + + + i + + + + + 10 + + + + + + + 1 + + + i + + + + + + + vSpeed + + + iconColors + + + + + + + + + 5 + + + + + + + + bat_loading + + + + + i + + + MINUS + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 2 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 3 + + + + + + + + + 1 + + + ADD + + + 1 + + + bat_temp + + + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 4 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 6 + + + + + + + + + + + + + + + i + + + MINUS + + + 1 + + + ADD + + + 1 + + + bat_temp + + + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 2 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 3 + + + + + + + + + + + 1 + + + ADD + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 4 + + + + + + + 1 + + + + GET + FROM_START + + + dpValues + + + + + 6 + + + + + + + + + + + + + + + + LT + + + i + + + + + 0 + + + + + + + i + + + MULTIPLY + + + 1 + + + i + + + + + -1 + + + + + + + valueDirection + + + out + + + + + + + + + valueDirection + + + in + + + + + + + + + + EQ + + + valueDirection + + + + + in + + + + + + + iconColors + + + 0 + + + + + vSpeed + + + 5 + + + + + + + + + iconColors + + + 10 + + + + + vSpeed + + + -5 + + + + + + + + + + + EQ + + + i + + + + + 0 + + + + + + + vSpeed + + + 0 + + + + + + + + + + + + + + + 6 + + + + + iconColors + + + DIVIDE + + + 1 + + + MULTIPLY + + + 1 + + + i + + + + + 10 + + + + + + + 1 + + + + GET + FROM_START + + + dpValuesMax + + + + + 6 + + + + + + + + + vSpeed + + + MINUS + + + 10 + + + + + 1 + + + DIVIDE + + + 1 + + + iconColors + + + + + 2 + + + + + + + + + + + + + outJSON + + + + + + outJSON + + + + + + + + { "id" : + + + + + j + + + + + , "value": + + + + + 1 + + + 3.1234 + + + i + + + + + + + , "unit": " + + + + + + GET + FROM_START + + + dpValueUnit + + + + + j + + + + + + + " , "direction" : " + + + + + valueDirection + + + + + " , "icon" : " + + + + + + GET + FROM_START + + + iconString + + + + + j + + + + + + + " , "iconColor" : + + + + + ROUND + + + 3.1 + + + iconColors + + + + + + + , "speed" : + + + + + ROUND + + + 3.1 + + + DIVIDE + + + 1 + + + vSpeed + + + + + 3 + + + + + + + + + } + + + + + + + + + + + LT + + + j + + + + + 6 + + + + + + + outJSON + + + + + + outJSON + + + + + , + + + + + + + + + + + + + + + + + + + + + outJSON + + + + + + outJSON + + + + + ] + + + + + + + + 0_userdata.0.Test.CardPowerExample.cardPower_1_JSON + FALSE + + + outJSON + + + + + + + Debug + + + + + log + + + test + + + outJSON + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fdd7d971786df401da2961422c6d56b9957fafcc Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:56:50 +0100 Subject: [PATCH 8/9] Create CardChart.xml --- ioBroker/Blockly/CardChart.xml | 704 +++++++++++++++++++++++++++++++++ 1 file changed, 704 insertions(+) create mode 100644 ioBroker/Blockly/CardChart.xml diff --git a/ioBroker/Blockly/CardChart.xml b/ioBroker/Blockly/CardChart.xml new file mode 100644 index 00000000..77bd19bb --- /dev/null +++ b/ioBroker/Blockly/CardChart.xml @@ -0,0 +1,704 @@ + + + sourceDP + targetDP + AxisXHours + AxisXTicks + Debug + flux + AxisTickCounter + i + queryStunde + queryOutput + queryValue + AxisTicksBool + result + + + Example String + + + 7^2:00~7~6^4:00~6~7^6:00~0~7^8:00~5~1^10:00~1~10^12:00~5~6^14:00~8 + + + Start Parameter + + + sourceDP + + + sonoff.0.DZG_DWSB20_2H.DZG_Leistung_Aktuell + + + + + targetDP + + + 0_userdata.0.Test.cardChart.txt + + + + + AxisXHours + + + 24 + + + + + AxisXTicks + + + 5 + + + + + Debug + + + FALSE + + + + + Ende Parameter + + + + ne + + + + default + + + sourceDP + + + + + flux + + + + + + from(bucket: "iobroker") + + + + + |> range(start: -24h, stop: now()) + + + + + |> filter(fn: (r) => r["_measurement"] == " + + + + + sourceDP + + + + + ") + + + + + |> filter(fn: (r) => r["_field"] == "value") + + + + + |> aggregateWindow(every: 1h, fn: mean, createEmpty: false) + + + + + |> yield(name: "mean") + + + + + + + + influxdb.1 + query + + TRUE + + + + + + flux + + + + + AxisTickCounter + + + 0 + + + + + i + + + 1 + + + 1 + + + + + 24 + + + AxisXHours + + + + + 1 + + + + + AxisTickCounter + + + 1 + + + 1 + + + + + queryStunde + + + + h + + + + + result.0.0._value + + + + + + result.0. + + + + + i + + + + + ._time + + + + + + + TRUE + + + result + + + + + + + + + + + queryValue + + + ROUND + + + 3.1 + + + DIVIDE + + + 1 + + + + + + + result.0.0._value + + + + + + result.0. + + + + + i + + + + + ._value + + + + + + + TRUE + + + result + + + + + + + + + + + 100 + + + + + + + + + + + + EQ + + + i + + + + + 1 + + + + + + + AxisTicksBool + + + TRUE + + + + + + + EQ + + + AxisTickCounter + + + + + AxisXTicks + + + + + + + AxisTicksBool + + + TRUE + + + + + AxisTickCounter + + + 1 + + + + + + + + + AxisTicksBool + + + FALSE + + + + + + + + + + EQ + + + i + + + + + AxisXHours + + + + + + + + + + AxisTicksBool + + + + + queryOutput + + + + + + queryOutput + + + + + queryValue + + + + + ^ + + + + + queryStunde + + + + + :00 + + + + + + + + + queryOutput + + + + + + queryOutput + + + + + queryValue + + + + + + + + + + + + + + AxisTicksBool + + + + + queryOutput + + + + + + queryOutput + + + + + queryValue + + + + + ^ + + + + + queryStunde + + + + + :00 + + + + + ~ + + + + + + + + + queryOutput + + + + + + queryOutput + + + + + queryValue + + + + + ~ + + + + + + + + + + + + + EQ + + + i + + + + + AxisXHours + + + + + + + queryStunde + + + 1 + + + 1 + + + + + + + + + Debug + + + + + log + + + test + + + + + + i + + + + + - + + + + + queryValue + + + + + - + + + + + queryStunde + + + + + + + + + + + + + + + + + + + + + + + false + FALSE + + + Object ID + + + targetDP + + + + + TRUE + + + queryOutput + + + + + 0 + + + + + + + Debug + + + + + log + + + test + + + queryOutput + + + + + + + queryOutput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 4ce76ea5ef4fd95187f07b2d8842306b641f4cd9 Mon Sep 17 00:00:00 2001 From: kuckuckmann <99131208+kuckuckmann@users.noreply.github.com> Date: Tue, 27 Dec 2022 13:57:41 +0100 Subject: [PATCH 9/9] Create PopupNotify_layout2_Emulator.xml --- .../Blockly/PopupNotify_layout2_Emulator.xml | 838 ++++++++++++++++++ 1 file changed, 838 insertions(+) create mode 100644 ioBroker/Blockly/PopupNotify_layout2_Emulator.xml diff --git a/ioBroker/Blockly/PopupNotify_layout2_Emulator.xml b/ioBroker/Blockly/PopupNotify_layout2_Emulator.xml new file mode 100644 index 00000000..feebde07 --- /dev/null +++ b/ioBroker/Blockly/PopupNotify_layout2_Emulator.xml @@ -0,0 +1,838 @@ + + + 0_userdata_Path + Sensor_Temperatur + Sensor_Lutfeuchte + Sensor_Luftdruck + Button1Text + Button2Text + HeadingTextColor + TextColor + Button1TextColor + Button2TextColor + IconColor + i + HeadingText + Icon + FontSize + Text + + + 0_userdata_Path + + + 0_userdata.0.NSPanel.1.popupNotify. + + + + + Sensor_Temperatur + + + val + deconz.0.Sensors.65.temperature + + + + + Sensor_Lutfeuchte + + + val + deconz.0.Sensors.64.humidity + + + + + Sensor_Luftdruck + + + val + deconz.0.Sensors.66.pressure + + + + + Button1Text + + + + + + + + Button2Text + + + OK + + + + + Color Picker für RGB565 + + + http://www.barth-dev.de/online/rgb565-color-picker/ + + + HeadingTextColor + + + 65535 + + + + + TextColor + + + 65535 + + + + + Button1TextColor + + + 2016 + + + + + Button2TextColor + + + 63488 + + + + + IconColor + + + 2000 + + + + + Zähler für Loop + + + i + + + 1 + + + + + Überschrift + + + HeadingText + + + + + + Zeit + + + + + Temperatur + + + + + Luftfeuchte + + + + + Luftdruck + + + + + + + Icons + + + Icon + + + + + + clock + + + + + thermometer + + + + + water-percent + + + + + car-speed-limiter + + + + + + + Font 0 - Default - Size 24 (No Icons, Support for various special chars from different langs) + + + Font 1 - Size 32 (Icons and limited chars) + + + Font 2 - Size 32 (No Icons, Support for various special chars from different langs) + + + Font 3 - Size 48 (Icons and limited chars) + + + Font 4 - Size 80 (Icons and limited chars) + + + Font 5 - Size 128 (ascii only) + + + FontSize + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + Text oder Sensordaten + + + Text + + + + + + + + + hh:mm + + + + + + + + + + Sensor_Temperatur + + + + + °C + + + + + + + + + + Sensor_Lutfeuchte + + + + + % + + + + + + + + + + Sensor_Luftdruck + + + + + hPa + + + + + + + + + */5 * * * * * + + + + SET + FROM_START + + + Text + + + + + 1 + + + + + + + + hh:mm + + + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyHeading + + + + + + + TRUE + + + + GET + FROM_START + + + HeadingText + + + + + i + + + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyText + + + + + + + TRUE + + + + GET + FROM_START + + + Text + + + + + i + + + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyButton1Text + + + + + + + TRUE + + + Button1Text + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyButton2Text + + + + + + + TRUE + + + Button2Text + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyIcon + + + + + + + TRUE + + + + GET + FROM_START + + + Icon + + + + + i + + + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyFontIdText + + + + + + + TRUE + + + + GET + FROM_START + + + FontSize + + + + + i + + + + + + + 0 + + + + + Farben + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyHeadingColor + + + + + + + TRUE + + + HeadingTextColor + + + + + 0 + + + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyTextColor + + + + + + + TRUE + + + TextColor + + + + + 0 + + + + + Zum Schuss InternalName (Trigger) + + + false + FALSE + + + Object ID + + + + + + 0_userdata_Path + + + + + popupNotifyInternalName + + + + + + + TRUE + + + + GET + FROM_START + + + HeadingText + + + + + i + + + + + + + 0 + + + + + + + + EQ + + + i + + + + + + + HeadingText + + + + + + + + + i + + + 1 + + + + + + + i + + + 1 + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +