diff --git a/fhem/FHEM/lib/AttrTemplate/httpmod.template b/fhem/FHEM/lib/AttrTemplate/httpmod.template
index 00d191dd8..838b949b2 100644
--- a/fhem/FHEM/lib/AttrTemplate/httpmod.template
+++ b/fhem/FHEM/lib/AttrTemplate/httpmod.template
@@ -9,7 +9,7 @@
# If undef, the user has to specify them (the comment is shown to the user)
###########################################
-name:General_Info
+name:General_Info_httpmod.template
filter:TYPE=HTTPMOD
desc: Forum link for suggestions or bug reports on httpmod-template.
For changes and updates on this file, see svn changelog. In most cases, major changes will be mentionned there.
order:00000000
@@ -78,6 +78,8 @@ attr DEVICE extractAllJSONFilter REGIONCODE
attr DEVICE readingEncode UTF-8
attr DEVICE preProcessRegex s/warnWetter..............|\);|\t|\n|\r//g
attr DEVICE room WHICHROOM
+attr DEVICE readingMaxAge 10
+attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE model DWD_weather_warnings
#German river water levels, Wiki: https://wiki.fhem.de/wiki/Flusspegel
diff --git a/fhem/FHEM/lib/AttrTemplate/mqtt2.template b/fhem/FHEM/lib/AttrTemplate/mqtt2.template
index db7a64c2f..9e36762ee 100644
--- a/fhem/FHEM/lib/AttrTemplate/mqtt2.template
+++ b/fhem/FHEM/lib/AttrTemplate/mqtt2.template
@@ -363,6 +363,25 @@ deletereading -q DEVICE_CH2 (?!associatedWith).*
attr DEVICE_CH2 jsonMap state_l1:0 state_l2:state state:0 consumption:0 linkquality:0 power:0 temperature:0
attr DEVICE_CH2 model zigbee2mqtt_2channel_split
+# zigbee2mqtt 2 channel device with buttons, forum #102866
+name:zigbee2mqtt_2channel_split_w_buttons
+filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*
+desc:For zigbee2mqtt 2 channel device with 2 buttons.
NOTE: a second device will be created for the second channel
NOTE: Untested version, should work with Xiaomi QBKG12LM
+order:L_05d
+par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[\b]?([^/:]+)[/].*:, ? $1 : undef }
+par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
+par:ICON;ICON as set, defaults to message_socket;{ AttrVal("DEVICE","icon","message_socket") }
+set DEVICE attrTemplate zigbee2mqtt_2channel_split
+attr DEVICE setList \
+ on:noArg BASE_TOPIC/DEV_ID/left/set {"state":"ON"}\
+ off:noArg BASE_TOPIC/DEV_ID/left/set {"state":"OFF"}
+attr DEVICE jsonMap state:availability state_left:state state_right:0
+attr DEVICE_CH2 setList \
+ on:noArg BASE_TOPIC/DEV_ID/right/set {"state":"ON"}\
+ off:noArg BASE_TOPIC/DEV_ID/right/set {"state":"OFF"}
+attr DEVICE_CH2 jsonMap state_left:0 state_right:state state:0 consumption:0 linkquality:0 power:0 temperature:0
+attr DEVICE,DEVICE_CH2 model zigbee2mqtt_2channel_split_w_buttons
+
name:zigbee2mqtt_ContactSensor
desc: Contact sensor via zigbee2mqtt
Tested with: Xiaomi models Aqara and Mijia
filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*