Modul 39_IMATIC.pm für SainSmart iMatic 8 Network Relay Card

Begonnen von epsrw1, 06 Dezember 2015, 15:23:25

Vorheriges Thema - Nächstes Thema

epsrw1

Zitat von: gNomeX am 22 Februar 2016, 08:16:20
Guten morgen.

ist es möglich ein on-for-timer in das modul ein zu bauen?

Hallo,
das schau ich mir mal an und bau das ein sobald ich dazu komme die nächste Version zu basteln. Bis dahin bitte ich Dich einfach "at" zu benutzen.
LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

gNomeX

Ja da arbeite ich mich gerade ein.

Danke erstmal.

Und danke für das Modul .



Gesendet von meinem SM-G900F mit Tapatalk


The-Holgi

Hört sich interessant an, hier ist übrigens beschrieben wie man die ip Adresse ändert:
https://s3-ap-northeast-1.amazonaws.com/sain-amzn/20/20-018-922/change+ip.zip

Gruß Holgi
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

epsrw1

Zitat von: The-Holgi am 23 Februar 2016, 14:10:47
Hört sich interessant an, hier ist übrigens beschrieben wie man die ip Adresse ändert:
https://s3-ap-northeast-1.amazonaws.com/sain-amzn/20/20-018-922/change+ip.zip
Gruß Holgi
Danke, ich hatte ganz vergessen das in der Dokumentation zu erwähnen. Ist jetzt auch im Wiki drin.
Ich habe keine Ahnung, aber davon wenigstens ganz viel

gNomeX

Moin.

Habe es erstmal mit ReadingsProxy gehändelt.

. .. ist vieleicht nicht die sauberste Lösung aber es läuft.

Gesendet von meinem SM-G900F mit Tapatalk


Raemsna

Zitat von: rasti am 17 Januar 2016, 16:52:55
Hallo,

ich habe mir das o.g. Billigboard aus China kommen lassen.
Also die IP kann man im Webinterface des Relaisserver frei einstellen, ich bei mir auf 192.168.178.11

Eingebunden in fhem habe ich es einfach mit folgendem Code

Hallo zusammen,

ich habe auch das Billig-LAN-Interface analog rasti gekauft und es funktioniert bei mir wunderbar mit zwei 8-fach Relaiskarten aus China.
Den Code habe etwas vereinfacht und mit DOIF gelöst.
Vorteile in meinen Augen: on-for-timer, off-for-timer kann nun mit dem dummy genutzt werden, Aufruf des Servers nutzt NonBlockingGet (falls der Server mal nicht erreichbar ist).

Dummys: Relaiskarte_01 bis Relaiskarte_16, Beispiel:

Internals:
   CFGFN
   NAME       Relaiskarte_A01
   NR         24893
   STATE      off
   TYPE       dummy
   Readings:
     2016-06-11 10:53:39   cmd_off         /30000/00
     2016-06-11 10:53:15   cmd_on          /30000/01
     2016-06-11 12:12:01   lastState       off
     2016-06-11 11:49:17   name            Relaiskarte_A01
     2016-06-11 12:12:01   state           off
Attributes:
   DbLogExclude .*
   room       Relaiskarte
   setList    on off
   useSetExtensions 1


Internals:
   CFGFN
   NAME       Relaiskarte_A02
   NR         25153
   STATE      off
   TYPE       dummy
   Readings:
     2016-06-11 11:36:46   cmd_off         /30000/02
     2016-06-11 11:36:33   cmd_on          /30000/03
     2016-06-11 12:05:54   lastState       off
     2016-06-11 11:49:22   name            Relaiskarte_A02
     2016-06-11 12:05:54   state           off
Attributes:
   DbLogExclude .*
   room       Relaiskarte
   setList    on off
   useSetExtensions 1
   userattr   Relaiskarte_A01 Relaiskarte_A01_map structexclude


IP des Billig-Lan-Boards ist hinterlegt im dummy "Relaiskarte":

Internals:
   CFGFN
   NAME       Relaiskarte
   NR         24949
   STATE      192.168.0.133
   TYPE       dummy
   Readings:
     2016-06-11 10:55:23   state           192.168.0.133
Attributes:
   DbLogExclude .*
   room       Relaiskarte


DOIF, das alle Relais beim schalten steuert:
attribute: do always, cmdpause 2



Internals:
   CFGFN
   DEF       

(["Relaiskarte_"])

(
{
my $cmd_ = "http://[Relaiskarte][$DEVICE:cmd_$EVENT]";;
(Log3 undef, 0, "CMD: $cmd_ EVENT: $EVENT");;
(HttpUtils_NonblockingGet( { url=>"$cmd_", callback=>sub() { } }) );;},
setreading $DEVICE lastState $EVENT
)
   NAME       DOIF_Relaiskarte
   NR         24971
   NTFY_ORDER 50-DOIF_Relaiskarte
   STATE      cmd_1
   TYPE       DOIF


rasti


Hallo,

super.

Ich habe übrigens mal einen Langzeittest gemacht und das Relaisboard
über mehrere Tage/Wochen ab und zu mal angesteuert. Der Relais-Webserver
hatte mit normalen Relais Hitzewallungen und ist alle 4,5 Tage mal abgestürzt und war nicht erreichbar.
Nun hab ich ein Halbleiterrelaisboard genommen und seitdem läuft das nun schon wochenlang
problemlos durch und wird auch nicht wirklich warm.

Gruß
Ralf





MAC66666

Ohje ich komme hier nicht weiter:
mit dem Modul kann ich zwar die Relais ein- aber nicht abschalten.

Im Log steht: 2016.10.25 19:06:20 1: PERL WARNING: main::IMATIC_Get() called too early to check prototype at ./FHEM/39_IMATIC.pm line 120.

