FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: webturtle am 06 Oktober 2013, 12:22:53

Titel: Aller Anfang
Beitrag von: webturtle am 06 Oktober 2013, 12:22:53
Guten Tag.

Ich heisse Christoph, bin 36 Jahre alt und möchte hier kurz mein Anliegen beschreiben weil mir irgendwie keine richtigen Suchbegriffe dazu einfallen.
Die meisten werden mit FHEM wohl anders starten als ich das vorhabe.

Daher will ich kurz meinen Status quo beschreiben.

Ich habe bei mir zuhause alle Lampen an Pollin Funksteckdosen hängen. Ein AVR Net IO habe ich so umprogrammiert dass dieses eine Fernbedienung dieser Steckdosen schaltet, so dass ich über das NetIO alle (ich glaube 160) Codes senden kann. (Quasi über den Aufruf eine Webadresse)
Weiterhin ist am Net IO ein RFM12 als Empfänger.
In den Wänden habe ich selbst gebastelte Schalter die per RFM12 ans NetIO senden was für eine Funksteckdose es schalten soll.
So weiss das NetIO also auch welches Licht an oder aus ist.

Der MacMini hostet mir dazu eine Webseite die das ganze visualisiert und auch bedienen kann.

In Summe quasi ein Selbstgebauter FHEM.
Erweiterungen und Änderungen sind hier sehr komplex, so dass ich nun auf FHEM umstellen will.
FHEM habe ich auf dem MacMini installiert und ein CUL ist auch bestellt.

Aber zum ersten Start hätte ich gerne in FHEM die Möglichkeit einen Eintrag zu setzen der mir das vorhanden Schaltet.

Zum Beispiel:

Raum: Esszimmer
Schalter_LampeEcke EIN / AUS

Ein Klick auf EIN soll einen Aufruf: http://192.168.1.100/S0501.htm (//192.168.1.100/S0501.htm) machen
Ein Klick auf AUS soll einen Aufruf: http://192.168.1.100/S0500.htm (//192.168.1.100/S0500.htm) machen
Der Status diese Schalter wird abgefragt mit http://192.168.1.100/S05State.htm. (//192.168.1.100/S05State.htm.) Die Antwort ist dabei dann on oder off. Entsprechend soll das Lampensymbol an oder aus zeigen.

Ist das so überhaupt möglich. Kann mir einen Anstoss geben wie ich das realisiere?

Gruss, Christoph
Titel: Aw: Aller Anfang
Beitrag von: Ganneff am 07 Oktober 2013, 13:53:24
Hi

http://fhem.de/commandref.html#weblink (//fhem.de/commandref.html#weblink) sollte da helfen.
Titel: Aw: Aller Anfang
Beitrag von: UliM am 07 Oktober 2013, 22:47:47
hi,
das ist über ein notify machbar, da länger am besten auslagern nach myUtils.pm

Ansätze:
- URLs aufrufen - dazu gibt's ein paar Routinen in HttpUtils
- Da Du mehrere devices hast, erstmal den jeweiligen Namensteil rauspflücken, in Deinem Beispiel wohl S05
- in fhem einen dummy je device anlegen, zB define S05 dummy
- attr S05 webCmd on,off
- define notify S05.* {MeineSchaltRoutine($NAME, $EVENT)}

In myUtils

sub meineSchaltroutine($$) {
my ($name, $event) = @_;
my $evt;
$evt = '01' if ($EVENT eq 'on');
$evt = '00' if ($EVENT eq 'off');
if ($evt) {
  my $cmd = $name . $evt . '.htm';
  Http('192.168.1.100', $cmd);
  sleep 1;
  my $ret = Http('192.168,1.100', $name.'State.htm');
  fhem("setstate $name $ret");
} else {
  Log 1, 'meineSchaltroutine aufgerufen mit unbekanntem Befehl '.$event;
}
}


Schalten kannst Du dann mit
set S05 on

Das einzige, was Du nachschauen müsstest, ist der Name der Routine, die ich hier Http() genannt hab - weiß ich nicht ausd em Kopf.
Das ganze ungetestet.

Viel Erfolg,
Uli
Titel: Aw: Aller Anfang
Beitrag von: webturtle am 07 Oktober 2013, 23:36:55
Danke euch schon mal.

Der erste Tip hat mir nichts gebracht, ich habe es über Weblink nicht hinbekommen.

Ich kam dann auf die Idee mir einige der vorhandenen Module etwas genauer anzusehen.
Ich habe jetzt mal das WEBIO_12DIGITAL Modul genommen und an meinen Fall angepasst.

Als Port definiere ich dort meinen Schaltbefehl.
Das funktioniert so weit.

Einziges Manko: Da Modul kann über den Parameter delay in Abständen den Status abfragen. Das macht dann natürlich jeder einzelne Schalter und ich habe jede Menge Overhead drin, weil mein Net IO immer für ein gesamtes Zimmer den Status zurückliefert.

Gibt es eine Möglichkeit FHEM so einzustellen, dass wenn man im Webinterface auf einen Room klickt, ein Befehl ausgeführt wird? Also immer beim Wechsel in einen Room eine Abfrage für alle Schalter. Die dann auch gerne alle 10 Sekunden.

Also ein Trigger der aktiv wird wenn im Webinterface ein Room geöffnet wird.

Aber eure Tips haben mir bisher sehr geholfen.
Danke dafür.