diff --git a/playbook-frames.yml b/playbook-frames.yml index c3458d5..3debcc6 100644 --- a/playbook-frames.yml +++ b/playbook-frames.yml @@ -3,3 +3,4 @@ become: yes roles: - msmtp + - hdmi diff --git a/roles/hdmi/defaults/main.yml b/roles/hdmi/defaults/main.yml new file mode 100644 index 0000000..f251507 --- /dev/null +++ b/roles/hdmi/defaults/main.yml @@ -0,0 +1,7 @@ +--- + +# When to automatically turn on the display (every day @ 6am) +hdmi_schedule_display_on: "*-*-* 6:00:00" + +# When to automatically turn off the display (every day @ midnight) +hdmi_schedule_display_off: "*-*-* 00:00:00" diff --git a/roles/hdmi/tasks/main.yml b/roles/hdmi/tasks/main.yml new file mode 100644 index 0000000..d575126 --- /dev/null +++ b/roles/hdmi/tasks/main.yml @@ -0,0 +1,51 @@ +--- + - name: Gather instance facts + setup: + - block: + - name: Generate screen-off.service + template: + src: screen-off.service + dest: "/etc/systemd/system/screen-off.service" + owner: root + group: root + mode: 0644 + tags: + - hdmi-config + - name: Generate screen-off.timer + template: + src: screen-off.timer + dest: "/etc/systemd/system/screen-off.timer" + owner: root + group: root + mode: 0644 + tags: + - hdmi-config + - name: Generate screen-on.service + template: + src: screen-on.service + dest: "/etc/systemd/system/screen-on.service" + owner: root + group: root + mode: 0644 + - name: Generate screen-on.timer + template: + src: screen-on.timer + dest: "/etc/systemd/system/screen-on.timer" + owner: root + group: root + mode: 0644 + + - block: + - name: Refresh systemd + systemd: + daemon_reload: yes + - name: Enable screen-off.timer + systemd: + name: screen-off.timer + state: started + enabled: yes + - name: Enable screen-on.timer + systemd: + name: screen-on.timer + state: started + enabled: yes diff --git a/roles/hdmi/templates/screen-off.service b/roles/hdmi/templates/screen-off.service new file mode 100644 index 0000000..b8ca5b7 --- /dev/null +++ b/roles/hdmi/templates/screen-off.service @@ -0,0 +1,10 @@ +[Unit] +Description=Turn off display + +[Service] +Type=oneshot +ExecStart=/opt/vc/bin/vcgencmd display_power 0 +StandardOutput=journal + +[Install] +WantedBy=multi-user.target diff --git a/roles/hdmi/templates/screen-off.timer b/roles/hdmi/templates/screen-off.timer new file mode 100644 index 0000000..1aef4fa --- /dev/null +++ b/roles/hdmi/templates/screen-off.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Turn off display + +[Timer] +OnCalendar={{ hdmi_schedule_display_off }} +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/roles/hdmi/templates/screen-on.service b/roles/hdmi/templates/screen-on.service new file mode 100644 index 0000000..e45b9f9 --- /dev/null +++ b/roles/hdmi/templates/screen-on.service @@ -0,0 +1,10 @@ +[Unit] +Description=Turn on display + +[Service] +Type=oneshot +ExecStart=/opt/vc/bin/vcgencmd display_power 1 +StandardOutput=journal + +[Install] +WantedBy=multi-user.target diff --git a/roles/hdmi/templates/screen-on.timer b/roles/hdmi/templates/screen-on.timer new file mode 100644 index 0000000..abeef1b --- /dev/null +++ b/roles/hdmi/templates/screen-on.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Turn on display + +[Timer] +OnCalendar={{ hdmi_schedule_display_on }} +Persistent=true + +[Install] +WantedBy=timers.target +EOF