GELÖST: FritzBox GastWlan - Signalisieren, wenn es abgeschaltet ist...

Begonnen von gsbox, 28 Juni 2015, 17:00:48

Vorheriges Thema - Nächstes Thema

gsbox

Hallo.
Ich habe mittels des Fritzbox-Moduls und eines Dummys (GastWLan) mit einer darauf hörenden notify-Definition die Möglichkeit, wunderbar das GastWLan ein- bzw. ausschalten. Das funktioniert auch wunderbar.

Mein Problem ist, dass mein Dummy nicht mitbekommt, wenn das GastWLan (nicht durch meinen FHEM-Dummy) abgeschaltet wird. Das würde ich gerne signalisieren und habe gedacht, dass dies evtl. über ein userreading klappen könnte. Folgendes habe ich probiert :


attr Fritzbox userReadings box_guestWlan:off { fhem("set GastWLan off") }


Ist das userreading denn dafür überhaupt geeignet oder habe ich etwas falsch verstanden ? Falls ja, wie könnte ich auf so eine Reading-Änderung eine Aktion auslösen ?

Vielen Dank für die Hilfe.

Bernd1608

Hallo gsbox,

wenn ich das richtig verstanden habe suchst du eine Möglichkeit den Status der Fritz!Box abzufragen und Deine Dummy's zu aktualisieren.
Ich habe das so gelöst!

##############################################
##### Fritz!Box WLAN An und Aus schalten #####
##############################################
# Schnittstelle Fritz!Box
define FritzBox FRITZBOX
attr FritzBox INTERVAL 600
attr FritzBox alias Fritz!Box
attr FritzBox defaultCallerName Fhem
attr FritzBox event-on-change-reading .*
attr FritzBox event-on-update-reading box_powerRate,wlan
attr FritzBox fritzBoxIP 192.168.168.1
attr FritzBox icon my_FritzBox_29px
attr FritzBox room Interface
attr FritzBox telnetUser fhem

# Log
define FileLog_FritzBox FileLog ./log/FritzBox-%Y-%m.log FritzBox:.*
attr FileLog_FritzBox alias Fritz!Box
attr FileLog_FritzBox group monatliche-Logs
attr FileLog_FritzBox icon my_FritzBox_29px
attr FileLog_FritzBox logtype text
attr FileLog_FritzBox nrarchive 12
attr FileLog_FritzBox room Logs

# Visualisierung
# Fritz!Box Leistung / WLAN-Status
define SVG_FritzBox SVG FileLog_FritzBox:SVG_FritzBox:CURRENT
attr SVG_FritzBox group Leistung
attr SVG_FritzBox label "Fritz!Box Leistung Min: $data{min1} %, Max: $data{max1} %, Aktuell: $data{currval1} %"
attr SVG_FritzBox room Wohnzimmer

# Fritz!Box Internet
define SVG_FritzBox_LAN SVG FileLog_FritzBox:SVG_FritzBox_LAN:CURRENT
attr SVG_FritzBox_LAN group Internet
attr SVG_FritzBox_LAN label "Fritz!Box Internet Aktuell Download: $data{currval1} kByte/s, Upload: $data{currval2} kByte/s"
attr SVG_FritzBox_LAN room Wohnzimmer

# Dummy WLAN Gesamt
define FB_WLAN dummy
attr FB_WLAN alias Fritz!Box WLAN
attr FB_WLAN devStateIcon An:my_WLAN_29px.An:Aus Aus:my_WLAN_29px.Aus:An
attr FB_WLAN group WLAN
attr FB_WLAN icon my_FritzBox_29px
attr FB_WLAN room Wohnzimmer,Steuerung,Wohnung
attr FB_WLAN setList An Aus
attr FB_WLAN sortby 1
attr FB_WLAN webCmd An:Aus

# Dummy WLAN 2,4 GHz
define FB_WLAN_24 dummy
attr FB_WLAN_24 alias Fritz!Box WLAN 2,4 GHz
attr FB_WLAN_24 devStateIcon An:my_WLAN_29px.An Aus:my_WLAN_29px.Aus
attr FB_WLAN_24 group WLAN
attr FB_WLAN_24 icon my_FritzBox_29px
attr FB_WLAN_24 room Steuerung,Wohnung,Wohnzimmer

