WLAN schalten geht nicht. Wo ist der Fehler?

Begonnen von Stefan 69, 16 März 2013, 12:10:19

Vorheriges Thema - Nächstes Thema

Stefan 69

Hallo!

Ich versuche laut div. Beiträge und WIKI die WLAN-Schaltfunktion zu nutzen.
Scheinbar hab ich hier wieder einmal was nicht verstanden.

Folgende Meldung erhalte ich, wenn ich schalten will: No set implemented for WLANschalten

die .cfg schaut so aus:

### WLAN AN und AUS schalten ###
define WLANschalten notify btn {FB_WLANswitch("%")}
attr WLANschalten webCmd on:off


Die 99_myUtils hab ich so gemacht:

package main;
use strict;
use warnings;
use POSIX;
use FritzBoxUtils;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

1;


Achso, ich nutze eine FritzBox 7390

Gruß Stefan

Zrrronggg!

Ich kann nix erkennen, was tatsächlich schalten soll.


Schalten in FHEM geht immer so:

set mein_geraet  wert


Wert kann alles möglich sein, z.b. on oder off oder dim oder was immer mein_geraet behherscht und versteht.

bei dir steht nirgends "set..." also wird auch nie was gemacht. Und genau das sagt ja die Fehlermeldung auch.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Stefan 69

