Skip to content
Snippets Groups Projects
Commit 484013b0 authored by void's avatar void
Browse files

reorganize mqtt devices for openhab

parent 01049993
No related branches found
No related tags found
No related merge requests found
......@@ -97,3 +97,19 @@ monitoring:
- { ip: "1.1.1.1", name: "Cloudflare" }
- { ip: "8.8.8.8", name: "Google" }
- { ip: "9.9.9.9", name: "Quad9" }
# ESPHome Devices für Openhab und Icinga
esphome_devices:
- { id: "alarm", name: "Alarm", groups: "gHauptraum" }
# - { id: "dach", name: "Dach", groups: "" }
# - { id: "display01", name: "Display01", groups: "gHauptraum" }
# - { id: "display02", name: "Display02", groups: "gHauptraum" }
# - { id: "display03", name: "Display03", groups: "gHauptraum" }
- { id: "feinstaub01", name: "Feinstaub01", groups: "gHauptraum", sensors: [ "feinstaub_2_5" ] }
- { id: "hauptraum", name: "Hauptraum", groups: "gHauptraum", sensors: [ "Temp", "pressure", "humidity" ] }
- { id: "holzwerkstatt", name: "Holzwerkstatt", groups: "gHolzwerkstatt", sensors: [ "Temp", "pressure", "humidity" ] }
- { id: "kamin", name: "Kamin", groups: "gHauptraum", sensors: [ "HeizungVorlauf", "HeizungRuecklauf"] }
- { id: "kuehlschrank", name: "Kühlschrank", groups: "gHauptraum", sensors: [ "Kuehlschrank-Temp" ] }
- { id: "lounge", name: "Lounge", groups: "gLounge", sensors: [ "Temp", "pressure", "humidity" ] }
- { id: "status", name: "Status/Strom", groups: "gHauptraum", sensors: [ "stromverbrauch" ] }
- { id: "vortragsraum", name: "Vortragsraum", groups: "gVortragsraum", sensors: [ "Temp", "pressure", "humidity" ] }
......@@ -115,9 +115,3 @@ wled_devices:
- { id: "rack", groups: "gLounge" }
- { id: "warpcubes", groups: "gLounge" }
mqtt_sensors_temp:
- { id: "hauptraum", name: "Hauptraum", groups: "gHauptraum" }
- { id: "vortragsraum", name: "Vortragsraum", groups: "gVortragsraum" }
mqtt_sensors_feinstaub:
- { id: "feinstaub01", name: "Feinstaub01", groups: "gHauptraum" }
......@@ -3,27 +3,43 @@ Number Werkstatt_Licht "Werkstatt Licht [%.0f (0-225)]" <light> (gHaupt
channel="mqtt:topic:mosquitto:werkstattlicht:level"
}
{% for device in mqtt_sensors_temp %}
{% for device in esphome_devices %}
{% if device.sensors is defined %}
{% for sensor in device.sensors %}
Number MQTT_{{ device.id }}_temp "Sensor {{ device.name }} Temp [%.1f °C]" <temperature> ({{ device.groups }}) ["Measurement","Temperature","CurrentTemperature"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:temp"
{% if sensor == "temp" or sensor == "HeizungVorlauf" or sensor == "HeizungRuecklauf" or sensor == "Kuehlschrank-Temp" %}
Number MQTT_{{ device.id }}_{{ sensor | replace("-","") }} "Sensor {{ device.name }} {{ sensor }} [%.1f °C]" <temperature> ({{ device.groups }}) ["Measurement","Temperature","CurrentTemperature"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:{{ sensor | replace("-","") | lower }}"
}
Number MQTT_{{ device.id }}_pressure "Sensor {{ device.name }} Pressure [%.1f hPa]" <pressure> ({{ device.groups }}) ["Measurement","Pressure"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:pressure"
{% elif sensor == "pressure" %}
Number MQTT_{{ device.id }}_{{ sensor }} "Sensor {{ device.name }} Pressure [%.1f hPa]" <pressure> ({{ device.groups }}) ["Measurement","Pressure"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:{{ sensor }}"
}
Number MQTT_{{ device.id }}_humidity "Sensor {{ device.name }} Humidity [%.1f %%]" <humidity> ({{ device.groups }}) ["Measurement","Humidity","CurrentHumidity"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:humidity"
{% elif sensor == "humidity" %}
Number MQTT_{{ device.id }}_{{ sensor }} "Sensor {{ device.name }} Humidity [%.1f %%]" <humidity> ({{ device.groups }}) ["Measurement","Humidity","CurrentHumidity"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:{{ sensor }}"
}
{% endfor %}
{% elif sensor == "feinstaub_2_5" %}
{% for device in mqtt_sensors_feinstaub %}
Number MQTT_{{ device.id }}_{{ sensor }} "Sensor {{ device.name }} 2.5 PM [%.1f µg/m³]" ({{ device.groups }}) ["Measurement"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:{{ sensor }}"
}
{% elif sensor == "stromverbrauch" %}
Number MQTT_{{ device.id }}_feinstaub_2_5 "Sensor {{ device.name }} 2.5 PM [%.1f µg/m³]" ({{ device.groups }}) ["Measurement"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:feinstaub_2_5"
Number MQTT_{{ device.id }}_{{ sensor }} "Sensor {{ device.name }} kW [%.1f kW]" ({{ device.groups }}) ["Measurement"] {
channel="mqtt:topic:mosquitto:{{ device.id }}:{{ sensor }}"
}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
......@@ -7,26 +7,32 @@ Bridge mqtt:broker:mosquitto [ host="{{ int_ip4 }}", secure=false, enableDiscove
Type number : level "Werkstatt Licht (dali)" [ stateTopic="light/dali", commandTopic="light/dali", postCommand=true, min=0, max=255 ]
}
{% for device in mqtt_sensors_temp %}
{% for device in esphome_devices %}
Thing topic {{ device.id }} "Sensor {{ device.name }}" {
{% if device.sensors is defined %}
Channels:
Type number : temp "Sensor {{ device.name }} Temp" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/temp/state" ]
Type number : pressure "Sensor {{ device.name }} Pressure" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/pressure/state" ]
Type number : humidity "Sensor {{ device.name }} Humidity" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/humidity/state" ]
}
{% for sensor in device.sensors %}
{% endfor %}
{% if sensor == "Temp" or sensor == "HeizungVorlauf" or sensor == "HeizungRuecklauf" or sensor == "Kuehlschrank-Temp" %}
Type number : {{ sensor | replace("-","") | lower }} "Sensor {{ device.name }} {{ sensor }}" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/{{ sensor | lower }}/state" ]
{% elif sensor == "pressure" %}
Type number : {{ sensor }} "Sensor {{ device.name }} Pressure" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/{{ sensor }}/state" ]
{% elif sensor == "humidity" %}
Type number : {{ sensor }} "Sensor {{ device.name }} Humidity" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/{{ sensor }}/state" ]
{% elif sensor == "feinstaub_2_5" %}
Type number : {{ sensor }} "Sensor {{ device.name }} 2.5 PM" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/{{ sensor }}/state" ]
{% elif sensor == "stromverbrauch" %}
Type number : {{ sensor }} "Sensor {{ device.name }} kW" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/{{ sensor }}/state" ]
{% endif %}
{% for device in mqtt_sensors_feinstaub %}
{% endfor %}
{% endif %}
Thing topic {{ device.id }} "Sensor {{ device.name }}" {
Channels:
Type number : feinstaub_2_5 "Sensor {{ device.name }} 2.5 PM" [ stateTopic="ESPHome/esphome_{{ device.id }}/sensor/feinstaub_2_5/state" ]
}
{% endfor %}
}
......
{% for device in mqtt_sensors %}
{% for device in esphome_devices %}
apply Service "mqttsensor-{{ device.id }}-status" {
apply Service "esphome-{{ device.id }}-status" {
import "generic-service"
check_command = "check_mqtt"
vars.mqtt_host = "{{ mqtt.ip }}"
vars.mqtt_topic = "{{ device.id }}/status"
vars.mqtt_topic = "ESPHome/esphome_{{ device.id }}/status"
vars.mqtt_value = "online"
vars.mqtt_operator = "equal"
vars.mqtt_readonly = true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment