comparison service/rdf_to_mqtt/rdf_to_mqtt.py @ 1703:80b01d548b9c

add new devs, factor out to devs.py
author drewp@bigasterisk.com
date Sat, 23 Oct 2021 13:14:45 -0700
parents ac1ae0c21bb0
children 3f4b447d65f5
comparison
equal deleted inserted replaced
1702:ac1ae0c21bb0 1703:80b01d548b9c
13 from greplin.scales.cyclonehandler import StatsHandler 13 from greplin.scales.cyclonehandler import StatsHandler
14 from mqtt_client import MqttClient 14 from mqtt_client import MqttClient
15 from rdflib import Namespace 15 from rdflib import Namespace
16 from standardservice.logsetup import log, verboseLogging 16 from standardservice.logsetup import log, verboseLogging
17 from twisted.internet import reactor 17 from twisted.internet import reactor
18 18 from devs import devs
19 import rdf_over_http 19 import rdf_over_http
20 20
21 ROOM = Namespace('http://projects.bigasterisk.com/room/') 21 ROOM = Namespace('http://projects.bigasterisk.com/room/')
22 22
23 STATS = scales.collection( 23 STATS = scales.collection(
24 '/root', 24 '/root',
25 scales.PmfStat('putRequests'), 25 scales.PmfStat('putRequests'),
26 scales.PmfStat('statement'), 26 scales.PmfStat('statement'),
27 scales.PmfStat('mqttPublish'), 27 scales.PmfStat('mqttPublish'),
28 ) 28 )
29
30 devs = {
31 ROOM['kitchenLight']: {
32 'root': 'h801_skylight',
33 'hasWhite': True,
34 },
35 ROOM['kitchenCounterLight']: {
36 'root': 'h801_counter',
37 'hasWhite': True,
38 },
39 ROOM['livingLampShelf']: { 'root': 'sonoff_0/switch/sonoff_basic_relay/command', 'values': 'binary', },
40 ROOM['livingLampMantleEntry']: { 'root': 'sonoff_1/switch/sonoff_basic_relay/command', 'values': 'binary', },
41 ROOM['livingLampMantleChair']: { 'root': 'sonoff_2/switch/sonoff_basic_relay/command', 'values': 'binary', },
42 ROOM['livingLampToyShelf']: { 'root': 'sonoff_3/switch/sonoff_basic_relay/command', 'values': 'binary', },
43 ROOM['livingLampPiano']: { 'root': 'sonoff_4/switch/sonoff_basic_relay/command', 'values': 'binary', },
44 ROOM['theater']: {
45 'root': 'theater_blaster/ir_out',
46 'values': 'theaterOutputs',
47 },
48 ROOM['bedHeadboard']: {
49 'root': 'bed/light/headboard/command',
50 'hasWhite': True,
51 },
52 # https://github.com/Koenkk/zigbee2mqtt.io/blob/new_api/docs/information/mqtt_topics_and_message_structure.md#general
53 ROOM['frontRoom1']: { 'root': 'zigbee-dash/frontRoom1/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
54 ROOM['frontRoom2']: { 'root': 'zigbee-dash/frontRoom2/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
55 ROOM['asherCeiling']: { 'root': 'zigbee-frontbed/0xf0d1b80000022c86/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
56 ROOM['asherBedBar']: { 'root': 'bed_bar_asher/light/rgb/command', 'hasBrightness': True, 'defaults': {}},
57 ROOM['stairTop']: { 'root': 'zigbee-dash/stairTop/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
58 ROOM['noname1']: { 'root': 'zigbee-bang/0xf0d1b8000001ffc6/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
59 ROOM['noname2']: { 'root': 'zigbee-bang/0xf0d1b80000023583/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
60 ROOM['noname3']: { 'root': 'zigbee-bang/0xf0d1b80000023708/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
61 ROOM['noname4']: { 'root': 'zigbee-bang/0xf0d1b80000022adc/set', 'hasBrightness': True, 'defaults': { 'transition': 0, } },
62 }
63 29
64 30
65 class OutputPage(PrettyErrorHandler, cyclone.web.RequestHandler): 31 class OutputPage(PrettyErrorHandler, cyclone.web.RequestHandler):
66 32
67 @STATS.putRequests.time() 33 @STATS.putRequests.time()