Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • infrastruktur/ansible-warpzone
  • specki/ansible-warpzone
2 results
Show changes
Showing
with 354 additions and 57 deletions
......@@ -15,6 +15,14 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status
payload: "CLOSED"
then:
- switch.turn_off: relay
- topic: warpzone/door/status_once
payload: "OPEN"
then:
- switch.turn_on: relay
status_led:
pin:
......
......@@ -3,7 +3,7 @@
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.esp01_1m.inc.yaml" %}
comment: Halogen Lounge
comment: frei
{% include "/includes/common.inc.yaml" %}
on_message:
......@@ -15,6 +15,10 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status
payload: "CLOSED"
then:
- switch.turn_off: relay
status_led:
pin:
......
......@@ -15,6 +15,10 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status
payload: "CLOSED"
then:
- switch.turn_off: relay
substitutions:
plug_name: {{ devicename }}
......@@ -66,6 +70,13 @@ sensor:
id: "${plug_name}_Wattage"
change_mode_every: 8
update_interval: 10s
- platform: total_daily_energy
name: ${plug_name}_Energy
power_id: "${plug_name}_Wattage"
# Enable time for energy monitoring
time:
- platform: sntp
output:
# Relay state led
......
......@@ -15,6 +15,10 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status
payload: "CLOSED"
then:
- switch.turn_off: relay
substitutions:
plug_name: {{ devicename }}
......@@ -66,6 +70,13 @@ sensor:
id: "${plug_name}_Wattage"
change_mode_every: 8
update_interval: 10s
- platform: total_daily_energy
name: ${plug_name}_Energy
power_id: "${plug_name}_Wattage"
# Enable time for energy monitoring
time:
- platform: sntp
output:
# Relay state led
......
......@@ -3,7 +3,7 @@
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.esp01_1m.inc.yaml" %}
comment: Bullhorn Kuhhorn Muuuuh!
comment: Starroof Lounge
{% include "/includes/common.inc.yaml" %}
on_message:
......@@ -15,6 +15,14 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status
payload: "CLOSED"
then:
- switch.turn_off: relay
- topic: warpzone/door/status_once
payload: "OPEN"
then:
- switch.turn_on: relay
substitutions:
plug_name: {{ devicename }}
......@@ -66,7 +74,14 @@ sensor:
id: "${plug_name}_Wattage"
change_mode_every: 8
update_interval: 10s
- platform: total_daily_energy
name: ${plug_name}_Energy
power_id: "${plug_name}_Wattage"
# Enable time for energy monitoring
time:
- platform: sntp
output:
# Relay state led
- platform: esp8266_pwm
......
......@@ -3,7 +3,7 @@
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.esp01_1m.inc.yaml" %}
comment: 3D Drucker Prusanet
comment: WLED Vorhang
{% include "/includes/common.inc.yaml" %}
on_message:
......@@ -15,6 +15,10 @@
payload: "OFF"
then:
- switch.turn_off: relay
- topic: warpzone/door/status_once
payload: "OPEN"
then:
- switch.turn_on: relay
substitutions:
plug_name: {{ devicename }}
......@@ -66,6 +70,13 @@ sensor:
id: "${plug_name}_Wattage"
change_mode_every: 8
update_interval: 10s
- platform: total_daily_energy
name: ${plug_name}_Energy
power_id: "${plug_name}_Wattage"
# Enable time for energy monitoring
time:
- platform: sntp
output:
# Relay state led
......
......@@ -135,7 +135,7 @@ climate:
id: pid_heater
name: "PID Heater Controller"
sensor: pot_sensor
default_target_temperature: 240
default_target_temperature: 220
heat_output: pot_heater
control_parameters:
kp: 0.09549
......@@ -168,7 +168,7 @@ sensor:
- platform: pid
name: "PID HEAT Result"
type: HEAT
- platform: bme280
- platform: bme280_i2c
temperature:
name: "Temp"
oversampling: 16x
......@@ -339,7 +339,7 @@ color:
blue: 0%
display:
- platform: ili9341
- platform: ili9xxx
model: TFT 2.4
spi_id: spi_display
cs_pin: GPIO5
......@@ -349,23 +349,23 @@ display:
pages:
- id: page1
lambda: |-
it.printf(160,120,id(text),TextAlign::CENTER,"Booting");
it.printf(160,120,id(text_small),TextAlign::CENTER,"Booting");
- id: page3
lambda: |-
it.printf(160,120,id(temp),TextAlign::CENTER,"%.0f°C",id(pid_heater).current_temperature);
if ((id(pid_heater).action) == 0) {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: OFF");
it.printf(0,10,id(text_small),TextAlign::TOP_LEFT,"PID: OFF");
}
else if ((id(pid_heater).action) == 3) {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: HEATING");
it.printf(0,10,id(text_small),TextAlign::TOP_LEFT,"PID: HEATING");
}
else if ((id(pid_heater).action) == 4) {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: IDLE");
it.printf(0,10,id(text_small),TextAlign::TOP_LEFT,"PID: IDLE");
}
else {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: ERROR %d",id(pid_heater).action);
it.printf(0,10,id(text_small),TextAlign::TOP_LEFT,"PID: ERROR %d",id(pid_heater).action);
};
it.printf(0,230,id(text),TextAlign::BOTTOM_LEFT,"Target: %.1f°C",id(pid_heater).target_temperature);
it.printf(0,230,id(text_small),TextAlign::BOTTOM_LEFT,"Target: %.1f°C",id(pid_heater).target_temperature);
time:
- platform: sntp
......
{% set devicename = "esphome_power" %}
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.esp32dev.inc.yaml" %}
{% include "/includes/common.inc.yaml" %}
uart:
id: modbus_uart
tx_pin: 18
rx_pin: 19
baud_rate: 38400
stop_bits: 1
modbus:
send_wait_time: 500ms
uart_id: modbus_uart
id: modbus_sdm
modbus_controller:
- id: sdm630m
address: 0x01
modbus_id: modbus_sdm
update_interval: 20s
sensor:
- platform: sdm_meter
phase_a:
current:
name: "Phase 1 Current"
voltage:
name: "Phase 1 Voltage"
active_power:
name: "Phase 1 Power"
power_factor:
name: "Phase 1 Power Factor"
apparent_power:
name: "Phase 1 Apparent Power"
reactive_power:
name: "Phase 1 Reactive Power"
phase_angle:
name: "Phase 1 Phase Angle"
phase_b:
current:
name: "Phase 2 Current"
voltage:
name: "Phase 2 Voltage"
active_power:
name: "Phase 2 Power"
power_factor:
name: "Phase 2 Power Factor"
apparent_power:
name: "Phase 2 Apparent Power"
reactive_power:
name: "Phase 2 Reactive Power"
phase_angle:
name: "Phase 2 Phase Angle"
phase_c:
current:
name: "Phase 3 Current"
voltage:
name: "Phase 3 Voltage"
active_power:
name: "Phase 3 Power"
power_factor:
name: "Phase 3 Power Factor"
apparent_power:
name: "Phase 3 Apparent Power"
reactive_power:
name: "Phase 3 Reactive Power"
phase_angle:
name: "Phase 3 Phase Angle"
frequency:
name: "Frequency"
total_power:
name: "Total Power"
import_active_energy:
name: "Import Active Energy"
id: import_energy
export_active_energy:
name: "Export Active Energy"
id: export_energy
import_reactive_energy:
name: "Import Reactive Energy"
export_reactive_energy:
name: "Export Reactive Energy"
update_interval: 20s
- platform: template
name: "Net Consumption Energy"
accuracy_decimals: 2
update_interval: 20s
unit_of_measurement: 'kWh'
state_class: total
lambda: return id(import_energy).state - id(export_energy).state;
binary_sensor:
- platform: status
name: "SDM630 Status"
{% set devicename = "esphome_sceneswitches" %}
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.d1_mini.inc.yaml" %}
comment: Die Box zum einstellen unterschiedlicher Lichtszenen
{% include "/includes/common.inc.yaml" %}
binary_sensor:
- platform: gpio
pin:
number: GPIO5
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 1"
- platform: gpio
pin:
number: GPIO12
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 2"
- platform: gpio
pin:
number: GPIO13
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 3"
- platform: gpio
pin:
number: GPIO2
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 4"
- platform: gpio
pin:
number: GPIO0
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 5"
- platform: gpio
pin:
number: GPIO4
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 10ms
name: "Button 6"
{% set devicename = "esphome_status" %}
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.d1_mini.inc.yaml" %}
{% include "/includes/board.esp32dev.inc.yaml" %}
{% include "/includes/common.inc.yaml" %}
sensor:
# Das pulse_meter liefert uns die Frequenz der Impulse pro Minute am GPIO2 zu Gnd.
# Das Eltako Strommessgerät besitzt zwei potentialfreie S0 - Impulsausgänge.
# Diese werden durch einen Optokoppler jede 0.00125kWh (800 Impulse / kWh) für ca. 30ms zueinander leitend.
# Hier schließen wir an den einen Kontakt GPIO2 und an den anderen Gnd an.
- platform: pulse_meter
pin:
number: GPIO13
mode:
input: true
pullup: true
unit_of_measurement: 'kW'
name: 'Stromverbrauch'
# Herausfilterung von fehlerhaften Impulsen < 20ms
internal_filter: 20ms
# Genauigkeit auf 1 Watt
accuracy_decimals: 3
filters:
# (800 Impulse / kWh)^-1 * (60 min / h) * (Impulse / min) = 0.075 kW
- multiply: 0.075
# Totaler Stromverbrauch seitdem der ESP läuft
# Eventuell noch abändern auf Stromverbrauch Heute / Woche / Monat und reset durch time (sntp?)
total:
name: "Strom total"
unit_of_measurement: "kWh"
# Genauigkeit auf 1 Watt
accuracy_decimals: 3
filters:
# (800 Impulse / kWh)^-1 = 0.00125kWh
- multiply: 0.00125
binary_sensor:
- platform: gpio
pin:
number: GPIO12
number: 16
mode:
input: true
pullup: true
inverted: true
name: "warpzone Status"
filters:
- delayed_on_off: 500ms
name: "esphome_status_Hauptschalter"
device_class: presence
{% set devicename = "esphome_switchboard" %}
{% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.d1_mini.inc.yaml" %}
comment: Ist kaputt
{% include "/includes/common.inc.yaml" %}
binary_sensor:
- platform: gpio
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: True
name: "{{ devicename }} Button"
on_press:
-
- platform: status
name: "{{ devicename }} Status"
switch:
- platform: virtual
name: "MQTT Switch Test"
id: "switch1"
payload_off: "OFF"
payload_on: "ON"
retain: true
......@@ -19,7 +19,7 @@ dallas:
# Sensor configs
sensor:
- platform: bme280
- platform: bme280_i2c
temperature:
name: "Temp"
oversampling: 16x
......@@ -79,4 +79,4 @@ sensor:
- sliding_window_moving_average:
window_size: 3
send_every: 3
send_first_at: 3
\ No newline at end of file
send_first_at: 3
version: "3"
services:
app:
image: esphome/esphome:2022.10
image: esphome/esphome:latest
restart: always
volumes:
- "{{ basedir }}/config/:/config"
......
esphome:
name: "{{ devicename }}"
friendly_name: "{{ devicename }}"
esp32:
board: esp32dev
framework:
type: arduino
......@@ -2,4 +2,3 @@
esphome:
name: "{{ devicename }}"
platform: ESP8266
board: d1_mini
......@@ -14,6 +14,7 @@ captive_portal:
# Enable OTA
ota:
- platform: esphome
# Enable logging
logger:
......@@ -25,8 +26,8 @@ logger:
web_server:
# local: true
# Activates prometheus /metrics endpoint
prometheus:
# Activates api for home assistant
api:
# MQTT config
mqtt:
......
......@@ -27,8 +27,8 @@ logger:
web_server:
# local: true
# Activates prometheus /metrics endpoint
prometheus:
# Activates api for home assistant
api:
# MQTT config
mqtt:
......
---
- name: "create folder struct for {{ servicename }}"
ansible.builtin.file:
path: "{{ item }}"
state: "directory"
recurse: yes
owner: 33
group: 33
with_items:
- "{{ basedir }}/audio_files/"
- name: copy config files for {{ servicename }}
ansible.builtin.template:
src: "{{ item }}"
dest: "{{ basedir }}/{{ item }}"
mode: '0755'
with_items:
- docker-compose.yml
register: config_files
- name: "stop {{ servicename }} docker"
community.docker.docker_compose_v2:
project_src: "{{ basedir }}"
state: absent
when: config_files.changed
- name: "start {{ servicename }} docker"
community.docker.docker_compose_v2:
project_src: "{{ basedir }}"
state: present
---
services:
app:
image: gitlab-registry.warpzone.ms/nandxor/fridge-audioserver:latest
restart: always
environment:
PDIG: 1001
PUDI: 1001
volumes:
- "{{ basedir }}/audio_files:/var/www/html/audio"
ports:
- "5000:80"
labels:
- traefik.enable=false
networks:
- default
- web
networks:
web:
external: true
volumes:
audio_files:
<Files *.php>
deny from all