homecontrol-dash: properly update max slider values in callback

This commit is contained in:
Konstantin Koslowski 2019-11-15 11:52:48 +01:00
parent 815bf282f6
commit 5587ac45f6

View file

@ -57,7 +57,7 @@ app.layout = html.Div(children=[
dcc.Graph( dcc.Graph(
id='graph-sensor-values', id='graph-sensor-values',
figure={ figure={
'data': [ {'x': [0], 'y': [0], 'mode': 'markers', 'name': 'None'} ], 'data': [ {'x': [0], 'y': [0], 'mode': 'line', 'name': 'None'} ],
'layout': { 'title': 'initial values' } 'layout': { 'title': 'initial values' }
} }
) )
@ -115,26 +115,23 @@ def update_slider_limit(value):
@app.callback( @app.callback(
[Output('slider-min-txt', 'children'), Output('slider-min', 'max')], Output('slider-min-txt', 'children'),
[Input('slider-min', 'value')]) [Input('slider-min', 'value')])
def update_slider_min(value): def update_slider_min(value):
txt = "From: %s" % (time.strftime("%Y/%m/%d %H:%M", time.localtime(float(value))) if return "From: %s" % (time.strftime("%Y/%m/%d %H:%M", time.localtime(float(value))) if
value > 0 else 0) value > 0 else 0)
t = time.time()
return txt, t
@app.callback( @app.callback(
[Output('slider-max-txt', 'children'), Output('slider-max', 'max')], Output('slider-max-txt', 'children'),
[Input('slider-max', 'value')]) [Input('slider-max', 'value')])
def update_slider_max(value): def update_slider_max(value):
txt = "To: %s" % (time.strftime("%Y/%m/%d %H:%M", time.localtime(float(value)))) return "To: %s" % (time.strftime("%Y/%m/%d %H:%M", time.localtime(float(value))))
t = time.time()
return txt, t
@app.callback( @app.callback(
Output('graph-sensor-values', 'figure'), [Output('graph-sensor-values', 'figure'), Output('slider-min', 'max'),
Output('slider-max', 'max')],
[Input('tabs-select-sensor', 'value'), Input('slider-min', 'value'), [Input('tabs-select-sensor', 'value'), Input('slider-min', 'value'),
Input('slider-max', 'value'), Input('slider-limit', 'value')]) Input('slider-max', 'value'), Input('slider-limit', 'value')])
def update_graph_sensor_values(sensorId, min_ts, max_ts, limit): def update_graph_sensor_values(sensorId, min_ts, max_ts, limit):
@ -149,9 +146,9 @@ def update_graph_sensor_values(sensorId, min_ts, max_ts, limit):
x = [0] x = [0]
y = [0] y = [0]
return { return {
'data': [ {'x': x, 'y': y, 'mode': 'markers', 'name': "%s" % (s)} ], 'data': [ {'x': x, 'y': y, 'mode': 'line', 'name': "%s" % (s)} ],
'layout': { 'title': 'Data for sensor: %s (%d elements)' % (s, len(x)) } 'layout': { 'title': 'Data for sensor: %s (%d elements)' % (s, len(x)) }
} }, time.time(), time.time()
if __name__ == '__main__': if __name__ == '__main__':