Welcome to Smart Home Forum by FIBARO
Dear Guest,
as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.
As a member you can:
- Start new topics and reply to others
- Follow topics and users to get email updates
- Get your own profile page and make new friends
- Send personal messages
- ... and learn a lot about our system!
Regards,
Smart Home Forum by FIBARO Team
All Activity
- Past hour
-
Welcome to the completely unnecessary applications series! Part N+1. TableMan: An HTML Table Server for Nice/Fibaro HC3 The Fibaro UI has quite a few limitations. But it also has some real possibilities: it supports simple HTML tags, it can display SVG, and that opens up quite a few ways to present data sensibly. One of the simplest and most commonly used ways of presenting data is a table. We can see tables in many user applications. I think quite a few people have written their own libraries for handling HTML tables and then include them in their next QuickApps. I did the same. Over time I ended up with five “generations” of increasingly sophisticated libraries, plus one mini version. One of those libraries used SVG instead of HTML and could display tables stacked on top of each other like windows (they even cast shadows!). This turned out to be very useful, for example, for preference screens (very long preference sections in many applications I have seen are a problem). The last HTML approach already had table filtering and sorting, cell merging, formatting, a two-level cache, and a few other bells and whistles. The code exceeded 900 lines. There were 15 user applications, and each of them had to carry those 900 lines and meet their memory requirements. That meant about 13,000 lines of repeated code: some applications used this part, others used that part, and none of them used everything. I do not even want to mention how much work updating it required. And yes, bugs did happen. That led to the question: can tables in Fibaro be done in a client-server model? Can large libraries included in every application be replaced with one central QuickApp that handles tables for everyone, while leaving only a thin client inside each application? It turned out that yes, they can. After a few weeks of work, a working version of TableMan was born. Command Language The assumption was simple: it should be possible to build complex tables with single lines of code, and writing a value to a table cell should be almost as simple as print. The whole thing comes down to a small command language. It is a set of simple commands that can be used to construct and update tables. The currently available commands are: link, display, hide, delete, set, style, setRow, setCol, styleRow, styleCol, styleAll, clear, clearCell, clearValue, clearStyle, header, merge, unmerge, addRows, deleteRows. You can combine several tables into one view, merge ranges of cells, format individual cells, whole rows and columns, change colors, clear values or styles, add and delete rows. The server can also automatically choose a contrasting text color for the background. Thanks to this, quite sophisticated tables can be created in a very simple way. Typical usage looks like this (first you need to register with the service and create a table using new😞 tableObject:exec("set", { col = 2, row = 4, value = "123" }) tableObject:exec("style", { col = 2, row = 4, bg = "green" }) tableObject:exec("display") Server It is one central QuickApp that receives commands from its clients. It stores private table data for each client, executes commands, and, when needed, updates the client’s UI directly. There is no classic return communication here. The client sends a command (fire and forget), and the server does the rest. There are no confirmations, negotiations, callbacks, or additional protocol. If something needs to be displayed, the server sends ready HTML directly to the appropriate UI element of the client. This is a deliberate simplification. It is hard to expect execution confirmation from print. The server has extensive error diagnostics, but it does not return errors to the client. It logs them on its own console. There are more than thirty types of errors, so it is visible whether the problem is an invalid cell range, a nonexistent table, bad parameters, and so on. It also has its own administrative tables: it shows clients, their activity, number of operations, traffic profile, and the load generated by individual applications and tables. This is very helpful for finding the chattiest applications and trimming them down. Writing to a table does not automatically display it. So you can build or update a table with many commands (at minimal CPU cost), and only at the end execute the display command. Client On the application side there are two client variants. The first one is very simple. It is suitable for applications that rarely update data or have small tables. It has about 80 lines of code. It collects commands into batches and sends them to the server in one go, to reduce the number of hub.call The second client is larger, about 220 lines, but it contains a simple yet very effective cache mechanism: if a given command has already been sent to the server and nothing in it has changed, the client does not send it again. It also cuts off display if there were no real changes in the table. This greatly reduces communication for semi-static tables, where some cells do not change and only individual values are updated. The application no longer needs its own layer for limiting communication. The cache is fast. It is based on calculating a hash, which is cheaper than ordinary cache searching: the table index is the command and address (which is also based on hashing, just internally in LUA) and the value is a hash of the parameters. One has to be very careful, because once every ~30 years or so there may be a hash collision (2^32). The effectiveness in reducing communication is impressive, considering the simplicity of the solution. Results The work is still in progress, but I think the results are very good. Thanks to the optimizations, the CPU load of the hub did not increase, or increased only very slightly. On the other hand, for reasons that are not entirely clear, memory demand visibly calmed down. There is about six times less code (overall), but the data still has to be stored somewhere. The most important benefit, however, is architectural. The server model allows functionality to be added and improved without interfering with client applications. This is achieved by the fact that the client has only three functions, completely independent of the command language: register, new, and exec. Client is completely stupid. It does not know the commands, parameters, it checks nothing. Commands are sent like this: tableObject:exec(commandName, options) If a new feature appears in the server, an application can use it without replacing the client. It is enough to call the new command through exec. The server can grow, receive new capabilities and fixes, while the client remains unchanged. Only very large architectural changes would require replacing the client.
-
Offline user is offline one, you need to provide the e-mail where generated local password will be send. Due Data Act and RED cybersecurity directive admin should not know the password of the other user.
-
Specific level contains everything on it and higher levels, as typically in settings like that. So, for example, TRACE shows everything, WARNING shows errors and warnings.
- Today
-
YahueV2 (Yet another Hue app, using Hue API v2)
Flexo replied to jgab's topic in Tutorials and Guides
Thanks for the QuickApp - it works perfectly with the HUE lamps. With the NEUHAUS lamps I can switch them on and off, but I cannot change the light warmth (color temperature). Is this adjustment planned? That would be great. Thanks!- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
Finzzownt replied to jgab's topic in Tutorials and Guides
@jgab First test: works. I'll test it this evening, maybe the Hue motion sensor gives off different events or data, I don't know. During daylight I see no errors in the console and the Controller click successfully controls the Hue light via YahueV2, even after having passed the motion sensor multiple times.- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
Finzzownt replied to jgab's topic in Tutorials and Guides
Thank you very much! I will try v0.2.68 today and let you know.- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
Hello, in the version ( maybe even the previous ones ) is it normal to be able to create a offline user ( a user that should have a name and a password, some access but no cloud, email and so on ) and not be able to create a password for him ? As a offline user without cloud, cloud access, how shall the user have password set / reset if the administrator cant do it ? Is it a bug or a feature ? The main problem is, to connect to the unit, with for example HA or some user that should have only access to 2 devices or so on. To need to have an email, create a cloud account for nothing is not a offline user. Right ?
-
YahueV2 (Yet another Hue app, using Hue API v2)
jgab replied to jgab's topic in Tutorials and Guides
Yes, that's better. The missing resource warnings will be there.- 269 replies
-
- 1
-
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
Sjakie replied to jgab's topic in Tutorials and Guides
[26.06.2026] [11:35:47] [WARNING] [QUICKAPP397]: Missing resource type:clip (further events for this type will be ignored) [26.06.2026] [11:35:51] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored) vo.2.68- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
jgab replied to jgab's topic in Tutorials and Guides
The restart was unexpected, try version v0.2.68 I just uploaded.- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
Sjakie replied to jgab's topic in Tutorials and Guides
After update and extra restart: [26.06.2026] [11:00:29] [WARNING] [QUICKAPP397]: Missing resource type:clip (further events for this type will be ignored) [26.06.2026] [11:00:38] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored) [26.06.2026] [11:00:40] [WARNING] [QUICKAPP397]: Variable sseHeartbeat not found [26.06.2026] [11:12:44] [WARNING] [QUICKAPP397]: Missing resource type:clip (further events for this type will be ignored) [26.06.2026] [11:12:48] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored) [26.06.2026] [11:13:50] [WARNING] [QUICKAPP397]: Missing resource type:clip (further events for this type will be ignored) [26.06.2026] [11:13:55] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored)- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
jgab replied to jgab's topic in Tutorials and Guides
The "Missing resource type:xxx" is no problem, just a reminder that these Hue resources are not supported. The "Variable sseHeartbeat not found", I have made silent. "Class does not have 15 function defined - action ignored" is very strange. I made some changes in the last version, please report if you still get the warning-- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
Jan any progress to be informed about new version update? Subscribe for e-mail notification?
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
A note about time check t1..t2. rule("10:00..11:00 => ... ") will trigger the rule at 10:00, and it will also trigger the rule at 11:00:01, e.g. 1 second after the second bound. However, that last trigger will usually fail as 11:00:01 is not within 10:00..11.00 The reason that ER will anyway generate a trigger for 11:00:01 is that we may have a rule like rule("!(10:00..11:00) => ...") meaning if we are not in the interval, the condition should be true. Now because we trigger at 11:00:01 that is outside the interval, the test is false, but the not version is true and the condition becomes true... what we want.
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
YahueV2 (Yet another Hue app, using Hue API v2)
Sjakie replied to jgab's topic in Tutorials and Guides
Jan, after update v02.66 I have only warnings, so Yahue works great! [26.06.2026] [10:42:09] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored) [26.06.2026] [10:42:10] [WARNING] [QUICKAPP397]: Variable sseHeartbeat not found [26.06.2026] [10:45:28] [WARNING] [QUICKAPP397]: Class does not have 15 function defined - action ignored [26.06.2026] [10:45:30] [WARNING] [QUICKAPP397]: Class does not have 15 function defined - action ignored [26.06.2026] [10:45:59] [WARNING] [QUICKAPP397]: Class does not have 15 function defined - action ignored [26.06.2026] [10:46:14] [WARNING] [QUICKAPP397]: Missing resource type:clip (further events for this type will be ignored) [26.06.2026] [10:46:19] [WARNING] [QUICKAPP397]: Missing resource type:smart_scene (further events for this type will be ignored) [26.06.2026] [10:46:19] [WARNING] [QUICKAPP397]: Variable sseHeartbeat not found Can I perhaps solve a few warnings?- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
Yes, it looks ok. You could do local p = loadProfile() for dtime,data in pairs(p) do assert(data.start and data.ed,"Incomplete TimeProfile for "..dtime) rule(string.format("%s..%s => $DayTime='%s'", data.start, data.ed, dtime) ).start() end You may also want to check that there is a Morning,Day,Event,Night field in p.
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
I had spelled it vnum... pushed new version with the correct wnum variable defined. (v0.1.47)
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
Fixed in latest version. Now ID:msg will use fibaro.alert('simplePush',{id},...) The push push method can be changed by setting fibaro._pushMethod = 'simplePush' to ex. 'push'. However, I have only made it work for me with 'simplePush'
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
OMG that's crazy. How can I explain this to my family members? 😊 I can bypass keypad wake up by this command, am I right? -- Disable LED sleep mode - we are away fibaro.call(keypad_ID, "setConfiguration", 4, 1, 0) fibaro.debug("SceneARM", "Sleep mode disabled - LED stays on") So unlock will have two phases only. Once more thank you.
-
YahueV2 (Yet another Hue app, using Hue API v2)
jgab replied to jgab's topic in Tutorials and Guides
Ok, the parse error could actually have been a problem that caused 429 in other scenarios too. I uploaded v 0.2.66 with some fixes I hope will improve it - including allowing for better performance.- 269 replies
-
- hue
- hue plugin
-
(and 4 more)
Tagged with:
-
Jan, getting error [26.06.2026] [08:15:00] [ERROR] [QUICKAPP668]: ❌ RULE71: Undefined variable: 'wnum' @08:15 & wday('fri') & wnum % 8 == 0 =>
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
-
kalim joined the community
- Yesterday
-
tfj joined the community
-
Thanks. And if I want more that one kind of info - the values can be combined like bit flags? or maybe table can be used? I mean: self.logLevel = ERROR | DEBUG -- or: self.logLevel = {ERROR, DEBUG}
-
I'm having issues in trying to update HC3 from 5.202.54 (beta) to 5.210.12. Keep getting error when downloading the update: "Download checksum error" System works fine on current version. No issues in creating backup but not able to update. I usually have this problem with each update but usually language change helps to get it through. Trying for last few weeks and this time nothing. Restarted device multiple times. Any thoughts please?
-
Standard Login and Passwort doesnt work anymore !!
SmartHomeEddy replied to Flexo's topic in Update 5.210
Hi @Flexo no worries, the answer is here: -
@jgabhi !here is my eventrun7 rule , Is this correct to use? TimeProfile: {"Morning":{"start":"06:00","ed":"10:00"},"Day":{"start":"10:00","ed":"18:00"},"Evening":{"start":"18:00","ed":"22:00"},"Night":{"start":"22:00","ed":"06:00"}} local function loadProfile() local raw = fibaro.getGlobalVariable("TimeProfile") if type(raw) ~= "string" then error("TimeProfile must be JSON string") end local ok, profile = pcall(json.decode, raw) if not ok or type(profile) ~= "table" then error("TimeProfile JSON invalid") end return profile end rule([[$TimeProfile => log('TimeProfile changed') plugin.restart() ]]) local p = loadProfile() rule(string.format("%s..%s => $DayTime='Morning'", p.Morning.start, p.Morning.ed )).start() rule(string.format("%s..%s => $DayTime='Day'", p.Day.start, p.Day.ed )).start() rule(string.format("%s..%s => $DayTime='Evening'", p.Evening.start, p.Evening.ed )).start() rule(string.format("%s..%s => $DayTime='Night'", p.Night.start, p.Night.ed )).start()
- 385 replies
-
- rule engine
- automation
-
(and 4 more)
Tagged with:
