NET-IO 230 A Steckdosen ein / Ausschalten via Command

Begonnen von ritchie, 19 Juni 2013, 21:03:31

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

anbei ein kleiner Code, wie man die Ausgänge seine NET-IO 230 steuert:

Steuervariablen definieren, für die spätere Steuerung

define NET_IO_Switch1 dummy

Notify Script 1 für ON

define NETIO230_SwitchOn_Switch1 notify NET_IO_Switch1:on {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?login=p:admin:<password>");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?p=1uuu");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?quit=quit");; }

Notify Script 1 für OFF

define NETIO230_SwitchOn_Switch1 notify NET_IO_Switch1:on {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?login=p:admin:<password>");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?p=0uuu");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?quit=quit");; }

Erklärung

Mit dieser Zeile wird eine Verbindung mit dem NET IO230 aufgebaut.
<Password> hier müßt Ihr eure Password im Klartext eintragen
"<NETIO IP>" hier ist die IP Adresse ca. 192.168.1.3 des NET-IO einzutragen.

GetHttpFile("192.X.X.X", "/tgi/control.tgi?login=p:admin:<Password>");;

Mit dieser Zeile wird der Ausgangsstatus des NET-IO verändert.
u=nicht verändern
0=Ausschalten
1=Einschalten

Hierbei müssen immer 4 Zeichen angegeben werden. z.b. 1uuu Schalte den ersten Port ein, lasse die anderen in Ruhe

GetHttpFile("<NETIO IP>", "/tgi/control.tgi?p=1uuu");;

Beenden die Verbindung

GetHttpFile("<NETIO IP>", "/tgi/control.tgi?quit=quit");;




Die Steuerung erfolgt mit

Einschalten

set NET_IO_Switch1 on

Ausschalten

set NET_IO_Switch1 off


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

maddin

Hallo,

danke für die Super Doku des NetIOA, ich habe auch so einen und gleich mal an mein FHEM gehängt. Du hast aber einen kleinen Fehler drin:

Zitat von: ritchie am 19 Juni 2013, 21:03:31

Notify Script 1 für OFF

define NETIO230_SwitchOn_Switch1 notify NET_IO_Switch1:on {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?login=p:admin:<password>");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?p=0uuu");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?quit=quit");; }


Richtig müsste es heißen:


define NETIO230_SwitchOff_Switch1 notify NET_IO_Switch1:off {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?login=p:admin:<password>");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?p=0uuu");; \ GetHttpFile("<NETIO IP>", "/tgi/control.tgi?quit=quit");; }


Nur falls jemand das auch übernehmen will. Nen Button baut man sich mit


attr NET_IO_Switch1 devStateIcon on:on:toggle off:off
attr NET_IO_Switch1 webCmd on:off

MPDb

Herzlichen Dank!,

jetzt kann ich auch meine beiden 230A steuern.

Gibt es eine Möglichkeit, das FHEM auch den Status abfragen kann? und damit das manuelle schalten am Gerät selbst mitbekommt?

Grüße

Pfriemler

Heute nachmittag nach dem 1-Stunden-Blog den RPI aufgesetzt und FHEM installiert, und das erste Gerät ist ein NETIO230B.

Den Fehler im Skript habe ich auch entdeckt - im WIKI ist es auch falsch. Leider bin ich damit nicht zu Potte gekommen, ich kann den Netio zwar einwandfrei über CGI und die Browserzeile steuern, aber in FHEM bekomme ich mit den Definitionen oft einen ersten Schalter hin, dann aber taucht im Log ein Fehler "Select timeout/error" auf 2014.02.23 18:43:06 1: CustomGetFileFromURL http://192.168.178.105/tgi/control.tgi?l=p:admin:PPPPPP&p=uu1u&q=q: Select timeout/error:

Falls noch jemand das Problem hat: Willkommen im Club.

