I have never observed this, Are you sure it isn't a network problem (switch maybe?)
rafale77
@toggledbits I understand that you do not perform testing on Mac computers but thought I'd share the following with you in case something can be done.
I started seeing these errors with version 24302. I thought that upgrading to 24343 would have fixed the issue but unfortunately not. I either have to close the browser or clear the cache for the errors to stop popping-up but they slowly come back.
I see these errors on the following browsers:
Safari 16.6.1 on macOS Big Sur Safari 18.1.1 on MacOS Sonoma DuckDuckGo 1.118.0 on macOS Big Sur and Sonoma Firefox 133.0.3 on macOS Big Sur Chrome 131.0.6778 on macOS Big SurHere are the errors
Safari while creating/updating an expression
@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:543:91 makeExprMenu@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:537:28 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:92:64 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:68 each@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:3133 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:35 @http://192.168.0.13:8111/client/MessageBus.js:98:44 forEach@[native code] @http://192.168.0.13:8111/client/MessageBus.js:95:54 @http://192.168.0.13:8111/client/MessageBus.js:106:44 @http://192.168.0.13:8111/client/Observable.js:78:28 signalModified@http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:146:21 signalModified@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:40:29 reindexExpressions@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:71:32 @http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:608:40 dispatch@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:40040DuckDuckGo while clicking on status
http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-status.js:789:44 asyncFunctionResume@[native code] saveGridLayout@[native code] dispatchEvent@[native code] _triggerEvent@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:1401:30 _triggerAddEvent@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:1383:31 makeWidget@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:968:30 addWidget@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:388:24 placeWidgetAdder@http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-status.js:183:44Firefox while updating a rule
@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:543:91 makeExprMenu@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:537:28 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:92:64 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:68 each@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:3133 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:35 @http://192.168.0.13:8111/client/MessageBus.js:98:44 forEach@[native code] @http://192.168.0.13:8111/client/MessageBus.js:95:54 @http://192.168.0.13:8111/client/MessageBus.js:106:44 @http://192.168.0.13:8111/client/Observable.js:78:28 notifySaved@http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:82:21 notifySaved@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:47:26 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-rules.js:1460:39 forEach@[native code] @http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-rules.js:1459:58Chrome while creating/updating an expression
TypeError: Cannot read properties of undefined (reading 'getEditor') at RuleEditor.makeExprMenu (http://192.168.0.13:8111/reactor/en-ca/lib/js/rule-editor.js:1788:86) at Object.handler (http://192.168.0.13:8111/reactor/en-ca/lib/js/rule-editor.js:2174:54) at http://192.168.0.13:8111/client/MessageBus.js:98:44 at Array.forEach (<anonymous>) at MessageBus._sendToBus (http://192.168.0.13:8111/client/MessageBus.js:95:54) at MessageBus.send (http://192.168.0.13:8111/client/MessageBus.js:106:44) at ExpressionEditor.publish (http://192.168.0.13:8111/client/Observable.js:78:28) at ExpressionEditor.signalModified (http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:146:14) at ExpressionEditor.signalModified (http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:40:15) at ExpressionEditor.reindexExpressions (http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:71:18) ``Build 24343 has fully HTTP actions, so cool things could be created (see docs). I've recently changed a couple of cams because better definition and I've found tha Reolink has a couple of cams that have spotlights. While the spotlights are driven by motion (so the cam could record in color), I wanted to drive them directly, so in case of any "security" event, like alarm on, door open, etc, I could use the lights to have a better video and make - you know - light.
So, if you want to use HTTP actions in VirtualController, just go to config, entities under your VirtualEntityController section in reactor.yaml, and add this:
- id: cams_retro_spotlights name: "Retro Cam - Spotlights" template: Binary Switch # update the status at interval http_request: interval: 900 # 15m url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "GetWhiteLed", "action": 0 , "param": { "channel": 0 }}]' capabilities: power_switch: attributes: state: expr: "isnull( response ) ? null : response[0]?.value?.WhiteLed?.state == 1" default: false actions: "on": http_request: url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "SetWhiteLed", "param": { "WhiteLed": {"bright" : 100, "channel": 0, "mode": 1, "state": 1}}}]' target: state expr: "isnull( response ) ? null: response[0]?.value?.rspCode == '200'" "off": http_request: url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "SetWhiteLed", "param": { "WhiteLed": {"bright" : 100, "channel": 0, "mode": 1, "state": 0}}}]' target: state expr: "isnull( response ) ? null : response[0]?.value?.rspCode == '200' ? false : null"Reolink has API where you have to post a JSON and the response will give you a JSON (in theory). It's not really JSON, so force_json: true will do the trick for you. I'm lefting this as an example of cool things you could do with the new capabilites added/documented in 24343. HTH.
Thanks to @toggledbits for adding a custom CSS. I've started doing a darker Reactor style.
Here's the file: https://gist.github.com/dbochicchio/825098ac13b7f8cac22012eae37ff7ce
A couple of things are still too bright and I'll eventually catch-up. Just place it under your /config directory, naming the file as customstyles.css. Hard refresh your browser.
Hi
Having to rebuild my Linux Debian box as the SSD failed. And I have forgotten exactly what I did the first time to get it all setup.
I have Debian 12 up and running on the new SSD, I only have console no Desktop GUI.
I am trying to do the bare metal install for MSR. However I am not sure if I am meant to install nodejs whlist logged in as the root user or as the none root user with my name ?
I used putty and connected via SSH and logged in as root and I installed nodejs but I think this was wrong as when logged in as my user name and I do a node -v command it says node is not installed or doesn't show any version number anyway.
But when logged in as root and I do a node -v command it does show me its installed and displays the version number. maybe its a path issue for my username and he can't see node is installed?
So now I am thinking I should of installed node whilst logged in as my user name and not as the root user.
This is how I installed nodejs as whilst logged in as root
ac7bf6c3-23ad-46fc-8ada-44af6704e63e-image.png
Thanks in advance.
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here.
Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.As the title says, here's my OpenAI Controller for Reactor:
OpenAI Controller per Reactor. Contribute to dbochicchio/reactor-openai development by creating an account on GitHub.
It supports both OpenAI and Azure OpenAI endpoints. You'll need keys/endpoints, according to each service.
The controller supports multiple models, and each one could be mapped as an entity.
It's quite easy to use, and responses can be stored in variables, for easy access. Or sent to another action (Text To Speech, another endpoint, etc).
9013ae50-fd68-42a2-87c3-97479132e465-image.png
80a88eec-7c89-464a-8196-690b4b72d044-image.png
Have fun with LLM into your scenes!
I've switched to a virtual entity with both power_switch and string_sensor capabilities to represent the current holiday.
The power switch is used to indicate if it's a public holiday (so, no school/work), while the string sensor is a string with the actual holiday (Easter, Christmas, Halloween, etc - we don't have thanksgiving), mostly to drive lights.
I build it with some static dates (mostly birthdays/anniversaries) and then the dynamics ones are taken from webcal.guru. My lights/scenes are linked to events this way and it's easier to manage it in the long run: just a bunch of group action in the reaction driving the lights. This part is outside Reactor for me (because, legacy), but it's not difficult to completly drive it off a virtual sensor or a custom controller.
I don't know how people are doing this, but I'm lefting a note for the ones looking for a working solution.
In Home Assistant I have an integration that if I add entities to it, I will get the following error in MSR as certain entity values I'm using in expressions are null for a moment. This is more or less cosmetic issue and happens very rarely as I rarely modify that integration on the hass side.
Screenshot 2024-11-28 at 22.20.41.png
And the expression is
Screenshot 2024-11-28 at 22.38.19.png
Could I "wrap" hass-entity shown above somewhat differently to prevent this error from happening? Using build 24302.
Hello
I am trying to set up Multi System Reactor to automate routines across multiple smart home devices & platforms (e.g., Home Assistant, SmartThings, and Hubitat). While I have successfully linked the systems; I am facing issues with:
-Delays in triggering actions on secondary devices.
-Inconsistent execution of complex logic conditions.
-Synchronization of states between devices when one system updates.
Is there a recommended way to optimize performance & confirm seamless state sharing across systems?
I have checked https://smarthome.community/category/22/multi-system-reactor-msbi guide for reference but still need advice.
Any tips on debugging or log analysis to pinpoint where the issue arises would also be appreciated.
Thank you !
Hello AK
Have been writing about the openLuup email server as I was tinkering with it the other day. One minor problem: it looks like the domain part of the email address eg ...@openLuup.local is case sensitive in openLuup.
Looking round the net, it suggests that the local part is case sensitive but the domain part is not meant to be. To keep things so they are more likely to work, it's suggested the email address should be totally case insensitive regardless. Refer to rfc2821 page 13 or search on the word "sensitive". Suffice to say I was using mail@openluup.local rather than mail@openLuup.local, so it didn't work for me.
Next challenge was that the file saved in /etc/cmh-ludl/mail has "Content-Transfer-Encoding: base64" so the body of the email was encoded:
Received: from ((openLuup.smtp) [ip_address_1] by (openLuup.smtp v18.4.12) [ip_address_2]; Tue, 26 Nov 2024 14:21:22 +1000 From: "dali@switchboard" <dali@switchboard> To: "mail@openLuup.local" <mail@openLuup.local> Subject: Warning form R2E. MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: base64 QXV0byBXYXJuaW5nOiBDb2xkIHN0YXJ0IGV2ZW50The above base 64 text translates to "Auto Warning: Cold start event".
Is it your preference to leave the saved files in the raw mode or would you consider translating the base64 text in the openLuup code base?
On a side note, does the reception of an email by openLuup generate some sort of trigger that can be watched. In the case above; the email represents the restoration of power after a power outage. I would like to know about that by the email triggering a "Telegram" notification on my mobile.
I see that the images@openLuup.local images@openLuup.local can be associated with I_openLuupCamera1.xml, which spawns a movement detector child. Anything similar for the other email addresses?
I've managed to use MSR UI on iOS devices to some degree*, so that although UI elements (e.g. rule sets) are not visible in portrait mode, you've seen them in landscape. Now with recents builds (24302) this does not work anymore, elements (rule sets, entities) are not anymore visible in landscape mode.
Does anyone have similar experiences? Using iOS 18 and Safari/Chrome browser.
( *Drag & drop of rule conditions have never worked on a mobile)
@toggledbits Since I have upgraded ZWaveJSController to 24293 from 24257 I am seeing entries related to registering action set_volume, but action is not defined by the capability 143 every time I restart Reactor.
The Siren seems to be doing what it is supposed to do. The volume levels are fine. Should I worry about it?
Reactor version 24302
ZWaveJSController version 24293
Z-Wave JS UI version 9.27.4
zwave-js version 14.3.4
I have an oven that I need to manage the temperature of, keeping it in the neighborhood of 600° C (1100° F). I have not been able to find a Zigbee-enabled solution to measure temps that high. Does anyone know if such a thing exists? If not, any ideas for how to roll a custom solution that I could integrate into a Sonoff ihost controller? I have no trouble finding high temperature probes, but none of them interface with my automation stack.
Hi All
Hopefully this place looks like a helpful forum as I’m quite new to all this!
I’ve had a few devices all working separately /through their proprietary apps but we’re just finishing off a large house extension and this has added to the list.
I’d ideally like to be able to view/switch a number of different devices on one screen/head end but have no idea where to start.
The devices we have/will have shortly are as follows;
Zigbee Smart Sockets
Zigbee smart switches (for lights)
Heatmiser Neo Underfloor Heating (this runs from a Samsung ASHP but that part is automatic)
Samsung VRF air conditioning (currently using Smart Things App)
Hive (2xLTHW heating circuits in the existing house and Hot Water)
Ring (doorbell!)
Hik Vision PoE CCTV
We have lots of appliances (Neff N70) which we can control remotely but not too fussed about controlling those at the
Moment)
Any help/recommendations would be appreciated!
Thanks
Adrian
After a major hassle got z-way running on my ubuntu 16 VM with a USB pasthough UZB1 stick including license and connected to Vera...
I see:
I also see:
0d6e8c78-c8cd-4307-9474-23e0d6a55094-image.png
But how do I update that?
e09ffa19-a31d-4a03-8983-01228bc5478f-image.png
I have a legacy home automation set-up running on Windows XP. the computer and software have now died.
I have written a very nice Excel VBA program to replace the software and it can run on any modern Windows system.
My only remaining problem is to output the correct signal to a USB port to trigger the wireless switches.
Has anybody done a similar exercise. Please help.
The locksmith is trying to persuade me to purchase the BE-TECH K35 touchscreen lock with both Wi-Fi and Bluetooth, claiming it's better than the Yale Assure Lock 2. What are your thoughts on this? Which one would you recommend?
Here is the link to the Chinese brand BE-TECH: BE-TECH Smart Deadbolt K3S.
The other smart lock I am considering is the Schlage Encode Plus.
Thank you!
Posts
-
Nuke Vera Script -
Z-Wave RF optimizationInteresting! I have moved and have taken down my entire system. It will be a few months before I get a new one up and running but it does indeed look like the noise level is quite a bit lower. Not sure if it is due to reporting differences or if it true noise decrease.
-
Vera firmware 7.32 betaI have been mostly silent on this forum for some time now with the exception of the occasional notifications for questions addressed to me because I just moved to a new house and my system had been rock solid for over a year... mostly since I got rid of the vera.
I now have to re-build everything from scratch in my new house while I had literally zero reliability issues with my previous setup in spite of its complexity (200+ devices integrated running 3 different software platform interconnected between z-way for zwave, Homeassistant for AI/cameras and the rare cloud integrations or integrations not existing on openLuup/vera and openLuup for scenes/automation/control interface.)
I considered long and hard to sell my old home with the automation but at the end I decided to move as much as I could over mostly because I noticed an increasing trend of the industry to go towards wifi for ease of setup but which cannot scale to large installations and have to encroach into wifi bandwidth. It is getting a bit harder to buy zwave and even zigbee devices. I also didn't want to spend the time to go through the learning curve of hubitat which would have yielded no benefit to my setup.
Dumping the vera was the single biggest improvement to my system and please, no ezlo... They are cost reduced and downgraded controllers to the vera in every important practical aspect.My new setup will be much lighter. Probably will not get to 175 zwave nodes, more likely <100 without the window coverings, fewer lights, fewer sensors. Heck I think I will dump the Phillips hue altogether too. I can't recommend enough migrating away from vera and go to openLuup or MSR in combination with Home Assistant for zigbee and integrations and z-way for z-wave while keeping devices as local as possible by avoiding all the wifi stuff which tend to be cloud dependent (with all their reliability and security disadvantages) and less efficient both in power and RF bandwidth. Still a new adventure...
-
Is anyone using the Ring Doorbell plugin ?My ring doorbell fell victim of my cloud dependance eradication project a few years ago, so I can't help with that one. I can only recommend replacing it with the one I am using... Superior in every way by offering a local 3MP RTSP stream, 5GHz wifi. It's already 3 years old but I haven't found anything better since. The only thing I wish it had is H.265 encoding. Mine is still going strong and is integrated into my system. I run facial recognition on it to trigger a variety of scenes on openLuup.
It is the single most active doorbell thread in this forum:
-
Smart home with no WIFIIndeed! An ethernet network requires a router... or at least you need a DHCP server for these hubs (normally a function of any router and present in most managed ethernet switches).
-
Smart home with no WIFIEuhh, I think something is amiss here. Why running everything off of Zigbee have anything to do with getting internet in the future? If you get a hubitat, your hub will be hubitat. Wifi is just a different type of wireless network communication like zigbee and zwave. They just work on different protocols and frequencies and have different purposes:
WIFI or WLAN is meant for high bandwidth, high power devices like your mobile computer and is meant to offer a bandwidth as close as possible to the wired ethernet (LAN) network it is piggy backed to. Not the most appropriate for smarthomes and especially for battery operated devices because it consumes more power and each device uses bandwidth. Given how little bandwidth smarthome device require, the communication overhead associated with WIFI makes it very wasteful but at this day in age, some people may have plenty of wifi bandwidth to use...
Zwave is a dedicated smarthome protocol which has a fairly good universality mostly due to the fact that it was controller by a single company. Devices tend to be more expensive as a result but prices have been dropping.
Zigbee is another dedicated smarthome protocol but it operates in the same wireless frequency band as WIFI. It is more opened and a lot of companies are involved in maintaining it and therefore has taken off quite nicely.
Zigbee and Zwave require a controller like Hubitat which also need to connect a wired network through ethernet. The controller would have both the radio and small computer on board in which you would setup a software from which to control your devices.
WIFI on the other hand, because of the ubiquity of its use, reuses the radio either on your WIFI router or WIFI access point but usually sends the controlling software out in the cloud so you would need internet access. There are also platforms which enables WIFI devices to be controller locally with a software you would download from the internet.Internet Access and WIFI are not the same. You can have internet access without WIFI or WIFI without internet access. Typically internet access comes in through a MODEM be it from Cable, Telephone or Fibre. There also now 4G/LTE Modem which enable connection to the cellular internet service which would be slower and more expensive and then output it through wire.
Your smarthome fundamentally doesn't need WIFI or internet access but you do need a home wired network in any case to be able to access your controller. Adding WIFI or internet later has no impact whatsoever on your Zwave or Zigbee setup.
-
Smart home with no WIFIMost of us use both for flexibility. Zigbee has cheaper devices and some devices only exist on zigbee. Z-wave also has some unique devices. Since you won't have wifi, you probably don't care that Zigbee interferes with Wifi but also microwave ovens, BT and most cordless phones.... Wifi is a very inefficient protocol for RF. Z-wave is the most efficient from an energy consumption and RF emission perspective, closely followed by Zigbee. I avoid wifi smarthome devices myself because they are fundamentally a waste of bandwidth and energy.
-
Controller shift - How do you do it ?I didn't test extroot on the verasecure because I didn't have one to try it on. I think others on the forum did it and reported to work fine. There is nothing about the vera secure which makes it perform better than the plus. The extra core is unused... the vera UI is single threaded. It also does not use the CPU enough for the speed to make a difference. Same for the DRAM. The only benefit is the battery which to me would be more of a problem than benefit since they have limited lifetime and prevent me from easily power cycling the unit.
-
Controller shift - How do you do it ?You must have missed my posts there... It has an extra CPU core indeed but the DRAM is unused by the software and the flash drive was catastrophically partitioned... netting less useable space than the Plus. After they got bought and my posts about the disastrous engineering they noodled around the partition with symlink (which I initiated with a script I provided on the forum too). I later moved on to boot the vera off of a USB SSD. I know about the zwave chip only because I dug into it. It makes no difference in functionality as the bridge mode the plus and edge had were not used by the vera. It makes the zwave firmware different though.
-
Controller shift - How do you do it ?Oh gosh... I need to remember this. I think at one point I found the firmware for the chip and using a serial updater, managed to manually upgrade the chip firmware through SSH. That was a long time ago. I think I published how to do this in the old forum but not sure if it's been deleted. At the moment, I no longer have any veras... Also the Vera secure runs on a different/cheaper chip than the vera plus I had.. Why don't you just let the vera run on the dongle?
-
Controller shift - How do you do it ?Using the vera backup process you would have to go up or remain on the same version. If you backed up your vera which is on 6.01 into a stick in 6.02, you should be able to restore onto another vera with an SDK 6.02 and above. Have you tried that? Upgrading the vera?
To answer your question if you have both your controller with the same node ID, it will cause a mess to your network. In that case I would add the second controller so it takes a different node ID. (I ran vera and zway together this way for several months).
Here is the type of mess it will cause:
Controller1: turn the light one
Light: Ok the light is on
Controller2: Got it... euh What? who told you to?
Controller1: Are you on yet? Timeout, let me ask again. Retry!This will cause the network to be very busy as nodes do not who to report back to or think they already reported and got an ack...
-
Controller shift - How do you do it ?5.33 =5.32 and 5.36=5.37 if I remember correctly. They were just version numbered for Razberry vs UZB.
-
Controller shift - How do you do it ?You should be able to downgrade back... But yeah that's what I feared... Upgrading too far would make it impossible for the vera to restore...
-
Controller shift - How do you do it ?You caught me there. I was probably smarter then than I am now.
My entire system has been working so well that I stopped tinkering or upgrading it save for only occasional additions or optimization of a scene here or there on openLuup. I lost a lot by not practicing.
-
Controller shift - How do you do it ?yep.. that's what I would do.
-
Controller shift - How do you do it ?This is weird... It should be above 6. Not sure what this 4.38 corresponds to. It looks like you need to keep going... Or try it to see if it migrates. You never know.
-
Controller shift - How do you do it ?Before you keep on upgrading, I would recommend to try the vera migration. 29304 is the bootloader I am currently on. So I am not sure what the new bootloader does. It doesn't look like I went down this upgrade path...
-
Controller shift - How do you do it ?Always upgrade bootloader before the firmware. I at times ended in a dead end and ended up having to use the linux tool to upgrades. The Z-way-server firmware upgrader doesn't always offer the "beta" versions which can be a necessary step to another official version. You can see more by inserting an "all" token but I prefer the lower level linux tool...
Note that you may need to go up all the way to do the backup/copy. You just need to get close enough in the SDK version.
-
Controller shift - How do you do it ?Looks like you should be going to 5.26 and then 5.27. These are already 6.xx stack versions though.
-
Controller shift - How do you do it ?Yeah the only way I know of is for me to figure out the spaghetti for you…