Comigo aconteceu o mesmo…
Penso que é resolvido pela v1.0.1. No entanto esta versão dá erro no 2023.8, já sei o que tenho a fazer mas de momento não estou ao computador. Mais tarde resolvo.
Já funciona! Excelente! Muito obrigado!
Bom dia.
Como é que atualizo?
Obrigado
Excelente.
Está resolvido.
Muito obrigado.
Boa tarde pessoal,
preciso aqui de uma dica no código do card.
Atualizei para a ultima versão, omie v1.0.2 e agora não me aparece a media para amanhã, conforme mostro na foto.
Já andei a verificar, não sei se alterei alguma coisa ou não, o cero é que não mostra nada.
type: custom:button-card
styles:
card:
- height: 750px
- width: 385px
- background: transparent
- border: null
- border-radius: 10px
grid:
- position: relative
custom_fields:
spot_d:
- position: absolute
- top: 5%
- left: 17%
amanha:
- position: absolute
- top: 45%
- left: 65%
media_d:
- position: absolute
- top: 45%
- left: 6%
delta:
- position: absolute
- left: 63%
- top: 40%
hourly:
- position: absolute
- top: 65%
- left: '-3%'
custom_fields:
spot_d:
card:
type: custom:button-card
entity: sensor.omie_spot_price_pt
show_units: false
show_icon: false
name: SPOT
label: €/MWh
show_label: true
show_state: true
styles:
card:
- background: transparent
- border-radius: 50%
- aspect-ratio: 1/1
- height: 250px
- border: none
- box-shadow: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return '0px 0px 60px green';
else if (prec >= 140) return '0px 0px 60px #FFFF00';
else if (prec >= 100) return '0px 0px 60px #FFC000';
else if (prec >= 60) return '0px 0px 60px #FA7000';
else return '0px 0px 60px rgb(247,13,26)';
]]]
state:
- padding-top: 40px
- font-size: 36px
name:
- padding-top: 85px
- font-size: 46px
- color: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return 'green';
else if (prec >= 140) return '#FFFF00';
else if (prec >= 100) return '#FFC000';
else if (prec >= 60) return '#FA7000';
else return 'rgb(247,13,26)';
]]]
label:
- font-size: 15px
- padding-top: 0px
amanha:
card:
type: custom:button-card
position: absolute
entity: sensor.omie_spot_price_pt.attributes.today_average
attribute: today_average
label: |
[[[
return states['sensor.omie_spot_price_pt_tomorrow'].attributes_today_average
]]]
show_units: false
show_icon: false
name: Amanhã
show_label: true
show_state: false
styles:
card:
- background: transparent
- border-radius: 50%
- aspect-ratio: 1/1
- height: 100px
- border: none
- box-shadow: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return '0px 0px 10px green';
else if (prec >= 140) return '0px 0px 10px #FFFF00';
else if (prec >= 100) return '0px 0px 10px #FFC000';
else if (prec >= 60) return '0px 0px 10px #FA7000';
else return '0px 0px 10px rgb(247,13,26)';
]]]
- animation: |
[[[
var ajusteam=states['sensor.omie_adjustment_price_pt_tomorrow'].attributes.today_average
if (ajusteam > 0) return 'blink 2s infinite';
else return 'none'
]]]
name:
- padding-bottom: 6px
- padding-right: 2px
- font-size: 18px
- color: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return 'green';
else if (prec >= 140) return '#FFFF00';
else if (prec >= 100) return '#FFC000';
else if (prec >= 60) return '#FA7000';
else return 'rgb(247,13,26)';
]]]
label:
- font-size: 18px
- padding-top: px
- position: absolute
- bottom: 54%
grid:
- position: relative
custom_fields:
unit:
- position: absolute
- top: 73%
- left: 30.5%
- font-size: 11px
custom_fields:
unit: €/MWh
media_d:
card:
type: custom:button-card
position: absolute
entity: sensor.omie_spot_price_pt.attributes.today_average
attribute: today_average
label: |
[[[
return states['sensor.omie_spot_price_pt'].attributes.today_average
]]]
show_units: false
show_icon: false
name: Média Hoje
show_label: true
show_state: false
styles:
card:
- background: transparent
- border-radius: 50%
- aspect-ratio: 1/1
- height: 100px
- border: none
- box-shadow: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return '0px 0px 10px green';
else if (prec >= 140) return '0px 0px 10px #FFFF00';
else if (prec >= 100) return '0px 0px 10px #FFC000';
else if (prec >= 60) return '0px 0px 10px #FA7000';
else return '0px 0px 10px rgb(247,13,26)';
]]]
- animation: |
[[[
var ajuste=states['sensor.omie_adjustment_price_pt'].attributes.today_average
if (ajuste > 0) return 'blink 2s ease-in-out infinite';
else return 'none'
]]]
name:
- padding-bottom: 6px
- font-size: 18px
- color: |
[[[
var prec=states['sensor.omie_spot_price_pt'].state
if (prec >= 180) return 'green';
else if (prec >= 140) return '#FFFF00';
else if (prec >= 100) return '#FFC000';
else if (prec >= 60) return '#FA7000';
else return 'rgb(247,13,26)';
]]]
label:
- font-size: 18px
- padding-top: px
- position: absolute
- bottom: 54%
grid:
- position: relative
custom_fields:
unit:
- position: absolute
- top: 73%
- left: 31%
- font-size: 11px
custom_fields:
unit: €/MWh
delta:
card:
type: custom:button-card
layout: icon_state
entity: sensor.omie_delta
show_name: false
show_state: true
icon: |
[[[
var delta=states['sensor.omie_delta'].state;
if (delta <0) return 'mdi:arrow-down-bold-outline';
if (delta >0) return 'mdi:arrow-up-bold-outline';
else return 'mdi:arrow-right-bold-outline'
]]]
styles:
card:
- border: none
- background: transparent
- width: 90px
state:
- font-size: 14px
icon:
- color: |
[[[
var delta=states['sensor.omie_delta'].state;
if (delta <0) return 'rgb(247,13,26)';
if (delta >0) return 'green';
else return 'orange';
]]]
- aspect-ratio: 1/1
- width: 25px
- padding-bottom: 2px
hourly:
card:
type: custom:apexcharts-card
card_mod:
style: |
ha-card {
width: 400px;
border: none;
background: transparent
}
update_interval: 10m
now:
show: true
span:
end: day
graph_span: 24h
series:
- entity: sensor.omie_spot_price_pt
name: Hourly price
yaxis_id: price
stroke_width: 1
type: column
color: '#FA7000'
group_by:
func: last
duration: 1h
show:
extremas: true
legend_value: true
data_generator: >
return
Object.entries(entity.attributes.today_hours).map(([dateString,
price]) => [ new Date(dateString), price ])
yaxis:
- id: injeção
max: 9
opposite: true
show: true
decimals: 2
apex_config:
forceNiceScale: 'yes'
labels:
show: true
style:
colors: '#ffffff'
fontSize: 10px
offsetX: 0
offsetY: 0
axisBorder:
show: false
color: '#78909C'
- id: price
show: true
decimals: 1
apex_config:
forceNiceScale: 'yes'
labels:
show: true
formatter: |
EVAL:function(value) {
let text = parseFloat(value).toFixed(2);
let result = "€" +text.replace(".", ",");
return result;
}
style:
colors: '#ffffff'
fontSize: 10px
offsetX: 0
offsetY: 0
axisBorder:
show: false
color: '#78909C'
apex_config:
tooltip:
enabled: true
shared: true
followCursor: false
intersect: false
inverseOrder: false
fillSeriesColor: true
theme: false
onDatasetHover:
highlightDataSeries: false
x:
show: false
legend:
show: false
position: top
annotations:
position: back
chart:
height: 250
type: bar
grid:
show: true
strokeDashArray: '0'
borderColor: '#666666'
Onde está entity: sensor.omie_spot_price_pt
penso que é só entity: sensor.omie_spot_price_pt
junto com attribute: today_average
.
Bem, agora ainda ficou pior
Desinstalei e voltei a instalar a integração omie , agora aparecem 4 entidades e antes ainda apareciam 8.
ainda eram restos da versão 0.0.6
Não usas o HACS?
Esse sensor sensor.omie_spot_price_pt_tomorrow
já não existe há bastante tempo, tens antes o atributo tomorrow_average
directamente no sensor.omie_spot_price_pt
. Experimenta clicar no sensor para ver os atributos que estão disponíveis.
Bom dia,
Já está resolvido. Com ajuda do @Thy_Hunter , ficou a funcionar.
@luuuis, sim eu sabia que os sensores tinham mudado, mas por nabice minha, não chegava lá.
Ainda tenho muito que aprender, mas vamos andando devagar.
Obrigado
Boas a todos.
Eu também ainda estava a usar a versão 0.0.6, pois tinha já uma data de template sensors baseados nos sensores anteriores e não me dei ao trabalho…agora fui obrigado a atualizar!
Além disso também tinha um problema no HACS que não me permitia fazer atualizações, já resolvido entretanto, então instalava tudo manualmente.
Mas com esta atualização, não estou a conseguir ultrapassar uma questão:
Antes a lista de preços horários não tinha “datetime” (era [107, 110, 99…]), então eu tinha uma notificação a disparar ao final do dia com os sensores de máximo e mínimo para o dia seguinte.
Este é o caso do máximo
{% set sensor = [
(((((((state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours')|max)+14) *1.15) -12.1)*1.23))/1000)
]
%}
{{ (sensor|max) | round(3) }}
Como os novos sensores têm então a “datetime”, os sensores já não estão a funcionar.
Alguém me consegue ajudar a retirar os valores dos preços e fazer uma lista apenas com esses valores para depois conseguir então extrair o máx e min?
Muito obrigado!!
AL
Basta descartar a chave do dict
, tens aqui um exemplo:
{{ (state_attr('sensor.omie_spot_price_pt', 'today_hours').values()|list) }}
Em vez do list
podes usar logo max
, etc.
Como sempre, resolvido!
Como posso pagar-te um café?
Obrigado!
Bem, talvez tenha festejado cedo de mais.
Para o atributo “tomorrow_hours” dá erro.
TypeError: ‘>’ not supported between instances of ‘NoneType’ and ‘float’ .
Terá certamente a ver com o facto da última hora estar null.
Já tentei retirar essa última hora da lista produzida, mas não consigo.
Passei a notificação para depois das 0h e assim uso o atributo “today_hours”, mas agradeço se me ensinares mais uma.
Obrigado!
AL
Sim é isso, é preciso ignorar esse null
.
{{ state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours').values()|map('float', 0)|max }}
{{ state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours').values()|map('float', 999)|min }}
Perfeito!
Obrigado novamente
AL
Olá a todos,
Podem ajudar-me com a syntaxe para obter o valor da hora x ? - Ex. Valor ás 11H de amanhã
Obrigado
O mais simples é assim.
{{ (state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours').values()|list)[11] }}
O único senão é que nos dias em que muda a hora, duas vezes por ano, vai dar resultado da hora seguinte ou anterior. Para que fim queres sacar o valor de uma hora específica?