#! /bin/bash

# housemonitor.sh
# RAPP external script to report what's going on, etc.

cat << EOF
::BEGIN

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
	trek1.xml - experimenting with star-trek flavoured interfaces with RAPP :)
-->
<xhpd version="1.0">

	<!--{{{  property sets-->
	<propset id="cpref">
		<property name="background" value="@background" />
		<property name="foreground" value="@foreground" />
		<property name="highlight" value="@highlight" />
		<property name="shadow" value="@shadow" />
		<property name="iecolor" value="@extra" />
		<property name="tentry" value="@tentry" />
	</propset>
	<propset id="selcpref">
		<property name="sel-background" value="@selback" />
		<property name="sel-foreground" value="@selfore" />
	</propset>
	<propset id="helvfont">
		<property name="font" value="-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-*" />
	</propset>
	<propset id="helvfont-small">
		<property name="font" value="-*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-*" />
	</propset>
	<propset id="lcarspref-panel">
		<property name="lcars1" value="#9999CC" />
		<property name="lcars2" value="#996699" />
		<property name="lcars3" value="#996666" />
		<property name="lcars4" value="#DF6360" />
	</propset>
	<propset id="lcarspref-title">
		<property name="lcars1" value="#FF6633" />
		<property name="lcars2" value="#FFFFFF" />
		<property name="lcars3" value="#FF9933" />
	</propset>
	<propset id="lcarspref-split">
		<property name="lcars1" value="#DF6360" />
	</propset>
	<propset id="lcarspref-section">
		<property name="lcars1" value="#FF9900" />
	</propset>
	<propset id="lcarspref-button">
		<property name="lcars1" value="#CC6666" />
		<property name="lcars2" value="#FF9966" />
	</propset>
	<propset id="lcarspref-tbutton">
		<property name="lcars1" value="#444466" />
		<property name="lcars2" value="#666699" />
		<property name="lcars3" value="#996699" />
		<property name="lcars4" value="#9999CC" />
	</propset>
	<propset id="lcarspref-ebutton">
		<property name="lcars1" value="#666699" />
		<property name="lcars2" value="#99CCFF" />
	</propset>
	<propset id="lcarspref-meter">
		<property name="lcars1" value="#666699" />
		<property name="lcars2" value="#447744" />
		<property name="lcars3" value="#77AA77" />
	</propset>
	<propset id="verybighelvbold">
		<property name="font" value="-adobe-helvetica-bold-r-*-*-20-*-*-*-*-*-*-*" />
	</propset>
	<propset id="bighelvbold">
		<property name="font" value="-adobe-helvetica-bold-r-*-*-14-*-*-*-*-*-*-*" />
	</propset>
	<propset id="helvbold">
		<property name="font" value="-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*" />
	</propset>
	<!--}}}-->

	<!--{{{  monitor:UWGWindow-->
	<gadget type="UWGWindow" name="monitor">
		<property name="caption" value="house monitoring" />
		<property name="icon-name" value="rapphousemonitor" />
		<property name="width" value="512" />
		<property name="height" value="384" />
		<property name="position" value="user" />
		<property name="style" value="border" />
		<property name="visible" value="true" />
		<property set="cpref" />

		<!--{{{  @:UWGLcarsPanel-->
		<gadget type="UWGLcarsPanel">
			<property name="geometry" value="0,0,512,384" />
			<property set="cpref" />
			<property set="lcarspref-panel" />
			<property name="background" value="black" />
			<!-- property name="limit-min" value="68" /-->

			<!--{{{  @:UWGLcarsSection  (removed)-->
			<!--
			<gadget type="UWGLcarsSection">
				<property name="geometry" value="210,3,230,29" />
				<property set="cpref" />
				<property set="lcarspref-section" />
				<property name="background" value="black" />
				<property name="foreground" value="white" />
				<property set="verybighelvbold" />
				<property name="caption" value="HOUSE MONITORING" />
			</gadget>
			-->
			<!--}}}-->
			
			<!--{{{  tbuttons-->
			<gadget name="tb" type="UWGLcarsTButton">
				<property name="geometry" value="53,336,96,24" />
				<property set="cpref" />
				<property set="lcarspref-tbutton" />
				<property name="foreground" value="white" />
				<property name="caption" value="temperature" />
				<property name="font" value="@bold" />
				<property name="value" value="1" />

				<action name="on_click">
					<update name="tb"><property name="value" value="1" /></update>
					<update name="pb"><property name="value" value="0" /></update>
					<update name="ob"><property name="value" value="0" /></update>
					<command name="show" gadget="tc" />
					<command name="hide" gadget="pc" />
					<command name="hide" gadget="oc" />
				</action>
			</gadget>
			<gadget name="pb" type="UWGLcarsTButton">
				<property name="geometry" value="153,336,96,24" />
				<property set="cpref" />
				<property set="lcarspref-tbutton" />
				<property name="foreground" value="white" />
				<property name="caption" value="power" />
				<property name="font" value="@bold" />

				<action name="on_click">
					<update name="tb"><property name="value" value="0" /></update>
					<update name="pb"><property name="value" value="1" /></update>
					<update name="ob"><property name="value" value="0" /></update>
					<command name="hide" gadget="tc" />
					<command name="show" gadget="pc" />
					<command name="hide" gadget="oc" />
				</action>
			</gadget>
			<gadget name="ob" type="UWGLcarsTButton">
				<property name="geometry" value="253,336,96,24" />
				<property set="cpref" />
				<property set="lcarspref-tbutton" />
				<property name="foreground" value="white" />
				<property name="caption" value="other" />
				<property name="font" value="@bold" />

				<action name="on_click">
					<update name="tb"><property name="value" value="0" /></update>
					<update name="pb"><property name="value" value="0" /></update>
					<update name="ob"><property name="value" value="1" /></update>
					<command name="hide" gadget="tc" />
					<command name="hide" gadget="pc" />
					<command name="show" gadget="oc" />
				</action>
			</gadget>
			<!--}}}-->

			<!--{{{  tc:UWGLcarsContainer-->
			<gadget name="tc" type="UWGLcarsContainer">
				<property name="geometry" value="24,56,412,268" />
				<property set="cpref" />
				<property set="lcarspref-panel" />
				<property name="visible" value="true" />
				<property name="background" value="black" />

				<!--{{{  @:UWGLcarsTitle-->
				<gadget type="UWGLcarsTitle">
					<property name="geometry" value="0,0,412,24" />
					<property set="cpref" />
					<property set="lcarspref-title" />
					<property name="background" value="black" />
					<property set="bighelvbold" />
					<property name="caption" value="TEMPERATURE" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,36,192,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="front-room temperature:" />
				</gadget>
				<!--}}}-->
				<!--{{{  fronttemp:UWGLabel-->
				<gadget type="UWGLabel" name="fronttemp">
					<property name="geometry" value="228,36,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0.0" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,54,192,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="machine-room temperature:" />
				</gadget>
				<!--}}}-->
				<!--{{{  machinetemp:UWGLabel-->
				<gadget type="UWGLabel" name="machinetemp">
					<property name="geometry" value="228,54,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0.0" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,72,192,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="utility-room temperature:" />
				</gadget>
				<!--}}}-->
				<!--{{{  utilitytemp:UWGLabel-->
				<gadget type="UWGLabel" name="utilitytemp">
					<property name="geometry" value="228,72,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0.0" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,90,192,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="kitchen temperature:" />
				</gadget>
				<!--}}}-->
				<!--{{{  kitchentemp:UWGLabel-->
				<gadget type="UWGLabel" name="kitchentemp">
					<property name="geometry" value="228,90,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0.0" />
				</gadget>
				<!--}}}-->
				
			</gadget>
			<!--}}}-->
			<!--{{{  pc:UWGLcarsContainer-->
			<gadget name="pc" type="UWGLcarsContainer">
				<property name="geometry" value="24,56,412,268" />
				<property set="cpref" />
				<property set="lcarspref-panel" />
				<property name="visible" value="false" />
				<property name="background" value="black" />

				<!--{{{  @:UWGLcarsTitle-->
				<gadget type="UWGLcarsTitle">
					<property name="geometry" value="0,0,412,24" />
					<property set="cpref" />
					<property set="lcarspref-title" />
					<property name="background" value="black" />
					<property set="bighelvbold" />
					<property name="caption" value="POWER AND UTILITY" />
				</gadget>
				<!--}}}-->

				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,36,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="electricity usage:" />
				</gadget>
				<!--}}}-->
				<!--{{{  elecusage:UWGLabel-->
				<gadget type="UWGLabel" name="elecusage">
					<property name="geometry" value="164,36,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0 Watts" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,54,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="gas usage:" />
				</gadget>
				<!--}}}-->
				<!--{{{  gasusage:UWGLabel-->
				<gadget type="UWGLabel" name="gasusage">
					<property name="geometry" value="164,54,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0 cm3/min" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,72,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="UPS battery:" />
				</gadget>
				<!--}}}-->
				<!--{{{  upsbatt1:UWGLabel-->
				<gadget type="UWGLabel" name="upsbatt1">
					<property name="geometry" value="164,72,160,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="..." />
				</gadget>
				<!--}}}-->
				<!--{{{  upsbatt2:UWGLabel-->
				<gadget type="UWGLabel" name="upsbatt2">
					<property name="geometry" value="164,88,160,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="..." />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,106,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="UPS volts:" />
				</gadget>
				<!--}}}-->
				<!--{{{  upsvolts:UWGLabel-->
				<gadget type="UWGLabel" name="upsvolts">
					<property name="geometry" value="164,106,160,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0 in, 0 out" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,124,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="UPS load:" />
				</gadget>
				<!--}}}-->
				<!--{{{  upsload:UWGLabel-->
				<gadget type="UWGLabel" name="upsload">
					<property name="geometry" value="164,124,160,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="0 %" />
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLabel-->
				<gadget type="UWGLabel">
					<property name="geometry" value="32,142,128,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="right" />
					<property name="caption" value="UPS status:" />
				</gadget>
				<!--}}}-->
				<!--{{{  upsstatus:UWGLabel-->
				<gadget type="UWGLabel" name="upsstatus">
					<property name="geometry" value="164,142,160,16" />
					<property set="cpref" />
					<property set="helvfont" />
					<property name="background" value="black" />
					<property name="foreground" value="white" />
					<property name="alignment" value="left" />
					<property name="caption" value="off-line" />
				</gadget>
				<!--}}}-->

			</gadget>
			<!--}}}-->
			<!--{{{  oc:UWGLcarscontainer-->
			<gadget name="oc" type="UWGLcarsContainer">
				<property name="geometry" value="24,56,412,268" />
				<property set="cpref" />
				<property set="lcarspref-panel" />
				<property name="visible" value="false" />
				<property name="background" value="black" />

				<!--{{{  @:UWGLcarsTitle-->
				<gadget type="UWGLcarsTitle">
					<property name="geometry" value="0,0,412,24" />
					<property set="cpref" />
					<property set="lcarspref-title" />
					<property name="background" value="black" />
					<property set="bighelvbold" />
					<property name="caption" value="OTHER FUNCTIONS" />
				</gadget>
				<!--}}}-->

				<!--{{{  @:UWGLcarsMeter-->
				<gadget type="UWGLcarsMeter">
					<property name="geometry" value="0,40,420,19" />
					<property set="cpref" />
					<property set="lcarspref-meter" />
					<property name="background" value="black" />
					<property set="helvbold" />
					<property name="limit-min" value="0" />
					<property name="limit-max" value="100" />

				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLcarsEButton-->
				<gadget type="UWGLcarsEButton">
					<property name="geometry" value="0,62,180,19" />
					<property set="cpref" />
					<property set="lcarspref-ebutton" />
					<property name="background" value="black" />
					<property set="helvbold" />
					<property name="caption" value="RESET" />

					<!--{{{  on_click-->
					<action name="on_click">
						<update name="elecusage">
							<property name="caption" value="0 Watts" />
						</update>
						<update name="gasusage">
							<property name="caption" value="0 cm3/min" />
						</update>
						<update name="fronttemp">
							<property name="caption" value="0.0" />
						</update>
						<update name="machinetemp">
							<property name="caption" value="0.0" />
						</update>
						<update name="utilitytemp">
							<property name="caption" value="0.0" />
						</update>
						<update name="kitchentemp">
							<property name="caption" value="0.0" />
						</update>
						<update name="upsbatt1">
							<property name="caption" value="..." />
						</update>
						<update name="upsbatt2">
							<property name="caption" value="..." />
						</update>
						<update name="upsvolts">
							<property name="caption" value="0 in, 0 out" />
						</update>
						<update name="upsload">
							<property name="caption" value="0 %" />
						</update>
						<update name="upsstatus">
							<property name="caption" value="off-line" />
						</update>
					</action>
					<!--}}}-->
				</gadget>
				<!--}}}-->
				<!--{{{  @:UWGLcarsEButton-->
				<gadget type="UWGLcarsEButton">
					<property name="geometry" value="0,84,180,19" />
					<property set="cpref" />
					<property set="lcarspref-ebutton" />
					<property name="background" value="black" />
					<property set="helvbold" />
					<property name="caption" value="EXIT" />

					<action name="on_click">
						<command name="@termloop"><arg value="0" /></command>
					</action>
				</gadget>
				<!--}}}-->
			</gadget>
			<!--}}}-->


		</gadget>
		<!--}}}-->

		<action name="on_delete">
			<command name="@termloop"><arg value="0" /></command>
		</action>

	</gadget>
	<!--}}}-->

