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

Hallo zusammen :)
Dieses Teil hat erschien mir recht praktisch für eine anwendung ohne viel zu basteln:
http://www.amazon.com/SainSmart-iMatic-Controller-Interface-Compatible/dp/B00JJJK2VU
in der Fußzeile steht das passende Modul zum Download. Nach dem define kann man On/Off/Toggle schalten und mit attr den Relaisstatus invertieren.

Es wird aktuell nur die 8-Kanal-Version unterstützt, aber die commands für die 16er-version sind im quelltext als kommentar enthalten und können bei bedarf ausgetauscht werden.
Die Statusanzeige basiert auf dem letzten gesendeten command, da ich leider nicht herausfinden konnte mit welchem befehl man eine statusabfrage aus dem device herauskitzelt.

LG epsrw1

Modulseite im Fhem-Wiki: http://www.fhemwiki.de/w/index.php?title=IMATIC

# $Id: 39_IMATIC.pm 1003 2015-12-06 14:57:11Z epsrw1 $
Ich habe keine Ahnung, aber davon wenigstens ganz viel

rasti


Hallo,

weisst du ob die imatic 8 kompatibel zu http://www.ebay.com/itm/381480560244 ist ?

Wenn ja, kann man anscheinend den Relaisstatus auslesen: 4. View relay status command

Die default IP ist ja schonmal gleich....aber bei dem Ebay-Teil kann man anscheinend die
IP frei festlegen, weas bei dem imatic ja wohl nicht geht.

Gruss

Ralf

epsrw1

andere software auf dem teil, aber die 99 nehme ich mal als denkanstoß weiter um zu experimentieren (hatte nur FF ausprobiert).
Danke, epsrw1
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

99 war es nicht, habe aber zwischenzeitlich immerhin mal eine Empfangsbestätigung von SainSmart bekommen. Eventuell antworten die ja mit etwas brauchbarem um das Modul zu verbessern.
LG epsrw1
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Ma_Bo

Klingt sehr interessant, überlege gerade mir auch solch eine 16er Karte zu besorgen.
Schreib bitte hier weiter, sobald du neues hast/weisst/einbaust.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

epsrw1

nach einigem hin und her hat SainSmart den Code für die Statusabfrage teilweise rausgerückt. sobald der rest (code für die 16er-karte) auch da ist kommt dann hier eine neue version.
LG, epsrw1
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

epsrw1

Zitat von: Ma_Bo am 15 Dezember 2015, 07:36:03
Ja cool, dann bestell ich mir mal eine 16er Karte.  8)

--> die codes für die 16er hat SainSmart nicht rausgerückt, habe zwar nochmal nachgehakt aber kann nicht garantieren dass sie auch tatsächlich irgendwann kommen.
(das reine schalten geht dann zwar, aber eine statusabfrage nicht. das gibt chaos wenn man simultan auch die app zum schalten nutzt)
Ich habe keine Ahnung, aber davon wenigstens ganz viel

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

epsrw1

Zitat von: Ma_Bo am 15 Dezember 2015, 14:37:27
Aber für die 8er Karte ?
für die 8er habe ich von SainSmart FD 02 20 FF FF 5D genannt bekommen, und antwortbereich zwischen FD FF FF 5D und FD FF 00 5D je ein bit pro relais. da sollte also alles passen.


Ich habe keine Ahnung, aber davon wenigstens ganz viel

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Raemsna

Hallo epsrw1,

wäre es grundsätzlich möglich dein Modul auch an das vorgeschlagene Board von rasti anzupassen bzw. Zu erweitern?
(www.eBay.com/itm/381480560244)