# Dummy WLAN 5 GHz
define FB_WLAN_50 dummy
attr FB_WLAN_50 alias Fritz!Box WLAN 5 GHz
attr FB_WLAN_50 devStateIcon An:my_WLAN_29px.An Aus:my_WLAN_29px.Aus
attr FB_WLAN_50 group WLAN
attr FB_WLAN_50 icon my_FritzBox_29px
attr FB_WLAN_50 room Steuerung,Wohnung,Wohnzimmer

# Dummy WLAN Gastzugang
define FB_WLAN_Gast dummy
attr FB_WLAN_Gast alias Fritz!Box WLAN Gastzugang
attr FB_WLAN_Gast devStateIcon An:my_WLAN_29px.An:Aus Aus:my_WLAN_29px.Aus:An
attr FB_WLAN_Gast group WLAN
attr FB_WLAN_Gast icon my_FritzBox_29px
attr FB_WLAN_Gast room Steuerung,Wohnung,Wohnzimmer
attr FB_WLAN_Gast setList An Aus
attr FB_WLAN_Gast sortby 2
attr FB_WLAN_Gast webCmd An:Aus

# Dummy WLAN Gastzugang Restdauer
define FB_WLAN_Gast_Timer dummy
attr FB_WLAN_Gast_Timer alias Fritz!Box WLAN Gastzugang Timer
attr FB_WLAN_Gast_Timer group WLAN
attr FB_WLAN_Gast_Timer icon my_FritzBox_29px
attr FB_WLAN_Gast_Timer room Steuerung,Wohnung,Wohnzimmer
attr FB_WLAN_Gast_Timer sortby 3

# WLAN-STATUS von der FritzBox (WLAN Gesamt, 2,4 GHz, 5 GHz und Gastzugang Restdauer)
define FB_WLAN_Status notify FritzBox:WLAN:.* { \
if ($EVTPART1 eq "on" && Value("FB_WLAN") ne "An") { \
fhem("set FB_WLAN An") \
} \
elsif ($EVTPART1 eq "off" && Value("FB_WLAN") ne "Aus") { \
fhem("set FB_WLAN Aus") \
    } \
} ;; { \
    if ($EVTPART3 eq "on" && Value("FB_WLAN_Gast") ne "An") { \
fhem("set FB_WLAN_Gast An") \
} \
elsif ($EVTPART3 eq "off" && Value("FB_WLAN_Gast") ne "Aus") { \
fhem("set FB_WLAN_Gast Aus") \
        }\
} ;; { \
if ((ReadingsVal("FritzBox","box_wlan_2.4GHz", "") eq "on") && Value("FB_WLAN_24") ne "An") { \
fhem("set FB_WLAN_24 An") \
} \
elsif ((ReadingsVal("FritzBox","box_wlan_2.4GHz", "") eq "off") && Value("FB_WLAN_24") ne "Aus") { \
fhem("set FB_WLAN_24 Aus") \
} \
} ;; { \
if ((ReadingsVal("FritzBox","box_wlan_5GHz", "") eq "on") && Value("FB_WLAN_50") ne "An") { \
fhem("set FB_WLAN_50 An") \
} \
elsif ((ReadingsVal("FritzBox","box_wlan_5GHz", "") eq "off") && Value("FB_WLAN_50") ne "Aus") { \
fhem("set FB_WLAN_50 Aus") \
} \
} ;; { \
    fhem("set FB_WLAN_Gast_Timer " .(ReadingsVal("FritzBox","box_guestWlanRemain", "") ." Minuten")) \
}
attr FB_WLAN_Status alias Fritz!Box WLAN Status
attr FB_WLAN_Status group WLAN
attr FB_WLAN_Status icon my_Zahnrad_29px
attr FB_WLAN_Status room Steuerung

# Logik
# Logik Fritz!Box WLAN schalten
define FB_WLAN_schalten notify FB_WLAN:.* { \
if(Value("FB_WLAN") eq "An") { \
fhem("set FritzBox wlan on") \
} \
} ;; { \
if(Value("FB_WLAN") eq "Aus") { \
if(Value("FB_WLAN_Gast") eq "An") { \
fhem("set FritzBox guestWLAN off") \
} ;; { \
fhem("set FritzBox wlan off") \
} \
} \
}
attr FB_WLAN_schalten alias Fritz!Box WLAN schalten
attr FB_WLAN_schalten group WLAN
attr FB_WLAN_schalten icon my_Zahnrad_29px
attr FB_WLAN_schalten room Steuerung

