zefau / iobroker.jarvis Goto Github PK
View Code? Open in Web Editor NEWjarvis - just another remarkable vis
Home Page: https://forum.iobroker.net/topic/49776
License: Other
jarvis - just another remarkable vis
Home Page: https://forum.iobroker.net/topic/49776
License: Other
Currently, the newly created devices and states must be saved (which includes a page reload) before being available in the Layout / Widget configuration.
Devices and states shall directly be usable without the necessity of saving.
Icons of blinds do not change depending on the value as described in the wiki.
The following JSON is used to create the device on the screenshot below.
{
"wohnzimmer_rolladen":{
"name":"Wohnzimmer",
"room":"wohnzimmer",
"function":"blind",
"states":{
"level":{
"state":"hm-rpc.1.XXXXXXXXXX.1.LEVEL",
"action":"hm-rpc.1.XXXXXXXXXX.1.LEVEL"
},
"activity":{
"state":"hm-rpc.1.XXXXXXXXXX.1.STOP",
"action":"hm-rpc.1.XXXXXXXXXX.1.STOP"
}
},
"jarvis":{
"group":"rolladen_erdgeschoss",
"primary":"level"
}
}
}
Move following non-reusable Components to Pages:
Furthermore:
The state in the popup window does not fit to the state shown in the overview.
The following JSON is used in the devices JSON to create the state on the screenshot.
{
"alarm_aktiviert": {
"name": "Status",
"function": "default",
"states": {
"activated": {
"state": "alarm.0.status.activated"
}
},
"jarvis": {
"group": "alarm",
"state": {
"true": "aktiviert",
"false": "deaktiviert"
},
"icon": "alarm-check"
}
}
}
We saw your adapter and if it is ready please request that it is added to the repository. With this it becomes available for all users. Please consult https://github.com/ioBroker/ioBroker.repositories#add-a-new-adapter-to-the-latest-repository and the following sections for more details.
If you need help, contact us in the forum https://forum.iobroker.net/ or in the developer chat https://github.com/iobroker-community-adapters/info .
Thank you for your support.
In contrast to the log pop-up, the configuration pop-up is not in the middle of the screen.
Add an icon for the device itself, which is used when no state specific icon is defined. Though, state specific icon will override device icon.
Add a widget to show and filter ioBroker log entries.
List all scripts from ioBroker including their status (like the widget AdapterStatus
, but for scripts).
getObjectView('system', 'script', null, (err, res) => console.error(err, res));
While importing heating alias devices, the following mapping should be applied:
temperature
: Display state = ACTUAL
setTemperature
: Display state = SET
, trigger state = SET
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/Zefau/ioBroker.jarvis
Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info
In v0.0.4 the styling of states is not working as expected.
I'm using the following JSON to change the color of the icon and the state value depending on the value. The styling of the icon works for both values, but the the styling of the state value only works for "true".
{
"anwesenheit_markus": {
"name": "Markus",
"function": "default",
"states": {
"presence": {
"state": "0_userdata.0.anwesenheit.markus"
}
},
"jarvis": {
"group": "Anwesenheit",
"state": {
"true": "anwesend",
"false": "abwesend"
},
"styles": {
"icon": {
"true": {
"color": "purple"
},
"false": {
"color": "red"
}
},
"state": {
"true": {
"color": "purple"
},
"false": {
"color": "red"
}
}
},
"icon": "account"
}
}
}
Add new widget so that external contents can be loaded via iFrame, e. g. surveillance cameras or vis.
New states of a device are added at the top. The implemented possibility to move states up and down is not working. I tried it directly after creating the new state and also after saving the configuration.
Supported adapters and device types:
Adapter | light |
blinds |
socket |
heating |
---|---|---|---|---|
deconz | x | x | ||
hue | x | x | ||
hue-extended | x | x | ||
shelly | x | x | x | |
HomeMatic IP | x | x | x | x |
Opt-in (option in settings) to share usage data with developer
For blinds the level value is shown next to the buttons (up and down) in the pop-up window. This is not only confusing due to little space, but also inconsistent, as the level value is not show for dimmable lights.
Proposal: Hide the label value and add some space between the slider and the buttons to make it look similar the the pop-up of dimmable lights.
While importing alias devices the function of windows and thermostats are not automatically recognized as "windows" and "heating". Instead the function is set to "other".
It is possible to configure groups of devices and not use it in the layout, which is fine. Using a group in the layout without having it defined under devices causes jarvis to not render the layout. Instead the screen stays gray.
Possible solution: While parsing the layout definition, check if a group is available. If not, skip the group or handle it appropriately.
Changes to a device configuration aren't saved if you quit the pop-up by using the "save" button on the right. You have to save it with the hook on the left side.
Maybe you can either block the save button or make it save the changes anyways.
I have a clean installation with v1.0.0-beta.4
.
After switching the language from German to English there is a problem with the translation of this dialogue. Besides that German is still selected, although in the JSON the language is set to "en-GB".
To switch back to German again you have to select English, then select German and then save the dialogue.
There is no message in the console.
Implement a possibility to quickly jump to certain groups, especially on mobile view.
We are a group of smart home enthusiasts from China, and currently found that this program does not run well in the Chinese environment. We wanted to submit some translated text, but found that not all of these contents are in the i18n file. Can you make relevant improvements to facilitate us to submit the corresponding translation files。
My lawn mower has the following modes: Auto (0), Manual (1), Home (2) and End of Day (3). Currently it is not possible to show the mode in Jarvis and switch between the modes.
Please add the possibility to select different options. The most simple way could be a dropdown field.
Impressions
SwitchAction
, ButtonAction
, etc.) in the widget configurationI have a clean installation of v1.0.0-beta.8
and no configuration. The config dialogue pops-up and now the "Abbrechen" button is pulsating until you click somewhere else. I tried Google Chrome and Microsoft Edge. In both browsers it's the same.
Originally posted by @braindead1 in #31 (comment)
"...":{
"name": ...
"function": ...
"groups":"Group 1, Group 2",
"states":{
"...":{
"stateNode": ... // formerly state
"actionNode": ... // formerly action
"unit": ... // moved here from `jarvis`
"label": ...
"icon": ... // moved here from `jarvis`
"iconStyle": ... // moved here from `jarvis`, formerly part of styles (being nested)
"state": ... // moved here from `jarvis`
"stateStyle": ... // moved here from `jarvis`, formerly part of styles (being nested)
},
... more states ...
},
"attributes":{
....
},
"jarvis":{
....
}
}
Although I understand your intention to implement translations, I assume that most users will only use one language. Besides that I think that there will be situations where a state name may have different translations depending on the device.
Instead of translating states in jarvis.0.settings it may be a good idea to implement the possibility to set the name (label) of the state in the state.
{
"esszimmer_fenster":{
"name":"Esszimmer",
"room":"esszimmer",
"function":"window",
"states":{
"open":{
"state":"hm-rpc.1.XXXXXXXXXX.1.STATE",
"label":"Status"
}
},
"jarvis":{
"group":"fenster_erdgeschoss"
}
}
}
Originally posted by @braindead1 in #9 (comment)
On my smartphone I created a link on my homescreen to open and use jarvis like a native app. This works really well. To improve this "native app" feeling, it would be great to be able swipe between tabs.
I have to differentiate my initial comment that the LevelBody is not working at all:
There is no error in the console.
While importing window alias devices, the state open
should automatically mapped to the ACTUAL
state.
Add new widget for the weather forecast including warnings from Deutscher Wetterdienst (DWD), e. g. https://forum.iobroker.net/post/376459 / https://forum.iobroker.net/assets/uploads/files/1581523471398-vis-7.png.
Current situation:*
As of now groups are created as part of the layout. While creating devices you have to assign at least one group to the device. If you assign multiple groups, in every group the same information is used (name, states, subcategory, etc.) to render the device.
Problem:
Let's assume you want to have a tab for functions (with the groups heating, windows, blinds, etc.) and another tab for rooms (with the groups living room, dining room, kitchen, etc.). Currently on both tabs the devices are named the same (e.g. "Wohnzimmer Heizung"), whereas it would make more sense to call "Wohnzimmer Heizung" in the heating group "Wohnzimmer" and in the living room group "Heizung".
Possible solution:
If a tab only consists of an icon and no label is given, there is also just an icon in the title row above.
Instead of leaving out the label of tabs to just show an icon, please implement an option to show only the icon as tab and show icon and label in the title row.
As this is mainly interesting on small displays, another possibility would be to hide the label on small screens.
Currently jarvis uses blue as primary colour. A possibility to configure primary and secondary color would be great.
On small screens the buttons to open the log and the configuration disturb the clean look of jarvis. Besides that I believe that especially the configuration is done on larger screens. Maybe you could also think about changing the log pop-up to an tab of the configuration pop-up. An option to hide the buttons on small screens would be good.
In jarvis it is possible to turn on dimmable lights without selecting the brightness level. By default the light is then turned on with 100%. It would be great if you could implement an option to set the on value.
I have a clean installation of v1.0.0-beta-4
. I imported my alias devices. My blinds are correctly recognized as blinds. The "SET" state is automatically transferred into "level".
To get the blind widget correctly to work I have to manually create the "activity" state and match it to the "WORKING" state of the alias device. Addtionally I have to enter the "STOP" state as trigger datapoint.
For the "level" state I have to manually enter the "SET" state as trigger datapoint.
The configuration of blind alias devices should automatically be done as on the screenshot below.
Instead of showing the configuration of devices in columns, it should be shown in rows. Especially on smaller screens this would improve the readability.
As my layout configuration is not visible (see #17) I cannot check if this refers only to devices.
In Google Chrome and Microsoft Edge sorting does not work for me. Directly after opening Jarvis I get the following error in the console:
Function (blind) # undefined
overrideMethod @ react_devtools_backend.js:2273
value @ Log.js:37
(anonymous) @ blind.js:96
Promise.catch (async)
(anonymous) @ blind.js:96
is @ react-dom.production.min.js:211
bl @ react-dom.production.min.js:257
t.unstable_runWithPriority @ scheduler.production.min.js:19
Hi @ react-dom.production.min.js:122
ml @ react-dom.production.min.js:257
Js @ react-dom.production.min.js:239
(anonymous) @ react-dom.production.min.js:123
t.unstable_runWithPriority @ scheduler.production.min.js:19
Hi @ react-dom.production.min.js:122
qi @ react-dom.production.min.js:123
Yi @ react-dom.production.min.js:122
Gs @ react-dom.production.min.js:230
enqueueSetState @ react-dom.production.min.js:132
x.setState @ react.production.min.js:12
(anonymous) @ App.js:158
Promise.then (async)
(anonymous) @ App.js:156
Promise.then (async)
value @ App.js:151
os @ react-dom.production.min.js:212
hl @ react-dom.production.min.js:255
t.unstable_runWithPriority @ scheduler.production.min.js:19
Hi @ react-dom.production.min.js:122
fl @ react-dom.production.min.js:248
Js @ react-dom.production.min.js:239
Gs @ react-dom.production.min.js:230
Nl @ react-dom.production.min.js:281
(anonymous) @ react-dom.production.min.js:284
tl @ react-dom.production.min.js:240
Hl @ react-dom.production.min.js:284
t.render @ react-dom.production.min.js:290
637 @ index.js:8
i @ index.html:1
398 @ main.91c26d32.chunk.js:1
i @ index.html:1
t @ index.html:1
r @ index.html:1
(anonymous) @ main.91c26d32.chunk.js:1
There is no error in the console when I try to sort states.
Originally posted by @braindead1 in #25 (comment)
Allow users to individually configure device popup regarding the shown states (including last update timestamp) and its actions.
Also add possibility to deactivate the popup.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.