From 31e4c5d1038ee5de02c31a925b4c3121523378c7 Mon Sep 17 00:00:00 2001
From: Christian Elberfeld <elberfeld@web.de>
Date: Sun, 8 Jan 2023 22:52:12 +0100
Subject: [PATCH] neue Implementierung warpapi mit http Updates

---
 intern/docker_openhab/tasks/main.yml                       | 7 ++++---
 .../docker_openhab/templates/conf/rules/zonestatus.rules   | 3 +++
 webserver/docker_warpapi/tasks/main.yml                    | 6 +++++-
 webserver/docker_warpapi/templates/docker-compose.yml      | 2 ++
 webserver/docker_warpapi/templates/set_status_closed.sh    | 2 +-
 webserver/docker_warpapi/templates/set_status_open.sh      | 2 +-
 6 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/intern/docker_openhab/tasks/main.yml b/intern/docker_openhab/tasks/main.yml
index 61b3194f..1621efce 100644
--- a/intern/docker_openhab/tasks/main.yml
+++ b/intern/docker_openhab/tasks/main.yml
@@ -2,9 +2,10 @@
 
 - include: ../functions/get_secret.yml
   with_items:
-   - { path: "{{ basedir }}/openweathermap_apikey", length: -1 }
-   - { path: "{{ basedir }}/influxdb_password",     length: 12 }
-   - { path: "{{ basedir }}/influxdb_token",        length: 32 }
+   - { path: "{{ basedir }}/openweathermap_apikey",    length: -1 }
+   - { path: "{{ basedir }}/warpai_status_update_key", length: -1 }
+   - { path: "{{ basedir }}/influxdb_password",        length: 12 }
+   - { path: "{{ basedir }}/influxdb_token",           length: 32 }
 
 
 - name: pakete installieren
diff --git a/intern/docker_openhab/templates/conf/rules/zonestatus.rules b/intern/docker_openhab/templates/conf/rules/zonestatus.rules
index 3129b7ca..3a7d2ec8 100644
--- a/intern/docker_openhab/templates/conf/rules/zonestatus.rules
+++ b/intern/docker_openhab/templates/conf/rules/zonestatus.rules
@@ -11,5 +11,8 @@ then
   val mqttActions = getActions("mqtt", "mqtt:broker:mosquitto")
   mqttActions.publishMQTT(topic, message)
 
+  val headers = newHashMap()
+  val output = sendHttpGetRequest("https://api.warpzone.ms/setstatus?newstatus=OPEN&update_key={{ warpai_status_update_key }}", headers, 1000)
+
 end 
 
diff --git a/webserver/docker_warpapi/tasks/main.yml b/webserver/docker_warpapi/tasks/main.yml
index a5ceec18..4de5b65c 100644
--- a/webserver/docker_warpapi/tasks/main.yml
+++ b/webserver/docker_warpapi/tasks/main.yml
@@ -1,5 +1,9 @@
 ---
 
+- include_tasks: ../functions/get_secret.yml
+  with_items:
+   - { path: /srv/warpapi/update_key,  length: 32 }
+
 - name: create folder struct for warpapi
   file:
     path: "/srv/warpapi"
@@ -8,7 +12,7 @@
 - name: clone repo
   git:
     repo: "https://gitlab.warpzone.ms/infrastruktur/warpapi.git"
-    version: "232c44ed365998acf70f5c28510bcc663adc5686"
+    version: "fc3eea53b5bda24e0a46e7f88fdb296bdb871b10"
     dest: "/srv/warpapi"
     force: "yes"
   register: gitclone
diff --git a/webserver/docker_warpapi/templates/docker-compose.yml b/webserver/docker_warpapi/templates/docker-compose.yml
index d6e0e16f..e7590817 100644
--- a/webserver/docker_warpapi/templates/docker-compose.yml
+++ b/webserver/docker_warpapi/templates/docker-compose.yml
@@ -11,6 +11,8 @@ services:
       - 127.0.0.1:42010:5000
     volumes:
       - /srv/warpapi/warpapi/:/opt/warpapi
+    environment:
+      UPDATE_KEY: "{{ update_key }}" 
     labels:
       - traefik.enable=true
       - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`)
diff --git a/webserver/docker_warpapi/templates/set_status_closed.sh b/webserver/docker_warpapi/templates/set_status_closed.sh
index 5cac9d75..76fbe1a3 100644
--- a/webserver/docker_warpapi/templates/set_status_closed.sh
+++ b/webserver/docker_warpapi/templates/set_status_closed.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-docker run --rm -it ruimarinho/mosquitto mosquitto_pub -h 192.168.0.201 -t warpzone/door/status -m "CLOSED" --retain
+curl "https://{{ domain }}/setstatus?newstatus=CLOSED&update_key={{ update_key }}"
diff --git a/webserver/docker_warpapi/templates/set_status_open.sh b/webserver/docker_warpapi/templates/set_status_open.sh
index 1058cc4d..c6b8812e 100644
--- a/webserver/docker_warpapi/templates/set_status_open.sh
+++ b/webserver/docker_warpapi/templates/set_status_open.sh
@@ -1,2 +1,2 @@
 #!/bin/sh
-docker run --rm -it ruimarinho/mosquitto mosquitto_pub -h 192.168.0.201 -t warpzone/door/status -m "OPEN" --retain
+curl "https://{{ domain }}/setstatus?newstatus=OPEN&update_key={{ update_key }}"
-- 
GitLab