from idiotic.item import Toggle, Trigger, Number, Group, display_unit
from idiotic import instance as c

Toggle("Entertainment Room Light",
       bindings={"x10": {
           "code": "a13"
       }},
       tags=("entertainment_room", "light"))
Toggle("Entertainment Room Air Conditioner",
       tags=("entertainment_room", "ac", "climate"))
Toggle("Entertainment Room Living Room Door",
       tags=("entertainment_room", "living_room", "door", "occupancy", "nyi"))

Toggle("Entertainment Room Laundry Room Door",
       tags=("entertainment_room", "laundry_room", "door", "occupancy"))
Trigger("Entertainment Room Motion",
        tags=("entertainment_room", "motion", "occupancy"))

Number("Entertainment Room Temperature",
       display=display_unit("C"),
       bindings={"http": {
           "pull": (60, "vinyl:8081/temp", None, float)
       }},
       tags=("entertainment_room", "temperature", "climate",
             "webui.show_sparkline", "webui.readonly"))
Number("Entertainment Room Humidity",
       display=Number.DisplayWholePercent,
       bindings={"http": {
           "pull": (60, "vinyl:8081/hum", None, float)
       }},
       tags=("entertainment_room", "humidity", "climate",
Esempio n. 2
0
       tags=("music_room", "light", "alexa.exclude_iot"))

Dimmer("Music Room Lamp",
       bindings={"wink": {"name": "Music Desk Lamp"}},
       tags=("music_room", "light"))

Group("Music Room Lights",
      tags=("living_room", "light"),
      command_send=True,
      members=c.items.with_tags({'light', 'music_room'}))

Trigger("Music Room Motion",
        tags=("music_room", "motion", "occupancy", "nyi"))

Toggle("Music Room Door",
       display=Toggle.DisplayOpenClosed,
       tags=("music_room", "hallway", "door", "occupancy", "nyi"))

Number("Music Room Temperature",
       display=display_unit("C"),
       bindings={"http": {"pull": "cheerilee:8081/temp"}},
       tags=("music_room", "temperature", "climate", "webui.show_sparkline",
           "webui.readonly"))

Number("Music Room Humidity",
       display=Number.DisplayWholePercent,
       bindings={"http": {"pull": "cheerilee:8081/hum"}},
       tags=("music_room", "humidity", "climate", "webui.show_sparkline",
           "webui.readonly"))

Toggle("Music Room Air Conditioner",
Esempio n. 3
0
from idiotic.item import Toggle, Trigger, Number, Group, Motor

Toggle("Garage Lights",
       bindings={"x10": {
           "code": "c8"
       }},
       tags=("garage", "light"))

Toggle("Garage Counter Lights", tags=("garage", "light", "nyi"))

Toggle("Garage Purple Lights", tags=("garage", "light", "nyi"))

Toggle("Garage Door",
       display=Toggle.DisplayOpenClosed,
       bindings={
           "http": {
               "pull": (15, "thegreatandpowerfultrixie:8081/door?action=get",
                        None, lambda s: s.startswith("OPEN")),
               "push":
               [("on", "thegreatandpowerfultrixie:8081/door?action=trigger"),
                ("off", "thegreatandpowerfultrixie:8081/door?action=close")]
           }
       },
       tags=("garage", "external_door"),
       aliases={
           "open": "on",
           "close": "off"
       })

Motor("Garage Projector Screen",
      display=Motor.DisplayDownUp,
Esempio n. 4
0
people = [
    ("Dylan", [
        "dylanchromebook",
        "dylancell",
    ]),
    ("Mark", [
        "dom",
        "dom-wired",
        "markcell",
    ]),
    ("Sasha", [
        "mosaic",
        "sashacell",
    ]),
    ("Jerry", [
        "jerry",
        "jerryphone",
    ]),
]

for name, devices in people:
    Toggle(name + " Presence",
           bindings={
               "network": {
                   "action": "ping",
                   "hosts": devices,
                   "interval": 60
               }
           },
           tags=("presence", "presence_" + name.lower()))
Esempio n. 5
0
from idiotic.item import Toggle, Number
from idiotic import instance as c
from idiotic.modutils import require_items

require_items('living')
require_items('office')
require_items('bedroom')
require_items('music')
require_items('entertainment')
require_items('hall')

Toggle("Furnace",
       tags=("heat", "webui.show_disable"),
       bindings={"x10": {
           "code": "d1"
       }})

c.modules.thermostat.Thermostat(
    "Boiler",
    tags=(
        "webui.show_disable",
        "heat",
    ),
    heaters=[
        c.items.furnace,
    ],
    temps={
        c.items.living_room_temperature: 1,
        c.items.office_temperature: 1,
        c.items.bedroom_temperature: 1,
        c.items.music_room_temperature: 1,
Esempio n. 6
0
from idiotic.item import Toggle, Trigger, Number, Group

Toggle("Outside Side Light",
       tags=("outside", "light", "nightlight"),
       bindings={"x10": {
           "code": "a8"
       }})
Toggle("Outside Front Light",
       tags=("outside", "light", "nightlight"),
       bindings={"x10": {
           "code": "a9"
       }})
Esempio n. 7
0
from idiotic.item import Toggle, Trigger, Number, Group, Dimmer, display_unit
from idiotic import instance as c

Toggle("Office Light",
       bindings={"x10": {
           "code": "b4"
       }},
       tags=("office", "light"))

Trigger("Office Motion", tags=("office", "motion", "occupancy"))

Toggle("Office Door",
       display=Toggle.DisplayOpenClosed,
       tags=("office", "hallway", "door", "occupancy", "nyi"))

Number("Office Temperature",
       display=display_unit("C"),
       bindings={"http": {
           "pull": "pinkie:8081/temp"
       }},
       tags=("office", "temperature", "climate", "webui.show_sparkline",
             "webui.readonly"))

Number("Office Humidity",
       display=Number.DisplayWholePercent,
       bindings={"http": {
           "pull": "pinkie:8081/hum"
       }},
       tags=("office", "humidity", "climate", "webui.show_sparkline",
             "webui.readonly"))
Esempio n. 8
0
from idiotic.item import Toggle, Trigger, Number, Group

Toggle("Laundry Room Light",
       tags=("laundry_room", "light"),
       bindings={"x10": {"code": "a10"}})

Trigger("Laundry Room Motion",
        tags=("laundry_room", "motion", "occupancy"))

Toggle("Laundry Room Door",
       display=Toggle.DisplayOpenClosed,
       tags=("laundry_room", "exterior_door", "occupancy", "nyi"))
Esempio n. 9
0
from idiotic.item import Toggle, Trigger, Number, Group, Dimmer, display_unit
from idiotic.scene import Scene
from idiotic import instance as c

Group("Living Room Lamp",
      display=Toggle.DisplayOnOff,
      tags=("living_room", "light", "nightlight"),
      commands=False,
      command_send=True)

Toggle("Turtle Light",
       tags=("living_room", "light"),
       bindings={"x10": {
           "code": "a5"
       }})

livingRoomAC = Toggle(
    "Living Room Air Conditioner",
    bindings={"modlet": {
        "device": "garage",
        "control": True
    }},
    tags=("living_room", "ac", "climate"))

Toggle("Front Door",
       display=Toggle.DisplayOpenClosed,
       tags=("living_room", "exterior_door", "occupancy", "nyi"))
Trigger("Living Room Motion", tags=("living_room", "motion", "occupancy"))
Toggle("Alert Beacon", tags=("living_room", "light", "notification", "nyi"))
Toggle("Lava Lamp", tags=("living_room", "light", "nyi"))
Toggle("Black Light", tags=("living_room", "light", "nyi"))
Esempio n. 10
0
from idiotic.item import Toggle, Trigger, Number, Group, Dimmer, display_unit
from idiotic import instance as c

Dimmer("Bedroom Desk Lamp",
       bindings={"wink": {
           "name": "Dylan Desk Lamp"
       }},
       tags=("bedroom", "light", "alexa.exclude_iot"))

Toggle("Bedroom Light",
       bindings={"http": {
           "push": "rarity:8081/downlight"
       }},
       tags=("bedroom", "light"),
       ignore_redundant=True)

Toggle("Bedroom Mood Light", tags=("bedroom", "light", "nyi"))

Toggle("Bedroom Fan",
       bindings={
           "http": {
               "push": [("on", "rarity:8081/high"),
                        ("off", "rarity:8081/fanoff")]
           }
       },
       tags=("bedroom", "fan", "climate"))

Toggle("Bedroom Air Conditioner",
       tags=("bedroom", "ac", "climate"),
       bindings={"modlet": {
           "device": "bedroom",
Esempio n. 11
0
from idiotic.item import Toggle, Trigger, Number, Group
from idiotic.scene import Scene

Toggle("Fog Machine",
       tags=("garage", ),
       bindings={
           "http": {
               "push": [("on", "discord:8081/fog?state=0"),
                        ("off", "discord:8081/fog?state=1")]
           }
       })
Esempio n. 12
0
from idiotic.item import Toggle, Trigger, Number, Group, Text, display_unit

Toggle("Kitchen Light",
       tags=("kitchen", "light", "nightlight"),
       bindings={"x10": {
           "code": "a2"
       }})
Toggle("Kitchen Counter Light",
       tags=("kitchen", "light"),
       bindings={"x10": {
           "code": "a4"
       }})
Toggle("Kitchen Table Light",
       tags=("kitchen", "light", "nightlight"),
       bindings={"x10": {
           "code": "a3"
       }})
Toggle("Kitchen Stove Light",
       tags=("kitchen", "light", "nyi"),
       bindings={"x10": {
           "code": "a7"
       }})
Toggle("Coffee Maker", tags=("kitchen", "food", "nyi"))
Toggle("Kettle",
       tags=("kitchen", "food", "nyi"),
       bindings={
           "http": {
               "push": [("on", "kimiko.hackafe.net/teakettle/hold/600"),
                        ("off", "kimiko.hackafe.net/teakettle/hold/1")]
           }
       })
Esempio n. 13
0
from idiotic.item import Toggle, Trigger, Number, Group

Toggle("Bathroom Light",
       tags=("bathroom", "light"),
       bindings={"x10": {
           "code": "b3"
       }})

Toggle("Bathroom Door",
       display=Toggle.DisplayOpenClosed,
       tags=("bathroom", "door"),
       bindings={
           "sign": {
               "commands": ("on", {
                   "message": "Bathroom Occupied",
                   "effects": ["bounce_x"]
               }, "off")
           }
       })