This topic can be used for any discussions around the openHAB 5.2 Milestone builds as it has been announced in openHAB 5.2 Milestone Builds.
Hi All
I have just upgraded from OH 5.2.0-SNAPSHOT (openHAB 5.2.0
Build #5067) to OH 5.2.0.M1 and two of my widgets no longer work.
now looks like
and
now looks like
The widgest are defined as:
component: oh-cell
config:
on: true
title: ="SunSynk Summary "
slots:
background:
- component: f7-block
config:
style:
--cell-green: rgba(165,236,176,255)
--cell-red: rgba(255,156,151,255)
--cell-yellow: rgba(254,229,128,255)
height: 100%
margin: 0
padding: 0
position: absolute
width: 100%
- component: f7-block
config:
style:
bottom: 5px
left: 0px
margin: 0
padding: 0
position: absolute
width: 100%
slots:
default:
- component: oh-button
config:
action: variable
actionVariable: visibleSunSynkPop
actionVariableValue: true
popupOpen: .sunSynk-pop
style:
height: 100%
width: 100%
text: OPEN
- component: f7-popup
config:
class: sunSynk-pop
style:
--f7-popup-tablet-height: 720px
--f7-popup-tablet-width: 360px
background-color: rgb(220,220,220)
border-radius: 30px
height: 720px
text-overflow: ellipsis
width: 360px
slots:
default:
- component: f7-block
config:
popupClose: .sunSynk-pop
style:
--f7-popup-tablet-height: 720px
--f7-popup-tablet-width: 360px
background-color: rgb(220,220,220)
border-radius: 30px
height: 720px
margin: 0
padding: 0
text-overflow: ellipsis
width: 360px
visible: =(vars.visibleSunSynkPop) == true
slots:
default:
- component: oh-button
config:
action: variable
actionVariable: visibleSunSynkPop
actionVariableValue: false
clearVariable:
- ZZvisibleSunSynkPop
large: true
popupClose: .modal-in
style:
background: rgb(220,220,220)
color: white
display: flex
height: 30px
left: 5px
position: absolute
top: 5px
width: 30px
z-index: 999
slots:
default:
- component: f7-icon
config:
color: white
f7: clear_fill
style:
color: black
font-size: 20px
margin: auto
- component: Label
config:
style:
font-size: 25px
font-weight: 500
padding-left: 70px
width: 100%
text: SunSynk Summary
- component: f7-block
config:
style:
--f7-popup-tablet-height: 180px
--f7-popup-tablet-width: 326px
background-color: rgba(232,232,232)
border: 1px solid black
border-radius: 10px
height: 180px
left: 17px
margin: 0
padding: 0
position: absolute
width: 326px
slots:
default:
- component: oh-gauge
config:
borderBgColor: rgba(230,240,252,255)
borderColor: rgba(43,208,254,255)
borderWidth: 20
class:
- margin-top
- margin-bottom
item: SunSynk_Load_Grid
labelText: Grid
max: 8800
min: 0
size: 300
style: left:15px
type: semicircle
valueFontSize: 35
valueTextColor: rgba(84,214,138,255)
- component: f7-block
config:
style:
--f7-popup-tablet-height: 320px
--f7-popup-tablet-width: 326px
background-color: rgba(232,232,232)
border: 1px solid black
border-radius: 10px
display: flex
height: 320px
justify-content: space-around
left: 17px
margin: 0
padding: 0
position: absolute
top: 250px
width: 326px
slots:
default:
- component: f7-col
config:
style:
align-items: center
display: flex
flex-direction: column
slots:
default:
- component: f7-block
config:
style:
align-items: center
border-radius: 40px
display: flex
flex-direction: column
height: 80px
justify-content: center
margin: 0
padding: 0
top: 35px
width: 80px
slots:
default:
- component: oh-icon
config:
height: 40px
icon: oh:ss_solar
- component: Label
config:
style:
font-size: 12px
text: =items.SunSynk_MPPT1_House.state
- component: oh-icon
config:
height: 40px
icon: oh:ss_solar
- component: Label
config:
style:
font-size: 12px
text: =items.SunSynk_MPPT2_Garage.state
- component: Label
config:
style:
font-size: 12px
font-weight: 800
text: =items.SunSynk_MPPT_TOTAL.state
- component: f7-block
config:
style:
align-items: center
border-radius: 40px
display: flex
flex-direction: column
height: 80px
justify-content: center
margin: 0
padding: 0
top: 140px
width: 80px
slots:
default:
- component: oh-icon
config:
height: 40px
icon: oh:ss_battery
- component: Label
config:
style:
font-size: 12px
text: =items.SunSynk_Battery_SOC.state + " " + items.SunSynk_Battery_Power.state
- component: f7-col
config:
style:
align-items: center
display: flex
flex-direction: column
flex-grow: 1
slots:
default:
- component: f7-block
config:
style:
align-items: center
display: flex
flex-direction: column
height: 80px
justify-content: center
margin: 0
padding: 0
top: 120px
width: 80px
slots:
default:
- component: oh-icon
config:
height: 70px
icon: oh:ss_inverter
- component: f7-block
config:
style:
display: flex
height: 295px
justify-content: center
margin: 0
padding: 0
top: -49px
width: 100%
slots:
default:
- component: svg
config:
preserveAspectRatio: xMidYMid slice
style:
height: auto
viewBox: 0 0 80 140
xmlns: http://www.w3.org/2000/svg
slots:
default:
- component: path
config:
d: M0,10 H25 A 10 10 45 0 1 35 20 V45
fill: none
id: solarInverter
stroke: =(items.SunSynk_MPPT_TOTAL.state != "0
W")?("orange"):("rgb(220,220,220)")
stroke-width: 2
vector-effect: non-scaling-stroke
- component: g
config:
visible: =(items.SunSynk_MPPT_TOTAL.state != "0 W")?(true):(false)
slots:
default:
- component: circle
config:
fill: orange
r: 3
strokeWidth: 10
vectorEffect: non-scaling-stroke
- component: text
config:
content: Ā»
font-size: 8px
text-anchor: middle
x: 0
y: 2.3
- component: animateTransform
config:
attributeName: transform
attributeType: XML
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_MPPT_TOTAL.state)/1000)))
keyTimes: 0;.33;.66;1
repeatCount: indefinite
type: rotate
values: 0;0;90;90
- component: animateMotion
config:
calcMode: linear
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_MPPT_TOTAL.state)/1000)))
keyPoints: 0;1
keyPointsReverse: 1;0
keyTimes: 0;1
repeatCount: indefinite
slots:
default:
- component: mpath
config:
xlink:href: "#solarInverter"
- component: path
config:
d: M80,10 H55 A 10 10 45 0 0 45 20 V45
fill: none
id: gridInverter
stroke: =(items.SunSynk_Load_Grid.state != "0
W")?("orange"):("rgb(220,220,220)")
stroke-width: 2
vector-effect: non-scaling-stroke
- component: g
config:
visible: =(items.SunSynk_Load_Grid.state != "0 W")?(true):(false)
slots:
default:
- component: circle
config:
fill: orange
r: 3
strokeWidth: 10
vectorEffect: non-scaling-stroke
- component: text
config:
content: Ā»
font-size: 8px
text-anchor: middle
x: 0
y: 2.3
- component: animateTransform
config:
attributeName: transform
attributeType: XML
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Load_Grid.state)/1000)))
keyTimes: 0;.33;.66;1
repeatCount: indefinite
type: rotate
values: =(Number.parseInt(items.SunSynk_Load_Grid.state) >
0)?('-180;-180;-270;-270'):('-90;-90;0;0')
- component: animateMotion
config:
calcMode: linear
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Load_Grid.state)/1000)))
keyPoints: =(Number.parseInt(items.SunSynk_Load_Grid.state) > 0)?('0;1'):('1;0')
keyPointsReverse: 1;0
keyTimes: 0;1
repeatCount: indefinite
slots:
default:
- component: mpath
config:
xlink:href: "#gridInverter"
- component: path
config:
d: M0,115 H25 A 10 10 45 0 0 35 105 V80
fill: none
id: batteryInverter
stroke: =(items.SunSynk_Battery_Power.state != "0
W")?("orange"):("rgb(220,220,220)")
stroke-width: 2
vector-effect: non-scaling-stroke
- component: g
config:
visible: =(items.SunSynk_Battery_Power.state != "0 W")?(true):(false)
slots:
default:
- component: circle
config:
fill: orange
r: 3
strokeWidth: 10
vectorEffect: non-scaling-stroke
- component: text
config:
content: Ā»
font-size: 8px
text-anchor: middle
x: 0
y: 2.3
- component: animateTransform
config:
attributeName: transform
attributeType: XML
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Battery_Power.state)/1000)))
keyTimes: 0;.33;.66;1
repeatCount: indefinite
type: rotate
values: =(Number.parseInt(items.SunSynk_Battery_Power.state) >
0)?('0;0;-90;-90'):('90;90;180;180')
- component: animateMotion
config:
calcMode: linear
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Battery_Power.state)/1000)))
keyPoints: =(Number.parseInt(items.SunSynk_Battery_Power.state) >
0)?('0;1'):('1;0')
keyPointsReverse: 1;0
keyTimes: 0;1
repeatCount: indefinite
slots:
default:
- component: mpath
config:
xlink:href: "#batteryInverter"
- component: path
config:
d: M80,95 H55 A 10 10 45 0 1 45 85 V80
fill: none
id: upsInverter
stroke: =(items.SunSynk_Load_Essential.state != "0
W")?("orange"):("rgb(220,220,220)")
stroke-width: 2
vector-effect: non-scaling-stroke
- component: g
config:
visible: =(items.SunSynk_Load_Essential.state != "0 W")?(true):(false)
slots:
default:
- component: circle
config:
fill: orange
r: 3
strokeWidth: 10
vectorEffect: non-scaling-stroke
- component: text
config:
content: Ā»
font-size: 8px
text-anchor: middle
x: 0
y: 2.3
- component: animateTransform
config:
attributeName: transform
attributeType: XML
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Load_Essential.state)/1000)))
keyTimes: 0;.10;.50;1
repeatCount: indefinite
type: rotate
values: =(Number.parseInt(items.SunSynk_Load_Essential.state) >
0)?('90;90;0;0'):('-180;-180;-90;-90')
- component: animateMotion
config:
calcMode: linear
dur: =Number.parseInt(Math.abs((7-Number.parseFloat(items.SunSynk_Load_Essential.state)/1000)))
keyPoints: =(Number.parseInt(items.SunSynk_Load_Essential.state) >
0)?('1;0'):('0;1')
keyPointsReverse: 1;0
keyTimes: 0;1
repeatCount: indefinite
slots:
default:
- component: mpath
config:
xlink:href: "#upsInverter"
- component: path
config:
d: M80,115 H50 A 10 10 40 0 1 40 105 V80
fill: none
id: homeInverter
stroke: =(Number.parseFloat(items.SunSynk_Load_NonEssential.state) >
0)?("orange"):("rgb(220,220,220)")
stroke-width: 2
vector-effect: non-scaling-stroke
- component: g
config:
visible: =(Number.parseFloat(items.SunSynk_Load_NonEssential.state) >
0)?(true):(false)
slots:
default:
- component: circle
config:
fill: orange
r: 3
strokeWidth: 10
vectorEffect: non-scaling-stroke
- component: text
config:
content: Ā»
font-size: 8px
text-anchor: middle
x: 0
y: 2.3
- component: animateTransform
config:
attributeName: transform
attributeType: XML
dur: =(Number.parseInt(Math.abs((7-(Number.parseFloat(items.SunSynk_Load_NonEssential.state)/1000)))))
keyTimes: 0;.33;.66;1
repeatCount: indefinite
type: rotate
values: =(Number.parseFloat(items.SunSynk_Load_NonEssential.state) >
0)?('90;90;0;0'):('-180;-180;-90;-90')
- component: animateMotion
config:
calcMode: linear
dur: =(Number.parseInt(Math.abs((7-(Number.parseFloat(items.SunSynk_Load_NonEssential.state)/1000)))))
keyPoints: =(Number.parseFloat(items.SunSynk_Load_NonEssential.state) >
0)?('1;0'):('0;1')
keyPointsReverse: 1;0
keyTimes: 0;1
repeatCount: indefinite
slots:
default:
- component: mpath
config:
xlink:href: "#homeInverter"
- component: f7-col
config:
style:
align-items: center
display: flex
flex-direction: column
slots:
default:
- component: f7-block
config:
style:
align-items: center
border-radius: 40px
display: flex
flex-direction: column
height: 80px
justify-content: center
margin: 0
padding: 0
top: 20px
width: 80px
slots:
default:
- component: oh-icon
config:
height: 40px
icon: oh:ss_grid
- component: Label
config:
style:
font-size: 12px
text: =items.SunSynk_Load_Grid.state
- component: f7-block
config:
style:
align-items: center
border-radius: 40px
display: flex
flex-direction: column
height: 80px
justify-content: center
margin: 0
padding: 0
top: 130px
width: 80px
slots:
default:
- component: oh-icon
config:
height: 40px
icon: oh:ss_bolt
- component: Label
config:
style:
font-size: 12px
white-space: nowrap
text: =items.SunSynk_Load_Essential.state
- component: oh-icon
config:
height: 40px
icon: oh:ss_house
- component: Label
config:
style:
font-size: 12px
white-space: nowrap
text: =items.SunSynk_Load_NonEssential.state
- component: f7-block
config:
style:
background-color: rgba(232,232,232)
left: 210px
margin: 0
padding: 0
position: absolute
top: 403px
width: 100px
slots:
default:
- component: Label
config:
style:
font-size: 12px
white-space: nowrap
text: =items.SunSynk_inv_Total_Power_175.state
- component: Label
config:
style:
font-size: 12px
white-space: nowrap
text: =items.SunSynk_inv_Current_L1_164.state
- component: f7-block
config:
style:
--f7-popup-tablet-height: 20px
--f7-popup-tablet-width: 326px
background-color: rgba(232,232,232)
border: 1px solid black
border-radius: 10px
bottom: 15px
height: 20px
left: 17px
margin: 0
padding: 0
position: absolute
width: 326px
slots:
default:
- component: Label
config:
style:
font-size: 12px
font-weight: 700
left: 10px
position: absolute
white-space: nowrap
text: '="MCU: "'
- component: Label
config:
style:
font-size: 12px
left: 45px
position: absolute
white-space: nowrap
text: =items.SunSynk_MCU.state
- component: Label
config:
style:
font-size: 12px
font-weight: 700
left: 95px
position: absolute
white-space: nowrap
text: '="COMM: "'
- component: Label
config:
style:
font-size: 12px
left: 143px
position: absolute
white-space: nowrap
text: =items.SunSynk_COMM.state
- component: Label
config:
style:
font-size: 12px
font-weight: 700
left: 185px
position: absolute
white-space: nowrap
text: '="Last: "'
- component: Label
config:
style:
font-size: 12px
left: 212px
position: absolute
white-space: nowrap
text: =items.SunSynk_FW_LastUpdate.displayState
and
component: oh-cell
config:
title: ="Mains TOTAL Energy "
slots:
background:
- component: f7-block
config:
style:
height: 25px
margin: 0
padding: 0
position: absolute
top: 12px
width: 100%
visible: =(screen.viewAreaWidth >= 1600)
slots:
default:
- component: oh-toggle
config:
item: ShellyEM_MAINS_TotalEnergy_Switch
style:
position: absolute
right: 5px
top: 2px
width: 50px
- component: Label
config:
style:
color: blue
position: absolute
right: 50px
top: 2px
text: Store
- component: f7-block
config:
style:
bottom: 36px
height: 45px
left: 0px
margin: 0
padding: 0
position: absolute
width: 100%
visible: =(screen.viewAreaWidth >= 835)
slots:
default:
- component: Label
config:
style:
color: blue
font-size: 13px
left: 5px
position: absolute
top: 0px
text: '="Was: " + (items.ShellyEM_Mains_TotalEnergy_PreviousMonth.state)'
- component: Label
config:
style:
color: blue
font-size: 13px
position: absolute
right: 5px
top: 0px
text: '= "Now: " + (items.ShellyEM_MAINS_TotalEnergy.state)'
- component: Label
config:
style:
color: blue
font-size: 13px
left: 5px
position: absolute
top: 17px
text: '="Last: " + (items.ShellyEM_MAINS_TotalEnergy_Monthly.state)'
- component: Label
config:
style:
color: blue
font-size: 13px
position: absolute
right: 5px
top: 17px
text: '="This: " +
(Math.round((Math.abs(Number.parseFloat(items.ShellyEM_MAINS_TotalEnergy.state))
-
(Number.parseFloat(items.ShellyEM_Mains_TotalEnergy_PreviousMonth.state)))
*1000) /1000) + " kWh"'
- component: f7-block
config:
bgColor: none
style:
bottom: 5px
left: 0px
margin: 0
padding: 0
position: absolute
width: 100%
slots:
default:
- component: oh-button
config:
action: variable
actionVariable: visibleMonthlyPop
actionVariableValue: true
popupOpen: .month-pop-test
style:
height: 100%
width: 100%
text: OPEN
- component: f7-popup
config:
class: month-pop-test
style:
--f7-popup-tablet-height: 720px
--f7-popup-tablet-width: 360px
background-color: rgb(220,220,220)
border-radius: 30px
height: 720px
text-overflow: ellipsis
width: 360px
slots:
default:
- component: f7-block
config:
style:
--f7-popup-tablet-height: 720px
--f7-popup-tablet-width: 360px
background: rgb(220,220,220)
border-radius: 20px
height: 720px
margin: 0
padding: 0
position: absolute
top: 0px
width: 360px
visible: =(vars.visibleMonthlyPop)==true
slots:
default:
- component: oh-button
config:
action: variable
actionVariable: visibleMonthlyPop
actionVariableValue: false
clearVariable:
- ZZvisibleMonthlyPop
large: true
popupClose: .modal-in
style:
background: rgb(220,220,220)
color: white
display: flex
height: 30px
left: 5px
position: absolute
top: 5px
width: 30px
z-index: 999
slots:
default:
- component: f7-icon
config:
color: white
f7: clear_fill
style:
color: black
font-size: 20px
margin: auto
- component: Label
config:
style:
font-size: 20px
font-weight: 500
padding-left: 35px
width: 100%
z-index: 999
text: Mains Consumption Comparison
- component: f7-block
config:
style:
--f7-popup-tablet-height: 350px
--f7-popup-tablet-width: 360px
--my-chart-menu-size: =(device.desktop)?(1):(.5)
height: 350px
margin: 0
padding: 0
position: absolute
top: 20px
width: 360px
stylesheet: |
.menu {
transform: Scale(var(--my-chart-menu-size));
}
slots:
default:
- component: oh-chart
config:
chartType: month
label: Mains Consumption Comparison
period: M
slots:
dataZoom:
- component: oh-chart-datazoom
config:
show: true
type: inside
grid:
- component: oh-chart-grid
config:
includeLabels: true
top: 90px
legend:
- component: oh-chart-legend
config:
bottom: 5
type: scroll
series:
- component: oh-time-series
config:
gridIndex: 0
item: ShellyEM_MAINS_TotalEnergy
name: Current
type: line
xAxisIndex: 1
yAxisIndex: 0
- component: oh-time-series
config:
gridIndex: 0
item: ShellyEM_MAINS_TotalEnergy
name: Previous
offsetAmount: 1
offsetUnit: month
type: line
xAxisIndex: 0
yAxisIndex: 0
tooltip:
- component: oh-chart-tooltip
config:
confine: true
smartFormatter: true
xAxis:
- component: oh-time-axis
config:
gridIndex: 0
- component: oh-time-axis
config:
gridIndex: 0
verticalAlign: top
yAxis:
- component: oh-value-axis
config:
axisLabel:
align: right
fontSize: 9
hideOverlap: true
inside: false
margin: 5
rotate: 0
show: true
showMaxLabel: false
showMinLabel: false
containLabel: true
gridIndex: 0
max: dataMax
min: dataMin
name: kWh
nameGap: 30
nameLocation: start
nameTextStyle:
align: right
color: black
padding: 6
verticalAlign: top
position: left
- component: f7-block
config:
style:
--f7-popup-tablet-height: 300px
--f7-popup-tablet-width: 326px
background-color: rgba(232,232,232)
border: 1px solid black
border-radius: 10px
height: 300px
left: 17px
margin: 0
padding: 0
position: absolute
top: 360px
width: 326px
slots:
default:
- component: f7-list
config: {}
slots:
default:
- component: oh-toggle-item
config:
color: black
item: ShellyEM_MAINS_TotalEnergy_Switch
style:
--f7-toggle-height: 20px
--f7-toggle-width: 50px
background-color: rgba(232,232,232)
font-size: 13px
title: Store current EM Mains reading
- component: oh-list-item
config:
color: black
style:
background-color: rgba(232,232,232)
font-size: 13px
title: '= "Usage last Month: " +
(items.ShellyEM_MAINS_TotalEnergy_Monthly.state)'
- component: oh-list-item
config:
color: black
style:
background-color: rgba(232,232,232)
font-size: 13px
title: '= "Last Stored: " + (items.ShellyEM_Mains_LastStored.displayState) + " -
" +
dayjs(items["ShellyEM_Mains_LastStored"].state).fromNow()'
- component: oh-list-item
config:
color: black
style:
background-color: rgba(232,232,232)
font-size: 13px
title: '= "Now: " + (items.ShellyEM_MAINS_TotalEnergy.state) + " Was - " +
(items.ShellyEM_Mains_TotalEnergy_PreviousMonth.state)'
- component: oh-list-item
config:
color: black
style:
background-color: rgba(232,232,232)
font-size: 13px
title: '= "Usage this Month: " +
(Math.round((Math.abs(Number.parseFloat(items.ShellyEM_MAINS_TotalEnergy.state))
-
(Number.parseFloat(items.ShellyEM_Mains_TotalEnergy_PreviousMonth.state)))
*1000) /1000) + " kWh"'
Any suggestions would be appreciated.
I was hoping that the Chart issue in the 2nd widget had been fixed (to do with period offset and previoulsy reported)
Any advise would be appreciated.
Mark
I have just upgraded from OH 4.2.0-SNAPSHOT (openHAB 5.2.0
Build #5067) to OH 4.2.0.M1 and two of my widgets no longer work.
I presume you mean 5.2.0-SNAPSHOT and 5.2.0.M1.
It looks like the issue is in the screen.viewAreaWidth calculation used for the visible property. This code was updated a while ago (early December 2025) - was your snapshot used from before then?
Lastly, what type of page is this widget instantiated on? The viewAreaWidth is update when the āpageā changes size, there might be a page in the code we need to include the resize logic.
Yes, sorry about that - corrected in original post.
The SNAPSHOT is more recent than that I am almost 100% sure. Looking at files dates I would say around 4 Janaury 2026.
The oh-cell are called from teh Overview page.
What is weird is that some similar widgets seem to work:
I am not sure what is different about the two that do not work.
After I installed M1 all of my rules did not trigger.
So I went back to 5.1.
How are we to figure out why without any more information? Was there anything logged - what kind of rules, what language, file or managed?
Nothing in the logs, all rules (file and ui), all languages. When i push run in the ui it is working.
It was on my production system so i had to go back and did not have time to investigate further.
Maybe the rule engine did not start?
I also tried to clear cache but it did not help.
The os is armbian.
Do you have M1 installed and your rules are working?
No, not M1 particularly, but I work with the ālatest codeā which is somewhat akin to āthe latest snapshotā, and my rules are firing in my development environment. Also, I donāt think there has been any changes that would interfere with rules triggering lately. But, if itās in fact a general problem and not some āhiccupā with your installation, it needs attention quickly.
Iāve been running openHAB 5.2.0.M1 for a few days and the Add On Store is not showing Community Marketplace bindings.
This has been fixed in the latest snapshots, but Iām afraid it will remain broken in M1. The forum was updated, which broke the parsing of the data extracted from the forum, which means that the parsing in OH had to be modified.
How long should I expect to wait for M2 vs using a snapshot (
)
Milestones are released once a month, usually in the second half of the month. So sometime around March 15th, give or take a week.
Iām a bit surprised as to how little attention this has gotten, all I know is that the fix was merged 4 days ago and backported 2 days ago:
The backporting is to 5.1.x and 4.3.x only I think, but there arenāt really any details available (that Iām aware of). I suggested that it should be backported to 5.0.x as well.
M1 itself cannot be modified, so it will never work. One could in theory release M1.1 or something like that, but I have no idea if that has been considered.
It is possible to get it to work by using only the org.openhab.core.addon.marketplace bundle from a snapshot together with M1, but I guess doing that falls in the āexpertā category. Maybe if somebody figured out the URL to a working version of that bundle and posted here how to replace it, it would be viable for people to do.
Itās either that, run a snapshot, or wait for M2.
Maybe because it was fixed so fast ⦠![]()
āFixedā is one thing, has the fix actually reached the users?
This is a good point. In my view, OH updates and related bug fixes are sometimes to fast and overwhelm most of the users. Also the statement, that SNAPSHOTs might be faulty and unreliable, force many users to stay with what they have, probably OH 4.3. I can understand this very good bcause i hesitated for a long time to leave OH 3.4.5 for an upgrade.
Iām still running 4.2.3 because there have been changes since then that Iām hesitant about (killing of timezones, all the back and forth with Frontail, and of course forcing me to reinstall everything to upgrade to 64-bit OS if I want to use 5.x). If there was less ādeprecationsā and other removal of functionality, I would be quicker to upgrade, but there arenāt, which creates obstacles. I might be the only one that feels this way, but my impression is that Iām not exactly alone in still running 4.x. My 4.2.3 installation will have the marketplace permanently broken now, because it wonāt see a backport.
We donāt do patch releases for previous minor releases, i.e. 5.1.x will not receive further patches. 4.3.x will receive further patches as it is from a different major series.
Probably we can do M2 two weeks earlier, I might propose this to the other maintainers.
I can understand that all major and minor upgraded can be overwhelming, but bug fix/patch release contain no breaking changes, no new features, only bug fixes. They should be no brainers to upgrade to.




