ARCHIVED FORUM -- March 2012 to February 2022READ ONLY FORUM
This is the second Archived Forum which was active between 1st March 2012 and 23rd February 2022
For those having the Clock programmed in the Halo, having the months the other way:
if month == 1 then month="Jan"
elseif month==2 then month="Feb"
elseif month==3 then month="Mar"
elseif month==4 then month="Apr"
elseif month==5 then month="May"
elseif month==6 then month="Jun"
elseif month==7 then month="Jul"
elseif month==8 then month="Aug"
elseif month==9 then month="Sep"
elseif month==10 then month="Okt"
elseif month==11 then month="Nov"
else month="Dec"
end
Copy and put it before the first "engine.fire"
to have it verified: To control e.g. a Beosound 9000 with a HALO remote I need both, NL / ML Converter AND BLI or BLGW?Will it work with NL / ML Converter AND the older MLGW?
TWG:to have it verified: To control e.g. a Beosound 9000 with a HALO remote I need both, NL / ML Converter AND BLI or BLGW?Will it work with NL / ML Converter AND the older MLGW?
To control e.g. a Beosound 9000 with a HALO remote I need both, NL / ML Converter AND BLI or BLGW?Will it work with NL / ML Converter AND the older MLGW?
BLGW won't do nor does the MLGW.
Carolpa:true, but I (mis)read your post that way. But maybe just a concept for Khimo to think about: BLI settings trigger: Event: Halo button, Command: IF icon (or other trigger) = lights THEN Lua program to dim "lights" + after 10s change the icon to "rgb color" ELSE Lua program to change colors + after 10s change the icon to "lights" Would this work?
Carolpa: TWG:to have it verified: To control e.g. a Beosound 9000 with a HALO remote I need both, NL / ML Converter AND BLI or BLGW?Will it work with NL / ML Converter AND the older MLGW?You need a NL/ML converter AND a BLI. BLGW won't do nor does the MLGW.
Thank you.
double post, please delete.
BLI program to use one button on the Halo remote to toggle between CD1 to CD6 of a BLC connected BS9000.
-. Beolink converter NL/ML setup as ASlave (BS9000 is sole ML device connected).
-. CD is set to be visible in NL .
Start with, goto “Virtual Resources”:
Define a “Virtual Resource” Integer, named as “Number”. Place this resource in the area/zone of your Halo remote.
Goto “Interfaces”, “B&0 Halo remotes”:
Choose your Halo and program a Halo button as shown below.
Goto “Macros”:
Make an “Event” : Halo_Area/Halo_Zone/Halo remote/Your_Halo/
BUTTON_RELEASED?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx
with the correct button
Copy the lines below in the field “Execute the following lua code”
function(event, engine)
local numbr_query = engine.query("Halo_Area/Halo_Zone/VARIABLE/Number")
local numbr = numbr_query[1].get_number("VALUE")
if numbr==nil then
numbr=0
elseif numbr>5 then
if numbr==0 then
cdnumber=1
engine.fire("Halo_Area/Halo_Zone/Number/SET?VALUE="..tostring(cdnumber))
elseif numbr==1 then
cdnumber=2
elseif numbr==2 then
cdnumber=3
elseif numbr==3 then
cdnumber=4
elseif numbr==4 then
cdnumber=5
else
cdnumber=6
engine.fire("Halo_Area/Halo_Zone/VARIABLE/Number/SET?VALUE=0")
--set text Halo button
engine.fire("Halo_Area/Halo_Zone//Halo remote/your_Beoremote_ Halo_name/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT=".."cd"..tostring(cdnumber))
--play cd1-6 on all av renderers in this aera / zone /
engine.fire("Halo_Area/Halo_Zone/AV renderer/*/Select source?Connector=&Origin=<BL_NL/ML_converter_IDnumber>&Source Type=CD")
--select cd number
engine.fire("$Area/$Zone/AV renderer/<Name_of_ BL_NL/ML_converter >/Send digit?Digit="..tostring(cdnumber))
--set wheel to number of cd
engine.fire("Halo_area/Halo_zone/Halo remote/your_Beoremote_ Halo_name/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810363&VALUE="..tostring(math.floor(cdnumber*100/6)))
added remarks to explain + setting of the button wheel
Pictures of the result on the next post
A loop, every time you release the button the next cd is chosen. After cd6 it restarts with cd1, etc.
note: where it start depends on the latest value set in the program
a question to the Khimo team / forum members:
I want to use among other, for example _WindDirection or _Cloudiness of the Open Weather source.
I get stuck by the Error about the type (monitored in Tools/Monitor) . If you look at the Error it says for example that I must use "double" instead of "integer".
So I'm using "double". But then it get stuck because of the NIL "value".
And yes, if one looks at Open Weather to the values for the city set, then some of them should not be / are not NIL (for the moment it doesn't rain, the expectation are, there will come no rain the next three hours, so one could expect the _RainLevel3Hrs has the value NIL. But others should have a value.....).
Another remark: the BLI Github manual doesn't give the possibility of "event get_double" or the engine query get_double"?
Please advice.
To be clear, not all Resource States do have these issues. For example _Temperature just works fine.
Hi Khimo, Is the Honeywell Evohome system (still) supported?
Does anyone have it integrated in their BLI?
Hi Carolpa, you actually pinpointed an issue we had with numbers with a decimal point and the get_number function (lua has no integer type, the only numeric type is the "number" type which represents real (double-precision floating-point) numbers). We have already fixed it and this week it should be working. Extra tip: remember you can find the weather resource's states in the Resource States window (to see if they are empty/nil).
SirPump, regarding HoneyWell, it isn't supported at the moment, but we have been receiving many requests for it and I believe there may be news on this front soon ;)
Just for the fun. Another example of using one Button double. This time Weather and Clock:
Weather shows: temperature [Celcius], rain [mm] or snow [cm] and winddirection on the Wheel of the button (Nord=50%, West=25%, East=75%, etc.).
Clock: time (also on the Button Wheel) and date.
-- make in Resource a Variable "Weer" type Boolean
local clockorweather=engine.query("YourArea/yourZone/VARIABLE/Weer")
local cl_we = clockorweather[1].get_boolean("VALUE")
if cl_we==false then
cl_we=true
engine.fire("YourArea/yourZone/VARIABLE/Weer/SET?VALUE="..tostring(cl_we))
local clock = engine.query("*/*/SYSTEM/Clock")[1]
day = clock.get_number("day")
month = clock.get_number("month")
hour = clock.get_number("hour")
minute = clock.get_number("minute")
if minute < 10 then
minute = "0" .. tostring(minute):gsub("!","")
minute = tostring(minute):gsub("!","")
if month == 1 then mnd="Jan"
elseif month==2 then mnd="Feb"
elseif month==3 then mnd="Mar"
elseif month==4 then mnd="Apr"
elseif month==5 then mnd="May"
elseif month==6 then mnd="Jun"
elseif month==7 then mnd="Jul"
elseif month==8 then mnd="Aug"
elseif month==9 then mnd="Sep"
elseif month==10 then mnd="Okt"
elseif month==11 then mnd="Nov"
else mnd="Dec"
hour = tostring(hour):gsub("!","")
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT="..tostring(hour)..":"..minute)
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_TITLE?BUTTON=497f6eca-6276-4993-bfeb-000000810337&TITLE=Clock")
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_SUBTITLE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&SUBTITLE="..tostring(day).."-"..mnd)
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor(hour*100/24)))
cl_we=false
weather_query = engine.query("YourArea/yourZone/_CURRENT_WEATHER/Oldenzaal")
local rain = weather_query[1].get_boolean("_Rain")
local snow = weather_query[1].get_boolean("_Snow")
local temperature = weather_query[1].get_celsius("_Temperature")
local rainlevel = weather_query[1].get_number("_RainLevel3Hrs")
local snowlevel=weather_query[1].get_number("_SnowLevel3Hrs")
local winddirection = weather_query[1].get_number("_WindDirection")
local subtitle = "Rain"
local neerslag = 0
local sub= "x"
local dim=" mm "
if snowlevel>0 then
neerslag = snowlevel/10
subtitle = "Snow"
dim=" cm "
elseif rainlevel>0 then
neerslag = rainlevel
subtitle = "Rain"
dim=" mm "
sub=tostring(neerslag)..tostring(dim)..tostring(subtitle)
if winddirection<=180 then
winddirection=winddirection+180
winddirection =winddirection - 180
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT="..tostring(temperature).."C")
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_TITLE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TITLE=Weather")
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_SUBTITLE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&SUBTITLE="..sub)
engine.fire("YourArea/yourZone/Halo remote/YourBeoremoteHalo/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor((winddirection)*100/360)))
Chapeau!!!! Great Macro Carolpa! I named it after its creator...."Carolpa Halo Macro"
Eclipse 65V1-32Beosound M5Essence MK2BLI
Seanie_230:@Khimo team Any news on the Tado intergration? Cheers
Any news on the Tado intergration?
Cheers
Hi Seanie,
Sadly we have not heard back from any of the different channels through which we tried to contact Tado, so we'll have to wait for them to publish an official API.
There's a Christmas present to wish for!
Hi Khimo, great first feedback on the EvoHome integration. Patience is a virtue i know :)
Would it be possible to share a preliminary timeline on the integration?
Khimo Support: SirPump, regarding HoneyWell, it isn't supported at the moment, but we have been receiving many requests for it and I believe there may be news on this front soon ;)
Hi Khimo, I also use Evohome (EU) so having this on my BLGW would be fantastic, so keeping my fingers crossed it'll be available on the older BLGW!
Hi SirPump and ebnrob,
I have some good news and some bad news to share with you guys: The good is that I can confirm that the Honeywell driver will be out this month! The bad (for ebnrob) is that because of the tools we are using for development, it will not be available on the BLGW :(
Hi Khime, That is a wonderful outlook for the BLI out there. With thanks.
With the BLI, is it possible to change speaker settings such as listening mode, loudness etc? Idea would be to have an automation to have specific settings for example depending on time of the day.
You can easy change Speaker groups due to time of day, or Or what other inputs you want to use :)
CTR: You can easy change Speaker groups due to time of day, or Or what other inputs you want to use :)
But can you change sound settings of an individual speaker. For example, in the morning I want to listen to the news from 7-8 am on an A9 and have the listening mode set to "Speech" and loudness turned off. At other times, when listening to music I want to have it at "Optimal" and loudness on.
To answer my own question, I managed to do this with the Shortcuts app on iOS, so it should be possible via BLI as well I guess.
To turn of the Loudness for example, you make a PUT request to http://SPEAKER_IP:8080/BeoZone/Zone/Sound/Adjustment/ with the following content:
{"adjustment":{"treble":0,"bass":0,"loudness":false}}
I could not find a description of the API, but you can simply do the action in the B&O app and catch and replicate the request. For beosonic you can do the same, but the request is a bit more complicated.
For Mozart products the API is different, the URL would be http://SPEAKR_IP/api/v1/sound/settings/adjustments/loudness and the content {"value":false}
Hey Khimo.
It could be cool, if you could use the BLI to choose which product Beoremote Halo is associated with.
So e.g. at 8am it controls my Beoplay M5 and from 6pm, it controls my Beovision. Is this possible?
Hi CTR,
We agree! It's a nice idea. At the moment this is not possible and it's not a simple change regarding the integration with Halo, so we'll keep it in the back of our mind and hopefully the opportunity to add this type of behavior arises soon
Happy holidays everyone!
Can you tell what "Favorites Lists" can be used for under the Interfaces tab ??
Could it be cool to get logos on his Halo for example. 🙂
I just can not find anything on this topic on your Github
Happy holidays to the Team
The "Favourites Lists" is used for selecting channels on B&O TVs. An equivelent behaviour on the Halo is not currently available, but we'll think about how this could be done ;)
The Lua program below is made to learn to use the Wheel and builds on an example of Khimo.
It does the same as the earlier example with using one button to switch between CD's on the BS9000, BLC connected. But now the CD's are chosen by turning the wheel, confirmed by pressing the button.
Carolpa: BLI program to use one button on the Halo remote to toggle between CD1 to CD6 of a BLC connected BS9000. -. Beolink converter NL/ML setup as ASlave (BS9000 is sole ML device connected). -. CD is set to be visible in NL . Start with, goto “Virtual Resources”: Define a “Virtual Resource” Integer, named as “No”. Place this resource in the area/zone of your Halo remote. Define a “Virtual Resource” Boolean, named as “Fired”. Place this resource in the area/zone of your Halo remote. Goto “Interfaces”, “B&0 Halo remotes”: Choose your Halo and program a Halo button as shown below. Goto “Macros”: Make two “Events” : Halo_Area/Halo_Zone/Halo remote/Your_Halo/WHEEL_TURNED?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx Halo_Area/Halo_Zone/Halo remote/Your_Halo/BUTTON_RELEASED?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx with the correct button Copy the lines below in the field “Execute the following lua code” function(event, engine) local fired_query = engine.query("Your_Area/Your_Zone/VARIABLE/Fired") local fired = fired_query[1].get_boolean("VALUE") local cdnummer local direction local nr_query = engine.query("Your_Area/Your_Zone/VARIABLE/No") local nr = nr_query[1].get_number("VALUE") if nr==nil then nr=1 end if not fired then engine.fire("Your_Area/Your_Zone/VARIABLE/Fired/SET?VALUE=true") if event.parameters()["OFFSET"] then if tonumber(event.parameters()["OFFSET"])>=1 then direction= true else direction=false end if direction then nr = nr + 1 if nr==7 then nr=1 end cdnumber = nr engine.fire("Your_Area/Your_Zone/VARIABLE/No/SET?VALUE="..tostring(cdnumber)) else nr = nr - 1 if nr==0 then nr=6 end end cdnumber = nr engine.fire("Your_Area/Your_Zone/VARIABLE/No/SET?VALUE="..tostring(cdnumber)) engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT=".."cd"..tostring(cdnumber)) engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor(cdnumber*100/6))) else engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT=".."cd"..tostring(nr)) engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor(nr*100/6))) engine.fire("Your_Area/Your_Zone/AV renderer/*/Select source?Connector=&Origin=BLC_id&Source Type=CD") engine.fire("*/*/AV renderer/BS9000 BLC/Send digit?Digit="..tostring(nr)) end end engine.fire("Your_Area/Your_Zone/VARIABLE/Fired/SET?VALUE=false") end
Define a “Virtual Resource” Integer, named as “No”. Place this resource in the area/zone of your Halo remote.
Define a “Virtual Resource” Boolean, named as “Fired”. Place this resource in the area/zone of your Halo remote.
Make two “Events” :
Halo_Area/Halo_Zone/Halo remote/Your_Halo/WHEEL_TURNED?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx
Halo_Area/Halo_Zone/Halo remote/Your_Halo/BUTTON_RELEASED?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx
local fired_query = engine.query("Your_Area/Your_Zone/VARIABLE/Fired")
local fired = fired_query[1].get_boolean("VALUE")
local cdnummer
local direction
local nr_query = engine.query("Your_Area/Your_Zone/VARIABLE/No")
local nr = nr_query[1].get_number("VALUE")
if nr==nil then
nr=1
if not fired then
engine.fire("Your_Area/Your_Zone/VARIABLE/Fired/SET?VALUE=true")
if event.parameters()["OFFSET"] then
if tonumber(event.parameters()["OFFSET"])>=1 then
direction= true
direction=false
if direction then
nr = nr + 1
if nr==7 then
cdnumber = nr
engine.fire("Your_Area/Your_Zone/VARIABLE/No/SET?VALUE="..tostring(cdnumber))
nr = nr - 1
if nr==0 then
nr=6
engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT=".."cd"..tostring(cdnumber))
engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor(cdnumber*100/6)))
engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_TEXT?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&TEXT=".."cd"..tostring(nr))
engine.fire("Your_Area/Your_Zone/Halo remote/Beoremote Halo Your_Zone/SET_WHEEL_VALUE?BUTTON=497f6eca-6276-4993-bfeb-000000810xxx&VALUE="..tostring(math.floor(nr*100/6)))
engine.fire("Your_Area/Your_Zone/AV renderer/*/Select source?Connector=&Origin=BLC_id&Source Type=CD")
engine.fire("*/*/AV renderer/BS9000 BLC/Send digit?Digit="..tostring(nr))
engine.fire("Your_Area/Your_Zone/VARIABLE/Fired/SET?VALUE=false")
Hello to all,
I have posted many times my experience with the khimo team and still I feel the need to say that khimo's support is beyond any support I have ever had, especially if you think that they are on the other side and hemisphare of the planet. I sent an email with an issue I had and within 3-4 working days it was solved. All it took it was a google meeting of 30 minutes and the guys came back with the issue solved.
For once more thank you you are the GREATEST!
Tassos: Hello to all, I have posted many times my experience with the khimo team and still I feel the need to say that khimo's support is beyond any support I have ever had, especially if you think that they are on the other side and hemisphare of the planet. I sent an email with an issue I had and within 3-4 working days it was solved. All it took it was a google meeting of 30 minutes and the guys came back with the issue solved. For once more thank you you are the GREATEST!
I second that, I had a problem when I bought my Bli that it would disappear off my network or sometimes It would not see my devices.
The team at Khimo logged in with me remotely and diagnosed the problem to be that my router was not forwarding broadcast traffic from ethernet / wifi.
Popped to Argos and bought a small switch and everything was great, the support from Khimo to diagnose this with me was brilliant and all in all within two days it was all fixed and sorted.
Great experience everytime.
Even after setting the second button on a page on the Halo as the default button, I'm still seeing the first button take the position of the center of the screen -- leaving a blank space to the left. It would really be nice to have the page so that there isn't a blank to the left. It's just unsightly and seems odd.
Hi Khimo,
Is it possible to connect a fireplace to the BLi?
Hello people,
I had some free time and thought of some macros for the NUKI locks.
Everytime the TV turn on BLI checks the battery level of my locks. If any of them is less than 40% a message appears on the screen to check the battery of the lock/locks that have less then 40% battery.
Everytime that my Halo goes active BLI checks the battery level of my locks. If any of them is less than 40% a notification appears to check the battery of the lock/locks that have less than 40% battery.
I have created two buttons on my Halo each controlling a lock. When you tap on the button it tells you if the lock is locked or unlocked by posting the corresponding message as a subtitle. If you turn the wheel rightwards (in my country turning the key rightwards locks the lock) then it locks. If you turn leftwards it unlocks.
In case you need the code I can post it.
An idea I am experimenting is to use the Halo as an alarm clock with snooze function. An easy way to do so is to create an alarm schedule in a product, let's say a beoplay v1, and create a macro which will be executed everytime the Halo goes active. The macro would consist of a pause command or mute command sent to the beoplay v1 and a play command after, let's say, nine minutes. This would be the snooze function. In order to stop the alarm you should turn on the bathroom lights, or create a button that would stop the alarm. ANy suggestions would be more than welcome.
SirPump, I am sure that it could be done. One way it could be to use FIBARO smart implant to put the fireplace on/off. But I am sure any other relay kind of device can do the job.
SirPump:Hi Khimo, Is it possible to connect a fireplace to the BLi?
Khimo-
There are some stability issues that need to be looked into regarding the BLI and Halo remotes. The BLI keeps loosing its connection with the Halos and needs to be power-cycled to regain the connection. I've reserved static IP addresses for the BLI and the Halos, yet this problem persists. Also, it would be nice to have a reboot option in the BLI configuration interface.
beojeff:Khimo- There are some stability issues that need to be looked into regarding the BLI and Halo remotes. The BLI keeps loosing its connection with the Halos and needs to be power-cycled to regain the connection. I've reserved static IP addresses for the BLI and the Halos, yet this problem persists. Also, it would be nice to have a reboot option in the BLI configuration interface.