From 01053ffad39aed06127537f6587173597b77c8cc Mon Sep 17 00:00:00 2001 From: Julien Lazarewicz Date: Tue, 25 Jun 2024 00:37:17 +0200 Subject: [PATCH] Add install script --- com.fup_anemometer.plist | 12 ++++++++++++ fup-anemometer-user.py | 20 +++++++++++++++++++- install.sh | 19 +++++++++++++++++++ start_fup_anemometer.sh | 12 ++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 com.fup_anemometer.plist create mode 100644 install.sh create mode 100644 start_fup_anemometer.sh diff --git a/com.fup_anemometer.plist b/com.fup_anemometer.plist new file mode 100644 index 0000000..9274313 --- /dev/null +++ b/com.fup_anemometer.plist @@ -0,0 +1,12 @@ + + + + + Label + com.fup_anemometer + ProgramArguments + XXXX/fup_anamometer/start_fup_anemometer.sh + RunAtLoad + + + \ No newline at end of file diff --git a/fup-anemometer-user.py b/fup-anemometer-user.py index 86eb273..3488c3a 100755 --- a/fup-anemometer-user.py +++ b/fup-anemometer-user.py @@ -93,6 +93,7 @@ def main(meteobridge_url, meteobridge_user, meteobridge_passwd, max_host, max_po except urllib.error.HTTPError as e: if debug_urllib_print: print('HTTP Error code: ', e.code) + logging.error("Get sensor datas from : " + meteobridge_url + " - HTTP Error code: " + str(e.code)) error_counter += 1 send_osc_message(oscSender, osc_error_addr, OSC_meteobridge_http_error) @@ -100,6 +101,15 @@ def main(meteobridge_url, meteobridge_user, meteobridge_passwd, max_host, max_po # msg.add_arg(OSC_meteobridge_http_error) # oscSender.send(msg.build()) # Sleep 5 seconds if error + + if isinstance(e.reason, socket.timeout): + if debug_urllib_print: + print('HTTP Error reason: ', str(e.reason)) + + logging.error("Socket timed out from : " + meteobridge_url + " - URL Error Reason: " + str(e.reason)) + error_counter += 1 + send_osc_message(oscSender, osc_error_addr, OSC_meteobridge_url_error) + time.sleep(5) except urllib.error.URLError as e: @@ -122,6 +132,13 @@ def main(meteobridge_url, meteobridge_user, meteobridge_passwd, max_host, max_po # Sleep 5 seconds if error time.sleep(5) + except : + if debug_urllib_print: + print('URL Unknown Error') + + logging.error("URL Unknown Error") + error_counter += 1 + else: try: data_json = json.loads(response.read()) @@ -177,6 +194,7 @@ def main(meteobridge_url, meteobridge_user, meteobridge_passwd, max_host, max_po logging.debug("OSC datas sent") # Sleep 2 seconds if no errors time.sleep(2) + # Self restart if error_counter >= errors_restart: send_osc_message(oscSender, osc_error_addr, OSC_meteobridge_restart) @@ -197,7 +215,7 @@ if __name__ == "__main__": parser.add_argument('-u', '--user-meteobridge', default='meteobridge') parser.add_argument('-p', '--passwd-meteobridge',default='meteobridge') parser.add_argument('-mh', '--max-host', default='localhost') - parser.add_argument('-mp','--max-port', default=2222, type=int) + parser.add_argument('-mp','--max-port', default=8001, type=int) parser.add_argument('-e', '--errors-restart', default=20, type=int) args = parser.parse_args() diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..70abc49 --- /dev/null +++ b/install.sh @@ -0,0 +1,19 @@ +#!/bin/sh +INSTALL_DIR="fup_anamometer" + +mkdir $HOME/$INSTALL_DIR +cp fup-anemometer-user.py $HOME/$INSTALL_DIR/fup-anemometer.py +chmod +x $HOME/$INSTALL_DIR/fup-anemometer.py +cp start_fup_anemometer.sh $HOME/$INSTALL_DIR/start_fup_anemometer.sh +chmod +x $HOME/$INSTALL_DIR/start_fup_anemometer.sh +if [ ! -d $HOME/Library/LaunchAgents ] +then + mkdir -p $HOME/Library/LaunchAgents +fi +sed -i -e "s%XXXX%$HOME%g" com.fup_anemometer.plist +cp com.fup_anemometer.plist $HOME/Library/LaunchAgents/com.fup_anemometer.plist +python3 -m venv $HOME/$INSTALL_DIR +# copy python file to venv +cd $HOME/$INSTALL_DIR +source $HOME/$INSTALL_DIR/bin/activate +pip install python-osc \ No newline at end of file diff --git a/start_fup_anemometer.sh b/start_fup_anemometer.sh new file mode 100644 index 0000000..6571de2 --- /dev/null +++ b/start_fup_anemometer.sh @@ -0,0 +1,12 @@ +#!/bin/sh +INSTALL_DIR="fup_anamometer" +METEOBRIDGE_URL="http://192.168.0.39/" +METEOBRIDGE_USER="meteobridge" +METEOBRIDGE_PASSWD="meteobridge" +MAX_HOST="localhost" +MAX_PORT=2222 + +cd $HOME/$INSTALL_DIR +source $HOME/$INSTALL_DIR/bin/activate +cd $HOME/$INSTALL_DIR +./fup-anemometer.py -url $METEOBRIDGE_URL -u $METEOBRIDGE_USER -p $METEOBRIDGE_PASSWD -mh $MAX_HOST -mp $MAX_PORT \ No newline at end of file