Meine fhem.cfg

Wie gewünscht hier nun meine fhem.cfg.

Damit kann man die Devices aus meiner FTUI 2.6 und der dazugehörigen Konfiguration vergleichen und besser verstehen.

information 32  IP's, PIN's, Passwörter, Private URL's, MAC-Adressen etc. wurden durch "XXXXXXXXXX" ersetzt!

checkmark 32  Stand: 11.06.2017

 

fhem.cfg

 

attr global userattr alarmDevice:Actor,Sensor alarmSettings cmdIcon devStateIcon devStateStyle icon sortby stateFormat webCmd widgetOverride
attr global altitude 68
attr global autoload_undefined_devices 1
attr global exclude_from_update 70_PIONEERAVR.pm widget_gds.js
attr global group FHEM
attr global language DE
attr global latitude 52.315417
attr global logfile /opt/fhem/log/fhem-%Y-%m.log
attr global longitude 9.971457
attr global modpath .
attr global room Büro
attr global sendStatistics onUpdate
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3


define WEB FHEMWEB 8083 global
attr WEB CssFiles niceclocks/niceclocks.css
attr WEB HTTPS 1
attr WEB JavaScripts niceclocks/fhem_niceclocks.js
attr WEB csrfToken none
attr WEB editConfig 1
attr WEB group FHEM
attr WEB hiddenroom GDS Files,AlarmRoom
attr WEB longpoll 1
attr WEB niceclocksParam {"clockStyle" : "analog","clockFace" : "black","keepBg" : false,"fixMenu" : false,"keepHeader" : true }
attr WEB plotfork 1
attr WEB room Büro
attr WEB sslVersion SSLv23:!SSLv3:!SSLv2
attr WEB stylesheetPrefix dark

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog /opt/fhem/log/fhem-%Y-%m.log fakelog
attr Logfile group FHEM
attr Logfile room Büro

define autocreate autocreate
attr autocreate autosave 1
attr autocreate disable 1
attr autocreate filelog /opt/fhem/log/%NAME-%Y.log
attr autocreate group FHEM
attr autocreate ignoreTypes CUL_HOERMANN.*|FHT.*|CUL_WS.*
attr autocreate room Büro

define eventTypes eventTypes /opt/fhem/log/eventTypes.txt
attr eventTypes group FHEM
attr eventTypes room Büro

# Disable this to avoid looking for new USB devices on startup
define FritzBox_7362 FRITZBOX XXXXXXXXXX
attr FritzBox_7362 INTERVAL 30
attr FritzBox_7362 event-on-change-reading tam1_newMsg,tam1_state
attr FritzBox_7362 fritzBoxIP XXXXXXXXXX
attr FritzBox_7362 group Hardware
attr FritzBox_7362 room Wohnzimmer

define FritzBoxCallMonitor FB_CALLMONITOR XXXXXXXXXX
attr FritzBoxCallMonitor answMachine-is-missed-call 1
attr FritzBoxCallMonitor country-code 0049
attr FritzBoxCallMonitor event-on-change-reading .*
attr FritzBoxCallMonitor fritzbox-remote-phonebook 1
attr FritzBoxCallMonitor fritzbox-remote-phonebook-via tr064
attr FritzBoxCallMonitor group Hardware
attr FritzBoxCallMonitor local-area-code XXXXXXXXXX
attr FritzBoxCallMonitor reverse-search phonebook,dasoertliche.de,klicktel.de,textfile,search.ch,dasschnelle.at
attr FritzBoxCallMonitor reverse-search-cache 1
attr FritzBoxCallMonitor reverse-search-cache-file /opt/fhem/log/telefonbuch_cache.txt
attr FritzBoxCallMonitor room Wohnzimmer

define pushover Pushover XXXXXXXXXX XXXXXXXXXX
attr pushover alarmDevice Actor
attr pushover alarmSettings |||0
attr pushover group Status
attr pushover priority 0
attr pushover room Status
attr pushover title FHEM

define FritzBoxCallList FB_CALLLIST FritzBoxCallMonitor
attr FritzBoxCallList alias Anruferliste
attr FritzBoxCallList create-readings 1
attr FritzBoxCallList event-on-change-reading .*
attr FritzBoxCallList event-on-update-reading .*
attr FritzBoxCallList group Telefon
attr FritzBoxCallList internal-number-filter {'XXXXXXXXXX' => 'Wohnzimmer','XXXXXXXXXX' => 'Büro'}
attr FritzBoxCallList language de
attr FritzBoxCallList list-order descending
attr FritzBoxCallList list-type incoming
attr FritzBoxCallList number-of-calls 10
attr FritzBoxCallList room Status
attr FritzBoxCallList time-format-string %d.%m. %H:%M

define residents RESIDENTS
attr residents alias Residents
attr residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
attr residents group Personen
attr residents icon control_building_filled
attr residents rgr_showAllStates 1
attr residents room Status
attr residents webCmd state

define rr_Roman ROOMMATE residents
attr rr_Roman devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Roman event-on-change-reading .*
attr rr_Roman group Personen
attr rr_Roman icon people_sensor
attr rr_Roman room Flur
attr rr_Roman rr_autoGoneAfter 24
attr rr_Roman rr_presenceDevices Roman_Schluessel
attr rr_Roman rr_realname group
attr rr_Roman rr_states home,asleep,absent,gone
attr rr_Roman sortby 1
attr rr_Roman webCmd state

define rr_Sarah ROOMMATE residents
attr rr_Sarah devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Sarah event-on-change-reading .*
attr rr_Sarah group Personen
attr rr_Sarah icon people_sensor
attr rr_Sarah room Flur
attr rr_Sarah rr_autoGoneAfter 24
attr rr_Sarah rr_presenceDevices Sarah_Schluessel
attr rr_Sarah rr_realname group
attr rr_Sarah rr_states home,asleep,absent,gone
attr rr_Sarah sortby 1
attr rr_Sarah webCmd state

define rg_anwesenheit readingsGroup <%people_sensor>,<Status>,<>,<>,<>,<>,<>\
rr_Roman:state,<&nbsp;;>,<%user_available>,<%user_away>,<%scene_sleeping_alternat>,<%user_ext_away>\
rr_Sarah:state,<&nbsp;;>,<%user_available>,<%user_away>,<%scene_sleeping_alternat>,<%user_ext_away>
attr rg_anwesenheit commands {\
'rg_anwesenheit.user_available' => 'set %DEVICE state home',\
'rg_anwesenheit.user_away' => 'set %DEVICE state absent',\
'rg_anwesenheit.user_ext_away' => 'set %DEVICE state gone',\
'rg_anwesenheit.scene_sleeping_alternat' => 'set %DEVICE state gotosleep'\
}\
attr rg_anwesenheit group Personen
attr rg_anwesenheit mapping {\
rr_Roman => "Roman",\
rr_Sarah => "Sarah"\
}
attr rg_anwesenheit room Status
attr rg_anwesenheit valueIcon {\
'state.home' => 'user_available@lime',\
'state.absent' => 'user_away@orange',\
'state.gone' => 'user_ext_away@red',\
'state.gotosleep' => 'scene_sleeping_alternat@darkgreen'\
}

define vsx_510 PIONEERAVR telnet XXXXXXXXXX:XXXXXXXXXX
attr vsx_510 devStateIcon on:rc_GREEN:off off:rc_STOP:on disconnected:rc_RED:reopen
attr vsx_510 event-on-change-reading .*
attr vsx_510 group Multimedia
attr vsx_510 room Wohnzimmer
attr vsx_510 webCmd volume:mute:input

define STATISTICS statistics Wetter_Pro|BMP180_flur|dht_esp_ost|dht_esp_west|dht_dummy
attr STATISTICS group Wetter
attr STATISTICS ignoreDefaultAssignments 1
attr STATISTICS room Draußen
attr STATISTICS tendencyReadings temperature,humidity,dewPoint,pressure

define bad_bat_alert dummy
attr bad_bat_alert event-on-change-reading .*
attr bad_bat_alert group Status
attr bad_bat_alert room Bad
attr bad_bat_alert setList on off

define doif_bad_bat_alert DOIF ([bad_HT:battery] eq "low" or [bad_WT:battery] eq "low" or [bad_SC:battery] eq "low") (set bad_bat_alert on) DOELSE (set bad_bat_alert off)
attr doif_bad_bat_alert group Status
attr doif_bad_bat_alert room Bad

define bu_bat_alert dummy
attr bu_bat_alert event-on-change-reading .*
attr bu_bat_alert group Status
attr bu_bat_alert room Büro
attr bu_bat_alert setList on off

define doif_bu_bat_alert DOIF ([bu_HT:battery] eq "low" or [bu_WT:battery] eq "low" or [bu_SC:battery] eq "low") (set bu_bat_alert on) DOELSE (set bu_bat_alert off)
attr doif_bu_bat_alert group Status
attr doif_bu_bat_alert room Büro

define fl_bat_alert dummy
attr fl_bat_alert event-on-change-reading .*
attr fl_bat_alert group Status
attr fl_bat_alert room Flur
attr fl_bat_alert setList on off

define doif_fl_bat_alert DOIF ([eco_taster:battery] eq "low" or [fl_tuerkontakt:battery] eq "low" or [HM_2FB144:battery] eq "low" or [KeyMatic:battery] eq "low" or [Roman_Schluessel:battery_val] eq "low" or [Sarah_Schluessel:battery_val] eq "low") (set fl_bat_alert on) DOELSE (set fl_bat_alert off)
attr doif_fl_bat_alert group Status
attr doif_fl_bat_alert room Flur

define ku_bat_alert dummy
attr ku_bat_alert event-on-change-reading .*
attr ku_bat_alert group Status
attr ku_bat_alert room Küche
attr ku_bat_alert setList on off

define doif_ku_bat_alert DOIF ([ku_HT:battery] eq "low" or [ku_WT:battery] eq "low" or [ku_SC:battery] eq "low") (set ku_bat_alert on) DOELSE (set ku_bat_alert off)
attr doif_ku_bat_alert group Status
attr doif_ku_bat_alert room Küche

define wz_bat_alert dummy
attr wz_bat_alert event-on-change-reading .*
attr wz_bat_alert group Status
attr wz_bat_alert room Wohnzimmer
attr wz_bat_alert setList on off

define doif_wz_bat_alert DOIF ([wz_HT:battery] eq "low" or [wz_WT:battery] eq "low" or [wz_WT2:battery] eq "low" or [wz_SC:battery] eq "low" or [wz_taster_a:battery] eq "low" or [wz_taster_b:battery] eq "low") (set wz_bat_alert on) DOELSE (set wz_bat_alert off)
attr doif_wz_bat_alert group Status
attr doif_wz_bat_alert room Wohnzimmer

define sz_bat_alert dummy
attr sz_bat_alert event-on-change-reading .*
attr sz_bat_alert group Status
attr sz_bat_alert room Schlafzimmer
attr sz_bat_alert setList on off

define doif_sz_bat_alert DOIF ([sz_HT:battery] eq "low" or [sz_WT:battery] eq "low" or [sz_SC:battery] eq "low") (set sz_bat_alert on) DOELSE (set sz_bat_alert off)
attr doif_sz_bat_alert group Status
attr doif_sz_bat_alert room Schlafzimmer

define Wetter_Pro PROPLANTA Sehnde de
attr Wetter_Pro INTERVAL 0
attr Wetter_Pro event-on-change-reading .*
attr Wetter_Pro forecastDays 7
attr Wetter_Pro group Wetter
attr Wetter_Pro room Draußen

define notify_gds_readalerts notify gds:REREADALERTS.* get gds alerts 103241000
attr notify_gds_readalerts group Wetter
attr notify_gds_readalerts room DWD

define cal_Abfall Calendar ical url XXXXXXXXXX 86400
attr cal_Abfall group Abfall
attr cal_Abfall room Status

define gpio18_flur dummy
attr gpio18_flur event-on-change-reading .*
attr gpio18_flur group Licht
attr gpio18_flur room Flur
attr gpio18_flur setList state:slider,0,32,1024
attr gpio18_flur webCmd state

define doif_fl_oberlicht_nacht DOIF ([residents:state] eq "home" and [22:00-[twilight:sr_civil]|01234] or [23:00-[twilight:sr_civil]|56]) (set gpio18_flur 20)\
DOELSE (set gpio18_flur 0)
attr doif_fl_oberlicht_nacht group Licht
attr doif_fl_oberlicht_nacht room Flur

define cul_433 CUL XXXXXXXXXX:XXXXXXXXXX 0000
attr cul_433 event-on-change-reading .*
attr cul_433 group Hardware
attr cul_433 model CUL
attr cul_433 rfmode SlowRF
attr cul_433 room Flur
attr cul_433 verbose 0

define IT_F0F0FFFF01 IT F0F0FFFF01 01 10
attr IT_F0F0FFFF01 IODev cul_433
attr IT_F0F0FFFF01 alias Peripherie
attr IT_F0F0FFFF01 event-on-change-reading state,STATE
attr IT_F0F0FFFF01 group Steckdosen
attr IT_F0F0FFFF01 model itswitch
attr IT_F0F0FFFF01 room Büro