# Logik Fritz!Box WLAN Gast schalten
define FB_WLAN_Gast_schalten notify FB_WLAN_Gast:.* { \
if(Value("FB_WLAN_Gast") eq "An") { \
fhem("set FritzBox guestWLAN on") \
} \
} ;; { \
if(Value("FB_WLAN_Gast") eq "Aus") { \
fhem("set FritzBox guestWLAN off") \
} \
}
attr FB_WLAN_Gast_schalten alias Fritz!Box WLAN Gastzugang schalten
attr FB_WLAN_Gast_schalten group WLAN
attr FB_WLAN_Gast_schalten icon my_Zahnrad_29px
attr FB_WLAN_Gast_schalten room Steuerung

# Logik  Fritz!Box WLAN in abhängigkeit von Nachtschaltung und Anwesenheitserkennung schalten
define FB_WLAN_Schaltfunktion notify Nachtschaltung:.*|Whg_Anwesenheit:.* { \
if((Value("Nachtschaltung") eq "Nein") && (Value("Whg_Anwesenheit") eq "Anwesend")) { \
if(Value("FB_WLAN") ne "An") { \
fhem("set FB_WLAN An") \
} \
} \
else {\
if (Value("FB_WLAN") ne "Aus") { \
fhem("set FB_WLAN Aus") \
} \
} \
}
attr FB_WLAN_Schaltfunktion alias Fritz!Box WLAN in Abhängkeit schalten
attr FB_WLAN_Schaltfunktion group WLAN
attr FB_WLAN_Schaltfunktion icon my_Zahnrad_29px
attr FB_WLAN_Schaltfunktion room Steuerung
##### Fritz!Box WLAN An und Aus schalten Ende #####

Eventuell kannst Du Teile aus den Code brauchen!

Gruß Bernd

gsbox

Hallo.
Vielen lieben Dank für den Code. Bin leider nicht mehr zu Hause und werde mir den Code erst morgen abend ansehen können. Ich bin aber sicher, dass ich damit was anfangen kann.
Vielen Dank. Ich melde mich dann nochmal

gsbox

Hallo Bernd.

Vielen Dank für Deinen Code - es hat mich auf die richtige Fährte gebracht. Ich konnte es nun mit folgendem Notify lösen :

define guestWLanOffNotify notify FritzBox:box_guestWlan:.* {\
   if(  ($EVTPART1 eq "off")
      &&(Value("GastWLan") eq "on")
     )
   {
     fhem("set GastWLan off");
   }
}


Vielen Dank

Fredi69

Zitat von: Bernd1608 am 28 Juni 2015, 18:34:28
Hallo gsbox,

wenn ich das richtig verstanden habe suchst du eine Möglichkeit den Status der Fritz!Box abzufragen und Deine Dummy's zu aktualisieren.
Ich habe das so gelöst!

##############################################
##### Fritz!Box WLAN An und Aus schalten #####
##############################################
# Schnittstelle Fritz!Box
define FritzBox FRITZBOX
attr FritzBox INTERVAL 600
attr FritzBox alias Fritz!Box
attr FritzBox defaultCallerName Fhem
attr FritzBox event-on-change-reading .*
attr FritzBox event-on-update-reading box_powerRate,wlan
attr FritzBox fritzBoxIP 192.168.168.1
attr FritzBox icon my_FritzBox_29px
attr FritzBox room Interface
attr FritzBox telnetUser fhem

# Log
define FileLog_FritzBox FileLog ./log/FritzBox-%Y-%m.log FritzBox:.*
attr FileLog_FritzBox alias Fritz!Box
attr FileLog_FritzBox group monatliche-Logs
attr FileLog_FritzBox icon my_FritzBox_29px
attr FileLog_FritzBox logtype text
attr FileLog_FritzBox nrarchive 12
attr FileLog_FritzBox room Logs

# Visualisierung
# Fritz!Box Leistung / WLAN-Status
define SVG_FritzBox SVG FileLog_FritzBox:SVG_FritzBox:CURRENT
attr SVG_FritzBox group Leistung
attr SVG_FritzBox label "Fritz!Box Leistung Min: $data{min1} %, Max: $data{max1} %, Aktuell: $data{currval1} %"
attr SVG_FritzBox room Wohnzimmer