</xhpd>

::END
EOF

sleep 2

while [ : ]; do

	ELEC=$(cat /nfs/wotex/etc/electricity/rate | head -1)
	GAS=$(cat /nfs/wotex/etc/electricity/rate | tail -1)
	MACHINETEMP=$(cat /nfs/wotex/tmp/RS422-80020001 | awk '{printf ("%2.1f", $0 / 10.0); }')
	FRONTTEMP=$(cat /nfs/wotex/tmp/RS422-80020002 | awk '{printf ("%2.1f", $0 / 10.0); }')
	UTILITYTEMP=$(cat /nfs/wotex/tmp/RS422-80020003 | awk '{printf ("%2.1f", $0 / 10.0); }')
	KITCHENTEMP=$(cat /nfs/wotex/tmp/RS422-80020005 | awk '{printf ("%2.1f", $0 / 10.0); }')
	UPS_BATTCOND=$(cat /nfs/wotex/tmp/openupsd | grep 'battery-condition:' | cut -d ' ' -f 2-2)
	UPS_BATTIS=$(cat /nfs/wotex/tmp/openupsd | grep 'battery-is:' | cut -d ' ' -f 2-2)
	UPS_BATTTEMP=$(cat /nfs/wotex/tmp/openupsd | grep 'battery-temperature:' | cut -d ' ' -f 2-2)
	UPS_BATTVOLTS=$(cat /nfs/wotex/tmp/openupsd | grep 'battery-voltage:' | cut -d ' ' -f 2-2)
	UPS_INVOLTS=$(cat /nfs/wotex/tmp/openupsd | grep 'input-voltage:' | cut -d ' ' -f 2-2)
	UPS_OUTVOLTS=$(cat /nfs/wotex/tmp/openupsd | grep 'output-voltage:' | cut -d ' ' -f 2-2)
	UPS_LOAD=$(cat /nfs/wotex/tmp/openupsd | grep 'output-load:' | cut -d ' ' -f 2-2)
	UPS_STATUS=$(cat /nfs/wotex/tmp/openupsd | grep 'status-field:' | cut -d ' ' -f 2-)
	UPS_CHARGE=$(cat /nfs/wotex/tmp/openupsd | grep 'battery-charge:' | cut -d ' ' -f 2-2)

	printf '::BEGIN\n'
	printf '<update name="elecusage">\n'
	printf '    <property name="caption" value="%s Watts" />\n' "$ELEC"
	printf '</update>\n'
	printf '<update name="gasusage">\n'
	printf '    <property name="caption" value="%s cm3/min" />\n' "$GAS"
	printf '</update>\n'
	printf '<update name="fronttemp">\n'
	printf '    <property name="caption" value="%s" />\n' "$FRONTTEMP"
	printf '</update>\n'
	printf '<update name="machinetemp">\n'
	printf '    <property name="caption" value="%s" />\n' "$MACHINETEMP"
	printf '</update>\n'
	printf '<update name="utilitytemp">\n'
	printf '    <property name="caption" value="%s" />\n' "$UTILITYTEMP"
	printf '</update>\n'
	printf '<update name="kitchentemp">\n'
	printf '    <property name="caption" value="%s" />\n' "$KITCHENTEMP"
	printf '</update>\n'
	printf '<update name="upsbatt1">\n'
	printf '    <property name="caption" value="%s, %s (%s %%)" />\n' "$UPS_BATTCOND" "$UPS_BATTIS" "$UPS_CHARGE"
	printf '</update>\n'
	printf '<update name="upsbatt2">\n'
	printf '    <property name="caption" value="%s Volts, %s Celcius" />\n' "$UPS_BATTVOLTS" "$UPS_BATTTEMP"
	printf '</update>\n'
	printf '<update name="upsvolts">\n'
	printf '    <property name="caption" value="%s in, %s out" />\n' "$UPS_INVOLTS" "$UPS_OUTVOLTS"
	printf '</update>\n'
	printf '<update name="upsload">\n'
	printf '    <property name="caption" value="%s %%" />\n' "$UPS_LOAD"
	printf '</update>\n'
	printf '<update name="upsstatus">\n'
	printf '    <property name="caption" value="%s" />\n' "$UPS_STATUS"
	printf '</update>\n'
	printf '::END\n'

	sleep 5

done