define IT_F0F0FFFF10 IT F0F0FFFF10 0F F0
attr IT_F0F0FFFF10 IODev cul_433
attr IT_F0F0FFFF10 alias Arbeitsplatz Steckdosen
attr IT_F0F0FFFF10 event-on-change-reading state,STATE
attr IT_F0F0FFFF10 group Steckdosen
attr IT_F0F0FFFF10 model itswitch
attr IT_F0F0FFFF10 room Büro

define twilight Twilight 52.315417 9.971457 -4 12833459
attr twilight group Wetter
attr twilight room Flur
attr twilight stateFormat light

define IT_F0F0FFF100 IT F0F0FFF100 01 10
attr IT_F0F0FFF100 IODev cul_433
attr IT_F0F0FFF100 alias Lötkolben
attr IT_F0F0FFF100 event-on-change-reading state,STATE
attr IT_F0F0FFF100 group Steckdosen
attr IT_F0F0FFF100 model itswitch
attr IT_F0F0FFF100 room Büro

define cul_MAX CUL XXXXXXXXXX:XXXXXXXXXX 0000
attr cul_MAX group Hardware,Heizung
attr cul_MAX model CUN
attr cul_MAX rfmode MAX
attr cul_MAX room Wohnzimmer

define doif_fl_spot DOIF ([residents:state] eq "home" and [[twilight:ss_weather]-22:00|01234] or [residents:state] eq "home" and [[twilight:ss_weather]-23:00|56]) (set fl_spot on)\
DOELSEIF ([22:00-05:00|01234] and [fl_tuerkontakt:state] =~ "open" or [23:00-05:00|56] and [fl_tuerkontakt:state] =~ "open") (set fl_spot on-for-timer 120)\
DOELSEIF ([residents:state] eq "absent" and [([twilight:ss_weather]+int(rand(2700)))]) (set fl_spot on)\
DOELSEIF ([22:00|01234] or [23:00|56] or [[twilight:sr_civil]]) (set fl_spot off)
attr doif_fl_spot group Licht
attr doif_fl_spot room Flur

define doif_sz_SC_pushover_msg DOIF ([sz_SC:onoff] == 1 and [15:00]) (set pushover msg 'Schlafzimmer' 'Fenster ist immer noch offen!' 'S7edgeRoman' 0 '')
attr doif_sz_SC_pushover_msg group Heizung
attr doif_sz_SC_pushover_msg room Schlafzimmer

define allowedWEB allowed
attr allowedWEB basicAuth XXXXXXXXXX
attr allowedWEB group FHEM
attr allowedWEB room Büro
attr allowedWEB validFor WEB

define IT_00F0FFF100 IT 00F0FFF100 01 10
attr IT_00F0FFF100 IODev cul_433
attr IT_00F0FFF100 alias Arbeitsplatz Licht
attr IT_00F0FFF100 event-on-change-reading state,STATE
attr IT_00F0FFF100 group Steckdosen
attr IT_00F0FFF100 model itswitch
attr IT_00F0FFF100 room Büro

define IT_00F0FFFF10 IT 00F0FFFF10 01 10
attr IT_00F0FFFF10 IODev cul_433
attr IT_00F0FFFF10 event-on-change-reading state,STATE
attr IT_00F0FFFF10 group Steckdosen
attr IT_00F0FFFF10 model itswitch
attr IT_00F0FFFF10 room Unsorted

define IT_00F0FFFF01 IT 00F0FFFF01 01 10
attr IT_00F0FFFF01 IODev cul_433
attr IT_00F0FFFF01 alias Induktionsladegerät
attr IT_00F0FFFF01 event-on-change-reading state,STATE
attr IT_00F0FFFF01 group Steckdosen
attr IT_00F0FFFF01 model itswitch
attr IT_00F0FFFF01 room Wohnzimmer

define notify_savestate notify global:.* { if(@structChangeHist) {CommandSetReading(undef,'notify_savestate savestate 1');; CommandSetReading(undef,'notify_savestate color #b22222');; CommandSetReading(undef,'notify_savestate text Config nicht<br/>gespeichert!')} else {CommandSetReading(undef,'notify_savestate savestate 0');; CommandSetReading(undef,'notify_savestate color #eee');; CommandSetReading(undef,'notify_savestate text Config<br/>gespeichert!')} }
attr notify_savestate group FHEM
attr notify_savestate room Büro

define doif_eco_taster DOIF ([eco_taster:onoff] == 0 and [heatingcontrol_dummy] ne "sommer") (set heatingcontrol_dummy off, set .*_WT desiredTemperature eco) DOELSEIF ([eco_taster:onoff] == 1 and [heatingcontrol_dummy] ne "sommer") (set heatingcontrol_dummy on)
attr doif_eco_taster group Heizung
attr doif_eco_taster room Flur