# Fritz!Box Internet
define SVG_FritzBox_LAN SVG FileLog_FritzBox:SVG_FritzBox_LAN:CURRENT
attr SVG_FritzBox_LAN group Internet
attr SVG_FritzBox_LAN label "Fritz!Box Internet Aktuell Download: $data{currval1} kByte/s, Upload: $data{currval2} kByte/s"
attr SVG_FritzBox_LAN room Wohnzimmer

# Dummy WLAN Gesamt
define FB_WLAN dummy
attr FB_WLAN alias Fritz!Box WLAN
attr FB_WLAN devStateIcon An:my_WLAN_29px.An:Aus Aus:my_WLAN_29px.Aus:An
attr FB_WLAN group WLAN
attr FB_WLAN icon my_FritzBox_29px
attr FB_WLAN room Wohnzimmer,Steuerung,Wohnung
attr FB_WLAN setList An Aus
attr FB_WLAN sortby 1
attr FB_WLAN webCmd An:Aus

# Dummy WLAN 2,4 GHz
define FB_WLAN_24 dummy
attr FB_WLAN_24 alias Fritz!Box WLAN 2,4 GHz
attr FB_WLAN_24 devStateIcon An:my_WLAN_29px.An Aus:my_WLAN_29px.Aus
attr FB_WLAN_24 group WLAN
attr FB_WLAN_24 icon my_FritzBox_29px
attr FB_WLAN_24 room Steuerung,Wohnung,Wohnzimmer

# Dummy WLAN 5 GHz
define FB_WLAN_50 dummy
attr FB_WLAN_50 alias Fritz!Box WLAN 5 GHz
attr FB_WLAN_50 devStateIcon An:my_WLAN_29px.An Aus:my_WLAN_29px.Aus
attr FB_WLAN_50 group WLAN
attr FB_WLAN_50 icon my_FritzBox_29px
attr FB_WLAN_50 room Steuerung,Wohnung,Wohnzimmer

# Dummy WLAN Gastzugang
define FB_WLAN_Gast dummy
attr FB_WLAN_Gast alias Fritz!Box WLAN Gastzugang
attr FB_WLAN_Gast devStateIcon An:my_WLAN_29px.An:Aus Aus:my_WLAN_29px.Aus:An
attr FB_WLAN_Gast group WLAN
attr FB_WLAN_Gast icon my_FritzBox_29px
attr FB_WLAN_Gast room Steuerung,Wohnung,Wohnzimmer
attr FB_WLAN_Gast setList An Aus
attr FB_WLAN_Gast sortby 2
attr FB_WLAN_Gast webCmd An:Aus

# Dummy WLAN Gastzugang Restdauer
define FB_WLAN_Gast_Timer dummy
attr FB_WLAN_Gast_Timer alias Fritz!Box WLAN Gastzugang Timer
attr FB_WLAN_Gast_Timer group WLAN
attr FB_WLAN_Gast_Timer icon my_FritzBox_29px
attr FB_WLAN_Gast_Timer room Steuerung,Wohnung,Wohnzimmer
attr FB_WLAN_Gast_Timer sortby 3

# WLAN-STATUS von der FritzBox (WLAN Gesamt, 2,4 GHz, 5 GHz und Gastzugang Restdauer)
define FB_WLAN_Status notify FritzBox:WLAN:.* { \
if ($EVTPART1 eq "on" && Value("FB_WLAN") ne "An") { \
fhem("set FB_WLAN An") \
} \
elsif ($EVTPART1 eq "off" && Value("FB_WLAN") ne "Aus") { \
fhem("set FB_WLAN Aus") \
    } \
} ;; { \
    if ($EVTPART3 eq "on" && Value("FB_WLAN_Gast") ne "An") { \
fhem("set FB_WLAN_Gast An") \
} \
elsif ($EVTPART3 eq "off" && Value("FB_WLAN_Gast") ne "Aus") { \
fhem("set FB_WLAN_Gast Aus") \
        }\
} ;; { \
if ((ReadingsVal("FritzBox","box_wlan_2.4GHz", "") eq "on") && Value("FB_WLAN_24") ne "An") { \
fhem("set FB_WLAN_24 An") \
} \
elsif ((ReadingsVal("FritzBox","box_wlan_2.4GHz", "") eq "off") && Value("FB_WLAN_24") ne "Aus") { \
fhem("set FB_WLAN_24 Aus") \
} \
} ;; { \
if ((ReadingsVal("FritzBox","box_wlan_5GHz", "") eq "on") && Value("FB_WLAN_50") ne "An") { \
fhem("set FB_WLAN_50 An") \
} \
elsif ((ReadingsVal("FritzBox","box_wlan_5GHz", "") eq "off") && Value("FB_WLAN_50") ne "Aus") { \
fhem("set FB_WLAN_50 Aus") \
} \
} ;; { \
    fhem("set FB_WLAN_Gast_Timer " .(ReadingsVal("FritzBox","box_guestWlanRemain", "") ." Minuten")) \
}
attr FB_WLAN_Status alias Fritz!Box WLAN Status
attr FB_WLAN_Status group WLAN
attr FB_WLAN_Status icon my_Zahnrad_29px
attr FB_WLAN_Status room Steuerung

