<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="1722" Guid="{524B214C-8A3B-4617-B53A-7CB1152E5B0D}" Time="1485914477.28">
    <Autostart Name="Autostart" Expanded="True">
        <Plugin Identifier="Webserver" Guid="{E4305D8E-A3D3-4672-B06E-4EA1F0F6C673}" File="Webserver">
            gAIoWAAAAABxAE3gFVgWAAAAQzpcV1MgLSBBeGlhbENvbnRyb2xIQXEBWAoAAABFdmVudEdob3N0cQJoAGgAfXEDKFgTAAAAa29kaWRlZmF1bHR0dnBvc3RlcnEEWBIAAABpbWFnZXMvVFZfaWNvbi5wbmdxBVgQAAAAa29kaWFydGRpcmVjdG9yeXEGWCIAAABEOi8vV1MgLSBEZW1vICsgSEEvaW1hZ2VzL2tvZGlhcnQvcQdYEAAAAGtvZGlhY3RpdmVwbGF5ZXJxCFgBAAAAMHEJWAkAAABXVXppcGNvZGVxClgFAAAANjYyMDNxC1gWAAAAa29kaWRlZmF1bHRtb3ZpZXBvc3RlcnEMWBIAAABpbWFnZXMvbW9faWNvbi5wbmdxDVgIAAAAa29kaXJvb21xDlgIAAAAQmFzZW1lbnRxD1gOAAAAaVR1bmVzX3J1bm5pbmdxEFgEAAAAVHJ1ZXERWBYAAABrb2RpZGVmYXVsdGFydGlzdHRodW1icRJYEQAAAGltYWdlcy9hX2ljb24ucG5ncRNYCQAAAEQwc3VucmlzZXEUWAQAAAA3OjM3cRVYDQAAAGRheW5pZ2h0Q3ljbGVxFlgEAAAAdGltZXEXWAwAAABpVHVuZXNyZXBlYXRxGFgEAAAAVHJ1ZXEZWA4AAABpVHVuZXNydW5faWNvbnEaWAQAAABUcnVlcRtYFAAAAGtvZGltYXRjaGVkc2VhcmNobnVtcRxYAQAAADFxHVgXAAAAa29kaWRlZmF1bHRhcnRpc3RmYW5hcnRxHlgWAAAAaW1hZ2VzL2ZhbmFydF9pY29uLnBuZ3EfWAwAAABrb2RpcnVuX2ljb25xIFgFAAAARmFsc2VxIVgJAAAAbWJydW5uaW5ncSJYBAAAAFRydWVxI1gNAAAAaVR1bmVzc2h1ZmZsZXEkWAUAAABGYWxzZXElWAoAAABEMHRpZGVsZXY0cSZYQgAAADAuMDIgPGRpdiBjbGFzcz0idGlkZXN1ZmZpeCIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrIj5mdDwvZGl2PnEnWBIAAABrb2RpZGVmYXVsdGNkdGh1bWJxKFgRAAAAaW1hZ2VzL01faWNvbi5wbmdxKVgKAAAARDB0aWRlbGV2MXEqWEIAAAAxLjIyIDxkaXYgY2xhc3M9InRpZGVzdWZmaXgiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+ZnQ8L2Rpdj5xK1gKAAAARDB0aWRlbGV2M3EsWEIAAAAwLjk1IDxkaXYgY2xhc3M9InRpZGVzdWZmaXgiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+ZnQ8L2Rpdj5xLVgKAAAARDB0aWRlbGV2MnEuWEIAAAAwLjA2IDxkaXYgY2xhc3M9InRpZGVzdWZmaXgiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+ZnQ8L2Rpdj5xL1gFAAAAV1VrZXlxMFgQAAAAZDE1NWQ5MjE5YTYyNjY0MnExWBEAAABrb2RpX3BsYXlsaXN0ZWRpdHEyWAUAAABGYWxzZXEzWAsAAABEMHRpZGV0aW1lMXE0WFMAAAA5OjA5PGRpdiBjbGFzcz0idGlkZXN1ZmZpeCIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDozcHg7Ij5hbTwvZGl2PnE1WAgAAABEMHN1bnNldHE2WAQAAAA1OjA1cTdYCwAAAEQwdGlkZXRpbWUycThYUwAAADI6NDQ8ZGl2IGNsYXNzPSJ0aWRlc3VmZml4IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OjNweDsiPnBtPC9kaXY+cTlYCwAAAEQwdGlkZXRpbWUzcTpYUwAAADk6MzU8ZGl2IGNsYXNzPSJ0aWRlc3VmZml4IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OjNweDsiPnBtPC9kaXY+cTtYEwAAAGtvZGlhcnRhY3RpdmVwbGF5ZXJxPFgBAAAAMHE9WAoAAABpVHVuZXNtdXRlcT5YBQAAAEZhbHNlcT9YCAAAAHRpZGVoaWRlcUBYBQAAAEZhbHNlcUFYCwAAAEQwdGlkZXRpbWU0cUJYUwAAADM6NDg8ZGl2IGNsYXNzPSJ0aWRlc3VmZml4IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OjNweDsiPmFtPC9kaXY+cUN1iFgBAAAALHFEWAIAAAA7O3FFaABoAIl0cUYu
        </Plugin>
        <Plugin Identifier="AxialControlHA" Guid="AxialControlHA" File="AxialControlHA">
            gAIoWA0AAAAxOTIuMTY4LjAuMTk0cQBNmgRYBQAAAEtldmlucQGISwV0cQIu
        </Plugin>
    </Autostart>
    <Folder Name="WebApp" Expanded="True">
        <Folder Name="AxialControl" Expanded="True">
            <Folder Name="debug-workaround for flipswitch events when set by Javascript">
                <Macro Name="Webserver: Set temporary value: ws.recent.connection: True">
                    <Event Name=".WsClientConnected" />
                    <Action>
                        Webserver.SetValue(u'ws.recent.connection', u'True', False, False)
                    </Action>
                    <Action>
                        EventGhost.TriggerEvent(u'reset.ws.recent.connection', 5.0)
                    </Action>
                </Macro>
                <Macro Name="Webserver: Set temporary value: ws.recent.connection: False">
                    <Event Name="Main.reset.ws.recent.connection" />
                    <Action>
                        Webserver.SetValue(u'ws.recent.connection', u'False', False, False)
                    </Action>
                </Macro>
                <Macro Name="Webserver: Set Count bubbles on load (to prevent errors when webserver hasn't been accessed yet)">
                    <Event Name="Main.OnInit" />
                    <Action>
                        Webserver.SetValue(u'AxialSwitchCount', u'0', False, False)
                    </Action>
                    <Action>
                        Webserver.SetValue(u'AxialOutletCount', u'0', False, False)
                    </Action>
                    <Action>
                        Webserver.SetValue(u'AxialDimmerCount', u'0', False, False)
                    </Action>
                    <Action>
                        Webserver.SetValue(u'AxialLockCount', u'0', False, False)
                    </Action>
                    <Action>
                        Webserver.SetValue(u'AxialGDOCount', u'0', False, False)
                    </Action>
                    <Action>
                        Webserver.SetValue(u'AxialSensorCount', u'0', False, False)
                    </Action>
                </Macro>
            </Folder>
            <Folder Name="Build Menus'">
                <Macro Name="AxialControlHA: Get Switches">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initialize Switches">
                        EventGhost.PythonScript(u'import re\n\nresult = eg.plugins.AxialControlHA.ListLights()\nswitches = []\npayload = []\ncount = 0\nswitchcount = []\nfor x in result:\n    name = x\n    value = int(result[x][\'value\'])\n    deviceID = result[x][\'deviceID\']\n    last = result[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n\n    if value &gt; 0:\n        count = count + 1\n    value = str(value)\n    \n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate]\n    switches.append(payload)\n        \nswitches = str(switches)\nswitchesfull = "    " + switches\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialSwitchCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialSwitchCount\')\n    \neg.plugins.Webserver.WsBroadcastData(u\'axialswitches\', switchesfull, u\'\', None, None)\n\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Outlets">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initiliaze Outlets">
                        EventGhost.PythonScript(u'import re\n\n\nresult = eg.plugins.AxialControlHA.ListOutlets()\noutlets = []\npayload = []\ncount = 0\noutletcount = []\nfor x in result:\n    name = x\n    value = int(result[x][\'value\'])\n    deviceID = result[x][\'deviceID\']\n    last = result[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n                \n    if value &gt; 0:\n        count = count + 1\n    value = str(value)\n    \n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate]\n    outlets.append(payload)\n    \noutlets = str(outlets)\noutletsfull = "    " + outlets\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialOutletCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialOutletCount\')\n    \neg.plugins.Webserver.WsBroadcastData(u\'axialoutlets\', outletsfull, u\'\', None, None)\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Dimmers">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initiliaze Dimmers">
                        EventGhost.PythonScript(u'import re\n\nresult = eg.plugins.AxialControlHA.ListDimmers()\ndimmers = []\npayload = []\ncount = 0\n\nfor x in result:\n    name = x\n    value = int(result[x][\'value\'])\n    deviceID = result[x][\'deviceID\']\n    last = result[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n       \n    if value &gt; 0:\n        count = count + 1\n    value = str(value)\n    \n    \n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate]\n    dimmers.append(payload)\n    \ndimmers = str(dimmers)\ndimmersfull = "    " + dimmers\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialDimmerCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialDimmerCount\')\n\neg.plugins.Webserver.WsBroadcastData(u\'axialdimmers\', dimmersfull, u\'\', None, None)\n\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Locks">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initiliaze locks">
                        EventGhost.PythonScript(u'import re\n\n\nresult = eg.plugins.AxialControlHA.ListLocks()\nlocks = []\npayload = []\ncount = 0\n\nfor x in result:\n    name = x\n    value = int(result[x][\'value\'])\n    deviceID = result[x][\'deviceID\']\n    last = result[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n\n    \n    if value &gt; 0:\n        count = count = 1\n    value = str(value)\n    \n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate]\n    locks.append(payload)\n    \nlocks = str(locks)\nlocksfull = "    " + locks\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialLockCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialLockCount\')\n\neg.plugins.Webserver.WsBroadcastData(u\'axiallocks\', locksfull, u\'\', None, None)\n\n\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Garage Door Openers">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initilaze GDOs">
                        EventGhost.PythonScript(u'import re\n\nresult = eg.plugins.AxialControlHA.ListGarageDoorOpeners()\nGDOs = []\npayload = []\ncount = 0\n\nfor x in result:\n    name = x\n    value = int(result[x][\'value\'])\n    deviceID = result[x][\'deviceID\']\n    last = result[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n    \n    if value &gt; 0:\n        count = count + 1\n    value = str(value)\n    \n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate]\n    GDOs.append(payload)\n    \nGDOs = str(GDOs)\nGDOsfull = "    " + GDOs\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialGDOCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialGDOCount\')\n    \neg.plugins.Webserver.WsBroadcastData(u\'axialGDOs\', GDOsfull, u\'\', None, None)\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Motion &amp; Binary Sensors">
                    <Event Name=".WsClientConnected" />
                    <Action Name="Initiliaze Sensors">
                        EventGhost.PythonScript(u'import re\n\na = eg.plugins.AxialControlHA.ListMotion()\nsensors = []\npayload = []\ncount = 0\nfor x in a:\n    count = count + 1\n    name = x\n    value = str(a[x][\'value\'])\n    deviceID = str(a[x][\'deviceID\'])\n    last = a[x][\'lastUpdate\']\n    \n    m = re.search(\'day\', str(last))\n    if m is not None:\n        f = last.split(",")\n        lastUpdate = f[0] + " ago"\n    else:\n        ntime = last.split(":")\n        if str(ntime[0]) == "0":\n            if str(ntime[1]) == "00":\n                lastUpdate = "Just Now"\n            else:\n                lastUpdate = ntime[1] + " minutes ago"\n        else:\n            lastUpdate = ntime[0] + " hours ago"\n    \n    type = str(a[x][\'type\'])\n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate + \'||\' + type]\n    sensors.append(sorted(payload))\n    \nb = eg.plugins.AxialControlHA.ListLevelDisplayers()\nfor x in b:\n    count = count + 1\n    name = x\n    value = b[x][\'value\']\n    deviceID = str(b[x][\'deviceID\'])\n    try:\n        last = b[x][\'lastUpdate\']\n        m = re.search(\'day\', str(last))\n        if m is not None:\n            f = last.split(",")\n            lastUpdate = f[0] + " ago"\n        else:\n            ntime = last.split(":")\n            if str(ntime[0]) == "0":\n                if str(ntime[1]) == "00":\n                    lastUpdate = "Just Now"\n                else:\n                    lastUpdate = ntime[1] + " minutes ago"\n            else:\n                lastUpdate = ntime[0] + " hours ago"\n    except KeyError:\n        lastUpdate = ""\n    type = str(b[x][\'type\'])\n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + \'\' + \'||\' + type]\n    sensors.append(sorted(payload))\n        \nd = eg.plugins.AxialControlHA.ListEnergyDisplayers()\nfor x in d:\n    count = count + 1\n    name = x\n    value = d[x][\'value\']\n    deviceID = str(d[x][\'deviceID\'])\n    try:\n        last = d[x][\'lastUpdate\']\n        m = re.search(\'day\', str(last))\n        if m is not None:\n            f = last.split(",")\n            lastUpdate = f[0] + " ago"\n        else:\n            ntime = last.split(":")\n            if str(ntime[0]) == "0":\n                if str(ntime[1]) == "00":\n                    lastUpdate = "Just Now"\n                else:\n                    lastUpdate = ntime[1] + " minutes ago"\n            else:\n                lastUpdate = ntime[0] + " hours ago"\n    except KeyError:\n        lastUpdate = ""\n    type = str(d[x][\'type\'])\n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + \'\' + \'||\' + type]\n    sensors.append(sorted(payload))\n\nc = eg.plugins.AxialControlHA.ListBinary()\nfor x in c:\n    count = count + 1\n    name = x\n    value = c[x][\'value\']\n    deviceID = str(c[x][\'deviceID\'])\n    try:\n        lastUpdate = c[x][\'lastUpdate\']\n        m = re.search(\'day\', str(last))\n        if m is not None:\n            f = last.split(",")\n            lastUpdate = f[0] + " ago"\n        else:\n            ntime = last.split(":")\n            if str(ntime[0]) == "0":\n                if str(ntime[1]) == "00":\n                    lastUpdate = "Just Now"\n                else:\n                    lastUpdate = ntime[1] + " minutes ago"\n            else:\n                lastUpdate = ntime[0] + " hours ago"\n    except KeyError:\n        lastUpdate = ""\n    type = str(c[x][\'type\'])\n    payload = [name + \'||\' + deviceID + \'||\' + value + \'||\' + lastUpdate + \'||\' + type]\n    sensors.append(sorted(payload))\nsensors = str(sensors)\nsensorsfull = "    " + sensors\n\ncount = str(count)\neg.plugins.Webserver.SetValue(u\'AxialSensorCount\', count, False, False)\neg.plugins.Webserver.BroadcastValue(u\'AxialSensorCount\')\n    \neg.plugins.Webserver.WsBroadcastData(u\'axialsensors\', sensorsfull, u\'\', None, None)\n\n')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Get Scenes">
                    <Event Name=".WsClientConnected" />
                    <Action>
                        AxialControlHA.ListScenes()
                    </Action>
                    <Action>
                        EventGhost.PythonScript(u'scenes = {}\nscenecount = []\ncount = 0\nfor x in eg.result:\n    count = count + 1\n    sceneID = str(eg.result[x][\'sceneID\'])\n    scenes[x] = [x]\n    \nscenes = str(scenes)\nscenesfull = "    " + scenes\n\nscenecount = [\'scenecount\', count]\nscenecount = str(scenecount)\n\neg.plugins.Webserver.WsBroadcastData(u\'axialscenes\', scenesfull, u\'\', None, None)\neg.plugins.Webserver.WsBroadcastData(u\'axialpoweredcount\', scenecount, u\'\', None, None)')
                    </Action>
                </Macro>
            </Folder>
            <Folder Name="Actions">
                <Macro Name="AxialControlHA: Toggle Switch/Outlet/Dimmer: ">
                    <Event Name="Switch.False" />
                    <Event Name="Switch.True" />
                    <Event Name="Outlet.False" />
                    <Event Name="Outlet.True" />
                    <Event Name="Dimmer.True" />
                    <Event Name="Dimmer.False" />
                    <Action>
                        EventGhost.PythonScript(u'recentConnect = eg.plugins.Webserver.GetValue(u\'ws.recent.connection\', False)\nif recentConnect == "True":\n    eg.Exit()\n\nelse:\n    suffix = eg.event.suffix\n    if suffix == "True":\n        eg.plugins.AxialControlHA.TurnSwitchOn(eg.event.payload, u\'\')\n    \n    elif suffix == "False":\n        eg.plugins.AxialControlHA.TurnSwitchOff(eg.event.payload, u\'\')')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Toggle Lock/GDO: ">
                    <Event Name="Lock.False" />
                    <Event Name="Lock.True" />
                    <Event Name="GDO.False" />
                    <Event Name="GDO.True" />
                    <Action>
                        EventGhost.PythonScript(u'recentConnect = eg.plugins.Webserver.GetValue(u\'ws.recent.connection\', False)\nif recentConnect == "True":\n    eg.Exit()\n\nelse:\n    suffix = eg.event.suffix\n    if suffix == "True" and eg.event.prefix == "Lock":\n        eg.plugins.AxialControlHA.LockDoor(eg.event.payload, u\'\')\n    \n    elif suffix == "False" and eg.event.prefix == "Lock":\n        eg.plugins.AxialControlHA.UnLockDoor(eg.event.payload, u\'\')\n        \n    elif suffix == "True" and eg.event.prefix == "GDO":\n        eg.plugins.AxialControlHA.OpenGarageDoor(eg.event.payload, u\'\')\n    \n    elif suffix == "False" and eg.event.prefix == "GDO":\n        eg.plugins.AxialControlHA.CloseGarageDoor(eg.event.payload, u\'\')')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Set Dimmer Switch Level:">
                    <Event Name="Dimmer.9715e934-929e-4232-97e0-a1e1c5653d83slider" />
                    <Event Name="Dimmer.f437a9ca-2ff5-4feb-b7d3-855d65f8dacfslider" />
                    <Event Name="Dimmer.c06eea43-b6b7-4c00-bf39-f2ae572e5521slider" />
                    <Event Name="Dimmer.efb54196-fa9d-4554-a31c-d0e81590e28cslider" />
                    <Event Name="Dimmer.3c010e35-e88c-422b-ac78-5e18b86e1e48slider" />
                    <Action>
                        EventGhost.PythonScript(u'i = eg.event.suffix.split("slide")\nid = str(i[0])\neg.plugins.AxialControlHA.SetDimmerLevel(id, eg.event.payload, u\'\')')
                    </Action>
                </Macro>
                <Macro Name="AxialControlHA: Activate Scene: ">
                    <Event Name="Axial.Control" />
                    <Action>
                        EventGhost.PythonCommand(u'eg.plugins.AxialControlHA.ActivateScene(eg.event.payload)')
                    </Action>
                </Macro>
            </Folder>
            <Macro Name="Webserver: Periodically broadcast data: AxialTimeUpdates">
                <Event Name=".WsClientConnected" />
                <Action Name="getAxialSwitchesTimeUpdates():">
                    EventGhost.PythonScript(u'import re\n\ndef getAxialTimeUpdates():\n    result = eg.plugins.AxialControlHA.ListAllDevices()\n    devices = []\n    payload = []\n    switchcount = 0\n    outletcount = 0\n    dimmercount = 0\n    lockcount = 0\n    GDOcount = 0\n\n    for x in result:\n        switchcount = int(switchcount)\n        dimmercount = int(dimmercount)\n        outletcount = int(outletcount)\n        GDOcount = int(GDOcount)\n        lockcount = int(lockcount)\n        name = x\n        value = int(float(result[x][\'value\']))\n        deviceID = result[x][\'deviceID\']\n        type = result[x][\'type\']\n        last = result[x][\'lastUpdate\']\n    \n        m = re.search(\'day\', str(last))\n        if m is not None:\n            f = last.split(",")\n            lastUpdate = f[0] + " ago"\n        else:\n            ntime = last.split(":")\n            h = int(ntime[0]) - 2\n            if h == -1:\n                h = 0\n            h = str(h)\n            m = ntime[1]\n\n            hr = re.search(\'0\', str(h))\n            if hr is not None:\n                min = re.search(\'00\', str(m))\n                if min is not None:\n                    lastUpdate = "Just Now"\n                else:\n                    lastUpdate = m + " minutes ago"\n            else:\n                lastUpdate = h + " hours ago"\n        \n        if type == 0:\n            if value &gt; 0:\n                switchcount = switchcount + 1\n                swithcount = str(switchcount)\n            value = str(value)\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n        \n        if type == 1:\n            if value &gt; 0:\n                dimmercount = dimmercount + 1\n                dimmercount = str(dimmercount)\n            value = str(value)\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n        \n        if type == 2:\n            if value &gt; 0:\n                outletcount = outletcount + 1\n                outletcount = str(outletcount)\n            value = str(value)\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n            \n        if type == 10:\n            if value &gt; 0:\n                lockcount = lockcount + 1\n                lockcount = str(lockcount)  \n            value = str(value)\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n            \n        if type == 20:\n            if value &gt; 0:\n                GDOcount = GDOcount + 1\n                GDOcount = str(GDOcount)\n            value = str(value)\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n    \n        if type == 6:\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n            \n        if type == 8:\n    \n            payload = [name, deviceID, value, lastUpdate]\n            devices.append(payload)\n            \n    devices = str(devices)\n    devicesfull = "    " + devices\n\n    eg.plugins.Webserver.SetValue(u\'AxialSwitchCount\', str(switchcount), False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialSwitchCount\')\n    eg.plugins.Webserver.SetValue(u\'AxialDimmerCount\', str(dimmercount), False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialDimmerCount\')\n    eg.plugins.Webserver.SetValue(u\'AxialOutletCount\', str(outletcount), False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialOutletCount\')\n    eg.plugins.Webserver.SetValue(u\'AxialLockCount\', str(lockcount), False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialLockCount\')\n    eg.plugins.Webserver.SetValue(u\'AxialGDOCount\', str(GDOcount), False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialGDOCount\')\n    \n    return devicesfull\n\neg.globals.getAxialTimeUpdates = getAxialTimeUpdates')
                </Action>
                <Action>
                    Webserver.WsStopBroadcastPeriodicTasks(u'AxialTimeUpdates')
                </Action>
                <Action>
                    Webserver.WsPeriodicallyBroadcastData(u'AxialTimeUpdates', u'{eg.globals.getAxialTimeUpdates()}', u'', False, 60.0)
                </Action>
            </Macro>
            <Macro Name="Update values from Event data">
                <Event Name="AxialControlHA.*" />
                <Action>
                    EventGhost.PythonScript(u'import time\nimport os\nimport codecs\nimport re\nfrom datetime import datetime\n\nvalue = int(float(eg.event.payload[\'value\']))\ntype = int(eg.event.payload[\'type\'])\nid = str(eg.event.payload[\'deviceID\'])\nname = eg.event.suffix\nts = time.time()\nnewTime = datetime.fromtimestamp(ts).strftime(\'%H:%M:%m:%d\')\n\nsCount = int(eg.plugins.Webserver.GetValue(u\'AxialSwitchCount\', False))\noCount = int(eg.plugins.Webserver.GetValue(u\'AxialOutletCount\', False))\ndCount = int(eg.plugins.Webserver.GetValue(u\'AxialDimmerCount\', False))\nlCount = int(eg.plugins.Webserver.GetValue(u\'AxialLockCount\', False))\nGdCount = int(eg.plugins.Webserver.GetValue(u\'AxialGDOCount\', False))\n\nif type == 0:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicFlipswitch\', u\'{eg.event.payload[\\\'deviceID\\\'], int(eg.event.payload[\\\'value\\\']), eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    if value == 255:\n        sCount = str(sCount + 1)\n    elif value == 99:\n        sCount = sCount\n    else:\n        sCount = str(sCount - 1)\n    eg.plugins.Webserver.SetValue(u\'AxialSwitchCount\', sCount, False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialSwitchCount\')\nelif type == 1:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicFlipswitch\', u\'{eg.event.payload[\\\'deviceID\\\'], int(eg.event.payload[\\\'value\\\']), eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    if value &gt; 0:\n        dCount = str(dCount + 1)\n    else:\n        dCount = str(dCount - 1)\n    eg.plugins.Webserver.SetValue(u\'AxialDimmerCount\', dCount, False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialDimmerCount\')\nelif type == 2:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicFlipswitch\', u\'{eg.event.payload[\\\'deviceID\\\'], int(eg.event.payload[\\\'value\\\']), eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    if value == 255:\n        oCount = str(oCount + 1)\n    elif value == 99:\n        oCount = oCount\n    else:\n        oCount = str(oCount - 1)\n    eg.plugins.Webserver.SetValue(u\'AxialOutletCount\', oCount, False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialOutletCount\')\nelif type == 10:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicFlipswitch\', u\'{eg.event.payload[\\\'deviceID\\\'], int(eg.event.payload[\\\'value\\\']), eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    if value == 255:\n        lCount = str(lCount + 1)\n    else:\n        lCount = str(lCount - 1)\n    eg.plugins.Webserver.SetValue(u\'AxialLockCount\', lCount, False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialLockCount\')\nelif type == 20:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicFlipswitch\', u\'{eg.event.payload[\\\'deviceID\\\'], int(eg.event.payload[\\\'value\\\']), eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    if value == 255:\n        GdCount = str(GdCount + 1)\n    else:\n        GdCount = str(GdCount - 1)\n    eg.plugins.Webserver.SetValue(u\'AxialGDOCount\', GdCount, False, False)\n    eg.plugins.Webserver.BroadcastValue(u\'AxialGDOCount\')\n\nif type == 6 and value == 255:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicText\', u\'{eg.event.payload[\\\'deviceID\\\'], "Sensor Open", eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\nelif type == 6 and value == 0:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicText\', u\'{eg.event.payload[\\\'deviceID\\\'], "Sensor Closed", eg.event.payload[\\\'type\\\']}\', u\'\', None, None)\n    \nif type == 8 and value == 255:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicText\', u\'{eg.event.payload[\\\'deviceID\\\'], "Motion Detected", eg.event.payload[\\\'type\\\'], eg.event.suffix}\', u\'\', None, None)\nelif type == 8 and value == 0:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicText\', u\'{eg.event.payload[\\\'deviceID\\\'], "Quiet", eg.event.payload[\\\'type\\\'], eg.event.suffix}\', u\'\', None, None)\n    \nif type == 11:\n    eg.plugins.Webserver.WsBroadcastData(u\'DynamicText\', u\'{eg.event.payload[\\\'deviceID\\\'], eg.event.payload[\\\'value\\\'], eg.event.payload[\\\'type\\\'], eg.event.suffix}\', u\'\', None, None)\n\n\n')
                </Action>
            </Macro>
        </Folder>
    </Folder>
</EventGhost>
