From 2255525436047e2c57e860ae27e9f03688819513 Mon Sep 17 00:00:00 2001 From: Rob Pearce Date: Sun, 22 Oct 2023 12:19:33 +1100 Subject: [PATCH] Remive pymyair mode - just use direct JSON API. Remove -P and -x args always require jq --- aircon.sh | 83 ++++++++++++---------------------------------- img/avatar.png | Bin 0 -> 62138 bytes myair_cmds | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 62 deletions(-) create mode 100644 img/avatar.png create mode 100644 myair_cmds diff --git a/aircon.sh b/aircon.sh index 6c2ff78..e88fa0d 100755 --- a/aircon.sh +++ b/aircon.sh @@ -71,7 +71,6 @@ function usage() { echo " -L Log all zone temperatures to CSV file, then exit (see -o)." echo " -m Generate a config file based on current aircon setup." echo " -o file Specify CSV output file. Default: $DEFAULT_CSVFILE" - echo " -P Use pymyair instead of direct JSON API calls (also see -x)." echo " -p Profiler mode." echo " -s Validate config file then exit." echo " -S[H] Show configured rules in human-readable format" @@ -80,8 +79,6 @@ function usage() { echo " -T num Specify degrees above max temperature before taking action." echo " -w List which people are available then exit." echo " -W List zone-owning devices are available then exit." - echo " -x path Specify location of 'pymyair' (from https://github.com/smallsam/pymyair)" - echo " (only used if -P specified)" echo " -y Actually run commands/db inserts. By default, commands are just displayed." echo } @@ -700,7 +697,7 @@ function gen_aircon_command() { done } -# add_aircon_command zone_idx "comment goes here" " pymyair command to run" +# add_aircon_command zone_idx zone_idx2 "comment goes here" "textual version of command to run" "json command" function add_aircon_command() { local x idx otheridx comment db cmd jcmd @@ -1527,22 +1524,16 @@ function get_aircon_info() { local jsoninfo url state profile "query aircon" [[ $cronmode -eq 0 && $logmode -eq 0 ]] && echo -en "${GREEN}${BOLD}>> ${PLAIN}${GREEN}Querying aircon... ${PLAIN}" - if [[ $JSONAPI -eq 1 ]]; then - url="${AIRCON_URL}/getSystemData" - jsoninfo=$(curl -s "$url" 2>/dev/null) - zones=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.zones[] | [ .name, .state, .setTemp, .measuredTemp, .number ] | @csv' | tr -d '" ') - state=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.state' | tr -d '" ') - if [[ $state == "off" ]]; then - airconmode="off" - else - airconmode=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.mode' | tr -d '" ') - fi - airconmyzoneid=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.myZone ' | tr -d '" ') +url="${AIRCON_URL}/getSystemData" + jsoninfo=$(curl -s "$url" 2>/dev/null) + zones=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.zones[] | [ .name, .state, .setTemp, .measuredTemp, .number ] | @csv' | tr -d '" ') + state=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.state' | tr -d '" ') + if [[ $state == "off" ]]; then + airconmode="off" else - zones=$($MYAIR $AIRCON_IP zones | $JQ -r '.[] | [ .name, .state, .setTemp, .measuredTemp, .number ] | @csv' | tr -d '" ') - airconmode=$($MYAIR $AIRCON_IP mode) - airconmyzoneid=$($MYAIR $AIRCON_IP myzone) + airconmode=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.mode' | tr -d '" ') fi + airconmyzoneid=$(echo "$jsoninfo" | $JQ -r '.aircons.ac1.info.myZone ' | tr -d '" ') nzones=0 for line in $zones; do IFS=',' read -ra tok <<< "$line" @@ -1784,21 +1775,16 @@ function run_commands() { #echo RUNNING myair $AIRCON_IP ${airconcmd[$x]} [[ -n ${airconcomment[$x]} ]] && action "${airconcomment[$x]}" - if [[ $JSONAPI -eq 1 ]]; then - $MYAIR $AIRCON_IP ${airconcmd[$x]} >/dev/null 2>&1 - fi influx_insert "INSERT aircon action=\"${airconcomment[$x]}\",comment=\"${airconproblem[$x]}\"" done - if [[ $JSONAPI -eq 1 ]]; then - jurl=$(combine_commands) - res=$(curl -s -g "$jurl" 3>/dev/null) - jqres=$(echo "$res" | $JQ -r '.ack' 2>/dev/null) - if [[ $jqres != "true" ]]; then - error "Myair API call failed:" - echo -e "$RED curl -s -g $jurl$PLAIN" - return 1 - fi + jurl=$(combine_commands) + res=$(curl -s -g "$jurl" 3>/dev/null) + jqres=$(echo "$res" | $JQ -r '.ack' 2>/dev/null) + if [[ $jqres != "true" ]]; then + error "Myair API call failed:" + echo -e "$RED curl -s -g $jurl$PLAIN" + return 1 fi } @@ -1902,7 +1888,6 @@ limit=$DEFAULTLIMIT profiler=0 csvfile="$DEFAULT_CSVFILE" sanitycheck=0 -JSONAPI=1 RULEFORMAT=ansi robtest=0 @@ -1922,7 +1907,7 @@ fi ALLARGS="$ALLARGS $*" -optstring="aA:bcD:f:hHi:I:k:l:Lo:pPmRsSt:T:wWx:y" +optstring="aA:bcD:f:hHi:I:k:l:Lo:pmRsSt:T:wWy" while getopts "$optstring" i $ALLARGS; do case "$i" in a) @@ -1972,9 +1957,6 @@ while getopts "$optstring" i $ALLARGS; do o) csvfile="$OPTARG" ;; - P) - JSONAPI=0 - ;; p) profiler=1 info "Profiler mode enabled" @@ -2000,9 +1982,6 @@ while getopts "$optstring" i $ALLARGS; do W) showwho=2 ;; - x) - MYAIR="${OPTARG}" - ;; y) DOIT=1 ;; @@ -2035,30 +2014,10 @@ if [[ $makeconfig -eq 1 ]]; then exit $rv fi -if [[ $showwho -eq 0 ]]; then - if [[ $JSONAPI -eq 1 ]]; then - JQ=$(which jq 2>/dev/null) - if [[ $? -ne 0 ]]; then - error "Can't find jq executable in path." - exit 1 - fi - if [[ -n $MYAIR ]]; then - warn "-x option ignored as -P not used." - fi - else - if [[ -z $MYAIR ]]; then - MYAIR=$(which myair 2>/dev/null) - if [[ $? -ne 0 ]]; then - error "Can't find pymyair executable 'myair' in path. Install it from here: https://github.com/smallsam/pymyair" - exit 1 - fi - else - if [[ ! -x "$MYAIR" ]]; then - error "Specified pymyair executable '$MYAIR' not found." - exit 1 - fi - fi - fi +JQ=$(which jq 2>/dev/null) +if [[ $? -ne 0 ]]; then + error "Can't find jq executable in path." + exit 1 fi # Must do this BEFORE parsing the config file, otherwise diff --git a/img/avatar.png b/img/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..c3540eed9c051f9e2cfd15d1ead34bc73df51379 GIT binary patch literal 62138 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

b`E9EPDKigoM_kxQs zjMRUosV6n~q(!ZEAq0;_>Hx%uV;rm1g2;dx4mB_aO2`nRUEl_QL(GEgt#`ZKm!Ewu zq6i~yDVUW?SWyTZd|!uq%UY_m*6syvZh6lUQnwb=I?_U)^aKiZn|p2IrEB#N2Z6S7 zX*@M|_E8RWtw+A?Le^*?YA4>Qm19)FdL89Dt58|x)#@@TpKxIqx~@B)&+qQ;dcA>R zFsEQ_`~`~Q;#Nbl9D90lvbnr8R<1jDS0cuQb|i~1M#vzP3Tz?N!PG&p-ENnQ`Fg!p znJZ+*V2Trom^wi!#KT9gu^fqd2yfoR4wBwjLz*&ueNmn`7-Y35#H*!+T)p+yWMOF&r7K%^JA?`@Jeg!Eb*Pf&m9~F~71uN8T#^mP6$nV( zJ)IXq2p3}K?`HG)yQ}M0uYNKNtJm)hM}tRXaQ?6&2gxPgH!0m-_sM53`Eo6DS{F@fr_McHj4P|!JZpb8MY2Kd!vRIQ71Mgm+P0vcPkyM`UDGrAPhWj=We~N z=f!a>^Bf_ih<@s$8qRW&sbO2THJVNrXJ_tueZ#=Vd?>;JM5jQ{FhPKAVla$tL=7ZR z5V`Bfb=}==Cxmbudob(=-Zu0C35AJKBG^!B;X%iv*mTv}X0|9`#9PBdE2k+tb%OvS=LQk5!~AP1ToKlY(2lPtYLKFci#*Mdcgn zl&1O0DMp23k_Epn6w;pAelxJo|}E~Gd@f{9^J!!|;LJrG!uxC4BE zaDWUGF%uw`Q<@-5Kqf1Vfk$y1Mu5O^oPNKLcpSLEBLOjom?saKNbml8oXV;%PE;dJ zaQQ&eRAHc?6Uhpjz@ZhO)466(?RynUY2dlcE4cqso<0*LjX65?6Pk@u`5mj+#N1E62vQNicGYJ+sZ5uBy zs#Kse;$yus2xw0TSNJNswiOz$m2&kPha%lS>?2c9J+D%0X&(ds}u7Sk8Y@ z8UR8TA|oI#vH1nFFPUM49C1!DiG{!zbq({}Ah!^AP|PqS%Z#$i%O{h`_|4nbi`9BI zpRe6b;QJOOgfavmDv0reE?R9(g!Wi+jk*Q33!xD6QpkPLM9+w{$F`=4cxd)lDeKxX zw73w}R(tzxHdVZDyiV1uxt($nxpp|^aqj6yl@is7(sNRq27#jYIX7(N8Q&|^ar;L0 zNiC`mPAxFYvUfk)YS!9^7W0A$8o09>GNmLhQlGDC=UtU>vAOL>iz=x{W-GT}xCANz8HMn$yoHLi zsY_Z6B}2cS60aa>E8z|rbr%Y!*dsLl`pX2R31%-kjQGwAJkL|9H#z6|BFXI*`6?0^ z6%6{2uZiL%X)lF>_DHMPSK4Nxjunm%X*a(F#IYo2FyaJzAeInsum~X0nkmLiDqVn3 zh`|GJL2Qu-1-Rb!?&0o!b|1&FVHl=u*-jTQ_55hD*#Tv%xUWou2ceTmXU&*pS~S*d01 zNUBI(sNF+8fckj^mxo<$uvG1Xm8&BEOb`Uy?RK--Y}VVYzl-CzN)?=;lX5jrTXL^j z-JGZz34&m?THW2aR^uviDT`qL{a zT>ZilLSH8~OYM{cXNrc|gDbGy5vz9j7`H}pY@moxijv8VydYSv-T898ab4no;KHD$ zK~?T0f#r(Flu$@@LLo#V06ky98moIrdDLp{NSB)7INkAhdUkf+>vxm08N~S!5y~*7 zk6v>74IxyL1Sb#Qah&tBOV8b2y?bLACdRQqC`KX>g38%oAv7Vzh*A%O33vg>7sw3b zFbug!RBOX9Y}?_nzuvgF53|ds7l<*$1>jiS32r(TKj(k00960 X?lrjJ=@Pd200000NkvXXu0mjfBUmNY literal 0 HcmV?d00001 diff --git a/myair_cmds b/myair_cmds new file mode 100644 index 0000000..665dba3 --- /dev/null +++ b/myair_cmds @@ -0,0 +1,88 @@ +get_aircon_info: + + zones=$(myair $AIRCON_IP zones | jq -r '.[] | [ .name, .state, .setTemp, .measuredTemp, .number ] | @csv' | tr -d '" ') + airconmode=$(myair $AIRCON_IP mode) + airconmyzoneid=$(myair $AIRCON_IP myzone) + +curl http://10.99.99.1:2025/getSystemData + + | jq '.aircons.ac1.zones[] | [ .name, .state, .setTemp, .measuredTemp, .number ]' + | jq .aircons.ac1.info.mode + | jq .aircons.ac1.info.myZone + + +from show_proposed_commands: + for x in ${!airconcmd[@]}; do + fullcmd="myair $AIRCON_IP ${airconcmd[$x]}" + + + +add_aircon_command $idx -1 "Power on system" "on" + /setAircon?json={"ac1":{"info":{"state":"on"}}} + +add_aircon_command $idx -1 "Power off system" "off" + /setAircon?json={"ac1":{"info":{"state":"off"}}} + + + + +example:::: http://10.0.0.10:2025/setAircon?json={ac1:{"info":{"state":"on","mode":"cool"},"zones":{"z10":{"value":80}}}}} + + + +add_aircon_command $idx -1 "Set MyZone to ${zname[$idx]}" "myzone --zone ${zid[$idx]}" + setAircon?json={ac1:{"info":{"myZone":xxxxxxx}}} + + + +add_aircon_command $idx $otheridx "Open vent in ${zname[$otheridx]}" "set --zone ${otherid} --state on --temp ${zsettemp[$otheridx]}" + + setAircon?json={ac1:{"zones":{"z00":{"state":"open","setTemp",xxx}}}} + + + +add_aircon_command $idx $otheridx "Close vent in ${zname[$otheridx]}" "set --zone ${otherid} --state off --temp ${zsettemp[$otheridx]}" + setAircon?json={ac1:{"zones":{"z00":{"state":"close","setTemp",xxx}}}} + +add_aircon_command $idx -1 "Set system mode to '$str'" "$str" + setAircon?json={ac1:{"info":{"mode":"heat"}}} + +add_aircon_command $idx -1 "In zone ${zname[$idx]}, $comm" "set --zone ${zid[$idx]}$toadd" + + + + + +# add_aircon_command zone_idx "comment goes here" "actual pymyair command to run" +function add_aircon_command() { + + pass a json to add_aircon_cmd +wrap in: +{ + "ac1":{ + xxxxxxx + } +} + + merge all jsons with: +jq -s '.[0] * .[1] * .[2] * .[3]' base 1 2 3 + + + + pass to aircon in a single call + + +from run_commands: + for x in ${!airconcmd[@]}; do + [[ -n ${airconcomment[$x]} ]] && action "${airconcomment[$x]}" + echo RUNNING myair $AIRCON_IP ${airconcmd[$x]} + + +from base: + +if [[ $showwho -eq 0 ]]; then + if [[ -z $MYAIR ]]; then + MYAIR=$(which myair) + if [[ $? -ne 0 ]]; then + error "Can't find pymyair executable 'myair' in path. Install it from here: https://github.com/smallsam/pymyair" + exit 1