Dann hätten man den Vorteil die IP ändern zu können (das SainSmart Board passt ja nicht in jedes Netzwerk ohne darin Änderungen vorzunehmen.

Danke und LG
Raemsna


Gesendet von meinem KFFOWI mit Tapatalk

rasti

Zitat von: Raemsna am 30 Dezember 2015, 09:42:42
Hallo epsrw1,

wäre es grundsätzlich möglich dein Modul auch an das vorgeschlagene Board von rasti anzupassen bzw. Zu erweitern?
(www.eBay.com/itm/381480560244)

Dann hätten man den Vorteil die IP ändern zu können (das SainSmart Board passt ja nicht in jedes Netzwerk ohne darin Änderungen vorzunehmen.

Danke und LG
Raemsna


Gesendet von meinem KFFOWI mit Tapatalk

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

########################################

## Relaiskarte

define Relais_1 dummy
attr Relais_1  alias Relais 1
attr Relais_1 room Relaiskarte
attr Relais_1 setList on off

define Relais_3 dummy
attr Relais_3  alias Relais 3
attr Relais_3 room Relaiskarte
attr Relais_3 setList on off

define Relais_5 dummy
attr Relais_5  alias Relais 5
attr Relais_5 room Relaiskarte
attr Relais_5 setList on off

define Relais_7 dummy
attr Relais_7  alias Relais 7
attr Relais_7 room Relaiskarte
attr Relais_7 setList on off

define Relais_9 dummy
attr Relais_9  alias Relais 9
attr Relais_9 room Relaiskarte
attr Relais_9 setList on off

define Relais_11 dummy
attr Relais_11  alias Relais 11
attr Relais_11 room Relaiskarte
attr Relais_11 setList on off

define Relais_13 dummy
attr Relais_13  alias Relais 13
attr Relais_13 room Relaiskarte
attr Relais_13 setList on off

define Relais_15 dummy
attr Relais_15  alias Relais 15
attr Relais_15 room Relaiskarte
attr Relais_15 setList on off

define Relais1on notify Relais_1:on { GetHttpFile("192.168.178.11", "/30000/01") }
define Relais1off notify Relais_1:off { GetHttpFile("192.168.178.11", "/30000/00") }
define Relais3on notify Relais_3:on { GetHttpFile("192.168.178.11", "/30000/05") }
define Relais3off notify Relais_3:off { GetHttpFile("192.168.178.11", "/30000/04") }
define Relais5on notify Relais_5:on { GetHttpFile("192.168.178.11", "/30000/09") }
define Relais5off notify Relais_5:off { GetHttpFile("192.168.178.11", "/30000/08") }
define Relais7on notify Relais_7:on { GetHttpFile("192.168.178.11", "/30000/13") }
define Relais7off notify Relais_7:off { GetHttpFile("192.168.178.11", "/30000/12") }
define Relais9on notify Relais_9:on { GetHttpFile("192.168.178.11", "/30000/17") }
define Relais9off notify Relais_9:off { GetHttpFile("192.168.178.11", "/30000/16") }
define Relais11on notify Relais_11:on { GetHttpFile("192.168.178.11", "/30000/21") }
define Relais11off notify Relais_11:off { GetHttpFile("192.168.178.11", "/30000/20") }
define Relais13on notify Relais_13:on { GetHttpFile("192.168.178.11", "/30000/25") }
define Relais13off notify Relais_13:off { GetHttpFile("192.168.178.11", "/30000/24") }
define Relais15on notify Relais_15:on { GetHttpFile("192.168.178.11", "/30000/29") }
define Relais15off notify Relais_15:off { GetHttpFile("192.168.178.11", "/30000/28") }

#######################################


Statusabfrage geht auch über die Seite
http://192.168.178.11/30000/99
da bekommt man 16 Nullen oder Einsen, je nach Relaisstatus

Der Status aller Relais nach einem kurzen Stromausfall ist AUS, deshalb wäre es schön,
den Status per FHEM abfragen zu können und das Relais entsprechend zu schalten.

Allerdings weiss ich nicht, wie man dies nun so in fhem verarbeitet, dass die Schalter in fhem auch dann
den Status eines einzelnen Relais anzeigt. Das geht garantiert auch, vielleicht postet ja jemand mal den
passenden Code dazu....

Ach ja noch eine Anmerkung, ich hatte mir die 16 Kanal-Version geholt, aber es gehen nur die ungeraden Relais.
Ob ich da aus Versehen eine 8 Kanal Relaiskarte bekommen habe oder ob das ein Bug ist weiss ich nicht.
Wenn ich eine gerade Zahl aufrufe, geht es manchmal, manchmal nicht, der Relais-Server hängt sich dann auf
und geht erst wieder nachdem man den Strom kurz unterbrochen hat. Mit ungeraden Relaiszahlen kein Problem, alles stabil.

Gruß

Ralf




gNomeX

Guten morgen.

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

fiedel

Falls nicht: Such mal nach on-for-timer nachrüsten! Da gibt es was.

Gruß
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

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