und irgendwo steht was von Socket:IO...

Wie definiere ich Raemsnas Vorschlag? da komme ich auch nicht so ganz weiter ;-)

Danke ;-)
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

MAC66666

Keine einer Idee? In der Wiki steht auch was von IO::Socket, aber so richtig werde ich nicht schlau draus...
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

chopsor

#24
Hallo,

Habe mir das 16er Board auch mal bestellt gibt es hierzu mittlerweile eine lösung oder könnte man das Ganze evtl. über httprequests lösen?

Danke.

EDIT:

Habs jetzt Über getHttpFile gemacht mit einem dummyschalter (Relais1 -16) und pro Relais ein DOIF fÜr diejenigen die es intressiert hier die paar Zeilen:


define Relais1 dummy
attr Relais1 webCmd on:off
define Relais1doif DOIF ([Relais1] eq "on") {(GetHttpFile("192.168.178.19:80", "/30000/01"))} DOELSEIF ([Relais1] eq "off") {(GetHttpFile("192.168.178.19:80", "/30000/00"))}


Das Relais1 kann dann ganz normal in Bewegungsmelder etc. Notifys eingebunden werden.

PS: wenn Ihr jedoch mehr als ein Board betreiben wollt müsst ihr euch Basteleien einfallen lassen, da der Controller wohl immer die gleiche MAC Adresse hat (wurde mir vom Support bestätigt...).
Hier könnte Ihre Werbung stehen !

Crawler

Die 16er Version gibt es jetzt als fake günstig bei ebay(7€)
https://www.ebay.de/itm/ENC28J60-16-bit-Network-Controller-Module-for-16Bit-Relay-Modul-Neu/273100656080?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
oder ali
https://www.aliexpress.com/item/ENC28J60-16bit-Network-Controller-Module-for-16Bit-Relay-Module-Board-Smart-Home/32821104905.html
IP und Port können direkt auf der webseite geändert werden.
IP Bereich 192.168.178.* hat bei mir bisher leider nicht funktioniert(Standard 192.168.1.4)

Außerdem gibt es infos über die statusabfrage im Zitat
ZitatProduct Introduction:
16-channel network module is a network-based relay control module base on 32bit system, This module can use the internet or intranet router control relay module, Thus,Complete remote control of electrical switches, achieve the purpose of power centralized management. It can be set directly through the IE browser and control.
Applications:
Home decoration, hotels, shopping malls factories, cafes, karaoke oK timer management, daily office, shop surveillance, physical networking, industrial control equipment, testing equipment power control, unattended, underground pipelines, mining equipment, ships, aircraft stations room, street management, intelligent management and centralized management.
NOTES:
When connecting the high-voltage power supply modules, please note the wiring to prevent equipment damage caused by short circuit!
Technical Specifications:
1.External power supply voltage: 5.5V DC 2A Max
2.Relays can be accessed: 16
3.Electronic switch life: 100,000 times
4.Working temperature: -30 ~ 85?
5.Size: 47*48*20mm
Instructions:
1. Set IP in Internet Attribute
2. Default IP 192.168.1.4 Port:30000
Open Browser and input http://192.168.1.4/30000 .Enter the control interface
3. Relay control HTTP Command:
Relay 1-8Bit Command:
http://ip/Port/00 : Relay-01 OFF
http://ip/Port/01 : Relay-01 ON
http://ip/Port/02 : Relay-02 OFF
http://ip/Port/03 : Relay-02 ON
http://ip/Port/04 : Relay-03 OFF
http://ip/Port/05 : Relay-03 ON
http://ip/Port/06 : Relay-04 OFF
http://ip/Port/07 : Relay-04 ON
http://ip/Port/08 : Relay-05 OFF
http://ip/Port/09 : Relay-05 ON
http://ip/Port/10 : Relay-06 OFF
http://ip/Port/11 : Relay-06 ON
http://ip/Port/12 : Relay-07 OFF
http://ip/Port/13 : Relay-07 ON
http://ip/Port/14 : Relay-08 OFF
http://ip/Port/15 : Relay-08 ON
Relay 9-16Bit Command:
http://ip/Port/16 : Relay-09 OFF
http://ip/Port/17 : Relay-09 ON
http://ip/Port/18 : Relay-10 OFF
http://ip/Port/19 : Relay-10 ON
http://ip/Port/20 : Relay-11 OFF
http://ip/Port/21 : Relay-11 ON
http://ip/Port/22 : Relay-12 OFF
http://ip/Port/23 : Relay-12 ON
http://ip/Port/24 : Relay-13 OFF
http://ip/Port/25 : Relay-13 ON
http://ip/Port/26 : Relay-14 OFF
http://ip/Port/27 : Relay-14 ON
http://ip/Port/28 : Relay-15 OFF
http://ip/Port/29 : Relay-15 ON
http://ip/Port/30 : Relay-16 OFF
http://ip/Port/31 : Relay-16 ON
View relay status command
http://ip/Port/99 : Feedback current I/O status by 16 ACSII . MSB is for the first bit.and LSB for 16th bit.
E.g : Return 1111000011110000 It is means Relay 1-4 is ON,Relay 5-8 is OFF,Relay 9-12 is ON,Relay 13-16 is OFF.
Modify IP
http://ip/Port/41 : When modify IP,the Relay-01 must not be 0, Relay-01~04 all can not be greater than 255.Port can not be 0.
Restore Default
LED will flash once when short press button.
Long press button and don't release until LED lit aways.Then release button ,the led will off.It said it is to restore the factory settings. IP 192.168.1.4 and Port 30000

Vielleicht hat ja jemand Lust das Modul zu Aktualisieren.
FHEM auf Raspi + HMLan + 14 Aktoren + OBIS(Strom) über GPIO