Bitte entschuldige die Nachfrage, aber irgendwie hab ich grad nen "Brett vorm Kopf" :-(

Meinst du damit, dass ich erst mal einen Dummy anlegen müßte mit dem ich dann das

set WLANschalten on bzw. off auslösen kann?

Somit bräuchte ich ja zwei Dummys, einen für An und einen für AUS oder?

Ich glaub ich brauch ne Ohrfeige :-(  Irgendwie raff ichs gerade nich.


Danke, gruß Stefan

Zrrronggg!

ZitatBitte entschuldige die Nachfrage

Ach nee, da gibts nix zu entschuldigen. Ich weiss, dass ich mich etwas vage ausgedrückt habe.
Das Problem ist, dass ich nicht weiss, wie man das WLAN auf der Fritzbox ein und auschaltet, da ich keine habe (und wenn ich eine hätte WLAN nie auschalten würde.... wozu soll das eigentlich gut sein? Aber nur ne Interessenfrage)

Abe mal angenommen man schaltet das WLAN auf der FritzBox mit FB_WLANswitch an und aus.

Dann muss irgendwo stehen set FB_WLANswitch on  (Bzw. set FB_WLANswitch off)

ZitatMeinst du damit, dass ich erst mal einen Dummy anlegen müßte mit dem ich dann das
set WLANschalten on bzw. off auslösen kann?
Ich würd das so machen, ja.

ZitatSomit bräuchte ich ja zwei Dummys, einen für An und einen für AUS oder?
Nein. geht mit einem, dessen aktuellen Zustand du auswertest

Also erstmal einen Dummy anlegen

define WLAN dummy
attr WLAN webCmd on:off


Dann 2 Defines anlegen, die durch den Schalter getriggert werden:

define WLANschaltenON notify WLAN:on set FB_WLANswitch on
define WLANschaltenOFF notify WLAN:off set FB_WLANswitch off

ODER alles sogar in ein notify zusammenfassen, dann brauchst du ein bischen perl für eine If-abfrage (alles in {} ist Perl)

define WLANschalten notify WLAN { if ("%" eq "on") { fhem("set FB_WLANswitch on") } else { fhem("set FB_WLANswitch off") }}

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Stefan 69

Ja ja WLAN. Ist schon so ein Thema.
Für uns (Eltern) ist es die einfachste Möglichkeit ohne sich den "Mund fusselig zu reden", die Surfsucht der heranwachsenden Tochter und ihrer "Mitstreiter" zu reglementieren :-)

Hatte die Sache nach dem WIKI  http://www.fhemwiki.de/wiki/Fritzbox:_WLAN_ein/ausschalten  angelegt.

Ok. Hab es nun mal mit deinem Vorschlag versucht. Der Dummy selber scheint zu gehen (Glühlampensymbol wechselt).

### WLAN AN und AUS schalten ###
define WLANschalten notify btn {FB_WLANswitch("%")}   <-so stand der Aufruf im WIKI
define WLAN dummy
attr WLAN webCmd on:off
define WLAN_ON notify WLAN:on set FB_WLANswitch on
define WLAN_OFF notify WLAN:off set FB_WLANswitch off

Im Log steht jedoch folgender Fehler:     WLAN_OFF return value: Please define FB_WLANswitch first
Scheinbar kann er mit dem Befehl FB_WLANswitch nix anfangen.

Nach diesem Beitrag hatte ich den Aufruf angepasst. Link

Leider steht dort keine Lösung (in Form von Codeschnipsel) oder ich versteh es wieder einmal nicht :-(

Die 99_myUtils habe ich auch so angepasst wie im WIKI (siehe Oben). Somit sollte diese doch auch von Fhem aufgerufen werden.

Hatte mir das schon wieder einfacher vorgestellt :-(

Gruß Stefan

Puschel74

Hallo,

der Abschnitt in der 99_MyUtils.pm heiist auch

ZitatFB_WLANswitch

und wurde richtig in die 99_MyUtils.pm eingebunden?
In deinem ersten Post ist deine 99_MyUtils.pm noch ziemlich leer und das FB_WLANswitch fehlt.

Grüße

Edith: Die 99_MyUtils.pm braucht einen reload 99_MyUtils nach dem ändern, es sei den du hast sie über fhem geändert (ich hoffe ich liege da nicht ganz daneben).
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Stefan 69

@Puschel74

Habe die 99_myUtils auch erst angelegt, so wie im WIKI beschrieben.
Die Erweiterung hatte ich ebenfalls wie im WIKI gemacht.

Wo muss denn nun das   FB_WLANswitch  hin?

Danke für eure Geduld!

gruß Stefan

LaLeLu

Also ich habe das gemäß der Wiki-Anleitung gemacht.
In meiner cfg-Datei steht dann:

## WLAN ein-/ausschalten
# Aus http://fhemwiki.de/wiki/Fritzbox:_WLAN_ein/ausschalten
# trigger WLAN on  => schaltet das WLAN ein
# trigger WLAN off => schaltet das WLAN aus
###########################################################################
define n_WLANSwitch notify WLAN {FB_WLANswitch("%")}
  attr n_WLANSwitch group NOTIFY
  attr n_WLANSwitch room SYSTEM


An den entsprechenden Stellen in der cfg-Datei schalte ich dann mit
   {fhem("trigger WLAN on") }\
das WLAN ein bzw. mit off dann aus.
LaLeLu

Fhem Release: 5.6 auf RaspberryPI B (wheezy)
1xFB7390, 1xCUL, 1xHM-CFG-LAN, 4xFHT, 25xFS20 (inkl. PIRA), 18xCUL_HM, 5xCUL_WS, 2xSONOS-Player, calendar, floorplan

Stefan 69

ZitatAlso ich habe das gemäß der Wiki-Anleitung gemacht.

Somit hast du in die 99_myUtils auch nur  "use FritzBoxUtils;"  eingefügt, oder?

Wenn ja wo genau, oder ist das egal? Weil Puschel74 meinte
ZitatHallo,

der Abschnitt in der 99_MyUtils.pm heiist auch


Zitat:
FB_WLANswitch

und wurde richtig in die 99_MyUtils.pm eingebunden?
In deinem ersten Post ist deine 99_MyUtils.pm noch ziemlich leer und das FB_WLANswitch fehlt.


Ich möchte lediglich vom Floorplan aus das WLAN schalten können.

Könntest du ein Beispiel dafür
ZitatAn den entsprechenden Stellen in der cfg-Datei schalte ich dann mit

    {fhem("trigger WLAN on") }\
das WLAN ein bzw. mit off dann aus.
angeben?
Ich steh hier voll auf dem Schlauch. Keine Ahnung was ich noch machen soll, der berühmte Groschen will einfach nicht fallen :-(

Danke Stefan

LaLeLu

Hi Stefan,

meine 99_myUtils.pm beginnt so:
##############################################
# $Id: 99_myUtils.pm 1932 2012-10-07 20:15:33Z LaLeLu $
package main;

use strict;
use warnings;
use POSIX;


## Hinweis: Da der Dateiname FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Datei nicht automatisch beim Start von fhem geladen.
## Will man die Routinen darin verwenden, muss man das Laden dieses Programms auslösen durch folgende Zeile z.B. in 99_myUtils.pm :

use FritzBoxUtils;

## http://www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen
 sub ShowFritzBoxValues()
  {
dann folgt eben der Code für die Module. Hier zunächst für ShowFritzBoxValues()

ZitatKönntest du ein Beispiel dafür
Zitat:
An den entsprechenden Stellen in der cfg-Datei schalte ich dann mit

{fhem("trigger WLAN on") }\
das WLAN ein bzw. mit off dann aus.

angeben?
Ich steh hier voll auf dem Schlauch. Keine Ahnung was ich noch machen soll, der berühmte Groschen will einfach nicht fallen :-(
Eigentlich war dies schon das Beispiel. Ich stelle Dir mal hier den kompletten Code ein, den ich nutze, um das WLAN einzuschalten, wenn ich die Wohnung betrete:
## Gekommen: Einschalten
##############################################
define Gekommen notify Flur_Wohnungstuer.on {\
 {Log 3, ('  GEKOMMEN  NOTIFY:  * Anfang *')}\
 if("$hour:$min:$sec" gt sunrise_abs(1800) and "$hour:$min:$sec" lt sunset_abs(-1800)) {\
    {Log 3, ('  GEKOMMEN  Es ist Tag (isday()='.isday().')')}\
    {Log 3, ('  GEKOMMEN  zw. Sonnenaufgang (+30 Min.) und Sonnenuntergang (-30 Min.)')}\
    {Log 3, ('  GEKOMMEN  Sonnenuntergang ('.sunset_abs().')')}\
    {Log 3, ('  GEKOMMEN  Sonnenaufgang   ('.sunrise_abs().')')}\
    {fhem("set Flur_Licht dim100%%") }\
    {fhem("set Kueche_Radio on") }\
    {fhem("set Kueche_Heizung desired-temp 20.0") }\
    {fhem("set Bad_Heizung desired-temp 20.0") }\
   }\
  else {\
    {Log 3, ('  GEKOMMEN  Es ist Nacht (isday()='.isday().')')}\
    {Log 3, ('  GEKOMMEN  zw. Sonnenuntergang (-30 Min.) und Sonnenaufgang (+30 Min.)')}\
    {Log 3, ('  GEKOMMEN  Sonnenuntergang ('.sunset_abs().')')}\
    {Log 3, ('  GEKOMMEN  Sonnenaufgang   ('.sunrise_abs().')')}\
    {fhem("set Flur_Licht dim75%%") }\
    {fhem("set Kueche_Licht on") }\
    {fhem("set Schlafen_Bett_Licht on") }\
    {fhem("set Kueche_Heizung desired-temp 21.0") }\
    {fhem("set Bad_Heizung desired-temp 20.0") }\
  }\
    {fhem("trigger WLAN on") }\
    {fhem("set Terrasse_Licht off") }\
  {Log 3, ('  GEKOMMEN  NOTIFY:  *Ende*')}\
}
attr Gekommen group NOTIFY
attr Gekommen room SYSTEM
Vielleicht hilft Dir ja der Zusammenhang.
LaLeLu

Fhem Release: 5.6 auf RaspberryPI B (wheezy)
1xFB7390, 1xCUL, 1xHM-CFG-LAN, 4xFHT, 25xFS20 (inkl. PIRA), 18xCUL_HM, 5xCUL_WS, 2xSONOS-Player, calendar, floorplan

Stefan 69

Hallo LaLeLu,

danke für das Beispiel. Aber ich muss nochmal dämlich fragen, da meine Leitung scheinbar immer noch zu lang ist.

Wie hast du denn dein "WLAN", welches du im notify verwendest definiert?

Der notify-Name ist ja "n_WLANSwitch" und dass soll "WLAN" schalten, nur was ist WLAN?


Sorry, Gruß Stefan


Puschel74

Hallo

Post LaLeLu vom 17.März 11:02

Zitat## WLAN ein-/ausschalten
# Aus http://fhemwiki.de/wiki/Fritzbox:_WLAN_ein/ausschalten
# trigger WLAN on  => schaltet das WLAN ein
# trigger WLAN off => schaltet das WLAN aus
###########################################################################
define n_WLANSwitch notify WLAN {FB_WLANswitch("%")}

Und das zugehörige schalten dazu:

Zitat{fhem("set Bad_Heizung desired-temp 20.0") }\
  }\
    {fhem("trigger WLAN on") }\
    {fhem("set Terrasse_Licht off") }\

Hier siehst du das trigger WLAN on.

Dadurch wird das obige
define n_WLANSwitch notify WLAN
aufgerufen und als Parameter wird on übergeben.

Das wandert dann über den Aufruf {FB_WLANswitch("%")} (% wird durch on ersetzt) in die zugehörige
Unterroutine in der 99_MyUtils.pm und schaltet so das WLAN ein.
Wenn als Parameter off übergeben wird natürlich dann auch wieder aus.

Ich hoffe ich hab das so einigermaßen richtig interpretiert.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Stefan 69

Uff, nun schaut es so aus:

### WLAN AN und AUS schalten ###
define n_WLANSwitch notify WLAN {FB_WLANswitch("%")}
  attr n_WLANSwitch group NOTIFY
  attr n_WLANSwitch room SYSTEM
define WLANan:aus dummy
attr WLANan:aus fp_Erdgeschoss 250,250,0
attr WLANan:aus room SYSTEM
attr WLANan:aus webCmd on:off
define WLANschalten notify WLANan:aus set {fhem("trigger WLAN on") }

Soweit ok. Bekomme nun im Log ne Meldung, dass er mit dem "trigger" nix anfangen kann.

WLANschalten return value: Please define {fhem("trigger first

Dachte das "trigger" sei ein Befehl so wie zB. "set".

Gruß Stefan

Puschel74

Hallo,

da ist der : das Problem

Zitatdefine WLANan:aus dummy

entweder _ oder - aber kein . und :

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Stefan 69

Ups. Danke!

Typischer Anfängerfehler. Dachte dass es bei einem difine-Namen egal sei.

Schalten geht jetzt zumindest, auch im Floorplan. Jedoch passiert bei der FritzBox nix :-(


Hättest du da noch eine Idee?

Gruß Stefan