Moin,
Der Light-Manager ist grossartig, aber sind wir ehrlich: Man kann leider nicht alles integrieren (Somfy IO zum Beispiel, Tesla, BMW Connected Drive, Netatmo sensors, Husqvarna Automower, Roomba, ...). Also habe ich IO Broker und Home Assistant verglichen und mich dann für Home Assistant auf einem Raspberry entschieden.
Den Light-Manager habe ich dann über die REST Integration mit dem Home Assistant verbunden:
- Auf Light Manager Seite habe ich für die Fenster Sensoren Marker angelegt
- Für die Switches, die ich im Home Assistant aufrufen will, jeweils Szenen definiert
Für das Auslesen von weather.json und params.json war die Anleitung hier https://www.jbmedia.de/forum/viewtopic.php?f=24&t=1361 sehr hilfreich - ich musste nur noch das PHP Beispiel in Python abbilden und in configuration.yaml die REST Sensoren anlegen.
Falls jemand das gleiche vorhat, hier ein Auszug aus configuration.yaml für
- Temperatur und Feuchtigkeitssensor auslesen
- Status der Fensteröffner auslesen
- Switch um einen Fan ein und aus zu schalten
Das lässt sich noch optimieren: Im Moment lese ich den Status jedes Markers einzeln aus und rufe dazu jedes mal params.json auf - besser wäre natürlich, den Light Manager nur einmal zu belästigen und params.json zu öffnen, "marker state" als ganzen String zu lesen und dann per Template zu zerlegen und den einzelnen Binary Sensors zuzuweisen.
Genauso auch beim Auslesen von weather.json: Sollte einmal passieren und für jeden Sensor einzeln.
Aber ich hab gerade erst mit Python angefangen, ich war erst mal froh, dass es überhaupt so schnell geklappt hat. Optimieren kommt als nächstes... Vielleicht hat ja jemand einen Tip für mich...
# REST sensors
sensor:
# JB Media Light Manager temperature sensures
- platform: rest
name: Living_Room_Climate
json_attributes_path: "$.channel6"
json_attributes:
- temperature
- humidity
resource: http://192.x.y.z/weather.json
value_template: '{{ value_json.name }}'
- platform: template
sensors:
living_room_temperature:
value_template: '{{ state_attr("sensor.living_room_climate", "temperature") }}'
device_class: temperature
unit_of_measurement: '°C'
living_room_humidity:
value_template: '{{ state_attr("sensor.living_room_climate", "humidity") }}'
device_class: humidity
unit_of_measurement: '%'
binary_sensor:
# JBMedia Light Manager door and window sensors
- platform: rest
resource: http://192.x.y.z/params.json
method: GET
name: Terrace Door Side
device_class: door
value_template: '{{ value_json["marker state"][0] }}'
- platform: rest
resource: http://192.x.y.z/params.json
method: GET
name: Terrace Door Back
device_class: door
value_template: '{{ value_json["marker state"][1] }}'
# REST commands to be used as services
rest_command:
livingroom_fan_1:
url: 'http://192.x.y.z/control?key=1'
method: POST
livingroom_fan_2:
url: 'http://192.y.y.z/control?key=2'
method: POST
livingroom_fan_3:
url: 'http://192.y.y.z/control?key=3'
method: POST
livingroom_fan_off:
url: 'http://192.x.y.z/control?key=4'
method: POST
Der Light-Manager ist grossartig, aber sind wir ehrlich: Man kann leider nicht alles integrieren (Somfy IO zum Beispiel, Tesla, BMW Connected Drive, Netatmo sensors, Husqvarna Automower, Roomba, ...). Also habe ich IO Broker und Home Assistant verglichen und mich dann für Home Assistant auf einem Raspberry entschieden.
Den Light-Manager habe ich dann über die REST Integration mit dem Home Assistant verbunden:
- Auf Light Manager Seite habe ich für die Fenster Sensoren Marker angelegt
- Für die Switches, die ich im Home Assistant aufrufen will, jeweils Szenen definiert
Für das Auslesen von weather.json und params.json war die Anleitung hier https://www.jbmedia.de/forum/viewtopic.php?f=24&t=1361 sehr hilfreich - ich musste nur noch das PHP Beispiel in Python abbilden und in configuration.yaml die REST Sensoren anlegen.
Falls jemand das gleiche vorhat, hier ein Auszug aus configuration.yaml für
- Temperatur und Feuchtigkeitssensor auslesen
- Status der Fensteröffner auslesen
- Switch um einen Fan ein und aus zu schalten
Das lässt sich noch optimieren: Im Moment lese ich den Status jedes Markers einzeln aus und rufe dazu jedes mal params.json auf - besser wäre natürlich, den Light Manager nur einmal zu belästigen und params.json zu öffnen, "marker state" als ganzen String zu lesen und dann per Template zu zerlegen und den einzelnen Binary Sensors zuzuweisen.
Genauso auch beim Auslesen von weather.json: Sollte einmal passieren und für jeden Sensor einzeln.
Aber ich hab gerade erst mit Python angefangen, ich war erst mal froh, dass es überhaupt so schnell geklappt hat. Optimieren kommt als nächstes... Vielleicht hat ja jemand einen Tip für mich...
# REST sensors
sensor:
# JB Media Light Manager temperature sensures
- platform: rest
name: Living_Room_Climate
json_attributes_path: "$.channel6"
json_attributes:
- temperature
- humidity
resource: http://192.x.y.z/weather.json
value_template: '{{ value_json.name }}'
- platform: template
sensors:
living_room_temperature:
value_template: '{{ state_attr("sensor.living_room_climate", "temperature") }}'
device_class: temperature
unit_of_measurement: '°C'
living_room_humidity:
value_template: '{{ state_attr("sensor.living_room_climate", "humidity") }}'
device_class: humidity
unit_of_measurement: '%'
binary_sensor:
# JBMedia Light Manager door and window sensors
- platform: rest
resource: http://192.x.y.z/params.json
method: GET
name: Terrace Door Side
device_class: door
value_template: '{{ value_json["marker state"][0] }}'
- platform: rest
resource: http://192.x.y.z/params.json
method: GET
name: Terrace Door Back
device_class: door
value_template: '{{ value_json["marker state"][1] }}'
# REST commands to be used as services
rest_command:
livingroom_fan_1:
url: 'http://192.x.y.z/control?key=1'
method: POST
livingroom_fan_2:
url: 'http://192.y.y.z/control?key=2'
method: POST
livingroom_fan_3:
url: 'http://192.y.y.z/control?key=3'
method: POST
livingroom_fan_off:
url: 'http://192.x.y.z/control?key=4'
method: POST