Skip to content
This repository was archived by the owner on Aug 14, 2019. It is now read-only.

Commit

Permalink
Fix topics
Browse files Browse the repository at this point in the history
  • Loading branch information
rroemhild committed Nov 14, 2018
1 parent e97efe4 commit f27a3f0
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 22 deletions.
7 changes: 3 additions & 4 deletions dht22/homie/node/dht22.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

class DHT22(HomieNode):

def __init__(self, name="Temp & Humi", self, pin=4, interval=60, pull=-1):
def __init__(self, name="Temp & Humi", pin=4, interval=60, pull=-1):
super(DHT22, self).__init__(name=name, interval=interval)
self.node_id = b"dht22"
self.dht22 = dht.DHT22(Pin(pin, Pin.IN, pull))
Expand All @@ -20,17 +20,16 @@ def __str__(self):

def get_properties(self):
yield (b"dht22/$name", self.name)
yield (b'dht22/$type', b'DHT22')
yield (b'dht22/$properties', b'temperature,humidity')

# temperature
yield (b'dht22/$type', b'temperature')
yield (b'dht22/temperature/$name', b'Temperature')
yield (b'dht22/temperature/$unit', b'°C')
yield (b'dht22/temperature/$datatype', b'float')
yield (b'dht22/temperature/$format', b'20.0:60')
yield (b'dht22/temperature/$format', b'-40:80')

# humidity
yield (b'dht22/$type', b'humidity')
yield (b'dht22/humidity/$name', b'Humidity')
yield (b'dht22/humidity/$unit', b'%')
yield (b'dht22/humidity/$datatype', b'float')
Expand Down
33 changes: 16 additions & 17 deletions relais/homie/node/relais.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import settings
from homie.node.relay import Relais
from homie import HomieDevice
from homie.device import HomieDevice
def main():
homie = HomieDevice(settings)
homie.add_node(Relay(pin=[2, 4]))
homie.add_node(Relay(pin=(2, 4))
homie.start()
Expand All @@ -18,30 +18,29 @@ def main():
from homie.node import HomieNode


ONOFF = {b'off': 0, b'on': 1, 0: b'off', 1: b'on'}
ONOFF = {b"false": 0, b"true": 1, 0: b"false", 1: b"true"}


class Relais(HomieNode):

def __init__(self, name="Relais", pin=(4,), interval=1):
def __init__(self, name="Relais", pin=(4,), interval=1, value=0):
super().__init__(name=name, interval=interval)
self.node_id = b"relais[]"
self.has_new_update = True
self.relais = []
self.onoff = ONOFF

# activate pins
for p in pin:
p = Pin(p, Pin.OUT, value=0)
p = Pin(p, Pin.OUT, value=value)
self.relais.append(p)

def __str__(self):
pass

@property
def subscribe(self):
for relais in range(len(self.relais)):
yield b'relais/relais_{}/power/set'.format(relais + 1)
for r in range(len(self.relais)):
yield 'relais/relais_{}/power/set'.format(r + 1).encode()

def get_properties(self):
yield (b'relais/$type', b'relais')
Expand All @@ -50,14 +49,14 @@ def get_properties(self):
yield (b'relais/power/$settable', b"true")
yield (b"relais/power/$datatype", b"boolean")

for relais in len(self.relais):
name = 'Relais {}'.format(relais + 1).encode()
prop = b'relais/relais_{}'.format(relais + 1)
yield (b'/'.join((prop, '/$name')), name)
for r in range(len(self.relais)):
name = 'Relais #{}'.format(r + 1)
t = 'relais/relais_{}/$name'.format(r + 1).encode()
yield (t, name)

def callback(self, topic, message):
relais = self.get_property_id_from_topic(topic) - 1
self.relais[relais].value(self.onoff[message])
r = self.get_property_id_from_set_topic(topic) - 1
self.relais[r](ONOFF[message])
self.has_new_update = True

def has_update(self):
Expand All @@ -67,6 +66,6 @@ def has_update(self):
return False

def get_data(self):
for relais in range(len(self.relais)):
topic = b'relais/relais_{}/power'.format(relais + 1)
yield (topic, self.onoff[self.relais[relais]()])
for r in range(len(self.relais)):
t = 'relais/relais_{}/power'.format(r + 1).encode()
yield (t, ONOFF[self.relais[r]()])
3 changes: 2 additions & 1 deletion switch/homie/node/switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

class Switch(HomieNode):

def __init__(self, type, name="Switch", pin=4, interval=1):
def __init__(self, type="switch", name="Switch", pin=4, interval=1):
super().__init__(name=name, interval=interval)
self.type = type
self.node_id = b"switch"
self.switch = Pin(pin, Pin.IN, Pin.PULL_UP)
self.last_status = None
Expand Down
3 changes: 3 additions & 0 deletions wifi/homie/node/wifi.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ def __repr__(self):
def __str__(self):
return 'WIFI: rssi = {}'.format(self.rssi)

def get_properties(self):
yield ()

def update_data(self):
ssids = utils.wlan.scan()
for ssid in ssids:
Expand Down

0 comments on commit f27a3f0

Please sign in to comment.