define doif_bad_fenster DOIF ([bad_SC:onoff] == 1 and [heatingcontrol_dummy] eq "winter") (set bad_WT desiredTemperature 5.0)\
DOELSEIF ([bad_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "eco") (set bad_WT desiredTemperature 15.0)\
DOELSEIF ([bad_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") ({Heating_Control_SetTemp("bad_heatingcontrol")})
attr doif_bad_fenster group Heizung
attr doif_bad_fenster room Bad

define doif_bu_fenster DOIF ([bu_SC:onoff] == 1 and [heatingcontrol_dummy] eq "winter") (set bu_WT desiredTemperature 5.0)\
DOELSEIF ([bu_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "eco") (set bu_WT desiredTemperature 15.0)\
DOELSEIF ([bu_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") ({Heating_Control_SetTemp("bu_heatingcontrol")})
attr doif_bu_fenster group Heizung
attr doif_bu_fenster room Büro

define doif_ku_fenster DOIF ([ku_SC:onoff] == 1 and [heatingcontrol_dummy] eq "winter") (set ku_WT desiredTemperature 5.0)\
DOELSEIF ([ku_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "eco") (set ku_WT desiredTemperature 15.0)\
DOELSEIF ([ku_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") ({Heating_Control_SetTemp("ku_heatingcontrol")})
attr doif_ku_fenster group Heizung
attr doif_ku_fenster room Küche

define doif_sz_fenster DOIF ([sz_SC:onoff] == 1 and [heatingcontrol_dummy] eq "winter") (set sz_WT desiredTemperature 5.0)\
DOELSEIF ([sz_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "eco") (set sz_WT desiredTemperature 15.0)\
DOELSEIF ([sz_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") ({Heating_Control_SetTemp("sz_heatingcontrol")})
attr doif_sz_fenster group Heizung
attr doif_sz_fenster room Schlafzimmer

define doif_wz_fenster DOIF ([wz_SC:onoff] == 1 and [heatingcontrol_dummy] eq "winter") (set wz_WT desiredTemperature 5.0)\
DOELSEIF ([wz_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "eco") (set wz_WT desiredTemperature 15.0)\
DOELSEIF ([wz_SC:onoff] == 0 and [heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") ({Heating_Control_SetTemp("wz_heatingcontrol")})
attr doif_wz_fenster group Heizung
attr doif_wz_fenster room Wohnzimmer

define AMADCommBridge AMAD
attr AMADCommBridge group FHEM
attr AMADCommBridge room Büro

define wz_subs_auto_dummy dummy
attr wz_subs_auto_dummy group Multimedia
attr wz_subs_auto_dummy room Wohnzimmer

define iLightController MilightBridge XXXXXXXXXX
attr iLightController checkInterval 30
attr iLightController event-on-change-reading state
attr iLightController group Hardware
attr iLightController port XXXXXXXXXX
attr iLightController protocol udp
attr iLightController room Wohnzimmer
attr iLightController sendInterval 100

define wz_ilight_decke MilightDevice RGBW iLightController 5
attr wz_ilight_decke userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_ilight_decke IODev iLightController
attr wz_ilight_decke colorCast 0,-5,0,0,-10,-29
attr wz_ilight_decke defaultBrightness 100
attr wz_ilight_decke devStateIcon {(MilightDevice_devStateIcon($name),"toggle")}
attr wz_ilight_decke event-on-change-reading .*
attr wz_ilight_decke group Licht
attr wz_ilight_decke lightSceneParamsToSave hsv
attr wz_ilight_decke restoreAtStart 0
attr wz_ilight_decke room Wohnzimmer
attr wz_ilight_decke webCmd on:off:dim:hue:night:rgb ffffff:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb ffff00

define wz_ilight_stehlampe MilightDevice RGBW iLightController 7
attr wz_ilight_stehlampe userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_ilight_stehlampe IODev iLightController
attr wz_ilight_stehlampe colorCast 0,-5,0,0,-16,-29
attr wz_ilight_stehlampe defaultBrightness 100
attr wz_ilight_stehlampe devStateIcon {(MilightDevice_devStateIcon($name),"toggle")}
attr wz_ilight_stehlampe event-on-change-reading .*
attr wz_ilight_stehlampe group Licht
attr wz_ilight_stehlampe lightSceneParamsToSave hsv
attr wz_ilight_stehlampe presets 60,100,100
attr wz_ilight_stehlampe restoreAtStart 0
attr wz_ilight_stehlampe room Wohnzimmer
attr wz_ilight_stehlampe webCmd on:off:dim:hue:night:rgb ffffff:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb ffff00

define doif_dr_ga_bat_alert DOIF ([dht_esp_west:battery_state] eq "low" or [dht_esp_ost:battery_state] eq "low") (set dr_ga_bat_alert on) DOELSE (set dr_ga_bat_alert off)
attr doif_dr_ga_bat_alert group Status
attr doif_dr_ga_bat_alert room Draußen

define dr_ga_bat_alert dummy
attr dr_ga_bat_alert event-on-change-reading .*
attr dr_ga_bat_alert group Status
attr dr_ga_bat_alert room Draußen
attr dr_ga_bat_alert setList on off

define bu_heatingcontrol Heating_Control bu_WT de 1234560|00:00|eco
attr bu_heatingcontrol commandTemplate set $NAME desiredTemperature $EVENT
attr bu_heatingcontrol disable 1
attr bu_heatingcontrol group Heizung
attr bu_heatingcontrol room Büro
attr bu_heatingcontrol windowSensor bu_SC

define bad_heatingcontrol Heating_Control bad_WT de 12345|05:00|comfort 12345|08:00|18.0 12345|16:00|20.0 12345|18:00|comfort 12340|22:00|20.0 56|23:00|20.0 60|08:00|comfort 60|11:00|20.0 60|17:00|comfort
attr bad_heatingcontrol commandTemplate set $NAME desiredTemperature $EVENT
attr bad_heatingcontrol disable 1
attr bad_heatingcontrol group Heizung
attr bad_heatingcontrol room Bad
attr bad_heatingcontrol windowSensor bad_SC

define ku_heatingcontrol Heating_Control ku_WT de 12345|05:00|comfort 12345|08:00|eco 60|08:00|comfort 60|11:00|eco
attr ku_heatingcontrol commandTemplate set $NAME desiredTemperature $EVENT
attr ku_heatingcontrol disable 1
attr ku_heatingcontrol group Heizung
attr ku_heatingcontrol room Küche
attr ku_heatingcontrol windowSensor ku_SC

define sz_heatingcontrol Heating_Control sz_WT de 12345|05:00|20.0 12345|08:00|eco 01234|20:30|comfort 56|21:00|comfort 01234|22:15|18.0 56|23:00|18.0 60|08:00|20.0 60|10:00|eco
attr sz_heatingcontrol commandTemplate set $NAME desiredTemperature $EVENT
attr sz_heatingcontrol disable 1
attr sz_heatingcontrol group Heizung
attr sz_heatingcontrol room Schlafzimmer
attr sz_heatingcontrol windowSensor sz_SC

define wz_heatingcontrol Heating_Control wz_WT de 1234|17:00|comfort 12340|22:00|eco 560|16:00|comfort 56|23:00|eco
attr wz_heatingcontrol commandTemplate set $NAME desiredTemperature $EVENT
attr wz_heatingcontrol disable 1
attr wz_heatingcontrol group Heizung
attr wz_heatingcontrol room Wohnzimmer
attr wz_heatingcontrol windowSensor wz_SC

define heatingcontrol_dummy dummy
attr heatingcontrol_dummy event-on-change-reading .*
attr heatingcontrol_dummy group Heizung
attr heatingcontrol_dummy room Status
attr heatingcontrol_dummy setList winter sommer

define doif_heatingcontrol_dummy DOIF ([heatingcontrol_dummy] eq "winter" and [heatingcontrol_eco_dummy] eq "auto") (set .*_heatingcontrol enable, {Heating_Control_SetAllTemps()}, save) DOELSEIF ([heatingcontrol_dummy] eq "sommer" and [heatingcontrol_eco_dummy] eq "auto") (set .*_heatingcontrol disable, set .*_WT desiredTemperature off, save) DOELSEIF ([heatingcontrol_eco_dummy] eq "eco") (set .*_heatingcontrol disable, set .*_WT desiredTemperature eco, save)
attr doif_heatingcontrol_dummy group Heizung
attr doif_heatingcontrol_dummy room Status

define gds GDS
attr gds event-on-change-reading .*
attr gds event-on-update-reading .*
attr gds gdsHideFiles 1
attr gds gdsLong 1
attr gds gdsUseAlerts 1
attr gds group Wetter
attr gds room DWD
attr gds userReadings a_count {ReadingsVal('gds','a_count',0)}

define GVH HTTPMOD none 0
attr GVH userattr event-on-update-reading get01Name get01Regex get01URL get02Name get02Regex get02URL timeout
attr GVH event-on-update-reading .*
attr GVH get01Name Bahnhof
attr GVH get01Regex (\[\[.*\]\])
attr GVH get01URL XXXXXXXXXX
attr GVH get02Name Zuckerfabriksweg
attr GVH get02Regex (\[\[.*\]\])
attr GVH get02URL XXXXXXXXXX
attr GVH group Informationen
attr GVH room Status
attr GVH timeout 30

define ku_S3_amad AMAD XXXXXXXXXX XXXXXXXXXX
attr ku_S3_amad group Display
attr ku_S3_amad room Küche

define bu_TAB3_amad AMAD XXXXXXXXXX
attr bu_TAB3_amad event-on-change-reading .*
attr bu_TAB3_amad group Display
attr bu_TAB3_amad room Büro
attr bu_TAB3_amad setAPSSID XXXXXXXXXX

define cal_Roman Calendar ical url XXXXXXXXXX 900
attr cal_Roman group Termine
attr cal_Roman room Status
attr cal_Roman verbose 0

define ActionDetector CUL_HM 000000
attr ActionDetector event-on-change-reading .*
attr ActionDetector group FHEM
attr ActionDetector model ActionDetector
attr ActionDetector room Büro

define notify_fl_tuerkontakt notify fl_tuerkontakt:contact.* setreading KeyMatic door $EVTPART1
attr notify_fl_tuerkontakt group Aktoren
attr notify_fl_tuerkontakt room Flur

define myAbfall ABFALL cal_Abfall
attr myAbfall calendarname_praefix 0
attr myAbfall group Abfall
attr myAbfall room Status

define notify_Sprachbefehl notify AMAD.*receiveVoiceCommand.* {Sprachbefehle ("$NAME","$EVENT")}

define Dummy_test dummy

define st_bat_alert dummy
attr st_bat_alert group Status
attr st_bat_alert room Status
attr st_bat_alert setList on off

define doif_st_bat_alert DOIF ([bad_bat_alert] eq "on" or [bu_bat_alert] eq "on" or [fl_bat_alert] eq "on" or [ku_bat_alert] eq "on" or [sz_bat_alert] eq "on" or [wz_bat_alert] eq "on") (set st_bat_alert on) DOELSE (set st_bat_alert off)
attr doif_st_bat_alert group Status
attr doif_st_bat_alert room Status

define notify_gds_userReadings notify gds:a_count.* { fhem("setreading gds a_count ".ReadingsVal('gds','a_count','0')) }
attr notify_gds_userReadings group Wetter
attr notify_gds_userReadings room DWD

define fhem_flur FHEM2FHEM XXXXXXXXXX:XXXXXXXXXX LOG:BMP180_flur|TSL2561|notify_savestate_flur|keymatic|dummy_alarm_rfid|dummy_sabotage_rfid|Roman_Gtag|Sarah_Gtag|rpi_sys_flur XXXXXXXXXX
attr fhem_flur userattr event-on-change-reading
attr fhem_flur event-on-change-reading .*
attr fhem_flur group FHEM
attr fhem_flur room Flur

define telnetPort telnet XXXXXXXXXX global
attr telnetPort group FHEM
attr telnetPort room Büro

define allowed_telnetPort allowed
attr allowed_telnetPort globalpassword XXXXXXXXXX
attr allowed_telnetPort group FHEM
attr allowed_telnetPort room Büro
attr allowed_telnetPort validFor telnetPort

define doif_Wetter_Pro DOIF ([:45]) (set Wetter_Pro update)
attr doif_Wetter_Pro do always
attr doif_Wetter_Pro group Wetter
attr doif_Wetter_Pro room Draußen

define spritpreise HTTPMOD none 0
attr spritpreise userattr get01Name get01Regex get01URL get02Name get02Regex get02URL get03Name get03Regex get03URL get04Name get04Regex get04URL get05Name get05Regex get05URL get06Name get06Regex get06URL
attr spritpreise event-on-change-reading .*
attr spritpreise event-on-update-reading .*
attr spritpreise get01Name DeppeSuper
attr spritpreise get01Regex <span>Super E5</span>[^0-9]+([0-9\.]+)
attr spritpreise get01URL XXXXXXXXXX
attr spritpreise get02Name DeppeSuperPlus
attr spritpreise get02Regex <span>SuperPlus[^0-9]+([0-9\.]+)
attr spritpreise get02URL XXXXXXXXXX
attr spritpreise get03Name AralSuper
attr spritpreise get03Regex <span>Super E5</span>[^0-9]+([0-9\.]+)
attr spritpreise get03URL XXXXXXXXXX
attr spritpreise get04Name AralSuperPlus
attr spritpreise get04Regex <span>ARAL Ultimate 102[^0-9]+([0-9\.]+)
attr spritpreise get04URL XXXXXXXXXX
attr spritpreise get05Name HemSuper
attr spritpreise get05Regex <span>Super E5</span>[^0-9]+([0-9\.]+)
attr spritpreise get05URL XXXXXXXXXX
attr spritpreise get06Name HemSuperPlus
attr spritpreise get06Regex <span>SuperPlus[^0-9]+([0-9\.]+)
attr spritpreise get06URL XXXXXXXXXX
attr spritpreise group Informationen
attr spritpreise room Status
attr spritpreise timeout 10

define doif_cal_Abfall DOIF ([00:02]) (set cal_Abfall update) DOELSEIF ([07:00]) (set cal_Abfall update)
attr doif_cal_Abfall group Abfall
attr doif_cal_Abfall room Status

define doif_gds_reread DOIF ([:30]) (get gds rereadcfg)
attr doif_gds_reread do always
attr doif_gds_reread group Wetter
attr doif_gds_reread room DWD

define rpi_reboot_flur dummy
attr rpi_reboot_flur group Hardware
attr rpi_reboot_flur room Flur

define fhem_reboot_flur dummy
attr fhem_reboot_flur group FHEM
attr fhem_reboot_flur room Flur

define pollen0 HTTPMOD http://donnerwetter.de/pollenflug/region.hts?plz=31319&PTag=0 0
attr pollen0 userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex
attr pollen0 enableControlSet 1
attr pollen0 group Wetter
attr pollen0 reading01Name Beifuss
attr pollen0 reading01Regex (?s)Beifu.*?poll([\d])
attr pollen0 reading02Name Birke
attr pollen0 reading02Regex (?s)Birke.*?poll([\d])
attr pollen0 reading03Name Buche
attr pollen0 reading03Regex (?s)Buche.*?poll([\d])
attr pollen0 reading04Name Erle
attr pollen0 reading04Regex (?s)Erle.*?poll([\d])
attr pollen0 reading05Name Esche
attr pollen0 reading05Regex (?s)Esche.*?poll([\d])
attr pollen0 reading06Name Flieder
attr pollen0 reading06Regex (?s)Flieder.*?poll([\d])
attr pollen0 reading07Name Gerste
attr pollen0 reading07Regex (?s)Gerste.*?poll([\d])
attr pollen0 reading08Name Graeser
attr pollen0 reading08Regex (?s)Gr.ser.*?poll([\d])
attr pollen0 reading09Name Hasel
attr pollen0 reading09Regex (?s)Hasel.*?poll([\d])
attr pollen0 reading10Name Pappel
attr pollen0 reading10Regex (?s)Pappel.*?poll([\d])
attr pollen0 reading11Name Platane
attr pollen0 reading11Regex (?s)Platane.*?poll([\d])
attr pollen0 reading12Name Raps
attr pollen0 reading12Regex (?s)Raps.*?poll([\d])
attr pollen0 reading13Name Roggen
attr pollen0 reading13Regex (?s)Roggen.*?poll([\d])
attr pollen0 reading14Name Weide
attr pollen0 reading14Regex (?s)Weide.*?poll([\d])
attr pollen0 reading15Name Weizen
attr pollen0 reading15Regex (?s)Weizen.*?poll([\d])
attr pollen0 requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 10.0;; WOW64;; rv:46.0) Gecko/20100101 Firefox/46.0
attr pollen0 room Draußen
attr pollen0 userReadings Max {my $gesamt = 0;;\
my $anzahl = 0;;\
if(ReadingsVal('pollen0','Beifuss',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Beifuss',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Birke',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Birke',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Buche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Buche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Erle',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Erle',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Esche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Esche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Flieder',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Flieder',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Gerste',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Gerste',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Graeser',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Graeser',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Hasel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Hasel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Pappel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Pappel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Platane',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Platane',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Raps',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Raps',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Roggen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Roggen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Weide',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Weide',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen0','Weizen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen0','Weizen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if($gesamt > 0 and $anzahl > 0) {\
  my $max = $gesamt / $anzahl;;\
  $max = ceil($max);;\
  return($max);;\
}\
else {\
  return("0");;\
} }

define pollen1 HTTPMOD http://donnerwetter.de/pollenflug/region.hts?plz=31319&PTag=1 0
attr pollen1 userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex
attr pollen1 enableControlSet 1
attr pollen1 group Wetter
attr pollen1 reading01Name Beifuss
attr pollen1 reading01Regex (?s)Beifu.*?poll([\d])
attr pollen1 reading02Name Birke
attr pollen1 reading02Regex (?s)Birke.*?poll([\d])
attr pollen1 reading03Name Buche
attr pollen1 reading03Regex (?s)Buche.*?poll([\d])
attr pollen1 reading04Name Erle
attr pollen1 reading04Regex (?s)Erle.*?poll([\d])
attr pollen1 reading05Name Esche
attr pollen1 reading05Regex (?s)Esche.*?poll([\d])
attr pollen1 reading06Name Flieder
attr pollen1 reading06Regex (?s)Flieder.*?poll([\d])
attr pollen1 reading07Name Gerste
attr pollen1 reading07Regex (?s)Gerste.*?poll([\d])
attr pollen1 reading08Name Graeser
attr pollen1 reading08Regex (?s)Gr.ser.*?poll([\d])
attr pollen1 reading09Name Hasel
attr pollen1 reading09Regex (?s)Hasel.*?poll([\d])
attr pollen1 reading10Name Pappel
attr pollen1 reading10Regex (?s)Pappel.*?poll([\d])
attr pollen1 reading11Name Platane
attr pollen1 reading11Regex (?s)Platane.*?poll([\d])
attr pollen1 reading12Name Raps
attr pollen1 reading12Regex (?s)Raps.*?poll([\d])
attr pollen1 reading13Name Roggen
attr pollen1 reading13Regex (?s)Roggen.*?poll([\d])
attr pollen1 reading14Name Weide
attr pollen1 reading14Regex (?s)Weide.*?poll([\d])
attr pollen1 reading15Name Weizen
attr pollen1 reading15Regex (?s)Weizen.*?poll([\d])
attr pollen1 requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 10.0;; WOW64;; rv:46.0) Gecko/20100101 Firefox/46.0
attr pollen1 room Draußen
attr pollen1 userReadings Max {my $gesamt = 0;;\
my $anzahl = 0;;\
if(ReadingsVal('pollen1','Beifuss',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Beifuss',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Birke',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Birke',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Buche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Buche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Erle',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Erle',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Esche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Esche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Flieder',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Flieder',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Gerste',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Gerste',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Graeser',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Graeser',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Hasel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Hasel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Pappel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Pappel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Platane',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Platane',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Raps',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Raps',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Roggen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Roggen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Weide',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Weide',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen1','Weizen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen1','Weizen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if($gesamt > 0 and $anzahl > 0) {\
  my $max = $gesamt / $anzahl;;\
  $max = ceil($max);;\
  return($max);;\
}\
else {\
  return("0");;\
} }

define pollen2 HTTPMOD http://donnerwetter.de/pollenflug/region.hts?plz=31319&PTag=2 0
attr pollen2 userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex
attr pollen2 enableControlSet 1
attr pollen2 group Wetter
attr pollen2 reading01Name Beifuss
attr pollen2 reading01Regex (?s)Beifu.*?poll([\d])
attr pollen2 reading02Name Birke
attr pollen2 reading02Regex (?s)Birke.*?poll([\d])
attr pollen2 reading03Name Buche
attr pollen2 reading03Regex (?s)Buche.*?poll([\d])
attr pollen2 reading04Name Erle
attr pollen2 reading04Regex (?s)Erle.*?poll([\d])
attr pollen2 reading05Name Esche
attr pollen2 reading05Regex (?s)Esche.*?poll([\d])
attr pollen2 reading06Name Flieder
attr pollen2 reading06Regex (?s)Flieder.*?poll([\d])
attr pollen2 reading07Name Gerste
attr pollen2 reading07Regex (?s)Gerste.*?poll([\d])
attr pollen2 reading08Name Graeser
attr pollen2 reading08Regex (?s)Gr.ser.*?poll([\d])
attr pollen2 reading09Name Hasel
attr pollen2 reading09Regex (?s)Hasel.*?poll([\d])
attr pollen2 reading10Name Pappel
attr pollen2 reading10Regex (?s)Pappel.*?poll([\d])
attr pollen2 reading11Name Platane
attr pollen2 reading11Regex (?s)Platane.*?poll([\d])
attr pollen2 reading12Name Raps
attr pollen2 reading12Regex (?s)Raps.*?poll([\d])
attr pollen2 reading13Name Roggen
attr pollen2 reading13Regex (?s)Roggen.*?poll([\d])
attr pollen2 reading14Name Weide
attr pollen2 reading14Regex (?s)Weide.*?poll([\d])
attr pollen2 reading15Name Weizen
attr pollen2 reading15Regex (?s)Weizen.*?poll([\d])
attr pollen2 requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 10.0;; WOW64;; rv:46.0) Gecko/20100101 Firefox/46.0
attr pollen2 room Draußen
attr pollen2 userReadings Max {my $gesamt = 0;;\
my $anzahl = 0;;\
if(ReadingsVal('pollen2','Beifuss',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Beifuss',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Birke',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Birke',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Buche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Buche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Erle',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Erle',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Esche',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Esche',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Flieder',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Flieder',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Gerste',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Gerste',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Graeser',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Graeser',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Hasel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Hasel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Pappel',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Pappel',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Platane',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Platane',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Raps',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Raps',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Roggen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Roggen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Weide',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Weide',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if(ReadingsVal('pollen2','Weizen',0) > 0) {\
  $gesamt = $gesamt + ReadingsVal('pollen2','Weizen',0);;\
  $anzahl = $anzahl + 1;;\
};;\
if($gesamt > 0 and $anzahl > 0) {\
  my $max = $gesamt / $anzahl;;\
  $max = ceil($max);;\
  return($max);;\
}\
else {\
  return("0");;\
} }

define doif_pollen DOIF ([:05]) (set pollen0 reread) DOELSEIF ([:06]) (set pollen1 reread) DOELSEIF ([:07]) (set pollen2 reread)
attr doif_pollen do always
attr doif_pollen group Wetter
attr doif_pollen room Draußen

define dht_esp_ost dummy
attr dht_esp_ost event-on-change-reading .*
attr dht_esp_ost group Sensoren
attr dht_esp_ost room Draußen
attr dht_esp_ost stateFormat T: temperature °C H: humidity % B: battery mV
attr dht_esp_ost userReadings battery_state { if (ReadingsVal('dht_esp_ost','battery',0) <= 3400) { "low" } else { "ok" } }

define dht_esp_west dummy
attr dht_esp_west event-on-change-reading .*
attr dht_esp_west group Sensoren
attr dht_esp_west room Draußen
attr dht_esp_west stateFormat T: temperature °C H: humidity % B: battery mV
attr dht_esp_west userReadings battery_state { if (ReadingsVal('dht_esp_west','battery',0) <= 3400) { "low" } else { "ok" } }

define dummy_haustuer_flur dummy
attr dummy_haustuer_flur group Aktoren
attr dummy_haustuer_flur room Flur
attr dummy_haustuer_flur setList on off
attr dummy_haustuer_flur useSetExtensions 1

define wz_S5_amad AMAD 192.168.1.24
attr wz_S5_amad event-on-change-reading .*
attr wz_S5_amad group Display
attr wz_S5_amad room Wohnzimmer
attr wz_S5_amad setAPSSID DJ-Talls-HQ-WiFi

define gpio18_garage dummy
attr gpio18_garage group Licht
attr gpio18_garage room Draußen
attr gpio18_garage setList state:slider,0,1,1024
attr gpio18_garage webCmd state

define fhem_garage FHEM2FHEM XXXXXXXXXX:XXXXXXXXXX LOG:notify_savestate_garage|dht22|rpi_sys_garage|licht|licht_gang|licht_sitzecke|repeater|steckdose|mk_tor_zu|mk_tor_auf|mk_tor_zu_sabo|mk_tor_auf_sabo XXXXXXXXXX
attr fhem_garage group FHEM
attr fhem_garage room Draußen

define SONOS SONOS
attr SONOS disable 0
attr SONOS pingType none
attr SONOS room Status
attr SONOS verbose 0

define SONOS_Kueche SONOSPLAYER RINCON_5CAAFD9CB24601400_MR
attr SONOS_Kueche VolumeStep 2
attr SONOS_Kueche alarmDevice Actor
attr SONOS_Kueche alarmSettings |||0
attr SONOS_Kueche alias Küche
attr SONOS_Kueche event-on-change-reading .*
attr SONOS_Kueche generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
attr SONOS_Kueche generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr SONOS_Kueche generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/>
attr SONOS_Kueche generateVolumeEvent 1
attr SONOS_Kueche generateVolumeSlider 1
attr SONOS_Kueche getAlarms 1
attr SONOS_Kueche group Multimedia
attr SONOS_Kueche icon icoSONOSPLAYER_icon-S1.png
attr SONOS_Kueche maxVolume 50
attr SONOS_Kueche minVolume 0
attr SONOS_Kueche model Sonos_S1
attr SONOS_Kueche room Küche
attr SONOS_Kueche sortby 1
attr SONOS_Kueche stateVariable Presence
attr SONOS_Kueche userReadings Favourites:LastActionResult.*?GetFavouritesWithCovers.* { if (ReadingsVal("SONOS_Kueche", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Radios:LastActionResult.*?GetRadiosWithCovers.* { if (ReadingsVal("SONOS_Kueche", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Playlists:LastActionResult.*?GetPlaylistsWithCovers.* { if (ReadingsVal("SONOS_Kueche", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, currentTrackPosition:LastActionResult.*?GetCurrentTrackPosition.* { if (ReadingsVal("SONOS_Kueche", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }
attr SONOS_Kueche verbose 0

define fhem_reboot_garage dummy
attr fhem_reboot_garage group FHEM
attr fhem_reboot_garage room Draußen

define rpi_reboot_garage dummy
attr rpi_reboot_garage group Hardware
attr rpi_reboot_garage room Draußen

define Alarmanlage_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr Alarmanlage_weblink room AlarmRoom

define Alarmanlage Alarm
attr Alarmanlage armact save
attr Alarmanlage armdelay 00:10
attr Alarmanlage armwait set SONOS_Kueche PlayURITemp \\FHEM.fritz.box\SonosSpeak\armwait.mp3 40;;save
attr Alarmanlage cancelact save
attr Alarmanlage disarmact set SONOS_Kueche PlayURITemp \\FHEM.fritz.box\SonosSpeak\disarmact.mp3 40;;save
attr Alarmanlage group Status
attr Alarmanlage level0end 00:00
attr Alarmanlage level0msg Sabotage!
attr Alarmanlage level0start 00:00
attr Alarmanlage level0xec disarmed
attr Alarmanlage level1end 0
attr Alarmanlage level1msg 0
attr Alarmanlage level1start 0
attr Alarmanlage level1xec disarmed
attr Alarmanlage level2end 0
attr Alarmanlage level2msg 0
attr Alarmanlage level2start 0
attr Alarmanlage level2xec disarmed
attr Alarmanlage level3end 0
attr Alarmanlage level3msg 0
attr Alarmanlage level3start 0
attr Alarmanlage level3xec disarmed
attr Alarmanlage level4end 0
attr Alarmanlage level4msg 0
attr Alarmanlage level4start 0
attr Alarmanlage level4xec disarmed
attr Alarmanlage level5end 0
attr Alarmanlage level5msg 0
attr Alarmanlage level5start 0
attr Alarmanlage level5xec disarmed
attr Alarmanlage level6end 23:59
attr Alarmanlage level6msg Sabotage!
attr Alarmanlage level6offact 1
attr Alarmanlage level6onact {fhem(;;
attr Alarmanlage level6start 00:00
attr Alarmanlage level6xec armed
attr Alarmanlage level7end 23:59
attr Alarmanlage level7msg Einbruch!
attr Alarmanlage level7offact 1
attr Alarmanlage level7onact {fhem(;;
attr Alarmanlage level7start 00:00
attr Alarmanlage level7xec disarmed
attr Alarmanlage room Alarm

define sequence_alarm_stumm sequence dummy_alarm_stumm:XXXXXXXXXX 5 dummy_alarm_stumm:XXXXXXXXXX 5 dummy_alarm_stumm:XXXXXXXXXX 5 dummy_alarm_stumm:XXXXXXXXXX 5 dummy_alarm_stumm:#
attr sequence_alarm_stumm alarmDevice Sensor
attr sequence_alarm_stumm alarmSettings alarm0,alarm1,alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|sequence_alarm_stumm:trigger|Web-PIN eingegeben.|off
attr sequence_alarm_stumm group Status
attr sequence_alarm_stumm room Alarm

define dummy_alarm_stumm dummy
attr dummy_alarm_stumm group Status
attr dummy_alarm_stumm room Alarm

define wz_lightscene LightScene wz_ilight_decke wz_ilight_stehlampe wz_gardine wz_sofa wz_glas1
attr wz_lightscene async_delay 0
attr wz_lightscene eventMap /scene aus:Aus/scene fernsehen:Fernsehen/scene weiss:Weiß
attr wz_lightscene group Licht
attr wz_lightscene room Wohnzimmer
attr wz_lightscene switchingOrder fernsehen:wz_ilight_decke,wz_ilight_stehlampe weiss:wz_ilight_decke,wz_ilight_stehlampe aus:wz_ilight_decke,wz_ilight_stehlampe rot:wz_ilight_decke,wz_ilight_stehlampe gelb:wz_ilight_decke,wz_ilight_stehlampe gruen:wz_ilight_decke,wz_ilight_stehlampe tuerkis:wz_ilight_decke,wz_ilight_stehlampe blau:wz_ilight_decke,wz_ilight_stehlampe pink:wz_ilight_decke,wz_ilight_stehlampe
attr wz_lightscene webCmd Aus:Fernsehen:Weiß

define cul_868 CUL XXXXXXXXXX:XXXXXXXXXX 0000
attr cul_868 event-on-change-reading .*
attr cul_868 group Hardware
attr cul_868 hmId F10000
attr cul_868 model nanoCUL
attr cul_868 rfmode HomeMatic
attr cul_868 room Flur

define VCCU CUL_HM F10000
attr VCCU IODev cul_868
attr VCCU IOList cul_868
attr VCCU expert 2_raw
attr VCCU group FHEM
attr VCCU hmKey XXXXXXXXXX
attr VCCU model CCU-FHEM
attr VCCU room Büro
attr VCCU subType virtual
attr VCCU webCmd virtual:update

define bad_spiegelschrank CUL_HM 439613
attr bad_spiegelschrank IODev cul_868
attr bad_spiegelschrank IOgrp VCCU:cul_868
attr bad_spiegelschrank autoReadReg 4_reqStatus
attr bad_spiegelschrank event-on-change-reading .*
attr bad_spiegelschrank expert 2_raw
attr bad_spiegelschrank firmware 2.8
attr bad_spiegelschrank group Licht
attr bad_spiegelschrank model HM-LC-SW1-FM
attr bad_spiegelschrank peerIDs 00000000,3B774E02,
attr bad_spiegelschrank room Bad
attr bad_spiegelschrank serialNr MEQ1741482
attr bad_spiegelschrank subType switch
attr bad_spiegelschrank webCmd statusRequest:toggle:on:off

define fl_tuerkontakt CUL_HM 428BBF
attr fl_tuerkontakt IODev cul_868
attr fl_tuerkontakt actCycle 000:50
attr fl_tuerkontakt actStatus alive
attr fl_tuerkontakt alarmDevice Sensor
attr fl_tuerkontakt alarmSettings alarm7,|fl_tuerkontakt:open.*|Wohnungstür|on
attr fl_tuerkontakt autoReadReg 4_reqStatus
attr fl_tuerkontakt event-on-change-reading .*
attr fl_tuerkontakt expert 2_raw
attr fl_tuerkontakt firmware 1.0
attr fl_tuerkontakt group Sensoren
attr fl_tuerkontakt model HM-SEC-SCo
attr fl_tuerkontakt peerIDs 00000000,
attr fl_tuerkontakt room Flur
attr fl_tuerkontakt serialNr MEQ1484665
attr fl_tuerkontakt subType threeStateSensor

define sz_ZS CUL_HM 45361D
attr sz_ZS IODev cul_868
attr sz_ZS IOgrp VCCU:cul_868
attr sz_ZS actCycle 000:10
attr sz_ZS actStatus alive
attr sz_ZS autoReadReg 4_reqStatus
attr sz_ZS event-on-change-reading .*
attr sz_ZS expert 2_raw
attr sz_ZS firmware 2.5
attr sz_ZS group Steckdosen
attr sz_ZS model HM-ES-PMSw1-Pl
attr sz_ZS room Schlafzimmer
attr sz_ZS serialNr NEQ0154707
attr sz_ZS subType powerMeter
attr sz_ZS webCmd on:off

define KeyMatic CUL_HM 27E02A
attr KeyMatic IODev cul_868
attr KeyMatic IOgrp VCCU:cul_868
attr KeyMatic autoReadReg 4_reqStatus
attr KeyMatic expert 2_raw
attr KeyMatic firmware 2.5
attr KeyMatic group Aktoren
attr KeyMatic model HM-SEC-KEY
attr KeyMatic msgRepeat 1
attr KeyMatic peerIDs 00000000,2FB14401,2FB14402,2FB14404,
attr KeyMatic room Flur
attr KeyMatic serialNr LEQ0148741
attr KeyMatic subType keyMatic
attr KeyMatic webCmd lock:unlock:open

define HM_2FB144 CUL_HM 2FB144
attr HM_2FB144 IODev cul_868
attr HM_2FB144 autoReadReg 4_reqStatus
attr HM_2FB144 expert 2_raw
attr HM_2FB144 firmware 1.2
attr HM_2FB144 group Sender
attr HM_2FB144 model HM-RC-Key4-2
attr HM_2FB144 room Flur
attr HM_2FB144 serialNr LEQ0754110
attr HM_2FB144 subType remote
attr HM_2FB144 webCmd getConfig:clear msgEvents

define HM_2FB144_unlock CUL_HM 2FB14401
attr HM_2FB144_unlock group Sender
attr HM_2FB144_unlock model HM-RC-Key4-2
attr HM_2FB144_unlock peerIDs 00000000,27E02A01,
attr HM_2FB144_unlock room Flur

define HM_2FB144_lock CUL_HM 2FB14402
attr HM_2FB144_lock group Sender
attr HM_2FB144_lock model HM-RC-Key4-2
attr HM_2FB144_lock peerIDs 00000000,27E02A01,
attr HM_2FB144_lock room Flur

define HM_2FB144_light CUL_HM 2FB14403
attr HM_2FB144_light group Sender
attr HM_2FB144_light model HM-RC-Key4-2
attr HM_2FB144_light peerIDs 00000000,
attr HM_2FB144_light room Flur

define HM_2FB144_open CUL_HM 2FB14404
attr HM_2FB144_open group Sender
attr HM_2FB144_open model HM-RC-Key4-2
attr HM_2FB144_open peerIDs 00000000,27E02A01,
attr HM_2FB144_open room Flur

define notify_keymatic_flur notify keymatic set KeyMatic $EVENT
attr notify_keymatic_flur disable 1
attr notify_keymatic_flur group Aktoren
attr notify_keymatic_flur room Flur

define notify_dummy_alarm_rfid notify dummy_alarm_rfid:.* { if($EVENT eq "arm") { fhem("set Alarmanlage armed 7") } elsif($EVENT eq "disarm") { fhem("set Alarmanlage disarmed 7") } }
attr notify_dummy_alarm_rfid room Alarm

define dummy_sabotage1 dummy
attr dummy_sabotage1 alarmDevice Sensor
attr dummy_sabotage1 alarmSettings alarm6,|dummy_sabotage1:on|RFID|on
attr dummy_sabotage1 room Alarm
attr dummy_sabotage1 setList on off

define notify_dummy_sabotage_rfid notify dummy_sabotage_rfid:.* set dummy_sabotage1 $EVENT;;set dummy_sabotage0 $EVENT
attr notify_dummy_sabotage_rfid room Alarm

define dummy_sabotage0 dummy
attr dummy_sabotage0 alarmDevice Sensor
attr dummy_sabotage0 alarmSettings alarm6,|dummy_sabotage0:off|RFID|off
attr dummy_sabotage0 room Alarm
attr dummy_sabotage0 setList on off

define notify_sequence_alarm_off notify sequence_alarm_off:trigger.* set dummy_alarm disarm
attr notify_sequence_alarm_off room Alarm

define doif_fhem2fhem DOIF ([fhem_flur] eq "connected" and [fhem_garage] eq "connected") (set doif_fhem2fhem value connected)\
DOELSEIF ([fhem_flur] eq "disconnected" and [fhem_garage] eq "disconnected") (set doif_fhem2fhem value disconnected)\
DOELSEIF ([fhem_flur] eq "disconnected" and [fhem_garage] eq "connected") (set doif_fhem2fhem value semiconnected)\
DOELSEIF ([fhem_flur] eq "connected" and [fhem_garage] eq "disconnected") (set doif_fhem2fhem value semiconnected)
attr doif_fhem2fhem do always
attr doif_fhem2fhem event-on-change-reading value
attr doif_fhem2fhem group FHEM
attr doif_fhem2fhem readingList value
attr doif_fhem2fhem room Büro

define cal_Sarah_Arbeit Calendar ical url XXXXXXXXXX 1800
attr cal_Sarah_Arbeit group Termine
attr cal_Sarah_Arbeit room Status
attr cal_Sarah_Arbeit verbose 0

define notify_wz_taster_1_Short notify wz_taster_a_Btn_01:trigger..Short.*|wz_taster_b_Btn_01:trigger..Short.* { if(ReadingsVal('wz_ilight_decke','state','') =~ "off") { fhem("set wz_ilight_decke hsv 0,0,100") } else { fhem("set wz_ilight_decke hsv 0,0,0") } }
attr notify_wz_taster_1_Short group Sensoren
attr notify_wz_taster_1_Short room Wohnzimmer

define notify_wz_taster_2_Short notify wz_taster_a_Btn_02:trigger..Short.*|wz_taster_b_Btn_02:trigger..Short.* { if(ReadingsVal('wz_ilight_decke','state','') =~ "on" or ReadingsVal('wz_ilight_sofa','state','') =~ "on" or ReadingsVal('wz_ilight_glasboeden','state','') =~ "on" or ReadingsVal('wz_ilight_stehlampe','state','') =~ "on" or ReadingsVal ('wz_jaegermeister','state','') eq "on") { fhem("set wz_lightscene scene aus");; fhem("set wz_jaegermeister off") } else { fhem("set wz_lightscene scene weiss") } }
attr notify_wz_taster_2_Short group Sensoren
attr notify_wz_taster_2_Short room Wohnzimmer

define notify_wz_taster_2_Long notify wz_taster_a_Btn_02:Long.1_.*|wz_taster_b_Btn_02:Long.1_.* set wz_lightscene scene weiss
attr notify_wz_taster_2_Long group Sensoren
attr notify_wz_taster_2_Long room Wohnzimmer

define notify_wz_taster_3_Short notify wz_taster_a_Btn_03:trigger..Short.*|wz_taster_b_Btn_03:trigger..Short.* { if(ReadingsVal('wz_lightscene','state','') !~ "fernsehen") { fhem("set wz_lightscene scene fernsehen") } else { fhem("set wz_lightscene scene aus") } }
attr notify_wz_taster_3_Short group Sensoren
attr notify_wz_taster_3_Short room Wohnzimmer

define notify_wz_taster_4_Short notify wz_taster_a_Btn_04:trigger..Short.*|wz_taster_b_Btn_04:trigger..Short.* set IT_00F0FFFF01 toggle
attr notify_wz_taster_4_Short group Sensoren
attr notify_wz_taster_4_Short room Wohnzimmer

define notify_wz_taster_5_Short notify wz_taster_a_Btn_05:trigger..Short.*|wz_taster_b_Btn_05:trigger..Short.* set wz_jaegermeister toggle
attr notify_wz_taster_5_Short group Sensoren
attr notify_wz_taster_5_Short room Wohnzimmer

define notify_wz_taster_6_Short notify wz_taster_a_Btn_06:trigger..Short.*|wz_taster_b_Btn_06:trigger..Short.* set wz_lightscene scene aus;; set wz_jaegermeister off;; set IT_00F0FFFF01 off;; set vsx_510 off;; set wz_ilight_decke hsv 0,0,0
attr notify_wz_taster_6_Short group Sensoren
attr notify_wz_taster_6_Short room Wohnzimmer

define notify_wz_taster_3_Long notify wz_taster_a_Btn_03:Long.1_.*|wz_taster_b_Btn_03:Long.1_.* { if(ReadingsVal('wz_lightscene','state','') eq "fernsehen") { fhem("set wz_lightscene scene rot") } elsif(ReadingsVal('wz_lightscene','state','') eq "rot") { fhem("set wz_lightscene scene gelb") } elsif(ReadingsVal('wz_lightscene','state','') eq "gelb") { fhem("set wz_lightscene scene gruen") } elsif(ReadingsVal('wz_lightscene','state','') eq "gruen") { fhem("set wz_lightscene scene tuerkis") } elsif(ReadingsVal('wz_lightscene','state','') eq "tuerkis") { fhem("set wz_lightscene scene blau") } elsif(ReadingsVal('wz_lightscene','state','') eq "blau") { fhem("set wz_lightscene scene pink") } else { fhem("set wz_lightscene scene fernsehen") } }
attr notify_wz_taster_3_Long group Sensoren
attr notify_wz_taster_3_Long room Wohnzimmer

define notify_wz_taster_1_Long notify wz_taster_a_Btn_01:Long.1_.*|wz_taster_b_Btn_01:Long.1_.* { if(ReadingsVal('wz_ilight_decke','brightness','') == 100 or ReadingsVal('wz_ilight_decke','brightness','') == 0) { fhem("set wz_ilight_decke hsv 0,0,10") } else { fhem("set wz_ilight_decke hsv 0,0,100") } }
attr notify_wz_taster_1_Long group Sensoren
attr notify_wz_taster_1_Long room Wohnzimmer

define wz_jaegermeister CUL_HM 4D1A46
attr wz_jaegermeister IODev cul_868
attr wz_jaegermeister IOgrp VCCU:cul_868
attr wz_jaegermeister autoReadReg 4_reqStatus
attr wz_jaegermeister expert 2_raw
attr wz_jaegermeister firmware 2.6
attr wz_jaegermeister group Licht
attr wz_jaegermeister model HM-LC-Sw1-Pl-DN-R1
attr wz_jaegermeister peerIDs 00000000,
attr wz_jaegermeister room Wohnzimmer
attr wz_jaegermeister serialNr NEQ0869532
attr wz_jaegermeister subType switch
attr wz_jaegermeister webCmd statusRequest:toggle:on:off

define fl_spot CUL_HM 471158
attr fl_spot IODev cul_868
attr fl_spot IOgrp VCCU:cul_868
attr fl_spot autoReadReg 4_reqStatus
attr fl_spot expert 2_raw
attr fl_spot firmware 2.8
attr fl_spot group Licht
attr fl_spot model HM-LC-Sw1PBU-FM
attr fl_spot peerIDs 00000000,
attr fl_spot room Flur
attr fl_spot serialNr NEQ0274874
attr fl_spot subType switch
attr fl_spot webCmd statusRequest:toggle:on:off

define Roman_Schluessel PRESENCE lan-bluetooth XXXXXXXXXX localhost:XXXXXXXXXX 30 60
attr Roman_Schluessel absenceThreshold 2
attr Roman_Schluessel event-on-change-reading .*
attr Roman_Schluessel group Personen
attr Roman_Schluessel room Status
attr Roman_Schluessel stateFormat presence Bat: battery%
attr Roman_Schluessel userReadings battery_val { if (ReadingsVal('Roman_Schluessel','battery',0) <= 20) { "low" } else { "ok" } }

define Sarah_Schluessel PRESENCE lan-bluetooth XXXXXXXXXX localhost:XXXXXXXXXX 30 60
attr Sarah_Schluessel absenceThreshold 2
attr Sarah_Schluessel event-on-change-reading .*
attr Sarah_Schluessel group Personen
attr Sarah_Schluessel room Status
attr Sarah_Schluessel stateFormat presence Bat: battery%
attr Sarah_Schluessel userReadings battery_val { if (ReadingsVal('Sarah_Schluessel','battery',0) <= 20) { "low" } else { "ok" } }

define notify_wz_WT2 notify wz_WT2:desiredTemperature:.* { if(ReadingsVal('wz_WT','desiredTemperature',0) != ReadingsVal('wz_WT2','desiredTemperature',0)) { fhem("set wz_WT desiredTemperature ".ReadingsVal('wz_WT2','desiredTemperature',0)) } }
attr notify_wz_WT2 group Heizung
attr notify_wz_WT2 room Wohnzimmer

define notify_wz_WT notify wz_WT:desiredTemperature:.* { if(ReadingsVal('wz_WT2','desiredTemperature',0) != ReadingsVal('wz_WT','desiredTemperature',0)) { fhem("set wz_WT2 desiredTemperature ".ReadingsVal('wz_WT','desiredTemperature',0)) } }
attr notify_wz_WT group Heizung
attr notify_wz_WT room Wohnzimmer

define notify_fl_taster_01_Short notify fl_taster_Btn_02:trigger..Short.* { if(Value('gpio18_flur') == 0) { fhem("set gpio18_flur 20") } else { while(Value('gpio18_flur') < 1024) { my $value=Value('gpio18_flur')+16;; fhem("set gpio18_flur $value");; } fhem("set gpio18_flur 1024") } }
attr notify_fl_taster_01_Short group Sensoren
attr notify_fl_taster_01_Short room Flur

define notify_fl_taster_02_Short notify fl_taster_Btn_01:trigger..Short.* { if(Value('gpio18_flur') >= 32) { while(Value('gpio18_flur') > 16) { my $value=Value('gpio18_flur')-16;; fhem("set gpio18_flur $value");; } fhem("set gpio18_flur 0") } fhem("set gpio18_flur 0") }
attr notify_fl_taster_02_Short group Sensoren
attr notify_fl_taster_02_Short room Flur

define bad_taster CUL_HM 3B774E
attr bad_taster IODev VCCU
attr bad_taster IOgrp VCCU:cul_868
attr bad_taster autoReadReg 4_reqStatus
attr bad_taster expert 2_raw
attr bad_taster firmware 1.4
attr bad_taster group Sensoren
attr bad_taster model HM-PB-2-WM55
attr bad_taster room Bad
attr bad_taster serialNr MEQ0400366
attr bad_taster subType pushButton
attr bad_taster webCmd getConfig:clear msgEvents

define bad_taster_01 CUL_HM 3B774E01
attr bad_taster_01 group Sensoren
attr bad_taster_01 model HM-PB-2-WM55
attr bad_taster_01 peerIDs 00000000,52F38A01,
attr bad_taster_01 room Bad

define bad_taster_02 CUL_HM 3B774E02
attr bad_taster_02 group Sensoren
attr bad_taster_02 model HM-PB-2-WM55
attr bad_taster_02 peerIDs 00000000,43961301,
attr bad_taster_02 room Bad

define ku_licht CUL_HM 495ECF
attr ku_licht IODev cul_868
attr ku_licht IOgrp VCCU:cul_868
attr ku_licht autoReadReg 4_reqStatus
attr ku_licht expert 2_raw
attr ku_licht firmware 2.8
attr ku_licht group Licht
attr ku_licht model HM-LC-Sw1PBU-FM
attr ku_licht peerIDs 00000000,
attr ku_licht room Küche
attr ku_licht serialNr NEQ0275218
attr ku_licht subType switch
attr ku_licht webCmd statusRequest:toggle:on:off

define notify_fl_taster_01_Long notify fl_taster_Btn_02:Long.* { my $value=Value("gpio18_flur")+32;; if(Value('gpio18_flur') == 25) { fhem ("set gpio18_flur 32") } elsif (Value('gpio18_flur') < 1024) { fhem ("set gpio18_flur $value") } }
attr notify_fl_taster_01_Long group Sensoren
attr notify_fl_taster_01_Long room Flur

define notify_fl_taster_02_Long notify fl_taster_Btn_01:Long.* { my $value=Value ('gpio18_flur')-32;; if(Value('gpio18_flur') == 25) { fhem ("set gpio18_flur 0") } elsif (Value('gpio18_flur') > 0) { fhem ("set gpio18_flur $value") } }
attr notify_fl_taster_02_Long group Sensoren
attr notify_fl_taster_02_Long room Flur

define fl_licht CUL_HM 495F0A
attr fl_licht IODev cul_868
attr fl_licht IOgrp VCCU:cul_868
attr fl_licht autoReadReg 4_reqStatus
attr fl_licht expert 2_raw
attr fl_licht firmware 2.8
attr fl_licht group Licht
attr fl_licht model HM-LC-Sw1PBU-FM
attr fl_licht peerIDs 00000000,
attr fl_licht room Flur
attr fl_licht serialNr NEQ0275160
attr fl_licht subType switch
attr fl_licht webCmd statusRequest:toggle:on:off

define bad_HT MAX HeatingThermostat 0d0328
attr bad_HT IODev CULMAX0
attr bad_HT event-on-change-reading .*
attr bad_HT group Heizung
attr bad_HT keepAuto 0
attr bad_HT room Bad

define bad_SC MAX ShutterContact 109783
attr bad_SC IODev CULMAX0
attr bad_SC event-on-change-reading .*
attr bad_SC group Heizung
attr bad_SC room Bad

define bad_WT MAX WallMountedThermostat 10a2fd
attr bad_WT IODev CULMAX0
attr bad_WT event-on-change-reading .*
attr bad_WT group Heizung
attr bad_WT keepAuto 0
attr bad_WT room Bad

define bu_HT MAX HeatingThermostat 139948
attr bu_HT IODev CULMAX0
attr bu_HT event-on-change-reading .*
attr bu_HT group Heizung
attr bu_HT keepAuto 0
attr bu_HT room Büro

define bu_SC MAX ShutterContact 10948d
attr bu_SC IODev CULMAX0
attr bu_SC event-on-change-reading .*
attr bu_SC group Heizung
attr bu_SC room Büro

define bu_WT MAX WallMountedThermostat 10a3e5
attr bu_WT IODev CULMAX0
attr bu_WT event-on-change-reading .*
attr bu_WT group Heizung
attr bu_WT keepAuto 0
attr bu_WT room Büro

define ku_HT MAX HeatingThermostat 139946
attr ku_HT IODev CULMAX0
attr ku_HT event-on-change-reading .*
attr ku_HT group Heizung
attr ku_HT keepAuto 0
attr ku_HT room Küche

define ku_SC MAX ShutterContact 1094c2
attr ku_SC IODev CULMAX0
attr ku_SC event-on-change-reading .*
attr ku_SC group Heizung
attr ku_SC room Küche

define ku_WT MAX WallMountedThermostat 10a5ae
attr ku_WT IODev CULMAX0
attr ku_WT event-on-change-reading .*
attr ku_WT group Heizung
attr ku_WT keepAuto 0
attr ku_WT room Küche

define sz_HT MAX HeatingThermostat 06cfa7
attr sz_HT IODev CULMAX0
attr sz_HT event-on-change-reading .*
attr sz_HT group Heizung
attr sz_HT keepAuto 0
attr sz_HT room Schlafzimmer

define sz_SC MAX ShutterContact 0621dd
attr sz_SC IODev CULMAX0
attr sz_SC event-on-change-reading .*
attr sz_SC group Heizung
attr sz_SC room Schlafzimmer

define sz_WT MAX WallMountedThermostat 10a3ea
attr sz_WT IODev CULMAX0
attr sz_WT event-on-change-reading .*
attr sz_WT group Heizung
attr sz_WT keepAuto 0
attr sz_WT room Schlafzimmer

define wz_HT MAX HeatingThermostat 063673
attr wz_HT IODev CULMAX0
attr wz_HT event-on-change-reading .*
attr wz_HT group Heizung
attr wz_HT keepAuto 0
attr wz_HT room Wohnzimmer

define wz_SC MAX ShutterContact 0f6903
attr wz_SC IODev CULMAX0
attr wz_SC event-on-change-reading .*
attr wz_SC group Heizung
attr wz_SC room Wohnzimmer

define wz_WT MAX WallMountedThermostat 10a665
attr wz_WT IODev CULMAX0
attr wz_WT event-on-change-reading .*
attr wz_WT group Heizung
attr wz_WT keepAuto 0
attr wz_WT room Wohnzimmer

define wz_WT2 MAX WallMountedThermostat 16c12d
attr wz_WT2 IODev CULMAX0
attr wz_WT2 event-on-change-reading .*
attr wz_WT2 group Heizung
attr wz_WT2 keepAuto 0
attr wz_WT2 room Wohnzimmer

define fhem_save_flur dummy
attr fhem_save_flur group FHEM
attr fhem_save_flur room Flur

define fhem_save_garage dummy
attr fhem_save_garage group FHEM
attr fhem_save_garage room Draußen

define at_watchdog at +*00:00:10 { system("echo fhem > /dev/watchdog") }
attr at_watchdog group Hardware
attr at_watchdog room Büro
attr at_watchdog verbose 0

define fl_rfid_dummy dummy
attr fl_rfid_dummy group Aktoren
attr fl_rfid_dummy room Flur
attr fl_rfid_dummy setList on off

define notify_Roman_Gtag notify Roman_Gtag:battery.* setreading Roman_Schluessel battery $EVTPART1
attr notify_Roman_Gtag group Personen
attr notify_Roman_Gtag room Status

define notify_Sarah_Gtag notify Sarah_Gtag:battery.* setreading Sarah_Schluessel battery $EVTPART1
attr notify_Sarah_Gtag group Personen
attr notify_Sarah_Gtag room Status

define doif_wz_subs_auto DOIF ([wz_subs_auto_dummy:state] eq "on" and [vsx_510:power] eq "on") (set wz_subwoofer on) DOELSEIF ([wz_subs_auto_dummy:state] eq "on" and [vsx_510:power] eq "off") (set wz_subwoofer off) DOELSEIF ([wz_subs_auto_dummy:state] eq "off") ({ return })
attr doif_wz_subs_auto group Multimedia
attr doif_wz_subs_auto room Wohnzimmer

define eco_taster MAX PushButton 0fe762
attr eco_taster IODev cul_868
attr eco_taster event-on-change-reading battery,onoff
attr eco_taster group Heizung
attr eco_taster room Flur

define unknown_27BC50 CUL_HM 27BC50
attr unknown_27BC50 IODev cul_868
attr unknown_27BC50 autoReadReg 4_reqStatus
attr unknown_27BC50 expert 2_raw
attr unknown_27BC50 ignore 1

define sz_ZS_Sw CUL_HM 45361D01
attr sz_ZS_Sw event-on-change-reading .*
attr sz_ZS_Sw group Steckdosen
attr sz_ZS_Sw model HM-ES-PMSw1-Pl
attr sz_ZS_Sw peerIDs 00000000,
attr sz_ZS_Sw room Schlafzimmer

define sz_ZS_Pwr CUL_HM 45361D02
attr sz_ZS_Pwr event-on-change-reading .*
attr sz_ZS_Pwr group Steckdosen
attr sz_ZS_Pwr model HM-ES-PMSw1-Pl
attr sz_ZS_Pwr room Schlafzimmer

define sz_ZS_SenPwr CUL_HM 45361D03
attr sz_ZS_SenPwr event-on-change-reading .*
attr sz_ZS_SenPwr group Steckdosen
attr sz_ZS_SenPwr model HM-ES-PMSw1-Pl
attr sz_ZS_SenPwr peerIDs 00000000,
attr sz_ZS_SenPwr room Schlafzimmer

define sz_ZS_SenI CUL_HM 45361D04
attr sz_ZS_SenI event-on-change-reading .*
attr sz_ZS_SenI group Steckdosen
attr sz_ZS_SenI model HM-ES-PMSw1-Pl
attr sz_ZS_SenI peerIDs 00000000,
attr sz_ZS_SenI room Schlafzimmer

define sz_ZS_SenU CUL_HM 45361D05
attr sz_ZS_SenU event-on-change-reading .*
attr sz_ZS_SenU group Steckdosen
attr sz_ZS_SenU model HM-ES-PMSw1-Pl
attr sz_ZS_SenU peerIDs 00000000,
attr sz_ZS_SenU room Schlafzimmer

define sz_ZS_SenF CUL_HM 45361D06
attr sz_ZS_SenF event-on-change-reading .*
attr sz_ZS_SenF group Steckdosen
attr sz_ZS_SenF model HM-ES-PMSw1-Pl
attr sz_ZS_SenF peerIDs 00000000,
attr sz_ZS_SenF room Schlafzimmer

define wz_taster_a CUL_HM 4E98DB
attr wz_taster_a IODev cul_868
attr wz_taster_a IOgrp VCCU:cul_868
attr wz_taster_a autoReadReg 4_reqStatus
attr wz_taster_a event-on-change-reading .*
attr wz_taster_a expert 2_raw
attr wz_taster_a firmware 1.2
attr wz_taster_a group Sensoren
attr wz_taster_a model HM-PB-6-WM55
attr wz_taster_a room Wohnzimmer
attr wz_taster_a serialNr NEQ1001539
attr wz_taster_a subType remote
attr wz_taster_a webCmd getConfig:clear msgEvents

define wz_taster_a_Btn_01 CUL_HM 4E98DB01
attr wz_taster_a_Btn_01 event-on-change-reading .*
attr wz_taster_a_Btn_01 group Sensoren
attr wz_taster_a_Btn_01 model HM-PB-6-WM55
attr wz_taster_a_Btn_01 peerIDs 00000000,
attr wz_taster_a_Btn_01 room Wohnzimmer
attr wz_taster_a_Btn_01 verbose 5

define wz_taster_a_Btn_02 CUL_HM 4E98DB02
attr wz_taster_a_Btn_02 event-on-change-reading .*
attr wz_taster_a_Btn_02 group Sensoren
attr wz_taster_a_Btn_02 model HM-PB-6-WM55
attr wz_taster_a_Btn_02 peerIDs 00000000,
attr wz_taster_a_Btn_02 room Wohnzimmer

define wz_taster_a_Btn_03 CUL_HM 4E98DB03
attr wz_taster_a_Btn_03 event-on-change-reading .*
attr wz_taster_a_Btn_03 group Sensoren
attr wz_taster_a_Btn_03 model HM-PB-6-WM55
attr wz_taster_a_Btn_03 peerIDs 00000000,
attr wz_taster_a_Btn_03 room Wohnzimmer

define wz_taster_a_Btn_04 CUL_HM 4E98DB04
attr wz_taster_a_Btn_04 event-on-change-reading .*
attr wz_taster_a_Btn_04 group Sensoren
attr wz_taster_a_Btn_04 model HM-PB-6-WM55
attr wz_taster_a_Btn_04 peerIDs 00000000,
attr wz_taster_a_Btn_04 room Wohnzimmer

define wz_taster_a_Btn_05 CUL_HM 4E98DB05
attr wz_taster_a_Btn_05 event-on-change-reading .*
attr wz_taster_a_Btn_05 group Sensoren
attr wz_taster_a_Btn_05 model HM-PB-6-WM55
attr wz_taster_a_Btn_05 peerIDs 00000000,
attr wz_taster_a_Btn_05 room Wohnzimmer

define wz_taster_a_Btn_06 CUL_HM 4E98DB06
attr wz_taster_a_Btn_06 event-on-change-reading .*
attr wz_taster_a_Btn_06 group Sensoren
attr wz_taster_a_Btn_06 model HM-PB-6-WM55
attr wz_taster_a_Btn_06 peerIDs 00000000,
attr wz_taster_a_Btn_06 room Wohnzimmer

define wz_taster_b CUL_HM 4E98CD
attr wz_taster_b IODev cul_868
attr wz_taster_b IOgrp VCCU:cul_868
attr wz_taster_b autoReadReg 4_reqStatus
attr wz_taster_b event-on-change-reading .*
attr wz_taster_b expert 2_raw
attr wz_taster_b firmware 1.2
attr wz_taster_b group Sensoren
attr wz_taster_b model HM-PB-6-WM55
attr wz_taster_b room Wohnzimmer
attr wz_taster_b serialNr NEQ1001525
attr wz_taster_b subType remote
attr wz_taster_b webCmd getConfig:clear msgEvents

define wz_taster_b_Btn_01 CUL_HM 4E98CD01
attr wz_taster_b_Btn_01 event-on-change-reading .*
attr wz_taster_b_Btn_01 group Sensoren
attr wz_taster_b_Btn_01 model HM-PB-6-WM55
attr wz_taster_b_Btn_01 peerIDs 00000000,
attr wz_taster_b_Btn_01 room Wohnzimmer

define wz_taster_b_Btn_02 CUL_HM 4E98CD02
attr wz_taster_b_Btn_02 event-on-change-reading .*
attr wz_taster_b_Btn_02 group Sensoren
attr wz_taster_b_Btn_02 model HM-PB-6-WM55
attr wz_taster_b_Btn_02 peerIDs 00000000,
attr wz_taster_b_Btn_02 room Wohnzimmer

define wz_taster_b_Btn_03 CUL_HM 4E98CD03
attr wz_taster_b_Btn_03 event-on-change-reading .*
attr wz_taster_b_Btn_03 group Sensoren
attr wz_taster_b_Btn_03 model HM-PB-6-WM55
attr wz_taster_b_Btn_03 peerIDs 00000000,
attr wz_taster_b_Btn_03 room Wohnzimmer

define wz_taster_b_Btn_04 CUL_HM 4E98CD04
attr wz_taster_b_Btn_04 event-on-change-reading .*
attr wz_taster_b_Btn_04 group Sensoren
attr wz_taster_b_Btn_04 model HM-PB-6-WM55
attr wz_taster_b_Btn_04 peerIDs 00000000,
attr wz_taster_b_Btn_04 room Wohnzimmer

define wz_taster_b_Btn_05 CUL_HM 4E98CD05
attr wz_taster_b_Btn_05 event-on-change-reading .*
attr wz_taster_b_Btn_05 group Sensoren
attr wz_taster_b_Btn_05 model HM-PB-6-WM55
attr wz_taster_b_Btn_05 peerIDs 00000000,
attr wz_taster_b_Btn_05 room Wohnzimmer

define wz_taster_b_Btn_06 CUL_HM 4E98CD06
attr wz_taster_b_Btn_06 event-on-change-reading .*
attr wz_taster_b_Btn_06 group Sensoren
attr wz_taster_b_Btn_06 model HM-PB-6-WM55
attr wz_taster_b_Btn_06 peerIDs 00000000,
attr wz_taster_b_Btn_06 room Wohnzimmer

define fl_taster CUL_HM 482381
attr fl_taster IODev cul_868
attr fl_taster IOgrp VCCU:cul_868
attr fl_taster autoReadReg 4_reqStatus
attr fl_taster do_not_notify 1
attr fl_taster event-on-change-reading .*
attr fl_taster expert 2_raw
attr fl_taster firmware 1.0
attr fl_taster group Sensoren
attr fl_taster model HM-RC-2-PBU-FM
attr fl_taster room Flur
attr fl_taster serialNr NEQ0366459
attr fl_taster subType remote
attr fl_taster webCmd getConfig:clear msgEvents

define fl_taster_Btn_01 CUL_HM 48238101
attr fl_taster_Btn_01 event-on-change-reading .*
attr fl_taster_Btn_01 group Sensoren
attr fl_taster_Btn_01 model HM-RC-2-PBU-FM
attr fl_taster_Btn_01 peerIDs 00000000,
attr fl_taster_Btn_01 room Flur

define fl_taster_Btn_02 CUL_HM 48238102
attr fl_taster_Btn_02 event-on-change-reading .*
attr fl_taster_Btn_02 group Sensoren
attr fl_taster_Btn_02 model HM-RC-2-PBU-FM
attr fl_taster_Btn_02 peerIDs 00000000,
attr fl_taster_Btn_02 room Flur

define bad_licht CUL_HM 52F38A
attr bad_licht IODev cul_868
attr bad_licht IOgrp VCCU:cul_868
attr bad_licht autoReadReg 4_reqStatus
attr bad_licht expert 2_raw
attr bad_licht firmware 2.8
attr bad_licht group Licht
attr bad_licht model HM-LC-Sw1PBU-FM
attr bad_licht peerIDs 00000000,
attr bad_licht room Bad
attr bad_licht serialNr NEQ1829991
attr bad_licht subType switch
attr bad_licht webCmd statusRequest:toggle:on:off

define BMP180_flur dummy
attr BMP180_flur group Sensoren
attr BMP180_flur room Flur
attr BMP180_flur stateFormat temperature °C pressure hPa

define dht22_garage dummy
attr dht22_garage event-on-change-reading .*
attr dht22_garage group Sensoren
attr dht22_garage room Draußen
attr dht22_garage stateFormat T: temperature °C H: humidity %
define rpi_sys_flur dummy

attr rpi_sys_flur event-on-change-reading cpu_temp,cpu_temp_avg,uptime_text,stat_cpu_text,ram
attr rpi_sys_flur group Hardware
attr rpi_sys_flur room Flur

define rpi_sys_garage dummy
attr rpi_sys_garage event-on-change-reading cpu_temp,cpu_temp_avg,uptime_text,stat_cpu_text,ram
attr rpi_sys_garage group Hardware
attr rpi_sys_garage room Draußen

define heatingcontrol_eco_dummy dummy
attr heatingcontrol_eco_dummy group Heizung
attr heatingcontrol_eco_dummy room Status
attr heatingcontrol_eco_dummy setList auto eco

define wz_glas2 LedController XXXXXXXXXX
attr wz_glas2 userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_glas2 defaultHue 240
attr wz_glas2 defaultRamp 500
attr wz_glas2 defaultSat 100
attr wz_glas2 defaultVal 100
attr wz_glas2 event-on-change-reading .*
attr wz_glas2 group Licht
attr wz_glas2 lightSceneParamsToSave hsv
attr wz_glas2 room Wohnzimmer
attr wz_glas2 verbose 0

define ga_tor dummy
attr ga_tor event-on-change-reading state
attr ga_tor group Sensoren
attr ga_tor room Draußen
attr ga_tor setList open closed semiopen open_car

define ku_taster CUL_HM 4D5E40
attr ku_taster IODev cul_868
attr ku_taster IOgrp VCCU:cul_868
attr ku_taster autoReadReg 4_reqStatus
attr ku_taster expert 2_raw
attr ku_taster firmware 1.1
attr ku_taster group Sensoren
attr ku_taster model HM-PB-2-FM
attr ku_taster room Küche
attr ku_taster serialNr NEQ0889040
attr ku_taster subType pushButton
attr ku_taster webCmd getConfig:clear msgEvents

define ku_taster_Btn_01 CUL_HM 4D5E4001
attr ku_taster_Btn_01 group Sensoren
attr ku_taster_Btn_01 model HM-PB-2-FM
attr ku_taster_Btn_01 peerIDs 00000000,495ECF01,
attr ku_taster_Btn_01 room Küche

define ku_taster_Btn_02 CUL_HM 4D5E4002
attr ku_taster_Btn_02 group Sensoren
attr ku_taster_Btn_02 model HM-PB-2-FM
attr ku_taster_Btn_02 peerIDs 00000000,
attr ku_taster_Btn_02 room Küche

define test_taster_230 CUL_HM 4EF4BB
attr test_taster_230 IODev cul_868
attr test_taster_230 IOgrp VCCU:cul_868
attr test_taster_230 autoReadReg 4_reqStatus
attr test_taster_230 expert 2_raw
attr test_taster_230 firmware 1.0
attr test_taster_230 group CUL_HM
attr test_taster_230 model HM-RC-2-PBU-FM
attr test_taster_230 room Unsorted
attr test_taster_230 serialNr NEQ1317792
attr test_taster_230 subType remote
attr test_taster_230 webCmd getConfig:clear msgEvents

define test_taster_230_Btn_01 CUL_HM 4EF4BB01
attr test_taster_230_Btn_01 model HM-RC-2-PBU-FM
attr test_taster_230_Btn_01 peerIDs

define test_taster_230_Btn_02 CUL_HM 4EF4BB02
attr test_taster_230_Btn_02 model HM-RC-2-PBU-FM

define ga_licht dummy
attr ga_licht event-on-change-reading .*
attr ga_licht group Licht
attr ga_licht room Draußen
attr ga_licht setList on off
attr ga_licht useSetExtensions 1

define dr_licht_gang dummy
attr dr_licht_gang event-on-change-reading .*
attr dr_licht_gang group Licht
attr dr_licht_gang room Draußen
attr dr_licht_gang setList on off
attr dr_licht_gang useSetExtensions 1

define dr_licht_sitzecke dummy
attr dr_licht_sitzecke event-on-change-reading .*
attr dr_licht_sitzecke group Licht
attr dr_licht_sitzecke room Draußen
attr dr_licht_sitzecke setList on off
attr dr_licht_sitzecke useSetExtensions 1

define ga_repeater dummy
attr ga_repeater event-on-change-reading .*
attr ga_repeater group Steckdosen
attr ga_repeater room Draußen
attr ga_repeater setList on off
attr ga_repeater useSetExtensions 1

define dr_steckdose dummy
attr dr_steckdose event-on-change-reading .*
attr dr_steckdose group Steckdosen
attr dr_steckdose room Draußen
attr dr_steckdose setList on off
attr dr_steckdose useSetExtensions 1

define notify_savestate_garage dummy
attr notify_savestate_garage group FHEM
attr notify_savestate_garage room Draußen

define notify_savestate_flur dummy
attr notify_savestate_flur group FHEM
attr notify_savestate_flur room Flur

define fl_buzzer dummy
attr fl_buzzer event-on-change-reading .*
attr fl_buzzer group Aktoren
attr fl_buzzer room Flur
attr fl_buzzer setList on off
attr fl_buzzer useSetExtensions 1

define fl_led1 dummy
attr fl_led1 event-on-change-reading .*
attr fl_led1 group Aktoren
attr fl_led1 room Flur
attr fl_led1 setList on off
attr fl_led1 useSetExtensions 1

define fl_led2 dummy
attr fl_led2 event-on-change-reading .*
attr fl_led2 group Aktoren
attr fl_led2 room Flur
attr fl_led2 setList on off
attr fl_led2 useSetExtensions 1

define fl_led3 dummy
attr fl_led3 event-on-change-reading .*
attr fl_led3 group Aktoren
attr fl_led3 room Flur
attr fl_led3 setList on off
attr fl_led3 useSetExtensions 1

define fl_led4 dummy
attr fl_led4 event-on-change-reading .*
attr fl_led4 group Aktoren
attr fl_led4 room Flur
attr fl_led4 setList on off
attr fl_led4 useSetExtensions 1

define doif_fl_led4_tamNewMsg DOIF ([FritzBox_7362:tam1_newMsg] >= 1) (set fl_led4 on) DOELSE (set fl_led4 off)
attr doif_fl_led4_tamNewMsg group Aktoren
attr doif_fl_led4_tamNewMsg room Flur

define doif_st_bat_alert_fl_led3 DOIF ([st_bat_alert] eq "on") (set fl_led3 on) DOELSE (set fl_led3 off)
attr doif_st_bat_alert_fl_led3 group Aktoren
attr doif_st_bat_alert_fl_led3 room Flur

define wz_gardine LedController XXXXXXXXXX
attr wz_gardine userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_gardine defaultColor 0,0,100
attr wz_gardine defaultRamp 500
attr wz_gardine group Licht
attr wz_gardine lightSceneParamsToSave hsv
attr wz_gardine room Wohnzimmer
attr wz_gardine verbose 0

define wz_sofa LedController XXXXXXXXXX
attr wz_sofa userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_sofa defaultColor 0,0,100
attr wz_sofa defaultRamp 500
attr wz_sofa event-on-change-reading .*
attr wz_sofa group Licht
attr wz_sofa lightSceneParamsToSave hsv
attr wz_sofa room Wohnzimmer
attr wz_sofa verbose 0

define wz_glas1 LedController XXXXXXXXXX
attr wz_glas1 userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr wz_glas1 defaultHue 240
attr wz_glas1 defaultRamp 500
attr wz_glas1 defaultSat 100
attr wz_glas1 defaultVal 100
attr wz_glas1 event-on-change-reading .*
attr wz_glas1 group Licht
attr wz_glas1 lightSceneParamsToSave hsv
attr wz_glas1 room Wohnzimmer
attr wz_glas1 slaves wz_glas2
attr wz_glas1 verbose 0

define doif_ga_tor DOIF ([ga_mk_tor_zu:Pinlevel] eq "high" and [ga_mk_tor_auf:Pinlevel] eq "low") (set ga_tor closed)\
DOELSEIF ([ga_mk_tor_zu:Pinlevel] eq "low" and [ga_mk_tor_auf:Pinlevel] eq "high") (set ga_tor open)\
DOELSEIF ([ga_mk_tor_zu:Pinlevel] eq "low" and [ga_mk_tor_auf:Pinlevel] eq "low") (set ga_tor semiopen)\
DOELSEIF ([ga_mk_tor_zu:Pinlevel] eq "high" and [ga_mk_tor_auf:Pinlevel] eq "high") (set ga_tor error)\
DOELSEIF ([ga_mk_tor_zu_sabo:Pinlevel] eq "high" or [ga_mk_tor_auf_sabo:Pinlevel] eq "high") (set ga_tor sabotage)
attr doif_ga_tor event-on-change-reading cmd
attr doif_ga_tor group Sensoren
attr doif_ga_tor room Draußen

define notify_cul_MAX_reconnect notify cul_MAX:UNKNOWNCODE.* set cul_MAX reopen

define CULMAX0 CUL_MAX 123456
attr CULMAX0 IODev cul_MAX
attr CULMAX0 group Hardware,Heizung
attr CULMAX0 room Wohnzimmer

define rpi_sys SYSMON 1 1 1 0
attr rpi_sys event-on-change-reading cpu_temp,cpu_temp_avg,uptime_text,stat_cpu_text,ram
attr rpi_sys exclude cpucount, loadavg, cpufreq, cpuinfo, diskstat, filesystem, fbwlan, fbnightctrl, fbnewmessages, fbdecttemp, fbversion, fbdsl
attr rpi_sys group Hardware
attr rpi_sys nonblocking 1
attr rpi_sys room Büro

define alarm0.off.N notify (sequence_alarm_stumm:trigger) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","off")}
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm

define alarm0.on.N notify (ga_mk_tor_auf_sabo:on)|(ga_mk_tor_zu_sabo:on) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","on")}
attr alarm0.on.N group alarmNotifier
attr alarm0.on.N room Alarm

define alarm6.off.N notify (sequence_alarm_stumm:trigger)|(dummy_sabotage0:off) {main::Alarm_Exec("Alarmanlage",6,"$NAME","$EVENT","off")}
attr alarm6.off.N group alarmNotifier
attr alarm6.off.N room Alarm

define alarm6.on.N notify (dummy_sabotage1:on) {main::Alarm_Exec("Alarmanlage",6,"$NAME","$EVENT","on")}
attr alarm6.on.N group alarmNotifier
attr alarm6.on.N room Alarm

define alarm7.off.N notify (sequence_alarm_stumm:trigger) {main::Alarm_Exec("Alarmanlage",7,"$NAME","$EVENT","off")}
attr alarm7.off.N group alarmNotifier
attr alarm7.off.N room Alarm

define alarm7.on.N notify (fl_tuerkontakt:open.*)|(ga_mk_tor_zu:ooff) {main::Alarm_Exec("Alarmanlage",7,"$NAME","$EVENT","on")}
attr alarm7.on.N group alarmNotifier
attr alarm7.on.N room Alarm

define dht_dummy dummy
attr dht_dummy group Sensoren
attr dht_dummy room Draußen
attr dht_dummy stateFormat T: temperature °C H: humidity % S: sensor

define doif_dht_dummy DOIF ([dht_esp_ost] and [twilight:azimuth] > 205) (setreading dht_dummy temperature [dht_esp_ost:temperature], setreading dht_dummy humidity [dht_esp_ost:humidity], setreading dht_dummy dht_state [dht_esp_ost:state], setreading dht_dummy sensor ost, setreading dht_dummy statHumidityTendency [dht_esp_ost:statHumidityTendency], setreading dht_dummy statTemperatureTendency [dht_esp_ost:statTemperatureTendency])\
DOELSEIF ([dht_esp_west] and [twilight:azimuth] < 205) (setreading dht_dummy temperature [dht_esp_west:temperature], setreading dht_dummy humidity [dht_esp_west:humidity], setreading dht_dummy dht_state [dht_esp_west:state], setreading dht_dummy sensor west, setreading dht_dummy statHumidityTendency [dht_esp_west:statHumidityTendency], setreading dht_dummy statTemperatureTendency [dht_esp_west:statTemperatureTendency])
attr doif_dht_dummy do always
attr doif_dht_dummy group Sensoren
attr doif_dht_dummy room Draußen

define ga_mk_tor_zu cloneDummy mk_tor_zu
attr ga_mk_tor_zu event-on-change-reading Pinlevel
attr ga_mk_tor_zu group Sensoren
attr ga_mk_tor_zu room Draußen
attr ga_mk_tor_zu stateFormat Pinlevel

define ga_mk_tor_auf cloneDummy mk_tor_auf
attr ga_mk_tor_auf event-on-change-reading Pinlevel
attr ga_mk_tor_auf group Sensoren
attr ga_mk_tor_auf room Draußen
attr ga_mk_tor_auf stateFormat Pinlevel

define ga_mk_tor_auf_sabo cloneDummy mk_tor_auf_sabo
attr ga_mk_tor_auf_sabo event-on-change-reading Pinlevel
attr ga_mk_tor_auf_sabo group Sensoren
attr ga_mk_tor_auf_sabo room Draußen
attr ga_mk_tor_auf_sabo stateFormat Pinlevel

define ga_mk_tor_zu_sabo cloneDummy mk_tor_zu_sabo
attr ga_mk_tor_zu_sabo event-on-change-reading Pinlevel
attr ga_mk_tor_zu_sabo group Sensoren
attr ga_mk_tor_zu_sabo room Draußen
attr ga_mk_tor_zu_sabo stateFormat Pinlevel

define sz_unterbett LedController 192.168.1.49
attr sz_unterbett defaultHue 240
attr sz_unterbett defaultRamp 500
attr sz_unterbett defaultSat 100
attr sz_unterbett defaultVal 20
attr sz_unterbett group Licht
attr sz_unterbett room Schlafzimmer

define TSL2561_flur cloneDummy TSL2561
attr TSL2561_flur group Sensoren
attr TSL2561_flur room Flur

Kommentare  

0 # save config über remote piMarkus 2017-03-16 20:05
Hallo

wie hast du das gemacht mit der save config auf dem pi Garage ich bekomme es einfach nicht hin. Ich habe einen Haupt pi wo fhem2fhem ist der die Readings vom zweiten Server holt
Antworten | Antworten mit Zitat | Zitieren
0 # "save" über fhem2fhemRoman 2017-03-19 14:45
Moin.

Vorraussetzung:
Bestehende und funktionierende Verbindung per FHEM2FHEM der beiden Systeme.
Ich nehme mal PI's an.

Erster PI:
define NAME_FUER_DUMMY dummy

Über FTUI oder FHEM folgenden Befehl absetzen:
trigger NAME_FUER_DUMMY

Zweiter PI:
Im FHEM2FHEM-Device folgendes ergänzen:
|NAME_FUER_DUMMY

define NOTIFY_HOERT_AUF_DUMMY notify NAME_FUER_DUMMY.* save


Das war's auch schon. Theoretisch kannst du per
"set NAME_FUER_DUMMY IRGENDWAS"
auch ein "save" auf dem Remote-System auslösen, weil das "NOTIFY_HOERT_AUF_DUMMY" auf alles lauscht was "NAME_FUER_DUMMY" macht.

Viel Spaß damit.
Grüße^^
Antworten | Antworten mit Zitat | Zitieren
0 # WetterwarnungIngo298 2017-03-07 22:22
Funktioniert bei Dir aktuell in der FTUI 2.5 die Wetterwarnung über das GDS Modul noch ??
Bei mir werden leider nur noch alter alert in FTUI angezeigt in Fhem selber wird alles richtig angezeigt
Antworten | Antworten mit Zitat | Zitieren
0 # GDSRoman 2017-03-09 20:07
Ich verstehe nicht warum du das unter die CFG postest... hat doch hiermit überhaupt nichts zu tun.
Aber um die helfen zu können:
www.ueberueck.com/index.php/fhem-hausautomatisierung/fhem-tablet-ui/ftui-2-2#comment-151

Denk daran das du es in FHEM so konfigurieren musst, dass das "a_count" Reading imme rvorhanden sein muss.
Antworten | Antworten mit Zitat | Zitieren
0 # NeCJulian 2017-01-25 19:34
How do you start up remotely one of y0ur Pi's? I've look in your fhem.cfg, but didn't find it.

An answer will be appreciated.

THX
Antworten | Antworten mit Zitat | Zitieren
+1 # Pi reboot remoteRoman 2017-01-29 13:08
Hi there :)

There are two solutions...
Only one Pi::

fhem-command:
{ system("sudo reboot &") }

Two Pi's::

Dummy on Main-Pi:
define remote_pi_reboot dummy

notify on remote pi:
define this_pi_reboot_from_remote notify remote_pi_reboot:trigger.* { system("sudo reboot &") }

fhem-command on Main-Pi:
trigger remote_pi_reboot


Prerequirements:
running and configured fhem2fhem device on remote-Pi (only the two pi's solution):
define fhem2fhem_main_pi FHEM2FHEM !IP_OF_MAIN_PI:FHEM_TELNET_PORT! LOG:remote_pi_reboot !PASSWD_IF_REQUIRED!

fhem has sudo-Rights:
edit /etc/sudoers
add following:

Defaults requiretty
Defaults:%dialout !requiretty
Defaults:fhem !requiretty

fhem ALL=(ALL) NOPASSWD: ALL


fhem has shell access:
edit /etc/passwd
find line with user: fhem
at the end of line change "none" to: bash

THATS IT! ... hope forgot nothing XD

pls excause my bad english :P
Antworten | Antworten mit Zitat | Zitieren
0 # Pi reboot remoteJulian 2017-01-31 09:29
Hy,

Your English is very good :), don't worry

I've tested your first solution, only send the command directly from fhem. This has restarted the mini PC, but afterwords fhem won;t start up anymore. Of course sudo-rights and shell access enabled.

Looking forward...
Antworten | Antworten mit Zitat | Zitieren
0 # Pi reboot remoteJulian 2017-02-01 10:44
Problem solved :) Like usually the problem was the man behind machine :))

Thank you so much and congratulations for your work.
Antworten | Antworten mit Zitat | Zitieren
+1 # Probs behind machinesRoman 2017-02-01 19:50
zitiere Julian:
...usually the problem was the man behind machine :))


Nice. I know this problem as well as you now knowing it ;-)

Greets^^
Antworten | Antworten mit Zitat | Zitieren
0 # esp8266_DS18Temp_aussenDennis 2016-08-27 14:58
hast du den esp an einem arduino? und daran den Temp Sensor?

Könntest du darauf etwas eingehen wie du die Daten über das Wifi Board in Fhem bekommst.


Und Kompliment an deine Demo super Arbeit
Antworten | Antworten mit Zitat | Zitieren
0 # esp_ds18Roman 2017-01-08 14:45
zitiere Dennis:

Könntest du darauf etwas eingehen wie du die Daten über das Wifi Board in Fhem bekommst.


Per HTTP-Request.

Direkt ohne Arduino.. wäre ja doppelt gemoppelt und völlig unnötig. Temp-Sensor direkt am ESP.

Grüße^^
Antworten | Antworten mit Zitat | Zitieren
0 # icons beim abfallrocknob 2016-08-22 18:57
erstmal ein lob an die arbeit, sieht sehr cool aus! wie kann man denn die icons für den abfall ändern? einfach fa-bag in fs-dustbin umzubenennen scheint nicht zu funktionieren :(
Antworten | Antworten mit Zitat | Zitieren
0 # AbfallkalenderIngo298 2016-02-21 08:01
An welcher stelle werden die Dummy für Papier, Plaste und Restmuell definert die in UI benutzt werden??
Antworten | Antworten mit Zitat | Zitieren
+1 # AbfallkalenderRoman 2016-02-22 16:23
Ich nutze das neue ABFALL-Modul.
http://forum.fhem.de/index.php/topic,48237.0.html

Grüße^^
Antworten | Antworten mit Zitat | Zitieren