diff options
| author | Luke Hoersten <[email protected]> | 2020-02-09 12:05:37 -0600 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2020-02-09 12:05:37 -0600 |
| commit | 1cb30cc0aa4fda9bf0bac0b41ace862b1db434b8 (patch) | |
| tree | e4b27462ba4b8b249bb5eaac4b4be0006ca0392c /homebridge | |
| parent | 195a4a3fcf65bf47ecb1a0ea2a9fb070c18eb20f (diff) | |
Moved roles to top level
Diffstat (limited to 'homebridge')
| -rw-r--r-- | homebridge/defaults/main.yaml | 24 | ||||
| -rw-r--r-- | homebridge/handlers/main.yaml | 5 | ||||
| -rw-r--r-- | homebridge/meta/main.yaml | 4 | ||||
| -rw-r--r-- | homebridge/tasks/main.yaml | 56 | ||||
| -rw-r--r-- | homebridge/templates/config.json.j2 | 48 | ||||
| -rw-r--r-- | homebridge/templates/homebridge.service.j2 | 16 |
6 files changed, 153 insertions, 0 deletions
diff --git a/homebridge/defaults/main.yaml b/homebridge/defaults/main.yaml new file mode 100644 index 0000000..d7f9b05 --- /dev/null +++ b/homebridge/defaults/main.yaml @@ -0,0 +1,24 @@ +--- + +homebridge_user: "homebridge" +homebridge_dir: "/home/{{homebridge_user}}" +homebridge_restart_sec: "10" + +homebridge_pin: "031-45-154" +homebridge_port: "51900" + +homebridge_apt_packages: + - "libavahi-compat-libdnssd-dev" + - "ffmpeg" + +homebridge_npm_packages: + - "homebridge-camera-ffmpeg" + - "homebridge-roomba-stv" + +homebridge_rtsp_vcodec: "h264_omx" +homebridge_rtsp_debug: "false" +homebridge_rtsp_max_streams: 5 + +homebridge_roomba_auto_refresh: "true" +homebridge_roomba_keep_alive: "true" +homebridge_roomba_cache_TTL: "30" diff --git a/homebridge/handlers/main.yaml b/homebridge/handlers/main.yaml new file mode 100644 index 0000000..e711d82 --- /dev/null +++ b/homebridge/handlers/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: restart homebridge service + systemd: name="homebridge" state="restarted" daemon_reload="yes" + become: yes diff --git a/homebridge/meta/main.yaml b/homebridge/meta/main.yaml new file mode 100644 index 0000000..6116998 --- /dev/null +++ b/homebridge/meta/main.yaml @@ -0,0 +1,4 @@ +--- + +dependencies: + - nodejs diff --git a/homebridge/tasks/main.yaml b/homebridge/tasks/main.yaml new file mode 100644 index 0000000..dff49e7 --- /dev/null +++ b/homebridge/tasks/main.yaml @@ -0,0 +1,56 @@ +--- + +- name: create homebridge user + become: yes + user: + name: "{{homebridge_user}}" + comment: "Homebridge" + shell: "/bin/false" + home: "{{homebridge_dir}}" + groups: "video,spi,i2c,gpio" + move_home: yes + notify: restart homebridge service + +- name: create homebridge directory + become: yes + file: + path: "{{homebridge_dir}}" + state: "directory" + owner: "{{homebridge_user}}" + group: "{{homebridge_user}}" + mode: "0755" + +- name: install homebridge apt deps + become: yes + apt: name="{{homebridge_apt_packages}}" + +- name: install homebridge + become: yes + become_user: "{{homebridge_user}}" + npm: name="homebridge" global="yes" + notify: restart homebridge service + +- name: install platform accessories + become: yes + become_user: "{{homebridge_user}}" + npm: name="{{item}}" global="yes" + notify: restart homebridge service + with_items: "{{homebridge_npm_packages}}" + +- name: configure homebridge + become: yes + template: + src: "config.json.j2" + dest: "{{homebridge_dir}}/config.json" + notify: restart homebridge service + +- name: configure systemd service + become: yes + template: + src: "homebridge.service.j2" + dest: "/lib/systemd/system/homebridge.service" + notify: restart homebridge service + +- name: ensure homebridge is started + become: yes + systemd: name="homebridge.service" enabled="yes" state="started" diff --git a/homebridge/templates/config.json.j2 b/homebridge/templates/config.json.j2 new file mode 100644 index 0000000..5d0a61a --- /dev/null +++ b/homebridge/templates/config.json.j2 @@ -0,0 +1,48 @@ +{ + "bridge": { + "name": "Homebridge", + "username": "{{ansible_default_ipv4.macaddress | upper}}", + "port": {{homebridge_port}}, + "pin": "{{homebridge_pin}}" + }, + + "description": "Homebridge", + + "platforms": [ + + {"platform": "Camera-ffmpeg", + "cameras": [ + + {% for cam in homebridge_rtsp_cams %} + {"name": "{{cam.name}}", "videoConfig": { + "source": "-i {{cam.rtsp_url}}", + "stillImageSource": "-i {{cam.rtsp_url}} -vframes 1 -r 1", + "vcodec": "{{homebridge_rtsp_vcodec}}", + "maxStreams": {{homebridge_rtsp_max_streams}}, + "debug": {{homebridge_rtsp_debug}} + } + {% if not loop.last %} + }, + {% else %} + } + {% endif %} + {% endfor %} + ]} + + ], + + "accessories": [ + { + "accessory": "Roomba", + "name": "Roomba", + "model": "{{homebridge_roomba_model}}", + "blid": "{{homebridge_roomba_blid}}", + "robotpwd": "{{homebridge_roomba_passwd}}", + "ipaddress": "{{homebridge_roomba_ip}}", + "autoRefreshEnabled": {{homebridge_roomba_auto_refresh}}, + "keepAliveEnabled": {{homebridge_roomba_keep_alive}}, + "cacheTTL": {{homebridge_roomba_cache_TTL}} + } + ] + +} diff --git a/homebridge/templates/homebridge.service.j2 b/homebridge/templates/homebridge.service.j2 new file mode 100644 index 0000000..a20ff99 --- /dev/null +++ b/homebridge/templates/homebridge.service.j2 @@ -0,0 +1,16 @@ +# {{ansible_managed}} + +[Unit] +Description=Homebridge + +[Service] +User={{homebridge_user}} +Group={{homebridge_user}} +Restart=always +RestartSec={{homebridge_restart_sec}} + +WorkingDirectory={{homebridge_dir}} +ExecStart=/usr/bin/node /opt/{{nodejs_dir}}/bin/homebridge -U {{homebridge_dir}} + +[Install] +WantedBy=default.target |