Ich habe auf der Fehlersuche aber noch herausbekommen, wie man die Definition der Notifys prima verkürzen kann:
- "login=" durch "l=" ersetzen
- "quit=quit" durch "q=q" ersetzen
- "port=" durch "p=" ersetzen (ist im WIKI schon gemacht)
und alle drei Bestandteile in eine Zeile mit & verknüpfen.
Die drei nötigen Definitionen sehen dann so aus:
define NET_IO_Switch1
define NETIO230_SwitchOff_Switch1 notify NET_IO_Switch1:on {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?l=p:admin:<password>&p=1uuu"&q=q");; }
define NETIO230_SwitchOff_Switch1 notify NET_IO_Switch1:off {GetHttpFile("<NETIO IP>", "/tgi/control.tgi?l=p:admin:<password>&p=0uuu"&q=q");; }


Die verkürzte Syntax lief im Browser einwandfrei - vorher bekam ich ein "555 FORBIDDEN" zurück.
Leider bleibt der Fehler im FHEM-Log.

Wie auch immer ...  ich habe erst danach entdeckt, dass es ein definiertes NETIO230B-Device gibt, und mit

define <name> NetIO230B <ip-address>:<portnumber> <socket number(s) > [<user name> <password>]

klappt endlich alles, inklusive Statusabfrage.

Demo: define PWRSW_TV NETIO230B 192.168.178.105:80 4 admin PPPPPPP

Die COMMANDREF ist hier aktuell fehlerhaft: FHEM erwartet neben der IP-Adresse zwingend noch die Portnummer des (Web)Interfaces, im Normalfall 80. Aber das kann ja der eine oder andere nach Gusto angepasst haben.

JM2C.

Vielleicht mag ja jemand eine Korrektur in COMMANDREF und Wiki veranlassen, ich bin noch zu neu hier.


"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

THZ_Haus

Hallo,

ich bekomme die NETIo 230B auch nicht ans laufen.
Genutzt wird das Modul aus FHEM

define Socket3 NetIO230B 192.168.178.38 3
dabei kommt eine Meldung das ein "Port" angegeben werden muß.
Ist dieser nun 80 oder 1234?

2014.05.02 07:59:28 3: NetIO230B: Cannot open settings file '/var/log/fhem/netio.conf'.
2014.05.02 07:59:28 3: NetIO230B: Configuration could not be read. Trying default values...

2014.05.02 07:59:28 3: NetIO230B: device opened at host: 192.168.178.38:1234 => Socket3 NetIO230B 192.168.178.38:1234 3

2014.05.02 07:59:31 3: NetIO230B_Request failed:
2014.05.02 07:59:31 3: NetIO230B get Socket3 ? =>

Wer kann mir weiterhelfen?
Solarview mit SAM BT, FHEM mit THZ 403 SOL, EDIMAX

KarlNapf

Moin,

in meiner grenzenlosen Ahnungslosigkeit:
Das Beispiel mit "dummy" Definition und auch
die Variante mittels NETIO230B Modul benutzen HTTP, also Port 80.
Beide Varianten verwenden im Aufruf ".../tgi/control.tgi...",
das hat Koukaam offenbar zwischenzeitlich auf ".../cgi/control.cgi..." geändert.
Ich hab zwar immer noch ne Fehlermeldung im Log, aber es schaltet.

Pfriemler

Zitat von: KarlNapf am 02 Juni 2014, 15:07:46
... in meiner grenzenlosen Ahnungslosigkeit ...
Beide Varianten verwenden im Aufruf ".../tgi/control.tgi...",
indeed! Gerade nachgesehen.

Zitatdas hat Koukaam offenbar zwischenzeitlich auf ".../cgi/control.cgi..." geändert.
Aber funktionieren tut es nach wie vor, ich habe das Modul ja zusammen mit meiner 230B seit Monaten störungsfrei im Einsatz, ohne Fehlermeldungen. Vielleicht geht der Kompatibiltät wegen beides.

ZitatIch hab zwar immer noch ne Fehlermeldung im Log, aber es schaltet.
Was für Fehler?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

KarlNapf

Zitat von: Pfriemler am 03 Juni 2014, 19:42:32
indeed! Gerade nachgesehen.
Aber funktionieren tut es nach wie vor, ich habe das Modul ja zusammen mit meiner 230B seit Monaten störungsfrei im Einsatz, ohne Fehlermeldungen. Vielleicht geht der Kompatibiltät wegen beides.
Was für Fehler?

Yupp, geht beides, "cgi" und "tgi". Dann war wohl das Nichtfunktionieren von "tgi" bei mir noch von einem anderen Problemchen überlagert. Der Spruch im Log lautet:

2014.06.03 23:19:31 1: CustomGetFileFromURL http://192.168.180.20/cgi/control.cgi?login=p:fhem:geheim&p=u1uu&q=q: Select timeout/error:
2014.06.03 23:19:38 1: CustomGetFileFromURL http://192.168.180.20/tgi/control.tgi?login=p:fhem:geheim&p=u0uu&q=q: Select timeout/error:

(Dose 2 einschalten mit "cgi", ausschalten mit "tgi" ist Absicht)
Sicherlich werde ich zu dem "Select timeout/error:" in den Tiefen des Forums oder im Wiki etwas finden,
ich hab nur noch nicht gesucht, das ganze Thema ist bei mir im sehr frühen Experimentierstadium
(CUL noch in den Händen vom Götterboten, FHEM auf der FB7390, 230B mit V4.05).



Pfriemler

Ist das nicht die gewöhnliche Fehlermeldung, wenn die Netio vom FHEM-Host aus nicht erreichbar ist? Da hatten wir doch neulich mal so einen Fall ...

Geht nich gips nich

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

KarlNapf

Hm, nicht erreichbar kann eigentlich nicht sein, denn bevor das http://get rausgeht, hat schon der TCP 3-Wege Handshake
stattgefunden. Da ist also mindestens ein SYN/ACK von der 230B bei FHEM angekommen, würde ich mal annehmen.
Könnte es vielleicht daran liegen, dass bei der Kurzform mit Login&Befehl&Quit in einem GET die Antworten der 230B auch
zusammen zurückkommen, also "250 OK 110 BYE"? Ich mach morgen mal wieder zwei separate Befehle draus
(äh, heute, ist ja schon morgen...)