diff --git a/build-package b/build-package index 05cf0a7..6a5f277 100755 --- a/build-package +++ b/build-package @@ -1,3 +1,3 @@ #!/bin/bash -VERSION=3.3.1 +VERSION=$(grep -oP '(?<=Version: ).*$' debian/DEBIAN/control) dpkg-deb --root-owner-group -b debian "foodoord_${VERSION}_all.deb" diff --git a/debian/DEBIAN/control b/debian/DEBIAN/control index acd044c..77d16ae 100755 --- a/debian/DEBIAN/control +++ b/debian/DEBIAN/control @@ -1,5 +1,5 @@ Package: foodoord -Version: 3.3.1 +Version: 3.3.2 Maintainer: Tobi Architecture: all Description: Control the doors of the club, ja! diff --git a/debian/usr/sbin/foodoord_oben b/debian/usr/sbin/foodoord_oben index 1f5937d..f841dba 100755 --- a/debian/usr/sbin/foodoord_oben +++ b/debian/usr/sbin/foodoord_oben @@ -24,6 +24,7 @@ class FoodoorMQTT: self.client.on_connect = self.on_connect self.client.on_message = self.on_message + self._last_state = None self._connect_lock = threading.Condition() def connect(self): @@ -39,6 +40,8 @@ class FoodoorMQTT: self.client.loop_stop() def on_connect(self, client, userdata, flags, rc): + if self._last_state is not None: + self.send_state(self._last_state) with self._connect_lock: self._connect_lock.notify() @@ -46,6 +49,7 @@ class FoodoorMQTT: print(f"MQTT-Server Message: {msg.topic} {msg.payload}") def send_state(self, locked: bool): + self._last_state = locked self.client.publish(f"foobar/{self.area}/foodoor/status", { False: "open", True: "closed", diff --git a/debian/usr/sbin/foodoord_unten b/debian/usr/sbin/foodoord_unten index 24de04d..16ece4d 100755 --- a/debian/usr/sbin/foodoord_unten +++ b/debian/usr/sbin/foodoord_unten @@ -22,6 +22,7 @@ class FoodoorMQTT: self.client.on_connect = self.on_connect self.client.on_message = self.on_message + self._last_state = None self._connect_lock = threading.Condition() def connect(self): @@ -37,6 +38,8 @@ class FoodoorMQTT: self.client.loop_stop() def on_connect(self, client, userdata, flags, rc): + if self._last_state is not None: + self.send_state(self._last_state) with self._connect_lock: self._connect_lock.notify() @@ -44,6 +47,7 @@ class FoodoorMQTT: print(f"MQTT-Server Message: {msg.topic} {msg.payload}") def send_state(self, locked: bool): + self._last_state = locked self.client.publish(f"foobar/{self.area}/foodoor/status", { False: "open", True: "closed",