Z-wave ramki rozszerzone a Indigo

  • 3 Odpowiedzi
  • 14094 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline sztywniak

  • ***** 601
  • 23
  • Nazwa i wersja ID: HC2 3.60/ 4.37, Vera 1.7.1018
Z-wave ramki rozszerzone a Indigo
« dnia: Kwiecień 21, 2015, 09:59:17 pm »
Pytania do Richo :
1. czy Indigo potrafi obsługiwać ramki rozszerzone stosowane przez niektórych producentów modułów z-wave i czy jest to trudne do konfiguracji
- Fibaro door/window np dodatkowy dallas, stan baterii
- Qubino - dodatkowy czujnik
- Fibaro - RGBW
2. Czy mógłbym Cię prosić o zrzutkę ekranów kilku takich urządzeń?
3. Przy okazji mógłbyś dać zrzutkę jakiejś przykładowej sceny typu IF sensor =1 then light.on()
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: Z-wave ramki rozszerzone a Indigo
« Odpowiedź #1 dnia: Kwiecień 22, 2015, 08:52:19 am »
Pytania do Richo :
1. czy Indigo potrafi obsługiwać ramki rozszerzone stosowane przez niektórych producentów modułów z-wave i czy jest to trudne do konfiguracji
- Fibaro door/window np dodatkowy dallas, stan baterii
- Qubino - dodatkowy czujnik
- Fibaro - RGBW
2. Czy mógłbym Cię prosić o zrzutkę ekranów kilku takich urządzeń?
3. Przy okazji mógłbyś dać zrzutkę jakiejś przykładowej sceny typu IF sensor =1 then light.on()

Ad1.
-Door/window - Dallasy(jeden), stan bateri bez problemów
-Qubino - częściowo, kończą nową wersję apki na iOS i mówią, że potem w pełni je obsłużą
-RGBW tak jeśli chodzi o obsługę i predefiniowane programy ale nie bardzo jeśli chodzi o nowe programy. Można pobawić się w RAW z-wave ale nie testowałem. Tu jest link do postu : http://forums.indigodomo.com/viewtopic.php?f=58&t=12986&hilit=rgbw

Ad.2 poniżej a 3 w kolejnym poście bo za dużo załączników (graficzny stan baterii jest stworzony w postaci stronki przeze mnie):

« Ostatnia zmiana: Kwiecień 22, 2015, 09:23:53 am wysłana przez richo »
richo
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: Z-wave ramki rozszerzone a Indigo
« Odpowiedź #2 dnia: Kwiecień 22, 2015, 08:56:49 am »
Ad.3
W załącznikach:
-przykładowa definicja triggera (mozna też pisać skrypty)
- lista kilku trigerów
« Ostatnia zmiana: Kwiecień 22, 2015, 09:20:22 am wysłana przez richo »
richo
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: Z-wave ramki rozszerzone a Indigo
« Odpowiedź #3 dnia: Kwiecień 22, 2015, 09:03:53 am »
A tu jeszcze przykłądowy skrypt w Pytonie do testowania stanu baterii a także sprawdzania czy urządzenie bateryjne w ciągu ostatnich 24h sie meldowało - jeśli nie to oznacza że bateria siadła
Wykorzystałem standardowy skrypt z Indigo i dopasowałem go do swoich potrzeb.Wysyła powiadomienia oraz ustawia alert na panelu. Jak widać można dobrać się do wszystkich właściwości urządzeń:

try:
import indigo
except ImportError:
print "Indigo control scripts can only be used from within Indigo"
raise ImportError
from datetime import datetime, timedelta

## Convenience log function
def log(msg):
indigo.server.log(msg, type="Low Battery Notification Script")

## Constants and global variables
kTrueStringValues = ['true', '1', 't', 'y', 'yes']
notifications = 0

## Get default overrides from variables
# Battery Threshold
v = indigo.variables.get("lbnBatteryThreshold", None)
try:
batteryThreshold = int(v.value)
except:
# default to 5%
batteryThreshold = 5

# Time Threshold
v = indigo.variables.get("lbnTimeThreshold", None)
try:
timeThreshold = int(v.value)
except:
# default to anything older than 24 hours
timeThreshold = 0

lowBatteryDevices = '' #RS

## Start main part of script
log("Skrypt sprawdzania baterii dla stanu minimum %i%% i braku raportowania przez %i dni" % (batteryThreshold, timeThreshold))
## Loop through devices looking for devices that have battery levels
for device in indigo.devices:
if device.batteryLevel != None and device.enabled:
skipNotification = False
days_since_last_update = (datetime.now() - device.lastChanged).days
# get any device specific props added using the Global Property Manager plugin
deviceSpecificProps = device.globalProps.get("com.indigodomo.indigoserver", None)
if deviceSpecificProps:
# if there were some props there, get the ones we care about or just use the defaults
try: batteryThreshold = int(deviceSpecificProps.get("lbnBatteryThreshold", batteryThreshold))
except: pass
try: timeThreshold = int(deviceSpecificProps.get("lbnTimeThreshold", timeThreshold))
except: pass
skipNotificationString = deviceSpecificProps.get("lbnSkipNotification", "false")
# We're trying to be forgiving in terms of what's entered for the skip field, so we lowercase
# it and test it against the list defined above.
if skipNotificationString.lower() in kTrueStringValues:
skipNotification = True
# Here's the meat: if the battery crosses the threshold or the last update does and we didn't find a skip flag
if (device.batteryLevel < batteryThreshold or days_since_last_update > timeThreshold) and not skipNotification:
log("Slaba bateria w '%s' = %i%% nie raportuje od %i dni..." % (device.name, device.batteryLevel, timeThreshold))
notifications += 1
lowBatteryDevices = lowBatteryDevices + device.name + '=' + str(device.batteryLevel) + '%  '  #RS

if notifications == 0:
log("Nie ma slabych baterii")
indigo.variable.updateValue(1412296796, value = 'false') #RS "alert_baterie"
else:
indigo.server.sendEmailTo("admin@mac.com", subject='Raport słabych baterii', body=lowBatteryDevices) #RS
indigo.variable.updateValue(1412296796, value = 'true') #RS "alert_baterie"
richo