SainSmart iMatic with RJ45 Remote Controll 16 Channels

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

SainSmart iMatic with RJ45 Remote Controll 16 Channels

Сообщение immortal » Сб авг 13, 2016 8:42 pm

Есть модуль реле http://www.sainsmart.com/sainsmart-imat ... d-ios.html
и исходники для андроид, надо прикрутить к МД
Последний раз редактировалось immortal Вт авг 16, 2016 7:25 am, всего редактировалось 1 раз.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels W

Сообщение immortal » Пн авг 15, 2016 10:36 pm

пока нарыл скрипт на питоне

Код: Выделить всё

from socket import *
import sys

if len(sys.argv) != 3:
    sys.exit(2)

relay = str(sys.argv[1])
state = str(sys.argv[2])
data_send = "FD0220"

if int(relay) <= 8:
    data_send += "0" + relay
    if int(state) == 0:
        data_send += "00"
    elif int(state) == 1:
        data_send += "01"

elif int(relay) == 9:
    data_send += "F8"
    if int(state) == 0:
        data_send += "80"
    elif int(state) == 1:
        data_send += "88"

data_send += "5D"

s = socket(AF_INET, SOCK_STREAM)
s.connect(("192.168.1.4", 3000))
s.send(data_send.decode('hex'))
data = s.recv(4)
print(data.encode('hex'))
 
запуск скрипта:
relay.py 8 1
relay.py 8 0

включает 8 реле и выключает.
не пробывал, взято отсюда: https://codecardinal.wordpress.com/2015 ... x-windows/
Последний раз редактировалось immortal Вт авг 16, 2016 7:22 am, всего редактировалось 1 раз.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels W

Сообщение immortal » Пн авг 15, 2016 10:37 pm

вот тут есть для виндовс https://codecardinal.wordpress.com/2015 ... c-windows/
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Pooh
Сообщения: 74
Зарегистрирован: Вт дек 31, 2013 2:03 pm
Откуда: Самара
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels W

Сообщение Pooh » Вт авг 16, 2016 5:27 am

А где там в нем Wi-Fi?
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels W

Сообщение immortal » Вт авг 16, 2016 7:26 am

Pooh писал(а):А где там в нем Wi-Fi?
где то попадался с wi-fi такой, не могу найти, у меня без wi-fi
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels

Сообщение immortal » Ср авг 17, 2016 5:09 pm

переделал скрипт под модуль на 16 реле.

Код: Выделить всё

from socket import *
import sys

if len(sys.argv) != 3:
    sys.exit(2)

relay = str(sys.argv[1])
state = str(sys.argv[2])
data_send = "FD0220"

if int(relay) <= 16:
    if int(relay) <= 9:
        data_send += "0" + relay
    else:
    if int(relay) == 10: 
        data_send += "0A"
    if int(relay) == 11: 
        data_send += "0B"
    if int(relay) == 12: 
        data_send += "0C"
    if int(relay) == 13: 
        data_send += "0D"
    if int(relay) == 14: 
        data_send += "0E"
    if int(relay) == 15: 
        data_send += "0F"
    if int(relay) == 16: 
        data_send += "10"

    if int(state) == 0:
        data_send += "00"
    elif int(state) == 1:
        data_send += "01"

data_send += "5D"

s = socket(AF_INET, SOCK_STREAM)
s.connect(("192.168.1.4", 3000))
s.send(data_send.decode('hex'))
data = s.recv(4)
print(data.encode('hex'))
 
запуск:
imatic.py 1 0 - отключает 1-е реле
imatic.py 12 1 - включает 12-е реле
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels

Сообщение immortal » Ср авг 17, 2016 9:51 pm

использование в методе TurnOff Объекта Switch1 код php

Код: Выделить всё

exec ("python /var/www/imatic.py 1 0"); 
в методе TurnOn

Код: Выделить всё

exec ("python /var/www/imatic.py 1 1"); 
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels W

Сообщение immortal » Чт авг 18, 2016 11:22 pm

Pooh писал(а):А где там в нем Wi-Fi?
http://www.sainsmart.com/sainsmart-imat ... d-ios.html
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1112
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 384 раза
Контактная информация:

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels

Сообщение immortal » Сб авг 20, 2016 1:18 pm

Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
klishinma
Сообщения: 3
Зарегистрирован: Вт мар 06, 2018 6:37 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: SainSmart iMatic with RJ45 Remote Controll 16 Channels

Сообщение klishinma » Вт мар 06, 2018 6:44 pm

в связи с тем, что в Python больше не поддерживается декодирование str.decode(), и вообще отправка в сокет бинарного содержимого невозможна, данный код не работает. Или я чего то не понимаю?
Ответить