# Logik
# Logik Fritz!Box WLAN schalten
define FB_WLAN_schalten notify FB_WLAN:.* { \
if(Value("FB_WLAN") eq "An") { \
fhem("set FritzBox wlan on") \
} \
} ;; { \
if(Value("FB_WLAN") eq "Aus") { \
if(Value("FB_WLAN_Gast") eq "An") { \
fhem("set FritzBox guestWLAN off") \
} ;; { \
fhem("set FritzBox wlan off") \
} \
} \
}
attr FB_WLAN_schalten alias Fritz!Box WLAN schalten
attr FB_WLAN_schalten group WLAN
attr FB_WLAN_schalten icon my_Zahnrad_29px
attr FB_WLAN_schalten room Steuerung

# Logik Fritz!Box WLAN Gast schalten
define FB_WLAN_Gast_schalten notify FB_WLAN_Gast:.* { \
if(Value("FB_WLAN_Gast") eq "An") { \
fhem("set FritzBox guestWLAN on") \
} \
} ;; { \
if(Value("FB_WLAN_Gast") eq "Aus") { \
fhem("set FritzBox guestWLAN off") \
} \
}
attr FB_WLAN_Gast_schalten alias Fritz!Box WLAN Gastzugang schalten
attr FB_WLAN_Gast_schalten group WLAN
attr FB_WLAN_Gast_schalten icon my_Zahnrad_29px
attr FB_WLAN_Gast_schalten room Steuerung

# Logik  Fritz!Box WLAN in abhängigkeit von Nachtschaltung und Anwesenheitserkennung schalten
define FB_WLAN_Schaltfunktion notify Nachtschaltung:.*|Whg_Anwesenheit:.* { \
if((Value("Nachtschaltung") eq "Nein") && (Value("Whg_Anwesenheit") eq "Anwesend")) { \
if(Value("FB_WLAN") ne "An") { \
fhem("set FB_WLAN An") \
} \
} \
else {\
if (Value("FB_WLAN") ne "Aus") { \
fhem("set FB_WLAN Aus") \
} \
} \
}
attr FB_WLAN_Schaltfunktion alias Fritz!Box WLAN in Abhängkeit schalten
attr FB_WLAN_Schaltfunktion group WLAN
attr FB_WLAN_Schaltfunktion icon my_Zahnrad_29px
attr FB_WLAN_Schaltfunktion room Steuerung
##### Fritz!Box WLAN An und Aus schalten Ende #####

Eventuell kannst Du Teile aus den Code brauchen!

Gruß Bernd

Ich hatte das auch übernommen, es hat monatelang einwandfrei funktioniert.
Seit einigen Tagen steht im Status nur noch jeweils ???
Hat jemand ähnliche Prbleme?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Devender

das sieht sehr kompliziert aus...
ich habe das mit WLAN und gWLAN so gelöst und der Status wird immer korrekt signalisiert:


Internals:
   DEF        Fritzbox:box_guestWlan
   DEVICE     Fritzbox
   NAME       gWLAN
   NR         388
   NTFY_ORDER 50-gWLAN
   READING    box_guestWlan
   STATE      off
   TYPE       readingsProxy
   Content:
     Fritzbox   1
   Readings:
     2016-10-09 10:24:47   lastCmd         off
     2016-11-25 22:29:13   state           off
Attributes:
   alias      WLAN-Gäste
   devStateIcon on:10px-kreis-gruen off:10px-kreis-rot
   group      Steuerung
   icon       it_wifi
   room       Haus
   setFn      {($CMD eq "off")?"guestWlan off":"guestWlan on";;}
   setList    on off
   webCmd     on:off
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul